Commit Graph

1011 Commits

Author SHA1 Message Date
Pujit Mehrotra
73daa881e1 feat: container start & stop order 2025-11-17 15:14:15 -05:00
Pujit Mehrotra
1258e7e353 refactor: optimistic column toggle 2025-11-17 15:14:15 -05:00
Pujit Mehrotra
4abbcfc194 fix: optimistic column toggle update 2025-11-17 15:14:15 -05:00
Pujit Mehrotra
687d0bd110 add a flag to opt out of version check in super.shouldApply in file mods 2025-11-17 15:14:15 -05:00
Pujit Mehrotra
9c96c02697 feat: save column visibility preferences across visits 2025-11-17 15:14:15 -05:00
Pujit Mehrotra
994b252e17 fix: move update to a badge + popover 2025-11-17 15:14:15 -05:00
Pujit Mehrotra
7120c197c5 fix: column visibility toggle 2025-11-17 15:14:15 -05:00
Pujit Mehrotra
b04ba4498e feat: implement manage settings action 2025-11-17 15:14:15 -05:00
Pujit Mehrotra
b9c99ba74e feat: navigate to container update page 2025-11-17 15:14:15 -05:00
Pujit Mehrotra
15509ca342 flatten css scopes 2025-11-17 15:14:15 -05:00
Pujit Mehrotra
4b680e94ee Revert "fix: css"
This reverts commit 234c2e2c65.
2025-11-17 15:14:15 -05:00
Pujit Mehrotra
fd57e789db fix: css 2025-11-17 15:14:15 -05:00
Pujit Mehrotra
58c16f9cea fix: notifications type check 2025-11-17 15:14:14 -05:00
Pujit Mehrotra
7f57489996 fix: nuxt ui portal styling 2025-11-17 15:14:14 -05:00
Pujit Mehrotra
c2f1cd9489 tmp: critical notifications system 2025-11-17 15:14:14 -05:00
Pujit Mehrotra
31dd8dd5d4 feat: critical notifications 2025-11-17 15:14:14 -05:00
Pujit Mehrotra
0224ba578e feat: filtering & bulk actions in compact mode 2025-11-17 15:14:14 -05:00
Pujit Mehrotra
bacee666f1 fix: context menu 2025-11-17 15:14:14 -05:00
Pujit Mehrotra
946f51eb01 fix: search filtering 2025-11-17 15:14:14 -05:00
Pujit Mehrotra
d156aa13f1 chore: fix formatting 2025-11-17 15:14:14 -05:00
Pujit Mehrotra
abc7fc50cb fix: container state badge 2025-11-17 15:14:14 -05:00
Pujit Mehrotra
fbefaa115e feat: icon support 2025-11-17 15:12:39 -05:00
Pujit Mehrotra
ae213e9ebd fix: rm extra Root layer in table 2025-11-17 15:12:39 -05:00
Pujit Mehrotra
1d59e54f94 refactor!: rm intermediate tree resolution of organizers
BREAKING CHANGE: ResolvedOrganizerView -> root is replaced by rootId +
flatEntries.

`root` resolved a tree representation of an organizer, but this required
clients to defined and use their own tree operations, thus increasing
client complexity.

Instead, `flatEntries` is more suitable for client operations and only
requires an initial mapping step on the client for efficiency.
2025-11-17 15:12:39 -05:00
Pujit Mehrotra
fd802ea2d8 refactor: simplify organizer operations 2025-11-17 15:12:39 -05:00
Pujit Mehrotra
11ee93cae0 refactor: extract composables 2025-11-17 15:12:39 -05:00
Pujit Mehrotra
9e3d7e865d track active container in query param 2025-11-17 15:12:39 -05:00
Pujit Mehrotra
ca2579216f click overview row to open details 2025-11-17 15:12:39 -05:00
Pujit Mehrotra
855e4656ec add bottom padding to container to make it easier to drag items to bottom in sidebar 2025-11-17 15:12:39 -05:00
Pujit Mehrotra
45a21bb223 right click to reame & delete folders 2025-11-17 15:12:39 -05:00
Pujit Mehrotra
48ae1c1320 add drag and drop for re-ordering containers & folders 2025-11-17 15:12:39 -05:00
Pujit Mehrotra
6f7bddce4c use compacted table as sidebar tree 2025-11-17 15:12:39 -05:00
Pujit Mehrotra
a551859f0d docker container management prototype 2025-11-17 15:12:37 -05:00
Pujit Mehrotra
97373c14b1 implement column visibility customization 2025-11-17 15:12:22 -05:00
Pujit Mehrotra
693f4913f6 implement pause / resume 2025-11-17 15:12:22 -05:00
Pujit Mehrotra
10f07e9b19 implement 'start / stop' bulk & row actions 2025-11-17 15:12:22 -05:00
Pujit Mehrotra
0a99f9c202 implement 'move to folder' 2025-11-17 15:12:22 -05:00
Pujit Mehrotra
0681a4e34c fix context menu trigger area and dropdown styles 2025-11-17 15:12:22 -05:00
Pujit Mehrotra
23fdeea251 table > select & status badge 2025-11-17 15:12:20 -05:00
Eli Bosley
66625ded6a New Crowdin updates (#1786)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

## Release Notes

* **New Features**
* Expanded localization support with comprehensive validation error
messages across 22 languages including Arabic, Chinese, French, German,
Hindi, Japanese, Portuguese, Russian, Spanish, and others.
* Enhanced form validation messaging for API key management, OIDC
provider configuration, SSO setup, and related settings to provide
localized guidance for users fixing errors.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-11-17 11:04:10 -05:00
Eli Bosley
f8a6785e9c fix: re-add missing header gradient styles (#1787)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **Style**
* Enhanced header banner styling: centered, non-repeating cover images
with layered gradient overlays and adjusted user-profile banner
positioning for improved layout.
* **Bug Fixes**
* Banner display logic updated so "image" is treated like "yes" for
showing banner images.
* **Tests**
  * Added unit tests covering banner/theme display behavior.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-11-17 11:03:37 -05:00
Eli Bosley
854b403fbd feat: use persisted theme css to fix flashes on header (#1784)
## Summary
- install the pinia-plugin-persistedstate integration directly inside
the theme store and hydrate cached themes before applying CSS variables
- fall back to the active/global Pinia instance while ensuring persisted
state is only wired once per store instance
- update the theme store tests to reset the shared Pinia state between
runs and rely on the plugin-backed persistence

## Testing
- pnpm --filter web test __test__/store/theme.test.ts

------
[Codex
Task](https://chatgpt.com/codex/tasks/task_e_69156c5e8de48323841f7dbfdadec51d)

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **New Features**
* Theme preferences now persist across sessions and are restored on
return.
* **Behavior Change**
* Theme switching may now update the URL/address bar to reflect the
selected theme.
* **Chores**
* Added a persistence integration to enable storing/restoring theme
data.
* **Tests**
* Updated/added tests covering hydration from storage and persistence of
server-provided themes.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-11-13 16:24:30 -05:00
Eli Bosley
45cda4af80 chore: nunjucks template engine for test pages (#1783) 2025-11-13 11:35:43 -05:00
Eli Bosley
d56797c59f chore: add dev mode language selection (#1782)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **New Features**
* Added a language switcher widget to all test pages for convenient
locale selection.
* Displays supported language options in a dropdown menu with extensive
multi-language support.
  * Persists user's locale preference across page reloads.

* **Tests**
* Enhanced test utilities with improved multi-locale support and locale
switching capabilities.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-11-13 10:49:36 -05:00
Pujit Mehrotra
11d2de5d08 chore(web): reduce lint duration by 90% (#1766)
Replace the eslint prettier plugin (which profiling revealed to be the
bottleneck) with separate `prettier` invocations. This yielded a 73 second reduction (89%) in the environment described below.

Before:
```
pnpm --filter web lint:fix  81.79s user 1.85s system 110% cpu 1:15.81 total
```
After: 
```
pnpm --filter web lint:fix  8.83s user 0.93s system 170% cpu 5.737 total
```
System specs (Nov 5 2025):
```
OS: macOS Sequoia 15.6.1 (24G90) arm64
Host: MacBook Air (15-inch, M2, 2023)
Kernel: Darwin 24.6.0
Uptime: 44 days, 5 hours, 22 mins
Packages: 52 (nix-default), 195 (brew), 4 (brew-cask)
Shell: zsh 5.9
CPU: Apple M2 (8) @ 3.50 GHz
GPU: Apple M2 (10) @ 1.40 GHz [Integrated]
Memory: 19.51 GiB / 24.00 GiB (81%)
Swap: 4.83 GiB / 6.00 GiB (80%)
```

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **Chores**
* Separated code formatting and linting tools into independent workflows
for improved developer efficiency
* Updated development tool configuration to streamline the linting and
formatting process

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-11-06 09:22:45 -05:00
Eli Bosley
031c1ab5dc New Crowdin updates (#1760)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **Localization**
  * Added proper Arabic translation for server action status messages
  * Added proper French translation for server action status messages
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-11-01 07:34:39 -04:00
Pujit Mehrotra
34075e44c5 fix: flaky watch on boot drive's dynamix config (#1753)
On FAT32, `fs.stat()` updates accesstime, which means file reads are
also writes, which means we can't use `usePoll` without degrading users'
flash drives.

To keep file reads lazy without a larger refactor, I override
`getters.dynamix()` as the entrypoint to re-read the boot drive's
dynamix config.

Consecutive calls to `getters.dynamix()` are a common access pattern,
which means we have to memoize to avoid many redundant file reads, so I
used a TTL cache with a 250ms lifetime, hoping to scope config files to
each request.

`getters.dynamix()` is also used synchonously, so bit the bullet and
switched away from async reads for simplicity, considering that most
reads will be occurring from memory, even during cache misses.

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **New Features**
  * Added a TTL memoized loader utility with exported types.
  * Added a public function to load Dynamix configuration at startup.

* **Refactor**
* Startup now uses the deterministic, cached config loader; runtime
file-watch for Dynamix config removed.
* Simplified config state handling and load-status reporting for more
predictable startup behavior.

* **Tests**
* Added tests for TTL caching, eviction, keying, and conditional
caching.

* **Chores**
  * Bumped package versions and updated changelog.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-10-27 11:05:13 -04:00
Eli Bosley
8c4e9dd7ae New Crowdin updates (#1750)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* New Features
* Expanded and refined translations across the UI for Arabic, Bengali,
Catalan, Czech, Danish, German, Spanish, French, Hindi, Croatian,
Hungarian, Italian, Japanese, Korean, Latvian, Dutch, Norwegian, Polish,
Portuguese, Romanian, Russian, Swedish, Ukrainian, and Chinese.
* Updated labels, titles, and descriptions for API key management,
OIDC/SSO configuration, buttons, and restrictions to native-language
equivalents.
* Improves readability and consistency in localized interfaces; no
functional changes.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-10-21 13:15:11 -04:00
Eli Bosley
f212dce88b fix: use relative URLs in the web links and fix color in PM2 startup (#1752)
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

## Release Notes

* **Refactor**
* Consolidated URL resolution and handling logic for improved
consistency across the application
* Enhanced GraphQL endpoint configuration with better fallback
mechanisms for more reliable connections
* Optimized platform command execution through improved default
parameter handling

* **Chores**
  * Infrastructure configuration updates and maintenance

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-10-21 10:10:50 -04:00
Eli Bosley
e9e271ade5 fix(#1729): api key authorize component not mounted when on Unraid OS 2025-10-13 21:37:28 -04:00