feat(asset-metadata): migrate and redesign asset metadata app#776
feat(asset-metadata): migrate and redesign asset metadata app#776nicomiguelino wants to merge 21 commits intomasterfrom
Conversation
…a-old - Preserve existing Vue/TypeScript implementation as reference - Free up asset-metadata directory for redesigned app
PR Reviewer Guide 🔍(Review updated until commit efecffd)Here are some key observations to aid the review process:
|
PR Code Suggestions ✨Latest suggestions up to efecffd
Previous suggestionsSuggestions up to commit 479c0f8
|
- Add new asset-metadata Edge App using edge-app-template - Implement glassmorphic card layout for screen metadata display - Support landscape and portrait orientations via CSS Grid - Use @screenly/edge-apps utilities for theme, branding, and metadata - Copy screenly.yml and screenly_qc.yml from asset-metadata-old - Bump @screenly/edge-apps to 0.0.17 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Add `<app-header>` to index.html above the grid - Set `flex-direction: column` on `#app` so header stacks on top - Replace `height: 100%` with `flex: 1` on `.grid-container` Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Add background image with dark overlay via `body::before` - Replace opaque card background with glassmorphic gradient and blur - Set white text colors on card values, labels, and chips - Remove "Powered by Screenly" text from logo card - Set `app-header` text color to white Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
There was a problem hiding this comment.
Pull request overview
This PR migrates the Asset Metadata edge app to a vanilla HTML/CSS/TypeScript implementation with a responsive card-based layout, while preserving the legacy Vue version in a separate asset-metadata-old/ folder.
Changes:
- Replaced the Vue/Pinia UI with a static HTML shell + DOM-driven rendering for Screenly metadata.
- Added new responsive styling and Playwright-based screenshot generation.
- Archived the previous Vue implementation (including its tooling/config/tests) under
edge-apps/asset-metadata-old/.
Reviewed changes
Copilot reviewed 16 out of 48 changed files in this pull request and generated 6 comments.
Show a summary per file
| File | Description |
|---|---|
| edge-apps/asset-metadata/tsconfig.json | Aligns TS config with shared edge-apps defaults for the new app. |
| edge-apps/asset-metadata/static/images/bg.webp | Background asset for the redesigned UI. |
| edge-apps/asset-metadata/src/main.ts | New DOM-based bootstrap: branding/theme setup + metadata rendering. |
| edge-apps/asset-metadata/src/css/style.css | New responsive card/grid styling for the redesigned UI. |
| edge-apps/asset-metadata/screenshots/800x480.webp | Updated/added marketing screenshot for this resolution. |
| edge-apps/asset-metadata/screenshots/720x1280.webp | Updated/added marketing screenshot for this resolution. |
| edge-apps/asset-metadata/screenshots/480x800.webp | Updated/added marketing screenshot for this resolution. |
| edge-apps/asset-metadata/screenshots/4096x2160.webp | Updated/added marketing screenshot for this resolution. |
| edge-apps/asset-metadata/screenshots/3840x2160.webp | Updated/added marketing screenshot for this resolution. |
| edge-apps/asset-metadata/screenshots/2160x4096.webp | Updated/added marketing screenshot for this resolution. |
| edge-apps/asset-metadata/screenshots/2160x3840.webp | Updated/added marketing screenshot for this resolution. |
| edge-apps/asset-metadata/screenshots/1920x1080.webp | Updated/added marketing screenshot for this resolution. |
| edge-apps/asset-metadata/screenshots/1280x720.webp | Updated/added marketing screenshot for this resolution. |
| edge-apps/asset-metadata/screenshots/1080x1920.webp | Updated/added marketing screenshot for this resolution. |
| edge-apps/asset-metadata/README.md | Updates documentation to match the new build/dev/test flows. |
| edge-apps/asset-metadata/package.json | Switches scripts/deps to the edge-apps-scripts workflow and new app versioning. |
| edge-apps/asset-metadata/index.html | New static HTML layout (auto-scaler + metadata cards). |
| edge-apps/asset-metadata/e2e/screenshots.spec.ts | Adds Playwright screenshot generation coverage. |
| edge-apps/asset-metadata/bun.lock | Locks updated dependencies for the redesigned app. |
| edge-apps/asset-metadata/.ignore | Adds ignore rules for Screenly/app tooling (node_modules). |
| edge-apps/asset-metadata/.gitignore | Adds standard ignores plus generated screenshot PNGs. |
| edge-apps/asset-metadata-old/vitest.config.ts | Preserved legacy Vitest config for the Vue app. |
| edge-apps/asset-metadata-old/vite.config.ts | Preserved legacy Vite config for the Vue app. |
| edge-apps/asset-metadata-old/tsconfig.vitest.json | Preserved legacy TS config for Vitest. |
| edge-apps/asset-metadata-old/tsconfig.node.json | Preserved legacy TS config for Node/tooling. |
| edge-apps/asset-metadata-old/tsconfig.json | Preserved legacy TS project references. |
| edge-apps/asset-metadata-old/tsconfig.app.json | Preserved legacy Vue app TS settings. |
| edge-apps/asset-metadata-old/static/images/icon.svg | Preserved legacy app icon asset. |
| edge-apps/asset-metadata-old/static/images/asset-metadata-app-preview.jpg | Preserved legacy README preview asset. |
| edge-apps/asset-metadata-old/src/test-setup.ts | Preserved legacy test setup with screenly global mock. |
| edge-apps/asset-metadata-old/src/main.ts | Preserved legacy Vue bootstrap entrypoint. |
| edge-apps/asset-metadata-old/src/components/tests/App.spec.ts | Preserved legacy Vue unit test coverage. |
| edge-apps/asset-metadata-old/src/assets/main.scss | Preserved legacy SCSS styling for the Vue UI. |
| edge-apps/asset-metadata-old/src/assets/font/Aeonik-Regular.woff2 | Preserved legacy font asset. |
| edge-apps/asset-metadata-old/src/assets/font/Aeonik-Regular.woff | Preserved legacy font asset. |
| edge-apps/asset-metadata-old/src/App.vue | Preserved legacy Vue component implementation. |
| edge-apps/asset-metadata-old/screenly.yml | Preserved legacy manifest for the Vue app. |
| edge-apps/asset-metadata-old/screenly_qc.yml | Preserved legacy QC manifest for the Vue app. |
| edge-apps/asset-metadata-old/README.md | Preserved legacy README. |
| edge-apps/asset-metadata-old/public/favicon.ico | Preserved legacy favicon asset. |
| edge-apps/asset-metadata-old/playwright.config.ts | Preserved legacy Playwright config. |
| edge-apps/asset-metadata-old/package.json | Preserved legacy dependencies/scripts for Vue app. |
| edge-apps/asset-metadata-old/index.html | Preserved legacy HTML shell for Vue app. |
| edge-apps/asset-metadata-old/eslint.config.ts | Preserved legacy ESLint config for Vue. |
| edge-apps/asset-metadata-old/e2e/vue.spec.ts | Preserved legacy Playwright smoke test. |
| edge-apps/asset-metadata-old/e2e/tsconfig.json | Preserved legacy e2e TS config. |
| edge-apps/asset-metadata-old/bun.lock | Preserved legacy lockfile. |
| edge-apps/asset-metadata-old/.vscode/extensions.json | Preserved legacy editor recommendations. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Remove empty `src` attribute to avoid spurious document URL request - Add `hidden` attribute so no broken-image icon appears before JS loads - Unhide the image only when a valid `logoUrl` is available Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Add `display_errors` setting to `screenly.yml` and `screenly_qc.yml` - Update README configuration table with the new setting Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Replace unsafe `getElementById` cast with `querySelector<HTMLImageElement>` - Remove redundant null check since the element is always present in the DOM Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…e overrides - Remove `theme` setting from `screenly.yml`, `screenly_qc.yml`, and README - Remove unused `setProperty` calls for `--app-bg`, `--card-bg`, `--card-border`, `--text-primary`, `--text-secondary`, `--chip-bg`, and `--chip-color` - Replace with a single `--theme-color-primary` set from branding colors Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Scale up card icons, labels, and values for portrait displays - Increase card padding, gap, and border radius in portrait mode - Enlarge brand logo in portrait mode Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Replace `var(--theme-color-primary)` with fixed `rgba(255, 255, 255, 0.25)` on SVG icon fills - Remove unused `colors` from `setupBranding()` destructure - Add portrait styles for `.label-chip` (font size, padding, border radius) - Remove stale settings from e2e screenshots spec Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Replace grid layout with right-aligned flex column of cards - Remove app-header, logo card, and associated styles - Scale down card dimensions, typography, and spacing - Add 7 mock tags to screenshot spec for label chip preview - Update screenshots for all resolutions
- Delete asset-metadata-old directory - Migrate icon.svg to the new app
|
Persistent review updated to latest commit efecffd |
- Extract app logic into app.ts for testability - Add tests for metadata rendering and label chips - Add test for HTML escaping in label chips
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 27 out of 43 changed files in this pull request and generated 1 comment.
Comments suppressed due to low confidence (2)
edge-apps/asset-metadata/src/main.ts:12
index.htmluses the<auto-scaler>web component, but this entrypoint never imports@screenly/edge-apps/componentsto register the custom elements. Without registering,<auto-scaler>will behave like an unknown element and scaling won’t work. Import the components bundle (e.g.,import '@screenly/edge-apps/components') early in this file.
edge-apps/asset-metadata/src/main.ts:28- This reads
screenly.metadata.hardwaredirectly even though the rest of the file uses@screenly/edge-appsaccessors. For consistency and to avoid relying on the global shape, prefer the library helper (e.g.,getHardware()/getMetadata()) and stringify/format the result before rendering.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
- Update bg.webp to match the one used by simple-timer and welcome-app - Regenerate screenshots with the updated background Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
User description
Migrates the Asset Metadata Edge App away from Vue/TypeScript and redesigns it as a plain HTML/CSS/JavaScript app.
PR Type
Enhancement, Tests, Documentation
Description
Replace Vue app with vanilla TypeScript
Add glassmorphic responsive metadata dashboard
Adopt
@screenly/edge-appstooling and settingsAdd multi-resolution screenshot testing
Diagram Walkthrough
File Walkthrough
4 files
Add screenshot coverage across supported resolutionsRemove obsolete Vue end-to-end testsRemove Vue component unit test suiteRemove global Vitest Screenly setup13 files
Remove Vue-specific ESLint configurationDrop custom Playwright config in migrationRemove custom Vite and Vue pipelineRemove Vitest configuration after migrationIgnore installed dependencies directoryRemove Vue-focused editor recommendationsRemove dedicated E2E TypeScript configAdd `display_errors` and remove theme settingMirror manifest settings changes for QCRemove Vue application TypeScript configExtend shared Screenly TypeScript baselineRemove Node-specific TypeScript project configRemove Vitest TypeScript project config3 files
Render metadata directly into static DOMAdd responsive glassmorphic dashboard stylingReplace app shell with static metadata cards1 files
Remove legacy Vue grid stylesheet1 files
Delete Vue root component implementation1 files
Refresh docs for new workflow and screenshots1 files
Switch to shared scripts and dependencies11 files