- Statuses can now be bulk-imported/updated via CSV (Name, Color columns;
matches and updates existing statuses by name). New
internal/statuses/csv.go, tested.
- Icon fields (folder create/rename, item type form) are now a searchable
dropdown of the 50 most common Bootstrap Icons instead of a free-text
box, via a small reusable .icon-picker widget in app.js/app.css.
- CSV asset import is now folder-scoped when triggered from the tree:
right-click a folder (or its background) > Import CSV... imports every
row directly into that folder, so the CSV needs no Folder column at
all, and the option no longer appears at the top level. The original
global, Folder-path-aware import (with auto-create-missing-folders)
moved to a new admin-only Settings > Import / Export page, alongside
the new Statuses import and format examples for both. assets.Import
gained ImportOptions.TargetFolderID to drive the folder-scoped mode.
- Site Name (Settings > General) now actually renders in the navbar
brand and <title>, via a per-App "siteName" template func bound in
loadTemplates. The brand is plain text now, not a link to /inventory.
- Main panel is now blank at the top level ("Select a folder or asset
from the tree") instead of showing a dashboard - browsing happens in
the tree, the panel only shows something once you click into it.
Removed the now-dead DashboardStats/Stats() machinery it depended on.
- Add/Edit Asset no longer takes over the main panel; it opens in
#assetModal instead; asset_form.html was trimmed down to just the form
(no more breadcrumb/panel wrapper) since the modal chrome provides the
title and footer buttons now. The dynamic item-type-fields and submit
listeners moved from #main-panel's delegation to the modal element's.
- Statuses split out of the General settings page into its own
/settings/statuses page and sub-nav entry, alongside General, Item
Types, and Users.
Settings was still a top-level navbar item; per feedback it belongs in
the profile dropdown instead, above Sign out. The navbar now only shows
Inventory for everyone.
The navbar previously listed Item Types, Users, and Settings as three
separate top-level links. They now live under a single "Settings" entry
in the navbar, backed by one unified section with a left sub-nav (General,
Item Types, Users) shared across all three areas so it reads as one
settings panel rather than three disconnected admin pages.
- New templates/partials/settings_nav.html shared sub-nav, included by
settings.html, itemtypes_list/form.html, and users_list/form.html.
- Routes moved under /settings/: /item-types* -> /settings/item-types*,
/users* -> /settings/users*. All redirects, form actions, and the
item-type custom-field JS base action updated to match.
The tree and main panels now behave like a native file manager: right
click (or the keyboard Menu key) on a folder, asset, breadcrumb crumb, or
empty tree/panel background brings up the relevant actions instead of a
row of always-visible buttons.
- New generic showContextMenu() in app.js with per-target-kind menu
builders (folder/asset/tree background/panel background), gated by
admin role the same way the old buttons were.
- Removed: the "..." tree-row action button, and the New Folder/Add
Asset/Rename/Delete/Edit/Move/Duplicate/Import/Export buttons from the
inventory toolbar and every panel. Expand All/Collapse All shrank to two
icon-only buttons next to the search box; everything else creation- or
mutation-related is right-click only.
- Replaced the per-asset embedded "Move" modal with one shared
#moveAssetModal populated via a new GET /app/folders/options endpoint,
since move can now be triggered from any asset row, not just its own
detail view.
- Breadcrumb crumbs (including the current folder) and folder/asset table
rows are now valid right-click targets too, not just tree rows.