diff --git a/.github/workflows/build-package.yml b/.github/workflows/build-package.yml index ec25226cf..478454876 100644 --- a/.github/workflows/build-package.yml +++ b/.github/workflows/build-package.yml @@ -17,12 +17,12 @@ jobs: steps: - name: Checkout 🛎 - uses: actions/checkout@v4 + uses: actions/checkout@v6 with: ref: ${{ inputs.ref || github.sha }} - name: Setup node env 🏗 - uses: actions/setup-node@v4.0.0 + uses: actions/setup-node@v6 with: node-version: 22 check-latest: true @@ -32,7 +32,7 @@ jobs: run: echo "dir=$(yarn cache dir)" >> $GITHUB_OUTPUT - name: Cache node_modules 📦 - uses: actions/cache@v4 + uses: actions/cache@v5 id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`) with: path: ${{ steps.yarn-cache-dir-path.outputs.dir }} @@ -49,7 +49,7 @@ jobs: working-directory: "frontend" - name: Archive built frontend - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v6 with: name: frontend-dist path: frontend/dist @@ -68,12 +68,12 @@ jobs: repo-token: ${{ secrets.GITHUB_TOKEN }} - name: Check out repository - uses: actions/checkout@v4 + uses: actions/checkout@v6 with: ref: ${{ inputs.ref || github.sha }} - name: Set up python - uses: actions/setup-python@v5 + uses: actions/setup-python@v6 with: python-version: "3.12" @@ -81,7 +81,7 @@ jobs: run: pip install uv - name: Retrieve built frontend - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v6 with: name: frontend-dist path: mealie/frontend @@ -97,7 +97,7 @@ jobs: task py:package - name: Archive built package - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v6 with: name: backend-dist path: dist diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index 410512fea..54cb8b24f 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -44,11 +44,11 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v4 + uses: actions/checkout@v6 # Initializes the CodeQL tools for scanning. - name: Initialize CodeQL - uses: github/codeql-action/init@v3 + uses: github/codeql-action/init@v4 with: languages: ${{ matrix.language }} # If you wish to specify custom queries, you can do so here or in a config file. @@ -62,7 +62,7 @@ jobs: # Autobuild attempts to build any compiled languages (C/C++, C#, Go, Java, or Swift). # If this step fails, then you should remove it and run the build manually (see below) - name: Autobuild - uses: github/codeql-action/autobuild@v3 + uses: github/codeql-action/autobuild@v4 # ℹ️ Command-line programs to run using the OS shell. # 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun @@ -75,6 +75,6 @@ jobs: # ./location_of_script_within_repo/buildscript.sh - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@v3 + uses: github/codeql-action/analyze@v4 with: category: "/language:${{matrix.language}}" diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 004a82cf8..2f855157e 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -21,7 +21,7 @@ jobs: build: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 - name: Install uv uses: astral-sh/setup-uv@v4 diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml index b314adbff..7271be5b3 100644 --- a/.github/workflows/e2e.yml +++ b/.github/workflows/e2e.yml @@ -10,21 +10,21 @@ jobs: run: working-directory: ./tests/e2e steps: - - uses: actions/checkout@v4 - - uses: actions/setup-node@v4 + - uses: actions/checkout@v6 + - uses: actions/setup-node@v6 with: node-version: 22 cache: 'yarn' cache-dependency-path: ./tests/e2e/yarn.lock - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 + uses: docker/setup-buildx-action@v4 - name: Retrieve Python package - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v6 with: name: backend-dist path: dist - name: Build Image - uses: docker/build-push-action@v5 + uses: docker/build-push-action@v7 with: file: ./docker/Dockerfile context: . diff --git a/.github/workflows/locale-sync.yml b/.github/workflows/locale-sync.yml index 09e1054b6..1fbd45652 100644 --- a/.github/workflows/locale-sync.yml +++ b/.github/workflows/locale-sync.yml @@ -23,12 +23,12 @@ jobs: private-key: ${{ secrets.COMMIT_BOT_APP_PRIVATE_KEY }} - name: Checkout repository - uses: actions/checkout@v4 + uses: actions/checkout@v6 with: token: ${{ steps.app-token.outputs.token }} - name: Set up Python - uses: actions/setup-python@v5 + uses: actions/setup-python@v6 with: python-version: "3.12" @@ -37,7 +37,7 @@ jobs: - name: Load cached venv id: cached-python-dependencies - uses: actions/cache@v4 + uses: actions/cache@v5 with: path: .venv key: venv-${{ runner.os }}-${{ hashFiles('**/uv.lock') }} diff --git a/.github/workflows/partial-trivy-container-scanning.yml b/.github/workflows/partial-trivy-container-scanning.yml index 630404b7b..197b1755a 100644 --- a/.github/workflows/partial-trivy-container-scanning.yml +++ b/.github/workflows/partial-trivy-container-scanning.yml @@ -11,7 +11,7 @@ jobs: fail-fast: true steps: - name: Checkout code - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: Build Dockerfile run: | @@ -28,6 +28,6 @@ jobs: TRIVY_DB_REPOSITORY: ghcr.io/aquasecurity/trivy-db,public.ecr.aws/aquasecurity/trivy-db - name: Upload Trivy scan results to GitHub Security tab - uses: github/codeql-action/upload-sarif@v3 + uses: github/codeql-action/upload-sarif@v4 with: sarif_file: "trivy-results.sarif" diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 006688228..2a57aebca 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -23,19 +23,19 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout repository - uses: actions/checkout@v4 + uses: actions/checkout@v6 with: ref: ${{ inputs.ref || github.sha }} - name: Log in to the Container registry (ghcr.io) - uses: docker/login-action@v3 + uses: docker/login-action@v4 with: registry: ghcr.io username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} - name: Log in to the Container registry (dockerhub) - uses: docker/login-action@v3 + uses: docker/login-action@v4 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} @@ -44,7 +44,7 @@ jobs: - name: Generate Docker metadata id: meta - uses: docker/metadata-action@v5 + uses: docker/metadata-action@v6 with: images: | hkotel/mealie @@ -52,9 +52,10 @@ jobs: # Overwrite the image.version label with our tag labels: | org.opencontainers.image.version=${{ inputs.tag }} + org.opencontainers.image.revision=${{ inputs.ref || github.sha }} - name: Retrieve Python package - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v6 with: name: backend-dist path: dist diff --git a/.github/workflows/pull-request-lint.yml b/.github/workflows/pull-request-lint.yml index 67d67e843..98239c422 100644 --- a/.github/workflows/pull-request-lint.yml +++ b/.github/workflows/pull-request-lint.yml @@ -13,7 +13,7 @@ jobs: runs-on: ubuntu-latest steps: # https://github.com/amannn/action-semantic-pull-request - - uses: amannn/action-semantic-pull-request@v5 + - uses: amannn/action-semantic-pull-request@v6 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: diff --git a/.github/workflows/release-drafter.yml b/.github/workflows/release-drafter.yml index 10fd8a728..935568664 100644 --- a/.github/workflows/release-drafter.yml +++ b/.github/workflows/release-drafter.yml @@ -5,26 +5,28 @@ on: push: branches: - mealie-next - # pull_request event is required for autolabeler - pull_request: - types: [opened, labeled, unlabeled, reopened, synchronize] # pull_request_target event is required for autolabeler to support PRs from forks pull_request_target: types: [opened, labeled, unlabeled, reopened, synchronize] workflow_dispatch: jobs: - update_release_draft: - permissions: - # write permission is required to create a github release - contents: write - # write permission is required for autolabeler - # otherwise, read permission is required at least - pull-requests: write - name: ✏️ Draft release + draft_release: + if: github.event_name == 'push' || github.event_name == 'workflow_dispatch' runs-on: ubuntu-latest + permissions: + contents: write steps: - - name: 🚀 Run Release Drafter - uses: release-drafter/release-drafter@v6.0.0 + - uses: release-drafter/release-drafter@v7 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + auto_label: + if: github.event_name == 'pull_request_target' + permissions: + pull-requests: write + runs-on: ubuntu-latest + steps: + - uses: release-drafter/release-drafter/autolabeler@v7 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 0363166ab..d7523e14e 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -21,7 +21,7 @@ jobs: private-key: ${{ secrets.COMMIT_BOT_APP_PRIVATE_KEY }} - name: Checkout 🛎 - uses: actions/checkout@v4 + uses: actions/checkout@v6 with: token: ${{ steps.app-token.outputs.token }} @@ -124,7 +124,7 @@ jobs: private-key: ${{ secrets.COMMIT_BOT_APP_PRIVATE_KEY }} - name: Checkout 🛎 - uses: actions/checkout@v4 + uses: actions/checkout@v6 with: token: ${{ steps.app-token.outputs.token }} fetch-depth: 0 diff --git a/.github/workflows/scheduled-checks.yml b/.github/workflows/scheduled-checks.yml index e9643e0e6..efa7f46de 100644 --- a/.github/workflows/scheduled-checks.yml +++ b/.github/workflows/scheduled-checks.yml @@ -13,10 +13,10 @@ jobs: pull-requests: write steps: - name: Checkout 🛎 - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: Setup Python - uses: actions/setup-python@v5 + uses: actions/setup-python@v6 with: python-version: "3.12" @@ -25,7 +25,7 @@ jobs: run: echo "PY=$(python -VV | sha256sum | cut -d' ' -f1)" >> $GITHUB_ENV - name: Cache - uses: actions/cache@v4 + uses: actions/cache@v5 with: path: | ~/.cache/pre-commit diff --git a/.github/workflows/test-backend.yml b/.github/workflows/test-backend.yml index 5856dbfdd..64d1c5248 100644 --- a/.github/workflows/test-backend.yml +++ b/.github/workflows/test-backend.yml @@ -46,12 +46,12 @@ jobs: repo-token: ${{ secrets.GITHUB_TOKEN }} - name: Check out repository - uses: actions/checkout@v4 + uses: actions/checkout@v6 with: ref: ${{ inputs.ref || github.sha }} - name: Set up python - uses: actions/setup-python@v5 + uses: actions/setup-python@v6 with: python-version: "3.12" @@ -60,7 +60,7 @@ jobs: - name: Load cached venv id: cached-python-dependencies - uses: actions/cache@v4 + uses: actions/cache@v5 with: path: .venv key: venv-${{ runner.os }}-${{ hashFiles('**/uv.lock') }} diff --git a/.github/workflows/test-frontend.yml b/.github/workflows/test-frontend.yml index 17dbde449..01b524432 100644 --- a/.github/workflows/test-frontend.yml +++ b/.github/workflows/test-frontend.yml @@ -13,12 +13,12 @@ jobs: steps: - name: Checkout 🛎 - uses: actions/checkout@v4 + uses: actions/checkout@v6 with: ref: ${{ inputs.ref || github.sha }} - name: Setup node env 🏗 - uses: actions/setup-node@v4.0.0 + uses: actions/setup-node@v6 with: node-version: 22 check-latest: true @@ -28,7 +28,7 @@ jobs: run: echo "dir=$(yarn cache dir)" >> $GITHUB_OUTPUT - name: Cache node_modules 📦 - uses: actions/cache@v4 + uses: actions/cache@v5 id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`) with: path: ${{ steps.yarn-cache-dir-path.outputs.dir }} diff --git a/.vscode/settings.json b/.vscode/settings.json index 0fbb96210..09e792532 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -17,6 +17,8 @@ "source.fixAll.eslint": "explicit", "source.organizeImports": "never" }, + "editor.insertSpaces": true, + "editor.tabSize": 2, "editor.formatOnSave": true, "eslint.useFlatConfig": true, "eslint.workingDirectories": [ @@ -30,6 +32,7 @@ "**/.svn": true, "**/CVS": true }, + "files.insertFinalNewline": true, "i18n-ally.enabledFrameworks": [ "vue" ], @@ -67,6 +70,7 @@ }, "[python]": { "editor.formatOnSave": true, - "editor.defaultFormatter": "charliermarsh.ruff" + "editor.defaultFormatter": "charliermarsh.ruff", + "editor.tabSize": 4 } } diff --git a/docker/Dockerfile b/docker/Dockerfile index f7d27b220..bc91cef53 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -1,7 +1,7 @@ ############################################### # Frontend Build ############################################### -FROM node:24@sha256:bb20cf73b3ad7212834ec48e2174cdcb5775f6550510a5336b842ae32741ce6c \ +FROM node:24@sha256:80fc934952c8f1b2b4d39907af7211f8a9fff1a4c2cf673fb49099292c251cec \ AS frontend-builder WORKDIR /frontend diff --git a/frontend/assets/main.css b/frontend/app/assets/main.css similarity index 100% rename from frontend/assets/main.css rename to frontend/app/assets/main.css diff --git a/frontend/assets/style-overrides.scss b/frontend/app/assets/style-overrides.scss similarity index 100% rename from frontend/assets/style-overrides.scss rename to frontend/app/assets/style-overrides.scss diff --git a/frontend/assets/variables.scss b/frontend/app/assets/variables.scss similarity index 100% rename from frontend/assets/variables.scss rename to frontend/app/assets/variables.scss diff --git a/frontend/components/Domain/Admin/Setup/EndPageContent.vue b/frontend/app/components/Domain/Admin/Setup/EndPageContent.vue similarity index 100% rename from frontend/components/Domain/Admin/Setup/EndPageContent.vue rename to frontend/app/components/Domain/Admin/Setup/EndPageContent.vue diff --git a/frontend/components/Domain/Announcement/AnnouncementDialog.vue b/frontend/app/components/Domain/Announcement/AnnouncementDialog.vue similarity index 100% rename from frontend/components/Domain/Announcement/AnnouncementDialog.vue rename to frontend/app/components/Domain/Announcement/AnnouncementDialog.vue diff --git a/frontend/components/Domain/Announcement/Announcements/2026-03-27_1_welcome.vue b/frontend/app/components/Domain/Announcement/Announcements/2026-03-27_1_welcome.vue similarity index 100% rename from frontend/components/Domain/Announcement/Announcements/2026-03-27_1_welcome.vue rename to frontend/app/components/Domain/Announcement/Announcements/2026-03-27_1_welcome.vue diff --git a/frontend/components/Domain/Cookbook/CookbookEditor.vue b/frontend/app/components/Domain/Cookbook/CookbookEditor.vue similarity index 100% rename from frontend/components/Domain/Cookbook/CookbookEditor.vue rename to frontend/app/components/Domain/Cookbook/CookbookEditor.vue diff --git a/frontend/components/Domain/Cookbook/CookbookPage.vue b/frontend/app/components/Domain/Cookbook/CookbookPage.vue similarity index 100% rename from frontend/components/Domain/Cookbook/CookbookPage.vue rename to frontend/app/components/Domain/Cookbook/CookbookPage.vue diff --git a/frontend/components/Domain/Group/GroupDataPage.vue b/frontend/app/components/Domain/Group/GroupDataPage.vue similarity index 100% rename from frontend/components/Domain/Group/GroupDataPage.vue rename to frontend/app/components/Domain/Group/GroupDataPage.vue diff --git a/frontend/components/Domain/Group/GroupExportData.vue b/frontend/app/components/Domain/Group/GroupExportData.vue similarity index 100% rename from frontend/components/Domain/Group/GroupExportData.vue rename to frontend/app/components/Domain/Group/GroupExportData.vue diff --git a/frontend/components/Domain/Group/GroupPreferencesEditor.vue b/frontend/app/components/Domain/Group/GroupPreferencesEditor.vue similarity index 100% rename from frontend/components/Domain/Group/GroupPreferencesEditor.vue rename to frontend/app/components/Domain/Group/GroupPreferencesEditor.vue diff --git a/frontend/components/Domain/Household/GroupMealPlanDayContextMenu.vue b/frontend/app/components/Domain/Household/GroupMealPlanDayContextMenu.vue similarity index 100% rename from frontend/components/Domain/Household/GroupMealPlanDayContextMenu.vue rename to frontend/app/components/Domain/Household/GroupMealPlanDayContextMenu.vue diff --git a/frontend/components/Domain/Household/GroupMealPlanRuleForm.vue b/frontend/app/components/Domain/Household/GroupMealPlanRuleForm.vue similarity index 100% rename from frontend/components/Domain/Household/GroupMealPlanRuleForm.vue rename to frontend/app/components/Domain/Household/GroupMealPlanRuleForm.vue diff --git a/frontend/components/Domain/Household/GroupWebhookEditor.vue b/frontend/app/components/Domain/Household/GroupWebhookEditor.vue similarity index 100% rename from frontend/components/Domain/Household/GroupWebhookEditor.vue rename to frontend/app/components/Domain/Household/GroupWebhookEditor.vue diff --git a/frontend/components/Domain/Household/HouseholdPreferencesEditor.vue b/frontend/app/components/Domain/Household/HouseholdPreferencesEditor.vue similarity index 100% rename from frontend/components/Domain/Household/HouseholdPreferencesEditor.vue rename to frontend/app/components/Domain/Household/HouseholdPreferencesEditor.vue diff --git a/frontend/components/Domain/QueryFilterBuilder.vue b/frontend/app/components/Domain/QueryFilterBuilder.vue similarity index 100% rename from frontend/components/Domain/QueryFilterBuilder.vue rename to frontend/app/components/Domain/QueryFilterBuilder.vue diff --git a/frontend/components/Domain/Recipe/RecipeActionMenu.vue b/frontend/app/components/Domain/Recipe/RecipeActionMenu.vue similarity index 100% rename from frontend/components/Domain/Recipe/RecipeActionMenu.vue rename to frontend/app/components/Domain/Recipe/RecipeActionMenu.vue diff --git a/frontend/components/Domain/Recipe/RecipeAssets.vue b/frontend/app/components/Domain/Recipe/RecipeAssets.vue similarity index 100% rename from frontend/components/Domain/Recipe/RecipeAssets.vue rename to frontend/app/components/Domain/Recipe/RecipeAssets.vue diff --git a/frontend/components/Domain/Recipe/RecipeCard.vue b/frontend/app/components/Domain/Recipe/RecipeCard.vue similarity index 100% rename from frontend/components/Domain/Recipe/RecipeCard.vue rename to frontend/app/components/Domain/Recipe/RecipeCard.vue diff --git a/frontend/components/Domain/Recipe/RecipeCardImage.vue b/frontend/app/components/Domain/Recipe/RecipeCardImage.vue similarity index 100% rename from frontend/components/Domain/Recipe/RecipeCardImage.vue rename to frontend/app/components/Domain/Recipe/RecipeCardImage.vue diff --git a/frontend/components/Domain/Recipe/RecipeCardMobile.vue b/frontend/app/components/Domain/Recipe/RecipeCardMobile.vue similarity index 100% rename from frontend/components/Domain/Recipe/RecipeCardMobile.vue rename to frontend/app/components/Domain/Recipe/RecipeCardMobile.vue diff --git a/frontend/components/Domain/Recipe/RecipeCardRating.vue b/frontend/app/components/Domain/Recipe/RecipeCardRating.vue similarity index 100% rename from frontend/components/Domain/Recipe/RecipeCardRating.vue rename to frontend/app/components/Domain/Recipe/RecipeCardRating.vue diff --git a/frontend/components/Domain/Recipe/RecipeCardSection.vue b/frontend/app/components/Domain/Recipe/RecipeCardSection.vue similarity index 93% rename from frontend/components/Domain/Recipe/RecipeCardSection.vue rename to frontend/app/components/Domain/Recipe/RecipeCardSection.vue index fd9382194..5600e5853 100644 --- a/frontend/components/Domain/Recipe/RecipeCardSection.vue +++ b/frontend/app/components/Domain/Recipe/RecipeCardSection.vue @@ -160,13 +160,14 @@ - - - + + + + @@ -243,6 +244,7 @@ const ready = ref(false); const loading = ref(false); const { fetchMore, getRandom } = useLazyRecipes(isOwnGroup.value ? null : groupSlug.value); +const { savePosition, getSavedPage, restorePosition } = useScrollPosition(); const router = useRouter(); const queryFilter = computed(() => { @@ -283,8 +285,29 @@ async function fetchRecipes(pageCount = 1) { } onMounted(async () => { - await initRecipes(); - ready.value = true; + loading.value = true; + const savedPage = getSavedPage(route.path); + + if (savedPage && savedPage > 2) { + page.value = 1; + hasMore.value = true; + const newRecipes = await fetchRecipes(savedPage); + if (newRecipes.length < perPage * savedPage) { + hasMore.value = false; + } + page.value = savedPage; + emit(REPLACE_RECIPES_EVENT, newRecipes); + ready.value = true; + restorePosition(route.path); + } + else { + await initRecipes(); + ready.value = true; + if (savedPage) { + restorePosition(route.path); + } + } + loading.value = false; }); let lastQuery: string | undefined = JSON.stringify(props.query); @@ -337,6 +360,8 @@ const infiniteScroll = useThrottleFn(async () => { emit(APPEND_RECIPES_EVENT, newRecipes); } + savePosition(route.path, page.value); + loading.value = false; }, 500); diff --git a/frontend/components/Domain/Recipe/RecipeChips.vue b/frontend/app/components/Domain/Recipe/RecipeChips.vue similarity index 100% rename from frontend/components/Domain/Recipe/RecipeChips.vue rename to frontend/app/components/Domain/Recipe/RecipeChips.vue diff --git a/frontend/components/Domain/Recipe/RecipeContextMenu/RecipeContextMenu.vue b/frontend/app/components/Domain/Recipe/RecipeContextMenu/RecipeContextMenu.vue similarity index 100% rename from frontend/components/Domain/Recipe/RecipeContextMenu/RecipeContextMenu.vue rename to frontend/app/components/Domain/Recipe/RecipeContextMenu/RecipeContextMenu.vue diff --git a/frontend/components/Domain/Recipe/RecipeContextMenu/RecipeContextMenuContent.vue b/frontend/app/components/Domain/Recipe/RecipeContextMenu/RecipeContextMenuContent.vue similarity index 100% rename from frontend/components/Domain/Recipe/RecipeContextMenu/RecipeContextMenuContent.vue rename to frontend/app/components/Domain/Recipe/RecipeContextMenu/RecipeContextMenuContent.vue diff --git a/frontend/components/Domain/Recipe/RecipeDataAliasManagerDialog.vue b/frontend/app/components/Domain/Recipe/RecipeDataAliasManagerDialog.vue similarity index 100% rename from frontend/components/Domain/Recipe/RecipeDataAliasManagerDialog.vue rename to frontend/app/components/Domain/Recipe/RecipeDataAliasManagerDialog.vue diff --git a/frontend/components/Domain/Recipe/RecipeDataTable.vue b/frontend/app/components/Domain/Recipe/RecipeDataTable.vue similarity index 100% rename from frontend/components/Domain/Recipe/RecipeDataTable.vue rename to frontend/app/components/Domain/Recipe/RecipeDataTable.vue diff --git a/frontend/components/Domain/Recipe/RecipeDialogAddToShoppingList.vue b/frontend/app/components/Domain/Recipe/RecipeDialogAddToShoppingList.vue similarity index 100% rename from frontend/components/Domain/Recipe/RecipeDialogAddToShoppingList.vue rename to frontend/app/components/Domain/Recipe/RecipeDialogAddToShoppingList.vue diff --git a/frontend/components/Domain/Recipe/RecipeDialogBulkAdd.vue b/frontend/app/components/Domain/Recipe/RecipeDialogBulkAdd.vue similarity index 52% rename from frontend/components/Domain/Recipe/RecipeDialogBulkAdd.vue rename to frontend/app/components/Domain/Recipe/RecipeDialogBulkAdd.vue index dc6bfae76..64d6b00e6 100644 --- a/frontend/components/Domain/Recipe/RecipeDialogBulkAdd.vue +++ b/frontend/app/components/Domain/Recipe/RecipeDialogBulkAdd.vue @@ -1,91 +1,60 @@ diff --git a/frontend/components/Domain/Recipe/RecipeDialogPrintPreferences.vue b/frontend/app/components/Domain/Recipe/RecipeDialogPrintPreferences.vue similarity index 100% rename from frontend/components/Domain/Recipe/RecipeDialogPrintPreferences.vue rename to frontend/app/components/Domain/Recipe/RecipeDialogPrintPreferences.vue diff --git a/frontend/components/Domain/Recipe/RecipeDialogSearch.vue b/frontend/app/components/Domain/Recipe/RecipeDialogSearch.vue similarity index 100% rename from frontend/components/Domain/Recipe/RecipeDialogSearch.vue rename to frontend/app/components/Domain/Recipe/RecipeDialogSearch.vue diff --git a/frontend/components/Domain/Recipe/RecipeDialogShare.vue b/frontend/app/components/Domain/Recipe/RecipeDialogShare.vue similarity index 100% rename from frontend/components/Domain/Recipe/RecipeDialogShare.vue rename to frontend/app/components/Domain/Recipe/RecipeDialogShare.vue diff --git a/frontend/components/Domain/Recipe/RecipeExplorerPage/RecipeExplorerPage.vue b/frontend/app/components/Domain/Recipe/RecipeExplorerPage/RecipeExplorerPage.vue similarity index 100% rename from frontend/components/Domain/Recipe/RecipeExplorerPage/RecipeExplorerPage.vue rename to frontend/app/components/Domain/Recipe/RecipeExplorerPage/RecipeExplorerPage.vue diff --git a/frontend/components/Domain/Recipe/RecipeExplorerPage/RecipeExplorerPageParts/RecipeExplorerPageSearch.vue b/frontend/app/components/Domain/Recipe/RecipeExplorerPage/RecipeExplorerPageParts/RecipeExplorerPageSearch.vue similarity index 100% rename from frontend/components/Domain/Recipe/RecipeExplorerPage/RecipeExplorerPageParts/RecipeExplorerPageSearch.vue rename to frontend/app/components/Domain/Recipe/RecipeExplorerPage/RecipeExplorerPageParts/RecipeExplorerPageSearch.vue diff --git a/frontend/components/Domain/Recipe/RecipeExplorerPage/RecipeExplorerPageParts/RecipeExplorerPageSearchFilters.vue b/frontend/app/components/Domain/Recipe/RecipeExplorerPage/RecipeExplorerPageParts/RecipeExplorerPageSearchFilters.vue similarity index 100% rename from frontend/components/Domain/Recipe/RecipeExplorerPage/RecipeExplorerPageParts/RecipeExplorerPageSearchFilters.vue rename to frontend/app/components/Domain/Recipe/RecipeExplorerPage/RecipeExplorerPageParts/RecipeExplorerPageSearchFilters.vue diff --git a/frontend/components/Domain/Recipe/RecipeFavoriteBadge.vue b/frontend/app/components/Domain/Recipe/RecipeFavoriteBadge.vue similarity index 100% rename from frontend/components/Domain/Recipe/RecipeFavoriteBadge.vue rename to frontend/app/components/Domain/Recipe/RecipeFavoriteBadge.vue diff --git a/frontend/components/Domain/Recipe/RecipeImageUploadBtn.vue b/frontend/app/components/Domain/Recipe/RecipeImageUploadBtn.vue similarity index 100% rename from frontend/components/Domain/Recipe/RecipeImageUploadBtn.vue rename to frontend/app/components/Domain/Recipe/RecipeImageUploadBtn.vue diff --git a/frontend/components/Domain/Recipe/RecipeIngredientEditor.vue b/frontend/app/components/Domain/Recipe/RecipeIngredientEditor.vue similarity index 100% rename from frontend/components/Domain/Recipe/RecipeIngredientEditor.vue rename to frontend/app/components/Domain/Recipe/RecipeIngredientEditor.vue diff --git a/frontend/components/Domain/Recipe/RecipeIngredientHtml.vue b/frontend/app/components/Domain/Recipe/RecipeIngredientHtml.vue similarity index 100% rename from frontend/components/Domain/Recipe/RecipeIngredientHtml.vue rename to frontend/app/components/Domain/Recipe/RecipeIngredientHtml.vue diff --git a/frontend/components/Domain/Recipe/RecipeIngredientListItem.vue b/frontend/app/components/Domain/Recipe/RecipeIngredientListItem.vue similarity index 100% rename from frontend/components/Domain/Recipe/RecipeIngredientListItem.vue rename to frontend/app/components/Domain/Recipe/RecipeIngredientListItem.vue diff --git a/frontend/components/Domain/Recipe/RecipeIngredients.vue b/frontend/app/components/Domain/Recipe/RecipeIngredients.vue similarity index 100% rename from frontend/components/Domain/Recipe/RecipeIngredients.vue rename to frontend/app/components/Domain/Recipe/RecipeIngredients.vue diff --git a/frontend/components/Domain/Recipe/RecipeLastMade.vue b/frontend/app/components/Domain/Recipe/RecipeLastMade.vue similarity index 100% rename from frontend/components/Domain/Recipe/RecipeLastMade.vue rename to frontend/app/components/Domain/Recipe/RecipeLastMade.vue diff --git a/frontend/components/Domain/Recipe/RecipeList.vue b/frontend/app/components/Domain/Recipe/RecipeList.vue similarity index 100% rename from frontend/components/Domain/Recipe/RecipeList.vue rename to frontend/app/components/Domain/Recipe/RecipeList.vue diff --git a/frontend/components/Domain/Recipe/RecipeNotes.vue b/frontend/app/components/Domain/Recipe/RecipeNotes.vue similarity index 100% rename from frontend/components/Domain/Recipe/RecipeNotes.vue rename to frontend/app/components/Domain/Recipe/RecipeNotes.vue diff --git a/frontend/components/Domain/Recipe/RecipeNutrition.vue b/frontend/app/components/Domain/Recipe/RecipeNutrition.vue similarity index 100% rename from frontend/components/Domain/Recipe/RecipeNutrition.vue rename to frontend/app/components/Domain/Recipe/RecipeNutrition.vue diff --git a/frontend/components/Domain/Recipe/RecipeOrganizerDialog.vue b/frontend/app/components/Domain/Recipe/RecipeOrganizerDialog.vue similarity index 54% rename from frontend/components/Domain/Recipe/RecipeOrganizerDialog.vue rename to frontend/app/components/Domain/Recipe/RecipeOrganizerDialog.vue index 18b9ac672..61dca7a56 100644 --- a/frontend/components/Domain/Recipe/RecipeOrganizerDialog.vue +++ b/frontend/app/components/Domain/Recipe/RecipeOrganizerDialog.vue @@ -1,62 +1,30 @@ @@ -65,6 +33,8 @@ import { useUserApi } from "~/composables/api"; import { useCategoryStore, useTagStore, useToolStore } from "~/composables/store"; import { type RecipeOrganizer, Organizer } from "~/lib/api/types/non-generated"; +const { $globals } = useNuxtApp(); + const CREATED_ITEM_EVENT = "created-item"; interface Props { @@ -115,18 +85,21 @@ const properties = computed(() => { return { title: i18n.t("tag.create-a-tag"), label: i18n.t("tag.tag-name"), + icon: $globals.icons.tags, api: userApi.tags, }; case Organizer.Tool: return { title: i18n.t("tool.create-a-tool"), label: i18n.t("tool.tool-name"), + icon: $globals.icons.potSteam, api: userApi.tools, }; default: return { title: i18n.t("category.create-a-category"), label: i18n.t("category.category-name"), + icon: $globals.icons.categories, api: userApi.categories, }; } @@ -139,12 +112,9 @@ const rules = { async function select() { if (store) { // @ts-expect-error the same state is used for different organizer types, which have different requirements - await store.actions.createOne({ name: name.value, onHand: onHand.value }); + const newItem = await store.actions.createOne({ name: name.value, onHand: onHand.value }); + emit(CREATED_ITEM_EVENT, newItem); } - - const newItem = store.store.value.find(item => item.name === name.value); - - emit(CREATED_ITEM_EVENT, newItem); dialog.value = false; } diff --git a/frontend/components/Domain/Recipe/RecipeOrganizerPage.vue b/frontend/app/components/Domain/Recipe/RecipeOrganizerPage.vue similarity index 99% rename from frontend/components/Domain/Recipe/RecipeOrganizerPage.vue rename to frontend/app/components/Domain/Recipe/RecipeOrganizerPage.vue index 66fe5c41c..fdc49e013 100644 --- a/frontend/components/Domain/Recipe/RecipeOrganizerPage.vue +++ b/frontend/app/components/Domain/Recipe/RecipeOrganizerPage.vue @@ -26,6 +26,7 @@ v-if="updateTarget" v-model="dialogs.update" :title="$t('general.update')" + :icon="$globals.icons.edit" can-confirm @confirm="updateOne()" > diff --git a/frontend/components/Domain/Recipe/RecipeOrganizerSelector.vue b/frontend/app/components/Domain/Recipe/RecipeOrganizerSelector.vue similarity index 100% rename from frontend/components/Domain/Recipe/RecipeOrganizerSelector.vue rename to frontend/app/components/Domain/Recipe/RecipeOrganizerSelector.vue diff --git a/frontend/components/Domain/Recipe/RecipePage/RecipePage.vue b/frontend/app/components/Domain/Recipe/RecipePage/RecipePage.vue similarity index 100% rename from frontend/components/Domain/Recipe/RecipePage/RecipePage.vue rename to frontend/app/components/Domain/Recipe/RecipePage/RecipePage.vue diff --git a/frontend/components/Domain/Recipe/RecipePage/RecipePageParts/RecipePageComments.vue b/frontend/app/components/Domain/Recipe/RecipePage/RecipePageParts/RecipePageComments.vue similarity index 99% rename from frontend/components/Domain/Recipe/RecipePage/RecipePageParts/RecipePageComments.vue rename to frontend/app/components/Domain/Recipe/RecipePage/RecipePageParts/RecipePageComments.vue index 327e9e478..e2a9afabf 100644 --- a/frontend/components/Domain/Recipe/RecipePage/RecipePageParts/RecipePageComments.vue +++ b/frontend/app/components/Domain/Recipe/RecipePage/RecipePageParts/RecipePageComments.vue @@ -82,7 +82,7 @@ - diff --git a/frontend/components/Layout/LayoutParts/AppSidebar.vue b/frontend/app/components/Layout/LayoutParts/AppSidebar.vue similarity index 100% rename from frontend/components/Layout/LayoutParts/AppSidebar.vue rename to frontend/app/components/Layout/LayoutParts/AppSidebar.vue diff --git a/frontend/components/Layout/LayoutParts/TheSnackbar.vue b/frontend/app/components/Layout/LayoutParts/TheSnackbar.vue similarity index 100% rename from frontend/components/Layout/LayoutParts/TheSnackbar.vue rename to frontend/app/components/Layout/LayoutParts/TheSnackbar.vue diff --git a/frontend/components/README.md b/frontend/app/components/README.md similarity index 100% rename from frontend/components/README.md rename to frontend/app/components/README.md diff --git a/frontend/components/global/AdvancedOnly.vue b/frontend/app/components/global/AdvancedOnly.vue similarity index 100% rename from frontend/components/global/AdvancedOnly.vue rename to frontend/app/components/global/AdvancedOnly.vue diff --git a/frontend/components/global/AppButtonCopy.vue b/frontend/app/components/global/AppButtonCopy.vue similarity index 100% rename from frontend/components/global/AppButtonCopy.vue rename to frontend/app/components/global/AppButtonCopy.vue diff --git a/frontend/components/global/AppButtonUpload.vue b/frontend/app/components/global/AppButtonUpload.vue similarity index 100% rename from frontend/components/global/AppButtonUpload.vue rename to frontend/app/components/global/AppButtonUpload.vue diff --git a/frontend/components/global/AppLoader.vue b/frontend/app/components/global/AppLoader.vue similarity index 100% rename from frontend/components/global/AppLoader.vue rename to frontend/app/components/global/AppLoader.vue diff --git a/frontend/components/global/AppLogo.vue b/frontend/app/components/global/AppLogo.vue similarity index 100% rename from frontend/components/global/AppLogo.vue rename to frontend/app/components/global/AppLogo.vue diff --git a/frontend/components/global/AppToolbar.vue b/frontend/app/components/global/AppToolbar.vue similarity index 100% rename from frontend/components/global/AppToolbar.vue rename to frontend/app/components/global/AppToolbar.vue diff --git a/frontend/components/global/AutoForm.vue b/frontend/app/components/global/AutoForm.vue similarity index 100% rename from frontend/components/global/AutoForm.vue rename to frontend/app/components/global/AutoForm.vue diff --git a/frontend/components/global/BannerExperimental.vue b/frontend/app/components/global/BannerExperimental.vue similarity index 100% rename from frontend/components/global/BannerExperimental.vue rename to frontend/app/components/global/BannerExperimental.vue diff --git a/frontend/components/global/BannerWarning.vue b/frontend/app/components/global/BannerWarning.vue similarity index 100% rename from frontend/components/global/BannerWarning.vue rename to frontend/app/components/global/BannerWarning.vue diff --git a/frontend/components/global/BaseButton.vue b/frontend/app/components/global/BaseButton.vue similarity index 100% rename from frontend/components/global/BaseButton.vue rename to frontend/app/components/global/BaseButton.vue diff --git a/frontend/components/global/BaseButtonGroup.vue b/frontend/app/components/global/BaseButtonGroup.vue similarity index 100% rename from frontend/components/global/BaseButtonGroup.vue rename to frontend/app/components/global/BaseButtonGroup.vue diff --git a/frontend/components/global/BaseCardSectionTitle.vue b/frontend/app/components/global/BaseCardSectionTitle.vue similarity index 100% rename from frontend/components/global/BaseCardSectionTitle.vue rename to frontend/app/components/global/BaseCardSectionTitle.vue diff --git a/frontend/components/global/BaseDialog.vue b/frontend/app/components/global/BaseDialog.vue similarity index 95% rename from frontend/components/global/BaseDialog.vue rename to frontend/app/components/global/BaseDialog.vue index 038cbe0d6..12fa236ff 100644 --- a/frontend/components/global/BaseDialog.vue +++ b/frontend/app/components/global/BaseDialog.vue @@ -14,7 +14,13 @@ @click:outside="emit('cancel')" @keydown.esc="emit('cancel')" > - + + -
+ diff --git a/frontend/components/global/BaseDivider.vue b/frontend/app/components/global/BaseDivider.vue similarity index 100% rename from frontend/components/global/BaseDivider.vue rename to frontend/app/components/global/BaseDivider.vue diff --git a/frontend/components/global/BaseExpansionPanels.vue b/frontend/app/components/global/BaseExpansionPanels.vue similarity index 100% rename from frontend/components/global/BaseExpansionPanels.vue rename to frontend/app/components/global/BaseExpansionPanels.vue diff --git a/frontend/components/global/BaseOverflowButton.vue b/frontend/app/components/global/BaseOverflowButton.vue similarity index 100% rename from frontend/components/global/BaseOverflowButton.vue rename to frontend/app/components/global/BaseOverflowButton.vue diff --git a/frontend/components/global/BasePageTitle.vue b/frontend/app/components/global/BasePageTitle.vue similarity index 100% rename from frontend/components/global/BasePageTitle.vue rename to frontend/app/components/global/BasePageTitle.vue diff --git a/frontend/components/global/ButtonLink.vue b/frontend/app/components/global/ButtonLink.vue similarity index 100% rename from frontend/components/global/ButtonLink.vue rename to frontend/app/components/global/ButtonLink.vue diff --git a/frontend/components/global/ContextMenu.vue b/frontend/app/components/global/ContextMenu.vue similarity index 100% rename from frontend/components/global/ContextMenu.vue rename to frontend/app/components/global/ContextMenu.vue diff --git a/frontend/components/global/CrudTable.vue b/frontend/app/components/global/CrudTable.vue similarity index 99% rename from frontend/components/global/CrudTable.vue rename to frontend/app/components/global/CrudTable.vue index 5ab57a598..cfbe4bfe8 100644 --- a/frontend/components/global/CrudTable.vue +++ b/frontend/app/components/global/CrudTable.vue @@ -1,6 +1,6 @@ - diff --git a/frontend/layouts/default.vue b/frontend/app/layouts/default.vue similarity index 100% rename from frontend/layouts/default.vue rename to frontend/app/layouts/default.vue diff --git a/frontend/layouts/error.vue b/frontend/app/layouts/error.vue similarity index 100% rename from frontend/layouts/error.vue rename to frontend/app/layouts/error.vue diff --git a/frontend/lib/api/admin/admin-about.ts b/frontend/app/lib/api/admin/admin-about.ts similarity index 100% rename from frontend/lib/api/admin/admin-about.ts rename to frontend/app/lib/api/admin/admin-about.ts diff --git a/frontend/lib/api/admin/admin-analytics.ts b/frontend/app/lib/api/admin/admin-analytics.ts similarity index 100% rename from frontend/lib/api/admin/admin-analytics.ts rename to frontend/app/lib/api/admin/admin-analytics.ts diff --git a/frontend/lib/api/admin/admin-backups.ts b/frontend/app/lib/api/admin/admin-backups.ts similarity index 100% rename from frontend/lib/api/admin/admin-backups.ts rename to frontend/app/lib/api/admin/admin-backups.ts diff --git a/frontend/lib/api/admin/admin-debug.ts b/frontend/app/lib/api/admin/admin-debug.ts similarity index 100% rename from frontend/lib/api/admin/admin-debug.ts rename to frontend/app/lib/api/admin/admin-debug.ts diff --git a/frontend/lib/api/admin/admin-groups.ts b/frontend/app/lib/api/admin/admin-groups.ts similarity index 100% rename from frontend/lib/api/admin/admin-groups.ts rename to frontend/app/lib/api/admin/admin-groups.ts diff --git a/frontend/lib/api/admin/admin-households.ts b/frontend/app/lib/api/admin/admin-households.ts similarity index 100% rename from frontend/lib/api/admin/admin-households.ts rename to frontend/app/lib/api/admin/admin-households.ts diff --git a/frontend/lib/api/admin/admin-maintenance.ts b/frontend/app/lib/api/admin/admin-maintenance.ts similarity index 100% rename from frontend/lib/api/admin/admin-maintenance.ts rename to frontend/app/lib/api/admin/admin-maintenance.ts diff --git a/frontend/lib/api/admin/admin-users.ts b/frontend/app/lib/api/admin/admin-users.ts similarity index 100% rename from frontend/lib/api/admin/admin-users.ts rename to frontend/app/lib/api/admin/admin-users.ts diff --git a/frontend/lib/api/base/base-clients.ts b/frontend/app/lib/api/base/base-clients.ts similarity index 100% rename from frontend/lib/api/base/base-clients.ts rename to frontend/app/lib/api/base/base-clients.ts diff --git a/frontend/lib/api/base/index.ts b/frontend/app/lib/api/base/index.ts similarity index 100% rename from frontend/lib/api/base/index.ts rename to frontend/app/lib/api/base/index.ts diff --git a/frontend/lib/api/base/route.ts b/frontend/app/lib/api/base/route.ts similarity index 100% rename from frontend/lib/api/base/route.ts rename to frontend/app/lib/api/base/route.ts diff --git a/frontend/lib/api/base/routes.test.ts b/frontend/app/lib/api/base/routes.test.ts similarity index 100% rename from frontend/lib/api/base/routes.test.ts rename to frontend/app/lib/api/base/routes.test.ts diff --git a/frontend/lib/api/client-admin.ts b/frontend/app/lib/api/client-admin.ts similarity index 100% rename from frontend/lib/api/client-admin.ts rename to frontend/app/lib/api/client-admin.ts diff --git a/frontend/lib/api/client-public.ts b/frontend/app/lib/api/client-public.ts similarity index 100% rename from frontend/lib/api/client-public.ts rename to frontend/app/lib/api/client-public.ts diff --git a/frontend/lib/api/client-user.ts b/frontend/app/lib/api/client-user.ts similarity index 100% rename from frontend/lib/api/client-user.ts rename to frontend/app/lib/api/client-user.ts diff --git a/frontend/lib/api/config.ts b/frontend/app/lib/api/config.ts similarity index 100% rename from frontend/lib/api/config.ts rename to frontend/app/lib/api/config.ts diff --git a/frontend/lib/api/index.ts b/frontend/app/lib/api/index.ts similarity index 100% rename from frontend/lib/api/index.ts rename to frontend/app/lib/api/index.ts diff --git a/frontend/lib/api/public/explore.ts b/frontend/app/lib/api/public/explore.ts similarity index 100% rename from frontend/lib/api/public/explore.ts rename to frontend/app/lib/api/public/explore.ts diff --git a/frontend/lib/api/public/explore/cookbooks.ts b/frontend/app/lib/api/public/explore/cookbooks.ts similarity index 100% rename from frontend/lib/api/public/explore/cookbooks.ts rename to frontend/app/lib/api/public/explore/cookbooks.ts diff --git a/frontend/lib/api/public/explore/foods.ts b/frontend/app/lib/api/public/explore/foods.ts similarity index 100% rename from frontend/lib/api/public/explore/foods.ts rename to frontend/app/lib/api/public/explore/foods.ts diff --git a/frontend/lib/api/public/explore/households.ts b/frontend/app/lib/api/public/explore/households.ts similarity index 100% rename from frontend/lib/api/public/explore/households.ts rename to frontend/app/lib/api/public/explore/households.ts diff --git a/frontend/lib/api/public/explore/organizers.ts b/frontend/app/lib/api/public/explore/organizers.ts similarity index 100% rename from frontend/lib/api/public/explore/organizers.ts rename to frontend/app/lib/api/public/explore/organizers.ts diff --git a/frontend/lib/api/public/explore/recipes.ts b/frontend/app/lib/api/public/explore/recipes.ts similarity index 100% rename from frontend/lib/api/public/explore/recipes.ts rename to frontend/app/lib/api/public/explore/recipes.ts diff --git a/frontend/lib/api/public/shared.ts b/frontend/app/lib/api/public/shared.ts similarity index 100% rename from frontend/lib/api/public/shared.ts rename to frontend/app/lib/api/public/shared.ts diff --git a/frontend/lib/api/public/validators.ts b/frontend/app/lib/api/public/validators.ts similarity index 100% rename from frontend/lib/api/public/validators.ts rename to frontend/app/lib/api/public/validators.ts diff --git a/frontend/lib/api/types/activity.ts b/frontend/app/lib/api/types/activity.ts similarity index 100% rename from frontend/lib/api/types/activity.ts rename to frontend/app/lib/api/types/activity.ts diff --git a/frontend/lib/api/types/admin.ts b/frontend/app/lib/api/types/admin.ts similarity index 100% rename from frontend/lib/api/types/admin.ts rename to frontend/app/lib/api/types/admin.ts diff --git a/frontend/lib/api/types/analytics.ts b/frontend/app/lib/api/types/analytics.ts similarity index 100% rename from frontend/lib/api/types/analytics.ts rename to frontend/app/lib/api/types/analytics.ts diff --git a/frontend/lib/api/types/cookbook.ts b/frontend/app/lib/api/types/cookbook.ts similarity index 100% rename from frontend/lib/api/types/cookbook.ts rename to frontend/app/lib/api/types/cookbook.ts diff --git a/frontend/lib/api/types/events.ts b/frontend/app/lib/api/types/events.ts similarity index 100% rename from frontend/lib/api/types/events.ts rename to frontend/app/lib/api/types/events.ts diff --git a/frontend/lib/api/types/group.ts b/frontend/app/lib/api/types/group.ts similarity index 100% rename from frontend/lib/api/types/group.ts rename to frontend/app/lib/api/types/group.ts diff --git a/frontend/lib/api/types/household.ts b/frontend/app/lib/api/types/household.ts similarity index 100% rename from frontend/lib/api/types/household.ts rename to frontend/app/lib/api/types/household.ts diff --git a/frontend/lib/api/types/labels.ts b/frontend/app/lib/api/types/labels.ts similarity index 100% rename from frontend/lib/api/types/labels.ts rename to frontend/app/lib/api/types/labels.ts diff --git a/frontend/lib/api/types/meal-plan.ts b/frontend/app/lib/api/types/meal-plan.ts similarity index 100% rename from frontend/lib/api/types/meal-plan.ts rename to frontend/app/lib/api/types/meal-plan.ts diff --git a/frontend/lib/api/types/non-generated.ts b/frontend/app/lib/api/types/non-generated.ts similarity index 100% rename from frontend/lib/api/types/non-generated.ts rename to frontend/app/lib/api/types/non-generated.ts diff --git a/frontend/lib/api/types/openai.ts b/frontend/app/lib/api/types/openai.ts similarity index 100% rename from frontend/lib/api/types/openai.ts rename to frontend/app/lib/api/types/openai.ts diff --git a/frontend/lib/api/types/recipe.ts b/frontend/app/lib/api/types/recipe.ts similarity index 100% rename from frontend/lib/api/types/recipe.ts rename to frontend/app/lib/api/types/recipe.ts diff --git a/frontend/lib/api/types/reports.ts b/frontend/app/lib/api/types/reports.ts similarity index 100% rename from frontend/lib/api/types/reports.ts rename to frontend/app/lib/api/types/reports.ts diff --git a/frontend/lib/api/types/response.ts b/frontend/app/lib/api/types/response.ts similarity index 100% rename from frontend/lib/api/types/response.ts rename to frontend/app/lib/api/types/response.ts diff --git a/frontend/lib/api/types/static.ts b/frontend/app/lib/api/types/static.ts similarity index 100% rename from frontend/lib/api/types/static.ts rename to frontend/app/lib/api/types/static.ts diff --git a/frontend/lib/api/types/user.ts b/frontend/app/lib/api/types/user.ts similarity index 100% rename from frontend/lib/api/types/user.ts rename to frontend/app/lib/api/types/user.ts diff --git a/frontend/lib/api/user/backups.ts b/frontend/app/lib/api/user/backups.ts similarity index 100% rename from frontend/lib/api/user/backups.ts rename to frontend/app/lib/api/user/backups.ts diff --git a/frontend/lib/api/user/email.ts b/frontend/app/lib/api/user/email.ts similarity index 100% rename from frontend/lib/api/user/email.ts rename to frontend/app/lib/api/user/email.ts diff --git a/frontend/lib/api/user/group-cookbooks.ts b/frontend/app/lib/api/user/group-cookbooks.ts similarity index 100% rename from frontend/lib/api/user/group-cookbooks.ts rename to frontend/app/lib/api/user/group-cookbooks.ts diff --git a/frontend/lib/api/user/group-event-notifier.ts b/frontend/app/lib/api/user/group-event-notifier.ts similarity index 100% rename from frontend/lib/api/user/group-event-notifier.ts rename to frontend/app/lib/api/user/group-event-notifier.ts diff --git a/frontend/lib/api/user/group-mealplan-rules.ts b/frontend/app/lib/api/user/group-mealplan-rules.ts similarity index 100% rename from frontend/lib/api/user/group-mealplan-rules.ts rename to frontend/app/lib/api/user/group-mealplan-rules.ts diff --git a/frontend/lib/api/user/group-mealplan.ts b/frontend/app/lib/api/user/group-mealplan.ts similarity index 100% rename from frontend/lib/api/user/group-mealplan.ts rename to frontend/app/lib/api/user/group-mealplan.ts diff --git a/frontend/lib/api/user/group-migrations.ts b/frontend/app/lib/api/user/group-migrations.ts similarity index 100% rename from frontend/lib/api/user/group-migrations.ts rename to frontend/app/lib/api/user/group-migrations.ts diff --git a/frontend/lib/api/user/group-multiple-purpose-labels.ts b/frontend/app/lib/api/user/group-multiple-purpose-labels.ts similarity index 100% rename from frontend/lib/api/user/group-multiple-purpose-labels.ts rename to frontend/app/lib/api/user/group-multiple-purpose-labels.ts diff --git a/frontend/lib/api/user/group-recipe-actions.ts b/frontend/app/lib/api/user/group-recipe-actions.ts similarity index 100% rename from frontend/lib/api/user/group-recipe-actions.ts rename to frontend/app/lib/api/user/group-recipe-actions.ts diff --git a/frontend/lib/api/user/group-reports.ts b/frontend/app/lib/api/user/group-reports.ts similarity index 100% rename from frontend/lib/api/user/group-reports.ts rename to frontend/app/lib/api/user/group-reports.ts diff --git a/frontend/lib/api/user/group-seeder.ts b/frontend/app/lib/api/user/group-seeder.ts similarity index 100% rename from frontend/lib/api/user/group-seeder.ts rename to frontend/app/lib/api/user/group-seeder.ts diff --git a/frontend/lib/api/user/group-shopping-lists.ts b/frontend/app/lib/api/user/group-shopping-lists.ts similarity index 100% rename from frontend/lib/api/user/group-shopping-lists.ts rename to frontend/app/lib/api/user/group-shopping-lists.ts diff --git a/frontend/lib/api/user/group-webhooks.ts b/frontend/app/lib/api/user/group-webhooks.ts similarity index 100% rename from frontend/lib/api/user/group-webhooks.ts rename to frontend/app/lib/api/user/group-webhooks.ts diff --git a/frontend/lib/api/user/groups.ts b/frontend/app/lib/api/user/groups.ts similarity index 100% rename from frontend/lib/api/user/groups.ts rename to frontend/app/lib/api/user/groups.ts diff --git a/frontend/lib/api/user/households.ts b/frontend/app/lib/api/user/households.ts similarity index 100% rename from frontend/lib/api/user/households.ts rename to frontend/app/lib/api/user/households.ts diff --git a/frontend/lib/api/user/organizer-categories.ts b/frontend/app/lib/api/user/organizer-categories.ts similarity index 100% rename from frontend/lib/api/user/organizer-categories.ts rename to frontend/app/lib/api/user/organizer-categories.ts diff --git a/frontend/lib/api/user/organizer-tags.ts b/frontend/app/lib/api/user/organizer-tags.ts similarity index 100% rename from frontend/lib/api/user/organizer-tags.ts rename to frontend/app/lib/api/user/organizer-tags.ts diff --git a/frontend/lib/api/user/organizer-tools.ts b/frontend/app/lib/api/user/organizer-tools.ts similarity index 100% rename from frontend/lib/api/user/organizer-tools.ts rename to frontend/app/lib/api/user/organizer-tools.ts diff --git a/frontend/lib/api/user/recipe-bulk-actions.ts b/frontend/app/lib/api/user/recipe-bulk-actions.ts similarity index 100% rename from frontend/lib/api/user/recipe-bulk-actions.ts rename to frontend/app/lib/api/user/recipe-bulk-actions.ts diff --git a/frontend/lib/api/user/recipe-foods.ts b/frontend/app/lib/api/user/recipe-foods.ts similarity index 100% rename from frontend/lib/api/user/recipe-foods.ts rename to frontend/app/lib/api/user/recipe-foods.ts diff --git a/frontend/lib/api/user/recipe-units.ts b/frontend/app/lib/api/user/recipe-units.ts similarity index 100% rename from frontend/lib/api/user/recipe-units.ts rename to frontend/app/lib/api/user/recipe-units.ts diff --git a/frontend/lib/api/user/recipes/index.ts b/frontend/app/lib/api/user/recipes/index.ts similarity index 100% rename from frontend/lib/api/user/recipes/index.ts rename to frontend/app/lib/api/user/recipes/index.ts diff --git a/frontend/lib/api/user/recipes/recipe-comments.ts b/frontend/app/lib/api/user/recipes/recipe-comments.ts similarity index 100% rename from frontend/lib/api/user/recipes/recipe-comments.ts rename to frontend/app/lib/api/user/recipes/recipe-comments.ts diff --git a/frontend/lib/api/user/recipes/recipe-share.ts b/frontend/app/lib/api/user/recipes/recipe-share.ts similarity index 100% rename from frontend/lib/api/user/recipes/recipe-share.ts rename to frontend/app/lib/api/user/recipes/recipe-share.ts diff --git a/frontend/lib/api/user/recipes/recipe.ts b/frontend/app/lib/api/user/recipes/recipe.ts similarity index 100% rename from frontend/lib/api/user/recipes/recipe.ts rename to frontend/app/lib/api/user/recipes/recipe.ts diff --git a/frontend/lib/api/user/upload.ts b/frontend/app/lib/api/user/upload.ts similarity index 100% rename from frontend/lib/api/user/upload.ts rename to frontend/app/lib/api/user/upload.ts diff --git a/frontend/lib/api/user/user-registration.ts b/frontend/app/lib/api/user/user-registration.ts similarity index 100% rename from frontend/lib/api/user/user-registration.ts rename to frontend/app/lib/api/user/user-registration.ts diff --git a/frontend/lib/api/user/users.ts b/frontend/app/lib/api/user/users.ts similarity index 100% rename from frontend/lib/api/user/users.ts rename to frontend/app/lib/api/user/users.ts diff --git a/frontend/lib/api/user/utils.ts b/frontend/app/lib/api/user/utils.ts similarity index 100% rename from frontend/lib/api/user/utils.ts rename to frontend/app/lib/api/user/utils.ts diff --git a/frontend/lib/icons/icon-type.ts b/frontend/app/lib/icons/icon-type.ts similarity index 100% rename from frontend/lib/icons/icon-type.ts rename to frontend/app/lib/icons/icon-type.ts diff --git a/frontend/lib/icons/icons.ts b/frontend/app/lib/icons/icons.ts similarity index 99% rename from frontend/lib/icons/icons.ts rename to frontend/app/lib/icons/icons.ts index 5fc1964cf..dd5a8612a 100644 --- a/frontend/lib/icons/icons.ts +++ b/frontend/app/lib/icons/icons.ts @@ -11,6 +11,7 @@ import { mdiArrowLeftBoldOutline, mdiArrowRightBold, mdiArrowRightBoldOutline, + mdiArrowUp, mdiBackupRestore, mdiBeakerOutline, mdiBellAlert, @@ -108,6 +109,7 @@ import { mdiOpenInNew, mdiOrderAlphabeticalAscending, mdiPageLayoutBody, + mdiPlay, mdiPlus, mdiPlusCircle, mdiPotSteamOutline, @@ -179,6 +181,7 @@ export const icons = { api: mdiApi, arrowLeftBold: mdiArrowLeftBold, arrowRightBold: mdiArrowRightBold, + arrowUp: mdiArrowUp, arrowUpDown: mdiDrag, backupRestore: mdiBackupRestore, bellAlert: mdiBellAlert, @@ -256,6 +259,7 @@ export const icons = { openInNew: mdiOpenInNew, orderAlphabeticalAscending: mdiOrderAlphabeticalAscending, pageLayoutBody: mdiPageLayoutBody, + play: mdiPlay, printer: mdiPrinter, printerSettings: mdiPrinterPosCog, refreshCircle: mdiRefreshCircle, diff --git a/frontend/lib/icons/index.ts b/frontend/app/lib/icons/index.ts similarity index 100% rename from frontend/lib/icons/index.ts rename to frontend/app/lib/icons/index.ts diff --git a/frontend/lib/validators/index.ts b/frontend/app/lib/validators/index.ts similarity index 100% rename from frontend/lib/validators/index.ts rename to frontend/app/lib/validators/index.ts diff --git a/frontend/lib/validators/inputs.test.ts b/frontend/app/lib/validators/inputs.test.ts similarity index 100% rename from frontend/lib/validators/inputs.test.ts rename to frontend/app/lib/validators/inputs.test.ts diff --git a/frontend/lib/validators/inputs.ts b/frontend/app/lib/validators/inputs.ts similarity index 100% rename from frontend/lib/validators/inputs.ts rename to frontend/app/lib/validators/inputs.ts diff --git a/frontend/lib/validators/password.test.ts b/frontend/app/lib/validators/password.test.ts similarity index 100% rename from frontend/lib/validators/password.test.ts rename to frontend/app/lib/validators/password.test.ts diff --git a/frontend/lib/validators/password.ts b/frontend/app/lib/validators/password.ts similarity index 100% rename from frontend/lib/validators/password.ts rename to frontend/app/lib/validators/password.ts diff --git a/frontend/middleware/admin-only.ts b/frontend/app/middleware/admin-only.ts similarity index 100% rename from frontend/middleware/admin-only.ts rename to frontend/app/middleware/admin-only.ts diff --git a/frontend/middleware/advanced-only.ts b/frontend/app/middleware/advanced-only.ts similarity index 100% rename from frontend/middleware/advanced-only.ts rename to frontend/app/middleware/advanced-only.ts diff --git a/frontend/middleware/can-manage-household-only.ts b/frontend/app/middleware/can-manage-household-only.ts similarity index 100% rename from frontend/middleware/can-manage-household-only.ts rename to frontend/app/middleware/can-manage-household-only.ts diff --git a/frontend/middleware/can-manage-only.ts b/frontend/app/middleware/can-manage-only.ts similarity index 100% rename from frontend/middleware/can-manage-only.ts rename to frontend/app/middleware/can-manage-only.ts diff --git a/frontend/middleware/can-organize-only.ts b/frontend/app/middleware/can-organize-only.ts similarity index 100% rename from frontend/middleware/can-organize-only.ts rename to frontend/app/middleware/can-organize-only.ts diff --git a/frontend/middleware/group-only.ts b/frontend/app/middleware/group-only.ts similarity index 100% rename from frontend/middleware/group-only.ts rename to frontend/app/middleware/group-only.ts diff --git a/frontend/middleware/pwa-share-target-redirect.global.ts b/frontend/app/middleware/pwa-share-target-redirect.global.ts similarity index 100% rename from frontend/middleware/pwa-share-target-redirect.global.ts rename to frontend/app/middleware/pwa-share-target-redirect.global.ts diff --git a/frontend/pages/admin.vue b/frontend/app/pages/admin.vue similarity index 100% rename from frontend/pages/admin.vue rename to frontend/app/pages/admin.vue diff --git a/frontend/pages/admin/backups.vue b/frontend/app/pages/admin/backups.vue similarity index 100% rename from frontend/pages/admin/backups.vue rename to frontend/app/pages/admin/backups.vue diff --git a/frontend/pages/admin/debug/openai.vue b/frontend/app/pages/admin/debug/openai.vue similarity index 100% rename from frontend/pages/admin/debug/openai.vue rename to frontend/app/pages/admin/debug/openai.vue diff --git a/frontend/pages/admin/debug/parser.vue b/frontend/app/pages/admin/debug/parser.vue similarity index 100% rename from frontend/pages/admin/debug/parser.vue rename to frontend/app/pages/admin/debug/parser.vue diff --git a/frontend/pages/admin/maintenance/index.vue b/frontend/app/pages/admin/maintenance/index.vue similarity index 100% rename from frontend/pages/admin/maintenance/index.vue rename to frontend/app/pages/admin/maintenance/index.vue diff --git a/frontend/pages/admin/manage/groups/[id].vue b/frontend/app/pages/admin/manage/groups/[id].vue similarity index 100% rename from frontend/pages/admin/manage/groups/[id].vue rename to frontend/app/pages/admin/manage/groups/[id].vue diff --git a/frontend/pages/admin/manage/groups/index.vue b/frontend/app/pages/admin/manage/groups/index.vue similarity index 99% rename from frontend/pages/admin/manage/groups/index.vue rename to frontend/app/pages/admin/manage/groups/index.vue index 1cca62684..899cc7475 100644 --- a/frontend/pages/admin/manage/groups/index.vue +++ b/frontend/app/pages/admin/manage/groups/index.vue @@ -20,6 +20,7 @@