* fix: change Content-Disposition to inline for proper document display in attachments
* feat: overhaul how dialog system works, add delete to image dialog and add button to open image dialog on edit page
* chore: remove unneeded console log
* fix: ensure cleanup of dialog callbacks on unmount in BarcodeModal, CreateModal, and ImageDialog components
* feat: improved duplicate
* feat: enhance item duplication process with transaction handling and error logging for attachments and fields
* feat: add error logging during transaction rollback in item duplication process for better debugging
* feat: don't try and rollback is the commit succeeded
* feat: add customizable duplication options for items, including prefix and field copying settings in API and UI
* fix: simplify duplication checks for custom fields, attachments, and maintenance entries in ItemsRepository duplication method
* refactor: import DuplicateSettings type from composables and sort import issues
* Fix label name length
The labels name were shortened to the max length of 20 characters and not taking advantage of extra space. And it was difficult to distinguish between labels with the same prefix.
* run task ui:fix
* fix label selector when creating an item
* feat: sort styles for line wrapping
---------
Co-authored-by: Tonya <tonya@tokia.dev>
- fix many missing translations
- properly reset QR scanner when reopening
- add error message on BarcodeModal when no item is found
- fix icon size in item CreateModal
- remove useless closeDialog
* fix(frontend/location): preserve parent in "Create and Add another" modal flow
* fix: normalize line endings
* fix: preserve parent location state when modal closed
* prevent current location and descendants from being selected as parent
* prevent an item from showing up in the parent items drop-down for itself
* pass location object to filter function to allow for more flexible filtering
* align exclude prop and fix type comparison, change item filter to array of ItemsObjects to allow for descendant filtering in future
* fix linting prop reference
* feat: Display number of items in Location/Label page
When viewing a Location or Label page, the number of items directly
associated with that Location or Label is now displayed in the section
header.
* style: adjust the style on the item count
---------
Co-authored-by: Tonya <tonya@tokia.dev>
* feat: custom coloured labels
* chore: lint
* feat: add ColorSelector component for improved color selection in labels and integrate it into CreateModal and Selector components
* style: lint
* fix: update ColorSelector and Selector components to use empty string instead of null for default color values for types
The usage of `parseFloat` was breaking the sorting of ID and date
columns in the table.
This is because `parseFloat("000-123")` returns `0` instead of `123` or
`NaN`, and `parseFloat("2025-01-02T03:04:05.678Z")` returns `2025`.
Replacing `parseFloat` with `Number` fixes the issue, as now the values
received for Asset ID and date columns will correctly return `NaN`, and
end up being sorted as strings.
* chore: added `rel="noopener noreferrer"` to external links for improved security on homepage
* fix: reused variable name
* feat: make the item table use a link instead of a click event
* fix: pagination now shows correct page if loading page that isnt 1
* fix: make save button sticky again on item edit page
* fix: adjust sticky header positioning based on whether legacy header is enabled
* fix: navigate to homepage on unauthorized request in useUserApi function
* fix: enhance link handling in DetailsSection
* fix: improve markdown rendering, don't add big breaks between lines, make the gap smaller and dont have a trailing newline
* fix: use secondary colour as switch secondary colour so its more visible against bg
* fix: call refresh methods on location and label stores during component mount for better data consistency
* fix: loading indicators
* fix: convert detail.text to string for correct URL handling in DetailsSection component
* fix: use replace instead of splice to remove newline at end of markdown
* fix: use css vars for header height
* add missing translations and translate page titles
* fix: actually use the declared localized variables
* lint and prettier fixes
* add missing translations for toasts and confirms
* use components for shift/enter keys, add pluralization for photos, and fix primary photo conditional
* remove prop defaults since we're computing these anyways
* feat: begin work on topbar refresh
* feat: implement search input functionality
* feat: add ScannerModal component based on scanner page
* feat: add toggle to enable legacy topbar, remove scanner page
* feat: update scanner menu item to use SidebarMenuButton for legacy header support
* chore: lint
* style: make margin and padding more consistent
* feat: fun hack
* fix: remove uneeded log and class=""