Move legacy header logo omission from API file modifier to plg install
step to avoid breaking rollback (ie upon `unraid-api stop`) due to web
component upgrade.
Tested on 7.1.4 & 7.2.0-beta.0.16
Testing & Reproduction procedure:
1. Install connect plugin
2. Run `unraid-api stop` on server
3. Refresh page. Before Unraid 7.2, Plugin versions prior to this will
display a duplicated logo that blocks the nav menu. Now, it will not.
Plugin uninstall behavior remains unchanged.
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
* **New Features**
* The plugin installation process now updates the header logo by
removing the old logo from the interface during installation.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
* **New Features**
* Uninstallation process now adapts based on Unraid version: for version
7.2 or higher, users receive a notification and are prompted to reboot
to complete plugin removal.
* **Bug Fixes**
* Improved handling of plugin removal to ensure compatibility with
different Unraid versions and prevent unintended reinstalls.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
* **New Features**
* Added an informational message during plugin installation to guide
users on when it is safe to refresh the page.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
- Isolate plugin concerns into `.plg` plugin & api file modifiers instead of the api's
slackware package.
## Summary by CodeRabbit
* **New Features**
* Installation process modularized into package installation,
post-install setup with verification, and service startup with cleanup.
* Added logging and error detection during installation, including
symlink verification.
* Created required log directory to support service dependencies.
* Integrated nginx service with reload capability triggered by
configuration changes.
* Added automatic patching of nginx configuration and hosts file to
improve security and iframe compatibility.
* Enhanced file modification system to handle side effects and trigger
nginx reloads as needed.
* **Refactor**
* Restructured installation scripts for clarity; setup scripts now
separate steps.
* Removed legacy installation logic and deprecated related scripts.
* Enabled hard link addition during package creation.
* Simplified installation scripts by removing conditional branching and
detailed logging.
* Streamlined API environment setup by removing redundant post-install
steps.
* Updated dependency injection to explicitly provide nginx service
token.
* Improved patch application error reporting with file path details.
* **Chores**
* Disabled legacy scripts to streamline installation.
* Removed `.gitignore` to track previously ignored files.
* Updated tests to include new dependencies and relaxed logger
assertions.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
---
- To see the specific tasks where the Asana app for GitHub is being
used, see below:
- https://app.asana.com/0/0/1210661184127051
implements unraid-api `plugins list`, `plugins install`, `plugins remove` commands via a new `DependencyService` that invokes npm.
## Summary by CodeRabbit
- **New Features**
- Enhanced plugin management with install, remove, and list commands
supporting bundled plugins and restart control.
- Added plugin persistence and configuration synchronization across API
settings and interfaces.
- Introduced dependency management service for streamlined npm
operations and vendor archive rebuilding.
- **Bug Fixes**
- Improved plugin listing accuracy with warnings for configured but
missing plugins.
- **Chores**
- Refactored CLI modules and services for unified plugin management and
dependency handling.
- Updated API configuration loading and persistence for better
separation of concerns.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
instead of vendoring & uploading separately.
## Summary by CodeRabbit
- **Chores**
- Updated build process to retain the `node_modules` directory, removing
compression and archiving steps.
- Improved plugin installation by cleaning up outdated dependency
archives before reinstalling, enhancing system stability.
- Removed vendor store file references and related bundling steps from
the plugin build and installation process.
- Enhanced dependency restoration during service start to log warnings
without aborting on failure.
- Simplified dependency management scripts by removing vendor store URL
handling and download functionality.
- Streamlined build workflows by removing artifact upload/download and
validation steps related to node modules archives.
- Updated Docker Compose configuration to remove unused volume mounts
for node modules archives.
- Added repository cleanup commands to remove top-level `node_modules`
directories and common build artifact folders for easier maintenance.
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
- **Chores**
- Improved installation process by automatically cleaning up old package
directories before installing or upgrading the package.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
- **New Features**
- Changelog modal now displays changelog documentation within an
embedded iframe if a URL is available, allowing navigation within the
iframe and providing a "Back to Changelog" button to return to the
original view.
- "View on Docs" button dynamically updates to reflect the current page
within the iframe.
- Added support for displaying a formatted changelog string and testing
modal behavior with or without this content.
- Introduced a new component to fetch, parse, and render changelogs from
URLs with enhanced markdown handling.
- Update OS store extended to manage changelog display and release
stability, consolidating changelog state and actions.
- **Bug Fixes**
- Close button in modal dialogs is now visible on all screen sizes.
- **Chores**
- Updated the default server state, which may affect registration device
counts and types.
- Added new localization string for changelog titles with version
placeholders.
- Removed deprecated changelog store and related tests, simplifying
state management.
- Refined backup and restoration scripts for unraid-components directory
to use move operations with improved logging.
- Improved modal visibility state handling by consolidating changelog
modal controls into the main update OS store.
- Added URL origin and pattern checks for changelog iframe navigation
security.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
---------
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
- **New Features**
- Added detailed versioning for plugin packages incorporating
architecture and build identifiers.
- Simplified and improved install/uninstall scripts with backup and
dynamic package detection.
- Introduced comprehensive setup, verification, patching, and cleanup
scripts for the Unraid API environment.
- Enhanced service control with explicit start, stop, restart, and
status commands.
- Added robust dependency management scripts for restoring and archiving
Node.js modules.
- Implemented vendor archive metadata storage and dynamic handling
during build and runtime.
- Added new CLI options and environment schemas for consistent build
configuration.
- Introduced new shutdown scripts to gracefully stop flash-backup and
unraid-api services.
- Added utility scripts for API version detection and vendor archive
configuration.
- Added a new package description file detailing Unraid API features and
homepage link.
- **Bug Fixes**
- Improved validation and error reporting for missing manifests,
dependencies, and configuration files.
- Enhanced fallback logic for locating and creating vendor archives.
- Fixed iframe compatibility in UI by updating HTML and Firefox
preference files.
- **Chores**
- Updated .gitignore with generated file patterns for Node.js binaries
and archives.
- Removed obsolete internal documentation and legacy cleanup scripts.
- Refined Docker Compose and CI workflows to pass precise API versioning
and manage build artifacts.
- Centralized common environment validation and CLI option definitions
across build tools.
- Cleaned up plugin manifest by removing Node.js and PNPM-related
entities and legacy logic.
- Improved logging and error handling in build and installation scripts.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
- **New Features**
- Added comprehensive activation code customization service with dynamic
theming, partner branding, and UI updates.
- Introduced new GraphQL types and public queries for activation code,
partner info, and theme data.
- Implemented new web UI stores and components for activation modal,
partner logos, and theme management.
- **Improvements**
- Removed legacy activation code scripts, PHP components, and plugin
references, streamlining activation logic.
- Enhanced configuration and environment support for activation and
theming features.
- Improved error handling, validation, and type safety in activation and
customization modules.
- **Bug Fixes**
- Fixed color code validation and path handling in customization
service.
- **Chores**
- Added pre-commit linting hooks and related configuration.
- Cleaned up test and development environment files.
- **Tests**
- Added extensive tests covering activation customization service
initialization, data handling, and file modifications.
- Removed obsolete tests related to legacy activation code store.
- **Refactor**
- Migrated activation and partner branding logic from legacy scripts and
PHP to TypeScript services and GraphQL resolvers.
- Reorganized store and component architecture for activation-related
features.
- **Style**
- Updated UI components for improved branding, theming, accessibility,
and layout consistency.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
---------
Co-authored-by: Zack Spear <hi@zackspear.com>
due to issues and redundancies in vendoring postinstall side-effects, such as compiled bindings for libvirt, we reverted to vendoring `node_modules`, installed via `npm` instead of a global pnpm store generated by `pnpm`.
This should resolve runtime issues with e.g. the libvirt bindings because `node_modules` will contain the correct "side-effects."
## Summary by CodeRabbit
- **New Features**
- Introduced a command to remove stale archive files during the cleanup
process.
- Added functionality to archive the `node_modules` directory.
- Enhanced dependency resolution with new overrides for specific
packages.
- **Chores**
- Updated dependency settings by replacing one key dependency with an
alternative and removing two unused ones, ensuring optimal deployment.
- Enhanced the installation process to operate strictly in offline mode.
- Updated artifact naming conventions for clarity and consistency in
workflows.
- Modified volume mappings in the Docker Compose configuration to
reflect new artifact names.
- Improved error handling in the GitHub Actions workflow by adding
checks for required files.
- Updated references in the build process to use a vendor store instead
of the PNPM store.
- Removed the management of PNPM store archives from the build process.
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
- **Chores**
- Updated the Node.js runtime configuration for consistent execution.
- **Refactor**
- Centralized the Node.js binary path into a configurable parameter for
improved maintainability.
- **New Features**
- Introduced a new entity declaration for `NODE_DIR` to streamline
Node.js binary management in the plugin.
- Updated the Node.js interpreter path in the application configuration.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
---
- To see the specific tasks where the Asana app for GitHub is being
used, see below:
- https://app.asana.com/0/0/1209701840918649
- enhances `pnpm sync-webgui-repo` to include Unraid UI build + sync
options
- changed the dev intended ThemeSwitcher to use local / session storage
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
- **New Features**
- The theme switcher now respects your saved preferences, ensuring a
more personalized interface.
- The component build and synchronization process has been enhanced with
new options for UI components and clearer feedback during operations.
- New computed properties added for better state management in account
and purchase functionalities.
- **Bug Fixes**
- Improved error handling and logging during the component build
process.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
- **New Features**
- Created a dynamic plugin system for the API to enable community
augmentation of GraphQL, CLI, and Cron functionalities capabilities.
- Included an example plugin under `packages/unraid-api-plugin-health`
that adds a new graphql query for API health checks.
- Added `rc.unraid-api` commands for backing up, restoring, and
installing production dependencies, streamlining maintenance and
deployment.
- Improved dependency vendoring by bundling a versioned pnpm store
(instead of `node_modules`). Versioning will allow users to add plugins
to a specific api release without requiring an internet connection on
subsequent reboots.
- **Chores**
- Upgraded build workflows and versioning processes to ensure more
reliable artifact handling and production packaging.
…ated tests
- Changed `configValid` value from "yes" to "ineligible" in `var.ini`.
- Updated tests in `emhttp.test.ts` and `var.test.ts` to reflect the new
state.
- Refactored `var.ts` to handle the new `configErrorState` logic based
on `configValid`.
- Adjusted `config.resolver.ts` to return the correct error state.
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
- **New Features**
- Enhanced configuration status reporting to indicate when settings are
ineligible, improving clarity on configuration validity.
- **Chores**
- Updated recorded download times to maintain accurate logging.
- Refined the installation process with streamlined dependency linkage
and improved script readability.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
---------
Co-authored-by: Zack Spear <hi@zackspear.com>
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
- **New Features**
- Updated the plugin installation endpoint to use a new port for
improved connectivity.
- Streamlined installation and removal processes for a more reliable
setup and clearer cleanup feedback.
- Introduced a new script to manage cleanup operations, enhancing system
maintenance during removals.
- **Chores**
- Expanded file monitoring to support additional file types, ensuring
timely updates.
- Optimized background operations that configure essential components
for enhanced overall performance.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
---------
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
- Added `UnraidCheckExec.php` to separate concerns between UnraidCheck
and ReplaceKey, allowing for JSON responses.
- Updated `unraidcheck` script to parse query strings for compatibility
with the new class.
- Modified `webgui.ts` to call `UnraidCheckExec.php` instead of
`UnraidCheck.php` for update checks.
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
- **New Features**
- Updated the plugin installation process to ensure critical files
remain protected during updates.
- Introduced a dedicated update check component that now returns results
in a JSON format.
- Enhanced the web interface’s update check functionality with
streamlined request parameters.
- **Refactor**
- Separated update checking responsibilities for improved logic clarity
and overall reliability.
- Updated the interface for the update check payload to enhance
parameter handling.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
This change enhances the plugin's capability to manage license keys
effectively.
- Introduced `ReplaceKey.php` from the webgui repo for handling
auto-extended key check & installation
- Updated dynamix.unraid.net.plg to include the new ReplaceKey.php in
restore and preserve files.
- Changed the `check()` method call in `Registration.page` to use the
`force` parameter per
https://app.asana.com/0/1204220153625175/1209573221367693/f
- Moved the `require_once` for `reboot-details.php` in Downgrade.page
and Update.page to ensure it's included after the `ReplaceKey` check.
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
- **New Features**
- Enhanced license key management now validates and updates credentials
more reliably.
- Essential configuration files are preserved throughout updates and
uninstalls to maintain system integrity.
- **Chores**
- Optimized the update and registration workflows for a smoother, more
stable user experience.
- Adjusted internal processing steps to prepare for upcoming
improvements in update checks.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
thank you to SteveHawk on the unraid.net forums for surfacing this:
https://forums.unraid.net/topic/188319-persist-node-package-download/
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
- **Bug Fixes**
- Improved the plugin’s file-cleanup process by correcting the reference
used to identify outdated Node.js archive files. This update ensures
that file management functions as intended, contributing to more
reliable plugin behavior.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Hoping this will resolve:
https://forums.unraid.net/topic/187498-unable-to-install-my-server-plugin/
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
- **New Features**
- Improved command-line execution behavior for enhanced compatibility
across different environments.
- Enhanced the version retrieval process by allowing the system to
locate configuration details from multiple potential sources.
- Introduced a build enhancement that conditionally injects a startup
script into bundled outputs, improving script portability and user
experience.
- Specified the Node.js interpreter path in the application
configuration for better execution control.
- Added a symbolic link for the Node.js binary to enhance accessibility.
- **Bug Fixes**
- Enhanced error handling for locating the `package.json` file,
providing feedback when no valid file is found.
- **Chores**
- Removed unnecessary shell script that modified the system's `PATH`
environment variable.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
- **New Features**
- Introduced containerized plugin deployment support with updated Docker
Compose configurations.
- Added continuous build watch modes for API, web, and UI components for
smoother development iterations.
- Added a new job for API testing in the CI/CD workflow.
- Added a new shell script to determine the local host's IP address for
Docker configurations.
- Introduced a new entry point and HTTP server setup in the plugin's
Docker environment.
- Added new scripts for building and watching plugin changes in
real-time.
- Added a new script for building the project in watch mode for the API
and UI components.
- **Improvements**
- Streamlined the plugin installation process and refined release
workflows for a more reliable user experience.
- Enhanced overall CI/CD pipelines to ensure efficient, production-ready
deployments.
- Updated artifact upload paths and job definitions for clarity and
efficiency.
- Implemented new utility functions for better URL management and
changelog generation.
- Modified the `.dockerignore` file to ignore all contents within the
`node_modules` directory.
- Added new constants and functions for managing plugin paths and
configurations.
- Updated the build process in the Dockerfile to focus on release
operations.
- **Tests**
- Expanded automated testing to validate environment setups and build
stability, ensuring higher reliability during updates.
- Introduced new test suites for validating plugin environment setups
and configurations.
- Added tests for validating environment variables and handling of
manifest files.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
---------
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Michael Datelle <mdatelle@icloud.com>
Co-authored-by: mdatelle <mike@datelle.net>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: Pujit Mehrotra <pujit@lime-technology.com>
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
- **New Features**
- Enhanced the plugin uninstallation process to ensure that system files
are properly restored during removal. This update uses a temporary flag
to trigger restoration only when needed and cleans up afterward,
ensuring a smooth and reliable uninstallation experience.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
…process
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
- **Refactor**
- Enhanced file integrity validation during installation for more
reliable performance.
- **Chores**
- Streamlined the setup process by adding a cleanup step to remove
outdated components post-installation.
- Improved error handling and validation logic for checksum
verification.
- Adjusted command sequence for better clarity and control flow.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
- **New Features**
- Introduced enhanced project management scripts for building, testing,
and deploying the monorepo.
- Added an automated testing pipeline for improved reliability of the
Libvirt functionality.
- Provided a new plugin installation script that ensures thorough
cleanup during removal.
- **Improvements**
- Updated container mappings and dependency configurations for more
stable and efficient operations.
- Refined web application settings and build commands for smoother
performance.
- Streamlined continuous integration workflows with optimized caching
and dependency management.
- Updated allowed origins in configuration for enhanced security.
- **Chores/Refactor**
- Removed outdated configuration files to simplify maintenance and
enhance consistency.
- Enhanced event listener management in the web application for better
error handling.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
---------
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
• New Features
- Enhanced the login experience with improved session management and
two-factor authentication.
- Introduced a comprehensive README for the Unraid Plugin Builder,
detailing development workflows and commands.
• Chores
- Streamlined build, packaging, and deployment processes with updated
dependency and environment configurations.
- Updated Docker configurations to support pnpm as the package manager.
- Added new environment variables for better configuration management.
- Introduced new scripts for improved build and packaging processes.
• Tests
- Removed outdated test cases and simplified test setups.
• Refactor
- Modernized internal code structure and asynchronous handling for
improved overall performance.
- Transitioned imports from lodash to lodash-es for better module
handling.
- Updated environment variable management and configuration settings.
- Enhanced the build script for improved deployment processes.
- Updated the notification handling structure to improve efficiency.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
- **New Features**
- Enhanced automated build and release processes with containerized
builds, improved caching, and refined artifact handling.
- Introduced new configuration options to strengthen versioning,
integrity checks, and pull request tracking.
- Added a new Dockerfile for building the Node.js application.
- Added new environment variables for API versioning and validation
control.
- Implemented comprehensive management of PM2 processes and state.
- Introduced a new GitHub Actions workflow for automating staging plugin
deployment upon pull request closure.
- Updated logic for handling plugin installation and error feedback.
- Added new asynchronous methods for managing PM2 processes.
- Updated logging configurations for better control over log outputs.
- Added Prettier configuration for consistent code formatting.
- Introduced a configuration to prevent the application from watching
for file changes.
- **Bug Fixes**
- Improved error handling and user feedback during the installation of
staging versions.
- **Documentation**
- Removed outdated introductory documentation to streamline project
information.
- **Chores**
- Updated deployment routines and validation steps to improve release
consistency and error handling.
- Simplified packaging and build scripts for smoother staging and
production workflows.
- Excluded sensitive files from the Docker build context.
- Updated the `.gitignore` file to prevent unnecessary files from being
tracked.
- Adjusted the test timeout configuration for improved test reliability.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
---------
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
* feat: begin fixing dark mode in the webcomponents
* feat: lots of progress on colors
* feat: begin nuking alpha beta gamma
* feat: set background color on webcomponents
* fix: more color work
* feat: eliminate all alpha beta gamma variable usage
* feat: move variable declarations to theme.ts
* feat: begin fixing dark mode in the webcomponents
* feat: lots of progress on colors
* feat: begin nuking alpha beta gamma
* feat: set background color on webcomponents
* fix: more color work
* feat: eliminate all alpha beta gamma variable usage
* feat: download nodejs and install on legacy OS versions
* feat: do not move upgradepkg
* feat: array iteration for restoring files
* feat: separate install process
* feat: extract node to usr/local/
* feat: move variable declarations to theme.ts
* feat: remove nghttp3 and only bundle nodejs
* feat: validate entries correctly
* fix: upgradepkg
* feat: copy only needed files for nodejs
* fix: install syntax error
* fix: strip components from tar line
* feat: error when nodejs download fails
* feat(php): add OEM data extraction functionality
* feat(web): WIP add OEM activation modal and integrate OEM data handling
* refactor: replace oem etamology with activation
* feat(web): enhance activation modal with header and main title options
* refactor(web): update activation modal title to handle partner name conditionally
* feat: make partnerName optional in activation code data
* refactor: remove activationCodeStore from UserProfile component
* feat: integrate activation code data into server store
* feat: enhance activation code store to include callback actions and improve modal visibility logic
* refactor: remove unused theme reference from ColorSwitcher component
* fix: update partnerName in activationCodeData for clarity
* refactor: adjust gap spacing in Modal component for improved layout
* feat: enhance Activation Modal component with dynamic title and description, and add documentation buttons
* feat: implement localization for Activation Modal component titles and button texts
* feat: add new translations for activation prompts and welcome messages in the WebComponentTranslations class
* feat: implement key sequence to close Activation Modal and persist visibility state
* feat: update activation logic to conditionally activate or redeem based on activation code presence
* feat(plg): plg install / remove partner banner
* feat(plg): on install update config to enable display settings banner and on remove banner setting if no custom banner used
* fix(plg): plg remove, display banner no if no custom image
* feat(plg): implement partner banner handling and system model identification from activation JSON
* feat(web): add loading and error states to notification sidebar
* refactor(web): add container for loading & error states
* feat(web): add count labels to notification tabs
* refactor(web): lift notifications overview query to Sidebar from Indicator
* fix(web): refetch notifications for sidebar when new notifications arrive
* feat(web): move notification indicator icons to top-right of bell icon
previously, icons were placed next to bell icon because the status indicators
were not accessible to color-blind users. this commit replaces circular
status indicators with the icons.
* feat(web): remove notification indicator pulse
the pulse was initially added to provide visual feedback when:
1. a new notification arrived
2. an alert notification was unread
because we began using the legacy notify script, we now get a toast
on new notifications. re:2, feedback on the pulse was mixed, so i'm
removing it.
* refactor(plg): improve conditional for activation & partner setup
* feat(plg): add case model icon handling based on activation JSON
* feat(plg): enhance partner setup process with detailed logging and system identification updates and setup flag
* feat(plg): add setup flag file creation and logging for activation changes
* feat(plg): update activation setup flag checks for banner, case model icon, and system identity
* fix(plg): add error handling for invalid activation JSON and improve conditional checks for setup flags
* fix(plg): improve partner banner and case model icon setup logic with enhanced checks and comments
* fix(plg): update case model icon configuration to prevent newline issues in parsing
* fix(plg): remove unnecessary echo debug statements and improve setup flag handling for partner details
* fix(plg): remove unnecessary registration page check from activation code modal logic
* fix(plg): add overlay opacity prop to modal components for customizable background transparency
* fix(plg): enhance modal component with vertical centering option and adjust max-width
* fix(plg): enhance configuration handling by dynamically updating multiple header parameters in the config file
* fix(plg): improve comments and enhance setup flag handling for custom icons in activation logic
* fix(translations): correct capitalization and punctuation in user prompts for consistency
* fix(store): enhance activation code data structure with additional properties and correct partner URL reference
* fix(modal): enhance activation modal with dynamic partner logo and improved title handling
* fix(store): update activation code data structure with additional properties and correct partner details
* fix(index): refactor badge and button color handling with typed constants for improved maintainability
* fix(dependencies): add vue-tsc for improved TypeScript support in Vue projects
* refactor(plugin): remove unnecessary comments and clean up code structure
* refactor(plugin): remove todo comment for custom header logo
* fix(Modal): add partnerUrl handling for logo link and improve code structure
* fix(serverState): update partnerLogoPath to use a placeholder image for development
* feat(plugin): add rsync activation script for testing activation modal & installs
* refactor(activationCode): remove debug log for modal visibility check
* feat(plugin): enhance activation process by adding logo and case model handling
* refactor(activationCode): rename partnerLogoPath to partnerLogo and update handling for logo file type
* refactor(activationCode): remove debug log for partnerLogo watcher
* chore(nuxt.config): add ignore rule for webGui images directory
* refactor(plugin): rename params array to DISPLAY_PARAMS and update handling for configuration updates
* fix(web): partner logo handling for themes
* fix(plg): activation oem, custom case icon cfg handling
* fix(plugin): replace sed with awk for config file updates in DISPLAY_PARAMS handling
* fix(web): add target and rel attributes to partner logo link for security
* feat(plugin): add theme parameter to DISPLAY_PARAMS and activation code interface
* fix(plugin): replace sed with parameter expansion and awk for config file updates
* fix(plugin): reboot logic for plg install to prevent settings overwrite
* feat(plugin): streamline activation and partner setup by abstracting scripts for better maintainability
* fix(plugin): update script source paths for activation and partner setup
* fix(plugin): update script source paths for activation and partner setup to use relative paths
* fix(plugin): update script source paths for activation and partner setup to use absolute paths
* fix(plugin): add debug mode support to activation scripts and update setup flag handling
* fix(plugin): enhance activation scripts with debug mode and conditional execution for safety
* refactor(plugin): reposition execution of activation_code setup / remove scripts
* fix(plugin): add checks for activation_code_setup script existence and improve deletion logging
* fix(plugin): add option to remove setup flag after script execution
* fix(plugin): streamline activation script execution by removing unnecessary checks
* fix(plugin): remove duplicate activation_code_setup script sourcing
* feat(modal): add overlay color prop and enhance class binding for modal background
* feat(activation): update modal overlay color and opacity
* feat(plg): add WebComponentsExtractor class for managing JS file retrieval
* feat(plugin): myservers1.phpintegrate WebComponentsExtractor for dynamic script tag generation
* feat(activation): enhance getData method to support JSON output and add getDataForHtmlAttr for HTML-safe JSON
* refactor(activation): simplify getData method by removing parameters
* feat(plugin): add welcome-modal.php for displaying server state and web components
* refactor(web): activation code store rename modal visibility variables for clarity
* feat(web): add WelcomeModal component for user onboarding and server setup
* feat(plugin): activation_code setup and remove script support welcome modal
* refactor(plugin): streamline activation code setup script by removing some comments
* fix(plugin): update activation code setup script to prepend items to auth request allow list array
* feat: enhance ActivationCodeExtractor with partner logo handling and metadata extraction
- Added constants for document root and web GUI images directory.
- Introduced properties for partner name, URL, logo path, and logo file type.
- Implemented methods to retrieve partner logo path, render logo string, partner name, and URL.
- Enhanced data extraction logic to include partner-related information from JSON data.
- Added debug method for outputting internal state for troubleshooting.
* refactor: update activation-data.php to include debug output for ActivationCodeExtractor
- Removed JSON response and replaced it with a debug output wrapped in <pre> tags.
- This change allows for easier troubleshooting by displaying internal state information directly on the page.
* feat: inject partner logo into DefaultPageLayout and update JS file paths
- Modified the activation code setup script to change the path of JavaScript files to be relative to the web GUI's webroot.
- Added functionality to inject a partner logo into the DefaultPageLayout by replacing the existing logo string.
- Implemented a conditional backup mechanism for the DefaultPageLayout file before making changes.
- Included debug output to confirm successful injection or report errors during the process.
* feat: add partner logo display functionality and style adjustments
- Introduced a new file for displaying the partner logo, which retrieves the logo and URL based on the activation code.
- Added CSS styles to adjust the display properties of the partner logo in the header, ensuring proper sizing and alignment.
- Enhanced the integration of the partner logo into the existing plugin structure.
* refactor: simplify partner logo injection debug output in activation code setup script
- Removed syntax check for the DefaultPageLayout file after injecting the partner logo.
- Streamlined debug output to confirm successful injection without additional checks, enhancing clarity and reducing complexity.
* style: adjust partner logo height in myservers1.php
* style: update partner logo width in PartnerLogoImg.vue
- Changed the CSS class for the partner logo image from a max height constraint to a fixed width of 72 units, ensuring better responsiveness and alignment in the layout.
* fix: update modal title attribute for conditional close behavior
- Modified the title attribute of the modal overlay to conditionally display the close instruction based on the showCloseX property. This change improves accessibility by ensuring the title is only set when the close button is visible.
* refactor: update partner logo handling in activation code scripts and extractor
- Changed the partner logo file name to 'partner-logo.svg' in ActivationCodeExtractor.
- Simplified logo path handling by removing unnecessary file type checks and directly using the SVG file.
- Updated CSS in myservers1.php to target only the SVG logo.
- Modified activation code setup and removal scripts to consistently reference the SVG logo, improving clarity and maintainability.
* feat: enhance activation code setup script to include server name handling
- Added logic to retrieve and set the server name from the activation JSON if the current system model or comment is not set, or if the current name is "Tower".
- Improved debug output to include the partner server name, enhancing visibility during the activation process.
- Sanitized the partner server name to remove quotes and backslashes for better handling.
* feat: validate activation JSON before proceeding with setup
- Added validation for the activation JSON file to ensure it is correctly formatted before executing the setup process.
- Enhanced debug output to indicate whether the JSON is valid or not, improving troubleshooting capabilities.
- The setup will now only proceed if the activation JSON is confirmed to be valid, preventing potential errors during execution.
* fix(plg): improve warning message for invalid activation JSON in setup script
* feat: enhance activation code handling with partner logo integration
- Added a new optional property 'partnerLogo' to the ActivationCodeExtractor class and updated related interfaces to support boolean values for logo display.
- Removed the PNG logo reference from the activation code setup script, streamlining the logo handling process.
- Updated the server state to utilize the new 'partnerLogo' property, ensuring consistent logo display logic across the application.
- Adjusted computed properties in the activation code store to reflect the changes in logo handling, improving clarity and maintainability.
* fix: correct activation JSON validation in setup script
- Updated the activation code setup script to use 'jq empty' for validating the activation JSON file, ensuring proper error handling and validation.
- This change improves the robustness of the setup process by accurately checking the JSON format before proceeding.
* fix: correct comment formatting in dynamix.unraid.net.plg
- Fixed a formatting issue in the comment regarding the use of myservers.cfg values to prevent conflicts during installation. This change improves code readability and clarity.
* chore: update rsync activation script comments for clarity
- Revised comments in the rsync-activation-dir.sh script to better describe its purpose and usage.
- Enhanced documentation with an example usage to improve user understanding of the script's functionality.
* refactor: clean up activation data and extractor files
- Removed outdated copyright comments from activation-data.php and activation-code-extractor.php for improved readability.
- Simplified the debug output in activation-data.php by using short PHP tags.
- Updated the comment in the ActivationCodeExtractor class to be more concise, enhancing clarity for future developers.
* fix: remove unnecessary CSS properties in myservers1.php
- Eliminated redundant display and margin properties from the CSS in myservers1.php to streamline the styling and improve code clarity.
* refactor: streamline WebComponentsExtractor class and update method names
- Removed outdated copyright comments from web-components-extractor.php for improved readability.
- Renamed method getJsFileUrl() to getJSFileRelativePath() to enhance clarity and consistency in naming conventions.
- Adjusted indentation for better code formatting and readability.
* refactor: simplify partner logo handling in activation code script
- Removed unnecessary variable initialization and included only essential requires for improved clarity.
- Streamlined the code in partner-logo.php to focus on the core functionality of displaying the partner logo.
- Enhanced maintainability by reducing complexity in the script.
* refactor: clean up activation and server state files
- Removed outdated copyright comments and unnecessary variable initializations from activation-data.php and server-state.php for improved readability.
- Streamlined the code by eliminating redundant require statements, focusing on essential functionality.
- Enhanced maintainability and clarity by simplifying the structure of both files.
* feat: add password creation prompts to translations
- Introduced new translation strings for password creation in both PHP and JSON files.
- Enhanced user guidance by providing detailed messages about the importance of the password for system access and management.
- Improved overall user experience by ensuring clarity in the password setup process.
* refactor: update activation code setup script comments
* refactor: enhance activation code removal script functionality
- Updated the activation code removal script to delete additional related files, including PHP and setup scripts, for a more thorough cleanup.
- Improved comments for clarity on script usage and options, particularly regarding the self-delete functionality.
- Streamlined the deletion process by using an array to manage files to be removed, enhancing maintainability and readability.
* fix: update WelcomeModal to disable close button
* refactor: reorganize activation code setup and improve script clarity
- Moved the activation and partner setup section to follow the web component timestamp check to ensure correct targeting during setup.
- Updated comments for better clarity regarding the activation code setup process.
- Retained the warning message about not closing the window yet for user guidance.
* refactor: enhance activation code setup script with improved comments and logic
- Updated comments to clarify the purpose of server name, model, and description checks.
- Modified conditional logic to include additional checks for server identification.
- Added a TODO note regarding the necessity of updating the ident.cfg file, ensuring future review for potential optimizations.
* refactor: update activation code scripts to use .done flag
* refactor: introduce constant for activation modal storage key
- Added a new constant for the activation code modal hidden storage key to improve code maintainability and clarity.
- Updated the activation code store to utilize the new constant, replacing hardcoded string references.
* feat: enhance user onboarding and modal components
- Added new translation strings for activating Unraid licenses and creating Unraid.net accounts to improve user onboarding experience.
- Updated the WelcomeModal and Activation Modal components to reflect new messaging and improved styling options, including the ability to disable shadows.
- Implemented a workaround in the WelcomeModal to address font-size inconsistencies between login and authenticated pages.
- Refactored the index page to correctly pass server data to the WelcomeModal component.
* chore: comment out WelcomeModalCe component for testing
* feat: add disableOverlayClose prop to Modal and WelcomeModal components
- Introduced a new prop `disableOverlayClose` to the Modal component, allowing users to prevent closing the modal by clicking on the overlay.
- Updated the WelcomeModal component to utilize the new `disableOverlayClose` prop, enhancing modal behavior customization.
* refactor: update activation code removal script to delete by default
- Changed the activation code removal script to use a dry-run flag instead of a self-delete flag, enhancing safety during execution.
- Updated the plugin file to reflect the removal of the --delete option, ensuring consistency with the new script behavior.
---------
Co-authored-by: Eli Bosley <ekbosley@gmail.com>
Co-authored-by: Pujit Mehrotra <pujit@lime-technology.com>
* feat(web): rm old notification bell upon plugin installation
* refactor: use grep flag to unescape regex operator
* fix: preserve DefaultPageLayout.php