Commit Graph

2495 Commits

Author SHA1 Message Date
Ajit Mehrotra acb542756c fix(notification): fix improper Notifications.page and plg file 2026-01-04 13:28:22 -05:00
Ajit Mehrotra de860cb71b fix: add file-modification for font-awesome.css
Added the @layer and @scope specificity because it was making some icons in CA appear really small :/
2026-01-03 19:13:10 -05:00
Ajit Mehrotra d8f3e92494 fix: remove unused import 2026-01-02 20:53:45 -05:00
Ajit Mehrotra eae2651bf5 test: update file modification tests 2026-01-02 19:08:15 -05:00
Ajit Mehrotra aa2c6ebde8 chore: remove legacy Toaster.vue and related components from monorepo 2026-01-02 18:43:03 -05:00
Ajit Mehrotra e1408634a5 feat(toast): finish migration to nuxtui toasts (finished migrating new changes to docker) 2026-01-02 18:21:00 -05:00
Ajit Mehrotra 736c24caad chore: prevent automatic formatting of .page files (interpretted as .php but formatting causes problems) 2026-01-02 18:12:51 -05:00
Ajit Mehrotra 41aa09f690 build(scripts): enhance local docker plugin development workflow
* Automated fresh builds: Added `predocker:build-and-run` to automatically run `pnpm install` and rebuild `api`, `web`, and [ui] artifacts from source before starting the container.
* Automation: Updated `docker:run` to automatically execute `pnpm build` inside the container before dropping into a shell.
* Optimization: Updated [dc.sh] to respect `SKIP_HOST_BUILD` to prevent redundant builds when running via npm scripts.
* Convenience: Added `docker:build-and-run` aliases to root, `api`, and `web` workspaces for easy access from anywhere in the monorepo.
* Test: Added `test:modifications:update` script to `api` for easily refreshing file modification fixtures and snapshots.
2026-01-02 17:48:26 -05:00
Ajit Mehrotra f23e5bc56e fix: clean up rebase 2026-01-02 17:47:06 -05:00
Ajit Mehrotra 4ee5506266 test: update snapshots and patch files for default-base.css file-modification 2026-01-02 15:22:47 -05:00
Ajit Mehrotra 86ec429079 fix(css): add @layer in default-base file modifier to ensure css specificity remains the same 2026-01-02 15:16:59 -05:00
Ajit Mehrotra bff05e0c5d fix(web): remove incorrect toaster mapping causing empty notification 2026-01-02 11:50:36 -05:00
Ajit Mehrotra 18f3227d9e fix: default-gray theme's header background color via a file-modifier. 2025-12-30 20:03:41 -05:00
Ajit Mehrotra 9504b4a8c5 fix(css): file-modifications for backwards compatability with 7.0 2025-12-30 18:39:49 -05:00
Ajit Mehrotra b0ff85b2af Revert "test(notifications): update patch files"
This reverts commit 00f015f1b4.
2025-12-30 18:07:40 -05:00
Ajit Mehrotra 1c4f33e4fb Revert "fix: update header background file modification"
This reverts commit 443335ed8e.
2025-12-30 18:07:20 -05:00
Ajit Mehrotra 00f015f1b4 test(notifications): update patch files 2025-12-30 17:37:07 -05:00
Ajit Mehrotra 443335ed8e fix: update header background file modification 2025-12-30 17:17:31 -05:00
Ajit Mehrotra ad2a5cc443 test(notifications): Update various api and web component tests 2025-12-30 16:01:26 -05:00
Ajit Mehrotra 9ed71e5df9 chore: rebase cleanup
cleaning up some incorrectly rebased files (don't remember if it was automatic or manual...either way)
2025-12-30 15:07:32 -05:00
Ajit Mehrotra 8ef00ce27f chore: lint 2025-12-29 13:32:39 -05:00
Ajit Mehrotra 716789fa00 fix: add generated files + patch + snapshot files 2025-12-29 13:19:55 -05:00
Ajit Mehrotra b456678fd8 fix: update file-modification location for default-base.css 2025-12-29 11:06:19 -05:00
Ajit Mehrotra 902307ae55 feat(notifications): add file-modification scripts for nuxtui notifications. Supports 7.0-7.2.3 2025-12-23 21:08:22 -05:00
Ajit Mehrotra 2f88228937 fix(theme): adjust logo overlap on azure/gray themes on unraid versions < 7.1 2025-12-23 21:08:05 -05:00
Ajit Mehrotra 5628bf9a0e fix(color): fix bell icon color in header to work on all themes
Azure theme causing problems because it's the only theme where the color of the icon can't be inverted (bruh)
2025-12-23 21:08:05 -05:00
Ajit Mehrotra 3c9c04d684 wip(css-modification): add DefaultBaseCssModification class for CSS scoping
- Introduced a new class to modify the default base CSS file by wrapping content after the 'body' selector in a CSS scope.
- Implemented methods to read the file, generate a patch, and apply the necessary modifications.
- Added error handling for cases where the 'body' block cannot be found.
2025-12-23 21:06:44 -05:00
Ajit Mehrotra a8578bf79b refactor(notifications): move ToastPosition type to a separate file and clean up imports
- Created a new file for ToastPosition type definitions to improve code organization.
- Removed the inline ToastPosition type definition from mount-engine.ts and updated the import accordingly.
- Added a comment in app.config.ts for clarity on toaster settings.
2025-12-23 21:06:44 -05:00
Ajit Mehrotra 88e76d7fa2 feat(notifications): update nuxtui to 4.2.1 and add new toast features
- Added optional properties `expand`, `duration`, and `max` to the Notify interface.
- Updated NotificationSettings class to include validation for new properties.
- Modified the NotificationsService to parse and return the new settings.
- Adjusted the toaster configuration in the app to utilize the new settings.
- Updated GraphQL query to fetch the new notification settings.
2025-12-23 21:06:39 -05:00
Ajit Mehrotra 1e5deccb70 Revert "Revert "fix(notifications): add support for bottom-center'd nuxtui toasts""
This reverts commit 2707f693e0.
2025-12-23 21:05:59 -05:00
Ajit Mehrotra 4c49bafe15 chore(dependencies): update @nuxt/ui to version 4.2.1 from 4.0.0 alpha 2025-12-23 21:05:59 -05:00
Ajit Mehrotra 17f0176857 fix(notifications): set 'top-right' as default toast location 2025-12-23 21:05:59 -05:00
Ajit Mehrotra 4abc79a7b5 fix(notifications): sync badges on api recovery
Updates the notification sidebar to properly refresh notification counts (badges) when the API connection is restored or when the user manually retries.

Changes:
- Emit `refetched` event from `NotificationsList` when the query successfully returns data.
- Trigger `recalculateOverview` and `refetch` in `Sidebar` when the list is refreshed or when the API status becomes 'online'.
- Fixes an issue where notification badges would remain at 0 after an API outage, even though the notification list had populated correctly.
2025-12-23 21:05:59 -05:00
Ajit Mehrotra e817d6a317 fix(notifications): add onResult handler to update online status based on notification data 2025-12-23 21:05:59 -05:00
Ajit Mehrotra c2d2fbea40 feat(notifications): introduce constants for notification icons and colors to streamline notification rendering across components 2025-12-23 21:05:59 -05:00
Ajit Mehrotra ad78a0251a feat(errors): add dbgApolloError function for enhanced GraphQL error logging and improve extractGraphQLErrorMessage to handle additional error structures 2025-12-23 21:05:59 -05:00
Ajit Mehrotra c18de73b29 refactor(notifications): center notification error button text 2025-12-23 21:05:59 -05:00
Ajit Mehrotra e61657c05b refactor(notification): use "size" for square css widths and height 2025-12-23 21:05:54 -05:00
Ajit Mehrotra 7969e44211 refactor(navigation): replace window.location with navigate helper for external URL handling across multiple components 2025-12-23 21:04:39 -05:00
Ajit Mehrotra fd1a04641a feat(notifications): integrate nuxtui toast composable for success messages in RCloneConfig component 2025-12-23 21:01:03 -05:00
Ajit Mehrotra d10e0540eb feat(notifications): replace docker toast usage with nuxtui toast composable in ConnectSettings, DockerContainersTable, and RCloneOverview components 2025-12-23 21:00:57 -05:00
Ajit Mehrotra 6458457a7f feat(components): add DockerContainerStatCell and USlideover components to type declarations 2025-12-23 20:59:09 -05:00
Ajit Mehrotra 53ee465e92 fix: resolve no-undef lint errors for auto-imported composables in Vue files
Problem:
ESLint was flagging auto-imported composables (like `useToast`) as undefined variables in `.vue` files. While TypeScript correctly identified these globals via `auto-imports.d.ts`, the default `no-undef` rule in our Vue ESLint config did not account for them, causing false positive linting errors.

Solution:
- Disable the `no-undef` rule specifically for `.vue` files in `eslint.config.mjs`.
- Rely on TypeScript (via `vue-tsc`) and `auto-imports.d.ts` to handle global variable validation, ensuring type safety without conflicting with the auto-import build process.
- Remove manual imports of `useToast` that were added as a workaround (p sure the path I used didn't even exist in node modules).
2025-12-23 20:58:49 -05:00
Ajit Mehrotra 4c42b4b810 fix(notifications): update notify script's filename sanitization to include periods. 2025-12-23 20:58:49 -05:00
Ajit Mehrotra 4a19d4d536 fix(notifications): enable user overrides for the header text color 2025-12-23 20:58:49 -05:00
Ajit Mehrotra ddd6b0b54f Revert "fix(notifications): add support for bottom-center'd nuxtui toasts"
This reverts commit b147762e8a.
2025-12-23 20:58:49 -05:00
Ajit Mehrotra 2122e6d8a2 feat(notifications): add notify script for backup and restore on plugin installation 2025-12-23 20:58:49 -05:00
Ajit Mehrotra e3bf57184b fix(notifications): resolve ID mismatches, counter bugs, and pagination drift
This commit addresses several critical stability issues in the notification system spanning the legacy PHP script, the Node.js API, and the Vue frontend.

**Backend / API:**
- **Refactor `notify` script (PHP):** Added `-u` flag to accept a custom filename/ID from the caller. Added filename length sanitization (255 chars) to prevent filesystem errors.
- **Fix ID Mismatch:** The Node API now generates a UUID and passes it to the `notify` script via `-u`. This guarantees that the API, Frontend, and Filesystem all reference the same ID, removing the need for "Risky" notification logic.
- **Fix Counter Bugs:**
    - `handleNotificationAdd` no longer ignores duplicate files in the archive.
    - `archiveNotification` now checks if a file exists in the archive before moving. If it exists, it simply deletes the unread copy without double-counting.
    - `archiveAll` now leverages the robust single-archive logic.

**Frontend (Web):**
- **Fix Infinite Scroll "Drift":**
    - Switched `List.vue` to use a **Debounced Refetch** (500ms) for subscription updates instead of manual cache manipulation. This handles rapid-fire events (mass adds) without corruption.
    - Increased `pageSize` to `50` to minimize race conditions where new items shift pagination offsets.
    - Added **Drift Detection**: If `fetchMore` returns a full page of duplicates (indicating the list has shifted), the component now automatically triggers a full refetch to self-heal.
2025-12-23 20:58:49 -05:00
Ajit Mehrotra 6a04a06a72 fix(notification): add min width to allow flex title to shrink and wrap text 2025-12-23 20:58:49 -05:00
Ajit Mehrotra 875aa0972a fix(notifications): fix color of notification button's active state 2025-12-23 20:58:49 -05:00