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