2025 April v2.3
Blueprint Studio v2.3
Changelog
March 01, 2025
[Attachments] Set Folders as the selected tab for this page since we no longer have an attachments tab.
[Attachments] PFolderAttachmentListView - added security check when page opens to make sure the user has access to the selected folder
[Projects] ProjectListView - Fixed logic to filter out archived/active projects
[Items] Items By Schedule Report - fixed cover page to handle null project status
[Items] Items By Schedule Report - Fixed the title it said by room but is really by schedule
March 02, 2025
[Checklists] TaskNotificationService: Implemented this scheduled task to run evern minute and send an email by user for all tasks that are not currently assigned.
[Checklists] Send a separate task notification email per project, and when a task is re-assigned flag the task that the notification has not been sent so it will be re-sent.
[Task Notification] Do not send the notification to a user if they are not active
March 03, 2025
[Web Clipper] - Modified to allow user to populate the cost into the side panel. Modified to calculate sales tax. -Modified pre-save of the item so we only calculate the price if calculation strategy is set to price.
[Impersonization] - Built logic to allow impersonating users. A user can only impersonate another user that is not an employee.
March 04, 2025
[Main Layout] - Removed side panel demo link
[Impersonization] - Added instrctions on how to stop impersonating a user.
[Activity Logging] - Added logging when the Invoice registers are printed
[Comments] - refactored email comments by removing all html and email logic in the CommentDialog and placing into an EmailService class, utilizing a Thymeleaf template for email formatting.
[Attachments] - refactored email attachments by removing all html and email logic in the AttachmentsArea and placing into an EmailService class, utilizing a Thymeleaf template for email formatting.
[Task Notifications] - refactored email notification by removing all html and email logic in the TaskNotificationService and placing into an EmailService class, utilizing a Thymeleaf template for email formatting.
[Feedback Notification] - refactored email notification by removing all html and email logic in the ProposalItemLIstView and placing into an EmailService class, utilizing a Thymeleaf template for email formatting.
[Comment Notification] - Adjusted to display the related entity for viewing online
[Comment Notification] -Adjusted created at to timezone aware
March 05, 2025
[Weekly Project Status Notification] - Created a new email notification which users opt into to receive a weekly project status notification
[Project] - Added breadcrumb back to Project Message List and Project People List
March 06, 2025
[Item] - PItemView: Changed the button to go to the website to inline so it doesnt change the height of the WEbsite field and aligns with all the other fields
[Project Users] - PUserListView: Adjusted the view so it renders better on mobile.
March 07, 2025
[Quickbooks] - Added an option to send the invoice to quickbooks when the email is sent to the customer. This will execute based on a new flag in the Quickbooks entity and settings dialog
[Quickbooks] - Modified QuickbooksSdkService to sanitize the item name by removing single quotes from it, since they cause Quickbooks to fail
[Quickbooks] - QuickbooksDialog: Changed text on auto send checkbox to be more clear about when the invoice is created in Quickbooks
[Proposals] - SendProposalDialog: If clients are not setup to use the system, default the email address from the default email address in the client entity
[Proposals & Invoicing] - SendProposalDialog/SendInvoiceDialog: If clients are not setup to use the system, default the email address from the default email address in the client entity
[Invoicing] - CreateInvoiceDialog: Fixed issue where shpping was not added into the final invoice.
March 10, 2025
[Quickbooks] - QuickbooksSdkService: Modified to ignore item catgories when using an item for an invoice.
March 11, 2025
[Quickbooks] - QuickbooksSdkService: Fixed null pointer when checking for the item category. I did not include it in the Select statement.
[Quickbooks] - QuickbooksSdkService: Added url parm to retrieve the invoice link when paying
March 12, 2025
[Quickbooks] - QuickbooksSdkService: UPdate the fields needs for an invoice link pior to getting the invoice from public invoice view.
[Quickbooks] - QuickbooksSdkService: Created a new method to retrieve the invoice payment link, and direct user to that page to make a payment.
[Notifications] - Modified company entity to allow fields to disable email notifications on comments and attachments -Modified Company View to allow to maintain these fields -Modified EmailService to prevent sending email notifications if these flags are set to disabled
[Budgets] - Fixed the add section button so it is down at the footer and not in the middle of the sections.
[Security] - Updated security config to allow Canva apps in CORS Policy
March 13, 2025
[API] - Added some logging to the clipper controller for authentication
[Canva] - Implemented Canva Controller
[Canva] - New method to upload the file to S3
[Canva] - decode url before trying to download the file
[Canva] - Added title as a parm from the canva request
[Canva] - Added logic to create a new board when a file is uploaded -added a new method to fetch folders for a project
[Canva] - Extract mime type from the url
March 14, 2025
[Composite Items] - Added the ability to assign Items to a parent item -Calculate the cost based on the assigned items -Calculate the Price automatically -Calculate the commission and Sales tax
[Composite Items] - Added informational message to the ItemDialog which indicates if it is a composite item
[Composite Items] - Added a flag in the item to indicate it is a Composite item, instead of just relying on the children assigned
[Item] - Removed button to request approval for an item since we are doing that through the proposal
[Composite Item] - Added column to grid for Unit. Change header title on dialog to "Add Component to " xxx
[Clients and Vendors] - Modified so that the code is no longer a visible field on entry. Instead the code will be geneated on the backend upon save as a unique UUID.
March 16, 2025
[Projects] - ProjectListView: Adjusted the font on the title to the standard
[Canva] - Updated the controller to attach the file to an existing board if it exists under that project, otherwise it will create a new board with that name.
[Canva] - Added logic to extract the contents of a zip file and if the files are PNG, upload as an entityimage.
[Canva] - Cleaning up the canva integration logic
March 17, 2025
[Access Token] - Generate an access token for a user which they can use to access the system from Canva
[Authentication] - Modified loadByUsername to handle access with a Token instead of username and password
[Authentication] - Added debugging to user details impl service to see what going on with login
Switched spring security to debug
[Authentication] UserDetailsServiceImpl: fixed issue when logging in with a token. it was using the token as the username instead of mapping back to the actual username of the AppUser entity.
[Authentication] Removed debug logging from app.properties for spring seurity
[Authentication] Rolled back UserDetailsServiceImpl to previous version
March 18, 2025
[API Authentication] -Removed a lot of code form SecurityConfig and just bypass security for API Endpoints since we will handle manually in the controller -Modified CanvaController to handle manual authentication using access token -Modified ClipperController to handle manual authentication using Basic auth with usernamd and password -Changed spring config to server.error.include-stacktrace=never so API error responses do not include the stack trace
[API Authentication] Re-enabled cors policy in SecurityConfig
March 20, 2025
[Folders] PFolderAttachmentListView: Changed to list files by attachment group/folder instead of by entity Id because when the folder is changed it does not update the entityId, so we need to filter by folder instead
[Weekly Notification] DataService: Changed if user is null to get all projects WeeklyStatusEmailService: Changed to run every friday morning at 9AM EST
[SCheduled Tasks] Changed Quickbooks process payments and Send task notifications to delay when app starts up so they arent constantly sending during dev.
[Quickbooks] Added a field to payment entity for quickbooks payment id. Created a method to process quickbooks payments and apply the payment to the invoice details. -added payments and payment method to the QuickbooksView
[Quickbooks] InvoiceView: Added more fields conditionally when it is a quickbooks invoice.
[Item] Item.java: Changed the calculateSalesTax to set 0 if taxable = false.
March 21, 2025
[Quickbooks] QuickbooksSdkService: When the invoice is created, use a combination of the emails associated to the client ProjectUser and the emails (comma separated) assigned in the Client entity.
[Invoicing] Modified Quickbooks invoice creation and send invoice dialog to use a standard method from DataService to combine the client and app user emails and remove any duplicates -DataService: New method to retrieve the combined email addresses as comma separated string -QuickbooksSdkService: Use this method when building the Quickbooks email -ClientDialog: Added helper text to email field which indicates multiple emails can be added separated by a comma -SendProposalDialog, SendBudgetDialog, SendChecklistDialog: same logic applied to retrieve the email address for the client
[Emails] Reply To: For comment and attachment notifications, ensure the reply to email gets set when initiated form a logged in user.
Last updated