From 47906dc7b71525f202485574aa72c96f2b973550 Mon Sep 17 00:00:00 2001 From: Povindu Samarasekara Date: Mon, 1 Sep 2025 10:21:27 +0530 Subject: [PATCH 01/24] chore: moved astro project and setup backend --- .gitignore | 28 +- .../.github}/ISSUE_TEMPLATE/bug_report.md | 0 .../.github}/ISSUE_TEMPLATE/epic.md | 0 .../.github}/ISSUE_TEMPLATE/feature.md | 0 .../.github}/ISSUE_TEMPLATE/user-story.md | 0 .../.github}/workflows/deploy.yml | 0 .../.github}/workflows/main_docs-next.yml | 108 ++-- LICENSE => ClientApp/LICENSE | 0 README.md => ClientApp/README.md | 0 .../astro.config.mjs | 0 .../build}/detect-duplicate-frontmatter.js | 0 .../build}/local-build-script.mjs | 0 .../e2e-tests}/package-lock.json | 0 .../e2e-tests}/package.json | 0 .../e2e-tests}/playwright.config.ts | 0 .../e2e-tests}/tests/index.spec.ts | 0 ...ex-page-snapshot-test-1-chromium-win32.png | Bin ...dex-page-snapshot-test-1-firefox-win32.png | Bin ...ndex-page-snapshot-test-1-webkit-win32.png | Bin .../package-lock.json | 0 package.json => ClientApp/package.json | 0 {public => ClientApp/public}/favicon.ico | Bin {src => ClientApp/src}/assets/404_Hugo.svg | 0 {src => ClientApp/src}/assets/favicon.ico | Bin {src => ClientApp/src}/assets/logo.svg | 14 +- {src => ClientApp/src}/assets/suo-logo.svg | 0 .../src}/components/AreasOfInterest.astro | 62 +- .../src}/components/Audience.astro | 60 +- ...CategoryLandingAdditionalContentCard.astro | 0 .../src}/components/CategoryLandingCard.astro | 0 .../src}/components/CheckBox.tsx | 0 .../src}/components/EditPage.astro | 24 +- .../src}/components/Feedback.astro | 28 +- {src => ClientApp/src}/components/Footer.tsx | 0 .../src}/components/GradientBanner.astro | 38 +- .../src}/components/Hamburger.astro | 46 +- .../src}/components/Header.astro | 340 +++++------ {src => ClientApp/src}/components/Hero.astro | 82 +-- .../src}/components/IconSelection.tsx | 0 .../src}/components/LanguageSelect.tsx | 0 {src => ClientApp/src}/components/Link.astro | 0 .../src}/components/OnThisArticle.tsx | 0 .../src}/components/OnThisPage.astro | 314 +++++----- .../src}/components/PageHeader.astro | 154 ++--- .../components/QuickAccessShortcuts.astro | 0 .../src}/components/Search.astro | 0 .../src}/components/SearchPage.tsx | 0 {src => ClientApp/src}/components/Share.astro | 130 ++--- .../src}/components/SubCategoryCard.astro | 0 .../src}/components/TableOfContentList.tsx | 0 .../src}/components/YamlClass.astro | 0 .../src}/components/YamlItem.astro | 0 .../src}/components/YamlNamespace.astro | 0 {src => ClientApp/src}/content.config.ts | 0 {src => ClientApp/src}/content.schema.ts | 0 {src => ClientApp/src}/data/audience.ts | 58 +- {src => ClientApp/src}/data/navigation.ts | 552 +++++++++--------- {src => ClientApp/src}/env.d.ts | 0 {src => ClientApp/src}/layouts/Base.astro | 86 +-- .../src}/layouts/CategoryLandingLayout.astro | 0 .../src}/layouts/ContentLayout.astro | 162 ++--- .../layouts/SubCategoryLandingLayout.astro | 0 .../src}/layouts/YamlLayoutPage.astro | 0 .../media/contribute/add-suggestion-icon.png | Bin .../src}/media/contribute/checkout-pr.png | Bin .../src}/media/contribute/comment.png | Bin .../media/contribute/commit-suggestion.png | Bin .../src}/media/contribute/commit-to-patch.png | Bin .../contribute/conversation-view-changes.png | Bin .../media/contribute/copy-branch-name.png | Bin .../src}/media/contribute/copy-path.png | Bin .../contribute/create-issue-on-github.png | Bin .../src}/media/contribute/create-patch.png | Bin .../create-pull-request-on-github.png | Bin .../contribute/edit-article-on-github.png | Bin .../src}/media/contribute/edit-file-in-pr.png | Bin .../src}/media/contribute/edit-in-patch.png | Bin .../contribute/edit-markdown-on-github.png | Bin .../media/contribute/enter-suggestion.png | Bin .../media/contribute/fork-repo-on-github.png | Bin .../src}/media/contribute/gitbash-pull.png | Bin .../src}/media/contribute/github-clone.png | Bin .../media/contribute/github-create-pr.png | Bin .../src}/media/contribute/github-open-pr.png | Bin .../how-to-create-tutorial-a-overview.png | Bin .../src}/media/contribute/line-comment.png | Bin .../media/contribute/mdlint-list-hover.png | Bin .../media/contribute/mdlint-list-quickfix.png | Bin .../media/contribute/mdlint-list-warning.png | Bin .../media/contribute/plain-action-buttons.PNG | Bin .../media/contribute/preview-suggestion.png | Bin .../contribute/propose-changes-on-github.png | Bin .../src}/media/contribute/review-changes.png | Bin .../src}/media/contribute/select-branch.png | Bin .../src}/media/contribute/submit-review.png | Bin .../media/contribute/vscode-branch-menu.png | Bin .../src}/media/contribute/vscode-branches.png | Bin .../src}/media/contribute/vscode-clone.png | Bin .../media/contribute/vscode-commit-menu.png | Bin .../contribute/vscode-confirm-commit.png | Bin .../media/contribute/vscode-create-branch.png | Bin .../media/contribute/vscode-push-commit.png | Bin .../src}/media/contribute/vscode-push.png | Bin .../contribute/vscode-source-control-menu.png | Bin .../contribute/vscode-stage-all-changes.png | Bin .../src}/media/contribute/vscode-stash.png | Bin .../media/contribute/vscode-switch-branch.png | Bin .../media/contribute/vscode-sync-changes.png | Bin .../src}/media/edit-action-button.png | Bin .../src}/media/feedback-action-button.png | Bin .../src}/media/github-superoffice-docs.png | Bin .../media/mobile/mobile-add-email-address.png | Bin .../mobile/mobile-add-email-as-attendee.png | Bin ...ription-to-title-agenda-internal-notes.png | Bin .../mobile-crm-follow-up-show-links.png | Bin .../media/mobile/mobile-crm-gif-prev-02.gif | Bin .../src}/media/share-action-button.png | Bin {src => ClientApp/src}/pages/404.astro | 66 +-- {src => ClientApp/src}/pages/_migrate.md | 106 ++-- .../src}/pages/contribute/[...slug].astro | 0 .../src}/pages/contribute/index.astro | 0 .../src}/pages/da/[...slug].astro | 0 .../src}/pages/da/[...subcategory].astro | 0 .../src}/pages/da/[category].astro | 0 .../src}/pages/de/[...slug].astro | 0 .../src}/pages/de/[...subcategory].astro | 0 .../src}/pages/de/[category].astro | 0 .../src}/pages/en/[...category].astro | 0 .../src}/pages/en/[...slug].astro | 0 .../src}/pages/en/[...subcategory].astro | 0 .../src}/pages/en/api/[...slug].astro | 0 .../pages/en/api/reference/[...slug].astro | 0 .../reference/netserver/core/[...slug].astro | 0 .../netserver/services/[...slug].astro | 0 .../en/api/reference/web/[...slug].astro | 0 .../en/api/reference/webapi/[...slug].astro | 0 .../en/automation/crmscript/[...slug].astro | 0 .../netserver-scripting/[...slug].astro | 0 {src => ClientApp/src}/pages/index.astro | 0 .../src}/pages/nl/[...slug].astro | 0 .../src}/pages/nl/[...subcategory].astro | 0 .../src}/pages/nl/[category].astro | 0 .../src}/pages/no/[...slug].astro | 0 .../src}/pages/no/[...subcategory].astro | 0 .../src}/pages/no/[category].astro | 0 .../src}/pages/release-notes/[...slug].astro | 86 +-- {src => ClientApp/src}/pages/search.astro | 0 .../src}/pages/sv/[...slug].astro | 0 .../src}/pages/sv/[...subcategory].astro | 0 .../src}/pages/sv/[category].astro | 0 .../src}/plugins/AddIncludesToMarkdown.js | 0 .../src}/plugins/RestyleDirectives.js | 0 .../src}/reuse/code/hello-world.cs | 6 +- .../src}/scripts/getLastUpdatedFromGitHub.js | 56 +- .../src}/styles/IncludeDirectiveStyles.css | 0 .../src}/styles/VideoEmbeddingStyles.css | 0 {src => ClientApp/src}/styles/main.css | 146 ++--- .../styles/pagefind/customPagefindStyles.css | 0 {src => ClientApp/src}/styles/pagefind/ui.css | 0 .../src}/types/CategoryPageTypes.ts | 0 {src => ClientApp/src}/types/DocsTypes.ts | 0 .../src}/types/OnThisArticleTypes.ts | 0 .../src}/types/SubCategoryPageTypes.ts | 0 .../src}/types/TableOfContentTypes.ts | 0 {src => ClientApp/src}/types/WebAPITypes.ts | 0 .../types/YamlManagedReferencesLayoutTypes.ts | 0 .../src}/types/YamlManagedReferencesTypes.ts | 0 .../src}/types/pagefind-default-ui.d.ts | 0 {src => ClientApp/src}/types/pagefind.d.ts | 0 {src => ClientApp/src}/utils/contentUtils.ts | 0 {src => ClientApp/src}/utils/headerUtils.ts | 76 +-- {src => ClientApp/src}/utils/slugUtils.ts | 0 {src => ClientApp/src}/utils/tocUtils.ts | 0 .../tailwind.config.mjs | 0 tsconfig.json => ClientApp/tsconfig.json | 0 Docs-Next-Solution.sln | 34 ++ Server/Program.cs | 41 ++ Server/Properties/launchSettings.json | 23 + Server/Server.csproj | 13 + Server/Server.csproj.user | 6 + Server/Server.http | 6 + Server/appsettings.Development.json | 8 + Server/appsettings.json | 9 + ...CoreApp,Version=v9.0.AssemblyAttributes.cs | 4 + .../obj/Debug/net9.0/Server.AssemblyInfo.cs | 23 + .../net9.0/Server.AssemblyInfoInputs.cache | 1 + ....GeneratedMSBuildEditorConfig.editorconfig | 21 + .../obj/Debug/net9.0/Server.GlobalUsings.g.cs | 17 + Server/obj/Debug/net9.0/Server.assets.cache | Bin 0 -> 1889 bytes .../Server.csproj.AssemblyReference.cache | Bin 0 -> 1234 bytes .../Debug/net9.0/staticwebassets.removed.txt | 0 ...CoreApp,Version=v9.0.AssemblyAttributes.cs | 4 + .../obj/Release/net9.0/Server.AssemblyInfo.cs | 23 + .../net9.0/Server.AssemblyInfoInputs.cache | 1 + ....GeneratedMSBuildEditorConfig.editorconfig | 21 + .../Release/net9.0/Server.GlobalUsings.g.cs | 17 + Server/obj/Release/net9.0/Server.assets.cache | Bin 0 -> 1889 bytes .../Server.csproj.AssemblyReference.cache | Bin 0 -> 1234 bytes Server/obj/Server.csproj.nuget.dgspec.json | 82 +++ Server/obj/Server.csproj.nuget.g.props | 16 + Server/obj/Server.csproj.nuget.g.targets | 2 + Server/obj/project.assets.json | 155 +++++ Server/obj/project.nuget.cache | 11 + 203 files changed, 1953 insertions(+), 1413 deletions(-) rename {.github => ClientApp/.github}/ISSUE_TEMPLATE/bug_report.md (100%) rename {.github => ClientApp/.github}/ISSUE_TEMPLATE/epic.md (100%) rename {.github => ClientApp/.github}/ISSUE_TEMPLATE/feature.md (100%) rename {.github => ClientApp/.github}/ISSUE_TEMPLATE/user-story.md (100%) rename {.github => ClientApp/.github}/workflows/deploy.yml (100%) rename {.github => ClientApp/.github}/workflows/main_docs-next.yml (97%) rename LICENSE => ClientApp/LICENSE (100%) rename README.md => ClientApp/README.md (100%) rename astro.config.mjs => ClientApp/astro.config.mjs (100%) rename {build => ClientApp/build}/detect-duplicate-frontmatter.js (100%) rename {build => ClientApp/build}/local-build-script.mjs (100%) rename {e2e-tests => ClientApp/e2e-tests}/package-lock.json (100%) rename {e2e-tests => ClientApp/e2e-tests}/package.json (100%) rename {e2e-tests => ClientApp/e2e-tests}/playwright.config.ts (100%) rename {e2e-tests => ClientApp/e2e-tests}/tests/index.spec.ts (100%) rename {e2e-tests => ClientApp/e2e-tests}/tests/index.spec.ts-snapshots/Index-page-snapshot-test-1-chromium-win32.png (100%) rename {e2e-tests => ClientApp/e2e-tests}/tests/index.spec.ts-snapshots/Index-page-snapshot-test-1-firefox-win32.png (100%) rename {e2e-tests => ClientApp/e2e-tests}/tests/index.spec.ts-snapshots/Index-page-snapshot-test-1-webkit-win32.png (100%) rename package-lock.json => ClientApp/package-lock.json (100%) rename package.json => ClientApp/package.json (100%) rename {public => ClientApp/public}/favicon.ico (100%) rename {src => ClientApp/src}/assets/404_Hugo.svg (100%) rename {src => ClientApp/src}/assets/favicon.ico (100%) rename {src => ClientApp/src}/assets/logo.svg (99%) rename {src => ClientApp/src}/assets/suo-logo.svg (100%) rename {src => ClientApp/src}/components/AreasOfInterest.astro (96%) rename {src => ClientApp/src}/components/Audience.astro (97%) rename {src => ClientApp/src}/components/CategoryLandingAdditionalContentCard.astro (100%) rename {src => ClientApp/src}/components/CategoryLandingCard.astro (100%) rename {src => ClientApp/src}/components/CheckBox.tsx (100%) rename {src => ClientApp/src}/components/EditPage.astro (95%) rename {src => ClientApp/src}/components/Feedback.astro (95%) rename {src => ClientApp/src}/components/Footer.tsx (100%) rename {src => ClientApp/src}/components/GradientBanner.astro (96%) rename {src => ClientApp/src}/components/Hamburger.astro (95%) rename {src => ClientApp/src}/components/Header.astro (97%) rename {src => ClientApp/src}/components/Hero.astro (96%) rename {src => ClientApp/src}/components/IconSelection.tsx (100%) rename {src => ClientApp/src}/components/LanguageSelect.tsx (100%) rename {src => ClientApp/src}/components/Link.astro (100%) rename {src => ClientApp/src}/components/OnThisArticle.tsx (100%) rename {src => ClientApp/src}/components/OnThisPage.astro (96%) rename {src => ClientApp/src}/components/PageHeader.astro (96%) rename {src => ClientApp/src}/components/QuickAccessShortcuts.astro (100%) rename {src => ClientApp/src}/components/Search.astro (100%) rename {src => ClientApp/src}/components/SearchPage.tsx (100%) rename {src => ClientApp/src}/components/Share.astro (97%) rename {src => ClientApp/src}/components/SubCategoryCard.astro (100%) rename {src => ClientApp/src}/components/TableOfContentList.tsx (100%) rename {src => ClientApp/src}/components/YamlClass.astro (100%) rename {src => ClientApp/src}/components/YamlItem.astro (100%) rename {src => ClientApp/src}/components/YamlNamespace.astro (100%) rename {src => ClientApp/src}/content.config.ts (100%) rename {src => ClientApp/src}/content.schema.ts (100%) rename {src => ClientApp/src}/data/audience.ts (97%) rename {src => ClientApp/src}/data/navigation.ts (96%) rename {src => ClientApp/src}/env.d.ts (100%) rename {src => ClientApp/src}/layouts/Base.astro (96%) rename {src => ClientApp/src}/layouts/CategoryLandingLayout.astro (100%) rename {src => ClientApp/src}/layouts/ContentLayout.astro (96%) rename {src => ClientApp/src}/layouts/SubCategoryLandingLayout.astro (100%) rename {src => ClientApp/src}/layouts/YamlLayoutPage.astro (100%) rename {src => ClientApp/src}/media/contribute/add-suggestion-icon.png (100%) rename {src => ClientApp/src}/media/contribute/checkout-pr.png (100%) rename {src => ClientApp/src}/media/contribute/comment.png (100%) rename {src => ClientApp/src}/media/contribute/commit-suggestion.png (100%) rename {src => ClientApp/src}/media/contribute/commit-to-patch.png (100%) rename {src => ClientApp/src}/media/contribute/conversation-view-changes.png (100%) rename {src => ClientApp/src}/media/contribute/copy-branch-name.png (100%) rename {src => ClientApp/src}/media/contribute/copy-path.png (100%) rename {src => ClientApp/src}/media/contribute/create-issue-on-github.png (100%) rename {src => ClientApp/src}/media/contribute/create-patch.png (100%) rename {src => ClientApp/src}/media/contribute/create-pull-request-on-github.png (100%) rename {src => ClientApp/src}/media/contribute/edit-article-on-github.png (100%) rename {src => ClientApp/src}/media/contribute/edit-file-in-pr.png (100%) rename {src => ClientApp/src}/media/contribute/edit-in-patch.png (100%) rename {src => ClientApp/src}/media/contribute/edit-markdown-on-github.png (100%) rename {src => ClientApp/src}/media/contribute/enter-suggestion.png (100%) rename {src => ClientApp/src}/media/contribute/fork-repo-on-github.png (100%) rename {src => ClientApp/src}/media/contribute/gitbash-pull.png (100%) rename {src => ClientApp/src}/media/contribute/github-clone.png (100%) rename {src => ClientApp/src}/media/contribute/github-create-pr.png (100%) rename {src => ClientApp/src}/media/contribute/github-open-pr.png (100%) rename {src => ClientApp/src}/media/contribute/how-to-create-tutorial-a-overview.png (100%) rename {src => ClientApp/src}/media/contribute/line-comment.png (100%) rename {src => ClientApp/src}/media/contribute/mdlint-list-hover.png (100%) rename {src => ClientApp/src}/media/contribute/mdlint-list-quickfix.png (100%) rename {src => ClientApp/src}/media/contribute/mdlint-list-warning.png (100%) rename {src => ClientApp/src}/media/contribute/plain-action-buttons.PNG (100%) rename {src => ClientApp/src}/media/contribute/preview-suggestion.png (100%) rename {src => ClientApp/src}/media/contribute/propose-changes-on-github.png (100%) rename {src => ClientApp/src}/media/contribute/review-changes.png (100%) rename {src => ClientApp/src}/media/contribute/select-branch.png (100%) rename {src => ClientApp/src}/media/contribute/submit-review.png (100%) rename {src => ClientApp/src}/media/contribute/vscode-branch-menu.png (100%) rename {src => ClientApp/src}/media/contribute/vscode-branches.png (100%) rename {src => ClientApp/src}/media/contribute/vscode-clone.png (100%) rename {src => ClientApp/src}/media/contribute/vscode-commit-menu.png (100%) rename {src => ClientApp/src}/media/contribute/vscode-confirm-commit.png (100%) rename {src => ClientApp/src}/media/contribute/vscode-create-branch.png (100%) rename {src => ClientApp/src}/media/contribute/vscode-push-commit.png (100%) rename {src => ClientApp/src}/media/contribute/vscode-push.png (100%) rename {src => ClientApp/src}/media/contribute/vscode-source-control-menu.png (100%) rename {src => ClientApp/src}/media/contribute/vscode-stage-all-changes.png (100%) rename {src => ClientApp/src}/media/contribute/vscode-stash.png (100%) rename {src => ClientApp/src}/media/contribute/vscode-switch-branch.png (100%) rename {src => ClientApp/src}/media/contribute/vscode-sync-changes.png (100%) rename {src => ClientApp/src}/media/edit-action-button.png (100%) rename {src => ClientApp/src}/media/feedback-action-button.png (100%) rename {src => ClientApp/src}/media/github-superoffice-docs.png (100%) rename {src => ClientApp/src}/media/mobile/mobile-add-email-address.png (100%) rename {src => ClientApp/src}/media/mobile/mobile-add-email-as-attendee.png (100%) rename {src => ClientApp/src}/media/mobile/mobile-crm-follow-up-description-to-title-agenda-internal-notes.png (100%) rename {src => ClientApp/src}/media/mobile/mobile-crm-follow-up-show-links.png (100%) rename {src => ClientApp/src}/media/mobile/mobile-crm-gif-prev-02.gif (100%) rename {src => ClientApp/src}/media/share-action-button.png (100%) rename {src => ClientApp/src}/pages/404.astro (97%) rename {src => ClientApp/src}/pages/_migrate.md (93%) rename {src => ClientApp/src}/pages/contribute/[...slug].astro (100%) rename {src => ClientApp/src}/pages/contribute/index.astro (100%) rename {src => ClientApp/src}/pages/da/[...slug].astro (100%) rename {src => ClientApp/src}/pages/da/[...subcategory].astro (100%) rename {src => ClientApp/src}/pages/da/[category].astro (100%) rename {src => ClientApp/src}/pages/de/[...slug].astro (100%) rename {src => ClientApp/src}/pages/de/[...subcategory].astro (100%) rename {src => ClientApp/src}/pages/de/[category].astro (100%) rename {src => ClientApp/src}/pages/en/[...category].astro (100%) rename {src => ClientApp/src}/pages/en/[...slug].astro (100%) rename {src => ClientApp/src}/pages/en/[...subcategory].astro (100%) rename {src => ClientApp/src}/pages/en/api/[...slug].astro (100%) rename {src => ClientApp/src}/pages/en/api/reference/[...slug].astro (100%) rename {src => ClientApp/src}/pages/en/api/reference/netserver/core/[...slug].astro (100%) rename {src => ClientApp/src}/pages/en/api/reference/netserver/services/[...slug].astro (100%) rename {src => ClientApp/src}/pages/en/api/reference/web/[...slug].astro (100%) rename {src => ClientApp/src}/pages/en/api/reference/webapi/[...slug].astro (100%) rename {src => ClientApp/src}/pages/en/automation/crmscript/[...slug].astro (100%) rename {src => ClientApp/src}/pages/en/automation/netserver-scripting/[...slug].astro (100%) rename {src => ClientApp/src}/pages/index.astro (100%) rename {src => ClientApp/src}/pages/nl/[...slug].astro (100%) rename {src => ClientApp/src}/pages/nl/[...subcategory].astro (100%) rename {src => ClientApp/src}/pages/nl/[category].astro (100%) rename {src => ClientApp/src}/pages/no/[...slug].astro (100%) rename {src => ClientApp/src}/pages/no/[...subcategory].astro (100%) rename {src => ClientApp/src}/pages/no/[category].astro (100%) rename {src => ClientApp/src}/pages/release-notes/[...slug].astro (96%) rename {src => ClientApp/src}/pages/search.astro (100%) rename {src => ClientApp/src}/pages/sv/[...slug].astro (100%) rename {src => ClientApp/src}/pages/sv/[...subcategory].astro (100%) rename {src => ClientApp/src}/pages/sv/[category].astro (100%) rename {src => ClientApp/src}/plugins/AddIncludesToMarkdown.js (100%) rename {src => ClientApp/src}/plugins/RestyleDirectives.js (100%) rename {src => ClientApp/src}/reuse/code/hello-world.cs (97%) rename {src => ClientApp/src}/scripts/getLastUpdatedFromGitHub.js (97%) rename {src => ClientApp/src}/styles/IncludeDirectiveStyles.css (100%) rename {src => ClientApp/src}/styles/VideoEmbeddingStyles.css (100%) rename {src => ClientApp/src}/styles/main.css (94%) rename {src => ClientApp/src}/styles/pagefind/customPagefindStyles.css (100%) rename {src => ClientApp/src}/styles/pagefind/ui.css (100%) rename {src => ClientApp/src}/types/CategoryPageTypes.ts (100%) rename {src => ClientApp/src}/types/DocsTypes.ts (100%) rename {src => ClientApp/src}/types/OnThisArticleTypes.ts (100%) rename {src => ClientApp/src}/types/SubCategoryPageTypes.ts (100%) rename {src => ClientApp/src}/types/TableOfContentTypes.ts (100%) rename {src => ClientApp/src}/types/WebAPITypes.ts (100%) rename {src => ClientApp/src}/types/YamlManagedReferencesLayoutTypes.ts (100%) rename {src => ClientApp/src}/types/YamlManagedReferencesTypes.ts (100%) rename {src => ClientApp/src}/types/pagefind-default-ui.d.ts (100%) rename {src => ClientApp/src}/types/pagefind.d.ts (100%) rename {src => ClientApp/src}/utils/contentUtils.ts (100%) rename {src => ClientApp/src}/utils/headerUtils.ts (97%) rename {src => ClientApp/src}/utils/slugUtils.ts (100%) rename {src => ClientApp/src}/utils/tocUtils.ts (100%) rename tailwind.config.mjs => ClientApp/tailwind.config.mjs (100%) rename tsconfig.json => ClientApp/tsconfig.json (100%) create mode 100644 Docs-Next-Solution.sln create mode 100644 Server/Program.cs create mode 100644 Server/Properties/launchSettings.json create mode 100644 Server/Server.csproj create mode 100644 Server/Server.csproj.user create mode 100644 Server/Server.http create mode 100644 Server/appsettings.Development.json create mode 100644 Server/appsettings.json create mode 100644 Server/obj/Debug/net9.0/.NETCoreApp,Version=v9.0.AssemblyAttributes.cs create mode 100644 Server/obj/Debug/net9.0/Server.AssemblyInfo.cs create mode 100644 Server/obj/Debug/net9.0/Server.AssemblyInfoInputs.cache create mode 100644 Server/obj/Debug/net9.0/Server.GeneratedMSBuildEditorConfig.editorconfig create mode 100644 Server/obj/Debug/net9.0/Server.GlobalUsings.g.cs create mode 100644 Server/obj/Debug/net9.0/Server.assets.cache create mode 100644 Server/obj/Debug/net9.0/Server.csproj.AssemblyReference.cache create mode 100644 Server/obj/Debug/net9.0/staticwebassets.removed.txt create mode 100644 Server/obj/Release/net9.0/.NETCoreApp,Version=v9.0.AssemblyAttributes.cs create mode 100644 Server/obj/Release/net9.0/Server.AssemblyInfo.cs create mode 100644 Server/obj/Release/net9.0/Server.AssemblyInfoInputs.cache create mode 100644 Server/obj/Release/net9.0/Server.GeneratedMSBuildEditorConfig.editorconfig create mode 100644 Server/obj/Release/net9.0/Server.GlobalUsings.g.cs create mode 100644 Server/obj/Release/net9.0/Server.assets.cache create mode 100644 Server/obj/Release/net9.0/Server.csproj.AssemblyReference.cache create mode 100644 Server/obj/Server.csproj.nuget.dgspec.json create mode 100644 Server/obj/Server.csproj.nuget.g.props create mode 100644 Server/obj/Server.csproj.nuget.g.targets create mode 100644 Server/obj/project.assets.json create mode 100644 Server/obj/project.nuget.cache diff --git a/.gitignore b/.gitignore index 9b80b5ba..237fc158 100644 --- a/.gitignore +++ b/.gitignore @@ -1,15 +1,17 @@ +.vs + # build output -dist/ +ClientApp/dist/ -.distA/ -.distB/ +ClientApp/.distA/ +ClientApp/.distB/ # generated types -.astro/ +ClientApp/.astro/ # dependencies -node_modules/ +ClientApp/node_modules/ # logs npm-debug.log* @@ -19,8 +21,8 @@ pnpm-debug.log* # environment variables -.env -.env.production +ClientApp/.env +ClientApp/.env.production # macOS-specific files .DS_Store @@ -32,12 +34,12 @@ pnpm-debug.log* .vscode/settings.json # Playwright -e2e-tests/test-results/ -e2e-tests/playwright-report/ -e2e-tests/blob-report/ -e2e-tests/playwright/.cache/ +ClientApp/e2e-tests/test-results/ +ClientApp/e2e-tests/playwright-report/ +ClientApp/e2e-tests/blob-report/ +ClientApp/e2e-tests/playwright/.cache/ # External content (other GitHub repos) -external-content/ -public/downloads/ \ No newline at end of file +ClientApp/external-content/ +ClientApp/public/downloads/ \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/ClientApp/.github/ISSUE_TEMPLATE/bug_report.md similarity index 100% rename from .github/ISSUE_TEMPLATE/bug_report.md rename to ClientApp/.github/ISSUE_TEMPLATE/bug_report.md diff --git a/.github/ISSUE_TEMPLATE/epic.md b/ClientApp/.github/ISSUE_TEMPLATE/epic.md similarity index 100% rename from .github/ISSUE_TEMPLATE/epic.md rename to ClientApp/.github/ISSUE_TEMPLATE/epic.md diff --git a/.github/ISSUE_TEMPLATE/feature.md b/ClientApp/.github/ISSUE_TEMPLATE/feature.md similarity index 100% rename from .github/ISSUE_TEMPLATE/feature.md rename to ClientApp/.github/ISSUE_TEMPLATE/feature.md diff --git a/.github/ISSUE_TEMPLATE/user-story.md b/ClientApp/.github/ISSUE_TEMPLATE/user-story.md similarity index 100% rename from .github/ISSUE_TEMPLATE/user-story.md rename to ClientApp/.github/ISSUE_TEMPLATE/user-story.md diff --git a/.github/workflows/deploy.yml b/ClientApp/.github/workflows/deploy.yml similarity index 100% rename from .github/workflows/deploy.yml rename to ClientApp/.github/workflows/deploy.yml diff --git a/.github/workflows/main_docs-next.yml b/ClientApp/.github/workflows/main_docs-next.yml similarity index 97% rename from .github/workflows/main_docs-next.yml rename to ClientApp/.github/workflows/main_docs-next.yml index dab07fd8..4f4adccd 100644 --- a/.github/workflows/main_docs-next.yml +++ b/ClientApp/.github/workflows/main_docs-next.yml @@ -1,52 +1,52 @@ -# Docs for the Azure Web Apps Deploy action: https://github.com/Azure/webapps-deploy -# More GitHub Actions for Azure: https://github.com/Azure/actions - -name: Build and deploy ASP.Net Core app to Azure Web App - docs-next - -on: - push: - branches: - - main - workflow_dispatch: - -jobs: - build: - runs-on: ubuntu-latest - permissions: - contents: read #This is required for actions/checkout - - steps: - - uses: actions/checkout@v4 - - - name: Set up .NET Core - uses: actions/setup-dotnet@v4 - with: - dotnet-version: '8.x' - - - name: Build with dotnet - run: dotnet build --configuration Release - - - name: dotnet publish - run: dotnet publish -c Release -o ${{env.DOTNET_ROOT}}/myapp - - - name: Upload artifact for deployment job - uses: actions/upload-artifact@v4 - with: - name: .net-app - path: ${{env.DOTNET_ROOT}}/myapp - - deploy: - runs-on: ubuntu-latest - needs: build +# Docs for the Azure Web Apps Deploy action: https://github.com/Azure/webapps-deploy +# More GitHub Actions for Azure: https://github.com/Azure/actions + +name: Build and deploy ASP.Net Core app to Azure Web App - docs-next + +on: + push: + branches: + - main + workflow_dispatch: + +jobs: + build: + runs-on: ubuntu-latest + permissions: + contents: read #This is required for actions/checkout + + steps: + - uses: actions/checkout@v4 + + - name: Set up .NET Core + uses: actions/setup-dotnet@v4 + with: + dotnet-version: '8.x' + + - name: Build with dotnet + run: dotnet build --configuration Release + + - name: dotnet publish + run: dotnet publish -c Release -o ${{env.DOTNET_ROOT}}/myapp + + - name: Upload artifact for deployment job + uses: actions/upload-artifact@v4 + with: + name: .net-app + path: ${{env.DOTNET_ROOT}}/myapp + + deploy: + runs-on: ubuntu-latest + needs: build permissions: id-token: write #This is required for requesting the JWT contents: read #This is required for actions/checkout - - steps: - - name: Download artifact from build job - uses: actions/download-artifact@v4 - with: - name: .net-app + + steps: + - name: Download artifact from build job + uses: actions/download-artifact@v4 + with: + name: .net-app - name: Login to Azure uses: azure/login@v2 @@ -54,12 +54,12 @@ jobs: client-id: ${{ secrets.AZUREAPPSERVICE_CLIENTID_7D6201BE9CBA4102A67082079FA9D045 }} tenant-id: ${{ secrets.AZUREAPPSERVICE_TENANTID_E5F979726F2140149EE71D82B31CE225 }} subscription-id: ${{ secrets.AZUREAPPSERVICE_SUBSCRIPTIONID_3F73E186A6F2462480840A28C77242B0 }} - - - name: Deploy to Azure Web App - id: deploy-to-webapp - uses: azure/webapps-deploy@v3 - with: - app-name: 'docs-next' - slot-name: 'Production' - package: . + + - name: Deploy to Azure Web App + id: deploy-to-webapp + uses: azure/webapps-deploy@v3 + with: + app-name: 'docs-next' + slot-name: 'Production' + package: . \ No newline at end of file diff --git a/LICENSE b/ClientApp/LICENSE similarity index 100% rename from LICENSE rename to ClientApp/LICENSE diff --git a/README.md b/ClientApp/README.md similarity index 100% rename from README.md rename to ClientApp/README.md diff --git a/astro.config.mjs b/ClientApp/astro.config.mjs similarity index 100% rename from astro.config.mjs rename to ClientApp/astro.config.mjs diff --git a/build/detect-duplicate-frontmatter.js b/ClientApp/build/detect-duplicate-frontmatter.js similarity index 100% rename from build/detect-duplicate-frontmatter.js rename to ClientApp/build/detect-duplicate-frontmatter.js diff --git a/build/local-build-script.mjs b/ClientApp/build/local-build-script.mjs similarity index 100% rename from build/local-build-script.mjs rename to ClientApp/build/local-build-script.mjs diff --git a/e2e-tests/package-lock.json b/ClientApp/e2e-tests/package-lock.json similarity index 100% rename from e2e-tests/package-lock.json rename to ClientApp/e2e-tests/package-lock.json diff --git a/e2e-tests/package.json b/ClientApp/e2e-tests/package.json similarity index 100% rename from e2e-tests/package.json rename to ClientApp/e2e-tests/package.json diff --git a/e2e-tests/playwright.config.ts b/ClientApp/e2e-tests/playwright.config.ts similarity index 100% rename from e2e-tests/playwright.config.ts rename to ClientApp/e2e-tests/playwright.config.ts diff --git a/e2e-tests/tests/index.spec.ts b/ClientApp/e2e-tests/tests/index.spec.ts similarity index 100% rename from e2e-tests/tests/index.spec.ts rename to ClientApp/e2e-tests/tests/index.spec.ts diff --git a/e2e-tests/tests/index.spec.ts-snapshots/Index-page-snapshot-test-1-chromium-win32.png b/ClientApp/e2e-tests/tests/index.spec.ts-snapshots/Index-page-snapshot-test-1-chromium-win32.png similarity index 100% rename from e2e-tests/tests/index.spec.ts-snapshots/Index-page-snapshot-test-1-chromium-win32.png rename to ClientApp/e2e-tests/tests/index.spec.ts-snapshots/Index-page-snapshot-test-1-chromium-win32.png diff --git a/e2e-tests/tests/index.spec.ts-snapshots/Index-page-snapshot-test-1-firefox-win32.png b/ClientApp/e2e-tests/tests/index.spec.ts-snapshots/Index-page-snapshot-test-1-firefox-win32.png similarity index 100% rename from e2e-tests/tests/index.spec.ts-snapshots/Index-page-snapshot-test-1-firefox-win32.png rename to ClientApp/e2e-tests/tests/index.spec.ts-snapshots/Index-page-snapshot-test-1-firefox-win32.png diff --git a/e2e-tests/tests/index.spec.ts-snapshots/Index-page-snapshot-test-1-webkit-win32.png b/ClientApp/e2e-tests/tests/index.spec.ts-snapshots/Index-page-snapshot-test-1-webkit-win32.png similarity index 100% rename from e2e-tests/tests/index.spec.ts-snapshots/Index-page-snapshot-test-1-webkit-win32.png rename to ClientApp/e2e-tests/tests/index.spec.ts-snapshots/Index-page-snapshot-test-1-webkit-win32.png diff --git a/package-lock.json b/ClientApp/package-lock.json similarity index 100% rename from package-lock.json rename to ClientApp/package-lock.json diff --git a/package.json b/ClientApp/package.json similarity index 100% rename from package.json rename to ClientApp/package.json diff --git a/public/favicon.ico b/ClientApp/public/favicon.ico similarity index 100% rename from public/favicon.ico rename to ClientApp/public/favicon.ico diff --git a/src/assets/404_Hugo.svg b/ClientApp/src/assets/404_Hugo.svg similarity index 100% rename from src/assets/404_Hugo.svg rename to ClientApp/src/assets/404_Hugo.svg diff --git a/src/assets/favicon.ico b/ClientApp/src/assets/favicon.ico similarity index 100% rename from src/assets/favicon.ico rename to ClientApp/src/assets/favicon.ico diff --git a/src/assets/logo.svg b/ClientApp/src/assets/logo.svg similarity index 99% rename from src/assets/logo.svg rename to ClientApp/src/assets/logo.svg index be0fc35e..4fe2cd63 100644 --- a/src/assets/logo.svg +++ b/ClientApp/src/assets/logo.svg @@ -1,8 +1,8 @@ -

{heading}

-
- { - links?.length - ? links.map(({ href, text }) => ( - -

{text}

-
- )) - : "" - } -
- +--- +interface Link { + text?: string; + href?: string; +} + +export interface Props { + links: Array; + heading: String; +} + +const { links = [], heading } = Astro.props; +const base = import.meta.env.BASE_URL; +--- + +
+

{heading}

+
+ { + links?.length + ? links.map(({ href, text }) => ( + +

{text}

+
+ )) + : "" + } +
+
diff --git a/src/components/Audience.astro b/ClientApp/src/components/Audience.astro similarity index 97% rename from src/components/Audience.astro rename to ClientApp/src/components/Audience.astro index 5820f994..61d6fb42 100644 --- a/src/components/Audience.astro +++ b/ClientApp/src/components/Audience.astro @@ -1,30 +1,30 @@ ---- -import { audienceTypes } from "../data/audience"; - -const { audience = [] } = audienceTypes; -const { heading } = Astro.props; ---- - -
-

{heading}

-
- { - audience?.length - ? audience.map(({ href, title, description, color }) => ( -
-
-

{title}

-

{description}

- -
-
-
- )) - : "" - } -
-
+--- +import { audienceTypes } from "../data/audience"; + +const { audience = [] } = audienceTypes; +const { heading } = Astro.props; +--- + +
+

{heading}

+
+ { + audience?.length + ? audience.map(({ href, title, description, color }) => ( +
+
+

{title}

+

{description}

+ +
+
+
+ )) + : "" + } +
+
diff --git a/src/components/CategoryLandingAdditionalContentCard.astro b/ClientApp/src/components/CategoryLandingAdditionalContentCard.astro similarity index 100% rename from src/components/CategoryLandingAdditionalContentCard.astro rename to ClientApp/src/components/CategoryLandingAdditionalContentCard.astro diff --git a/src/components/CategoryLandingCard.astro b/ClientApp/src/components/CategoryLandingCard.astro similarity index 100% rename from src/components/CategoryLandingCard.astro rename to ClientApp/src/components/CategoryLandingCard.astro diff --git a/src/components/CheckBox.tsx b/ClientApp/src/components/CheckBox.tsx similarity index 100% rename from src/components/CheckBox.tsx rename to ClientApp/src/components/CheckBox.tsx diff --git a/src/components/EditPage.astro b/ClientApp/src/components/EditPage.astro similarity index 95% rename from src/components/EditPage.astro rename to ClientApp/src/components/EditPage.astro index 54a7dd26..bf31ebc4 100644 --- a/src/components/EditPage.astro +++ b/ClientApp/src/components/EditPage.astro @@ -1,12 +1,12 @@ ---- -import { getEditHref } from "@utils/headerUtils"; - -export interface Props { - docurl: string; -} - -const { docurl } = Astro.props; -const href = getEditHref(docurl); ---- - - Edit +--- +import { getEditHref } from "@utils/headerUtils"; + +export interface Props { + docurl: string; +} + +const { docurl } = Astro.props; +const href = getEditHref(docurl); +--- + + Edit diff --git a/src/components/Feedback.astro b/ClientApp/src/components/Feedback.astro similarity index 95% rename from src/components/Feedback.astro rename to ClientApp/src/components/Feedback.astro index 9e495c8b..3fb0f740 100644 --- a/src/components/Feedback.astro +++ b/ClientApp/src/components/Feedback.astro @@ -1,14 +1,14 @@ ---- -import { getFeedbackHref } from "@utils/headerUtils"; - -export interface Props { - docurl: string; - title: string; - uid: string; -} - -const { docurl, title, uid } = Astro.props; -const href = getFeedbackHref(docurl, title, uid); ---- - - Feedback +--- +import { getFeedbackHref } from "@utils/headerUtils"; + +export interface Props { + docurl: string; + title: string; + uid: string; +} + +const { docurl, title, uid } = Astro.props; +const href = getFeedbackHref(docurl, title, uid); +--- + + Feedback diff --git a/src/components/Footer.tsx b/ClientApp/src/components/Footer.tsx similarity index 100% rename from src/components/Footer.tsx rename to ClientApp/src/components/Footer.tsx diff --git a/src/components/GradientBanner.astro b/ClientApp/src/components/GradientBanner.astro similarity index 96% rename from src/components/GradientBanner.astro rename to ClientApp/src/components/GradientBanner.astro index 7db01993..38c8397c 100644 --- a/src/components/GradientBanner.astro +++ b/ClientApp/src/components/GradientBanner.astro @@ -1,19 +1,19 @@ ---- -const tagline = - "The official documentation site for the SuperOffice Platform - the leading CRM & Customer Service available."; - ---- - -
-
-

docs.superoffice.com

-

{tagline}

-
-
- - +--- +const tagline = + "The official documentation site for the SuperOffice Platform - the leading CRM & Customer Service available."; + +--- + +
+
+

docs.superoffice.com

+

{tagline}

+
+
+ + diff --git a/src/components/Hamburger.astro b/ClientApp/src/components/Hamburger.astro similarity index 95% rename from src/components/Hamburger.astro rename to ClientApp/src/components/Hamburger.astro index a6ffcd09..5b701cc3 100644 --- a/src/components/Hamburger.astro +++ b/ClientApp/src/components/Hamburger.astro @@ -1,23 +1,23 @@ ---- - ---- - +--- + +--- + diff --git a/src/components/Header.astro b/ClientApp/src/components/Header.astro similarity index 97% rename from src/components/Header.astro rename to ClientApp/src/components/Header.astro index 38a08faf..67eb6a99 100644 --- a/src/components/Header.astro +++ b/ClientApp/src/components/Header.astro @@ -1,170 +1,170 @@ ---- -import { Icon } from "astro-icon/components"; -import Hamburger from "./Hamburger.astro"; -import logo from "@assets/logo.svg"; -import { trimSlash } from "@utils/headerUtils"; - -const base = import.meta.env.BASE_URL; - -interface Link { - text?: string; - href?: string; - ariaLabel?: string; - icon?: string; - links?: Link[]; -} - -export interface Props { - links?: Link[]; -} - -const { links = [] } = Astro.props; -const currentPath = `/${trimSlash(new URL(Astro.url).pathname)}`; ---- - - - - - - +--- +import { Icon } from "astro-icon/components"; +import Hamburger from "./Hamburger.astro"; +import logo from "@assets/logo.svg"; +import { trimSlash } from "@utils/headerUtils"; + +const base = import.meta.env.BASE_URL; + +interface Link { + text?: string; + href?: string; + ariaLabel?: string; + icon?: string; + links?: Link[]; +} + +export interface Props { + links?: Link[]; +} + +const { links = [] } = Astro.props; +const currentPath = `/${trimSlash(new URL(Astro.url).pathname)}`; +--- + + + + + + diff --git a/src/components/Hero.astro b/ClientApp/src/components/Hero.astro similarity index 96% rename from src/components/Hero.astro rename to ClientApp/src/components/Hero.astro index f8c0a60f..8521fd0e 100644 --- a/src/components/Hero.astro +++ b/ClientApp/src/components/Hero.astro @@ -1,41 +1,41 @@ ---- -import { Icon } from "astro-icon/components"; -import { heroItems } from "../data/navigation"; -import GradientBanner from "./GradientBanner.astro"; -const { links = [] } = heroItems; -const base = import.meta.env.BASE_URL; ---- - -
- - - -
+--- +import { Icon } from "astro-icon/components"; +import { heroItems } from "../data/navigation"; +import GradientBanner from "./GradientBanner.astro"; +const { links = [] } = heroItems; +const base = import.meta.env.BASE_URL; +--- + +
+ + + +
diff --git a/src/components/IconSelection.tsx b/ClientApp/src/components/IconSelection.tsx similarity index 100% rename from src/components/IconSelection.tsx rename to ClientApp/src/components/IconSelection.tsx diff --git a/src/components/LanguageSelect.tsx b/ClientApp/src/components/LanguageSelect.tsx similarity index 100% rename from src/components/LanguageSelect.tsx rename to ClientApp/src/components/LanguageSelect.tsx diff --git a/src/components/Link.astro b/ClientApp/src/components/Link.astro similarity index 100% rename from src/components/Link.astro rename to ClientApp/src/components/Link.astro diff --git a/src/components/OnThisArticle.tsx b/ClientApp/src/components/OnThisArticle.tsx similarity index 100% rename from src/components/OnThisArticle.tsx rename to ClientApp/src/components/OnThisArticle.tsx diff --git a/src/components/OnThisPage.astro b/ClientApp/src/components/OnThisPage.astro similarity index 96% rename from src/components/OnThisPage.astro rename to ClientApp/src/components/OnThisPage.astro index f2e0bcab..6ea6ff36 100644 --- a/src/components/OnThisPage.astro +++ b/ClientApp/src/components/OnThisPage.astro @@ -1,157 +1,157 @@ - + diff --git a/src/components/PageHeader.astro b/ClientApp/src/components/PageHeader.astro similarity index 96% rename from src/components/PageHeader.astro rename to ClientApp/src/components/PageHeader.astro index 407807a0..e550f9e1 100644 --- a/src/components/PageHeader.astro +++ b/ClientApp/src/components/PageHeader.astro @@ -1,77 +1,77 @@ ---- -import { Breadcrumbs } from "astro-breadcrumbs"; -import Feedback from "./Feedback.astro"; -import Edit from "./EditPage.astro"; -import Share from "./Share.astro"; -import LanguageSelect from "./LanguageSelect"; -const currentLocale = Astro.currentLocale; -const liveUrl = Astro.url.pathname; - -import "astro-breadcrumbs/breadcrumbs.css"; -const ariaLabel = "Breadcrumb navigation and social links"; - -export interface Props { - filePath?: string; - metadata?: { - title?: string; - description?: string; - uid?: string; - }; - isLearnCategoryPage: boolean; -} - -const { filePath, metadata, isLearnCategoryPage } = Astro.props; -const { title, description, uid } = metadata ?? {}; -const isHelp = uid?.split("-")[0] == "help"; -const filePathUrl = filePath?.replace("external-content/superoffice-docs/",""); - ---- - -
-
-
- - - - -
- -
-
+--- +import { Breadcrumbs } from "astro-breadcrumbs"; +import Feedback from "./Feedback.astro"; +import Edit from "./EditPage.astro"; +import Share from "./Share.astro"; +import LanguageSelect from "./LanguageSelect"; +const currentLocale = Astro.currentLocale; +const liveUrl = Astro.url.pathname; + +import "astro-breadcrumbs/breadcrumbs.css"; +const ariaLabel = "Breadcrumb navigation and social links"; + +export interface Props { + filePath?: string; + metadata?: { + title?: string; + description?: string; + uid?: string; + }; + isLearnCategoryPage: boolean; +} + +const { filePath, metadata, isLearnCategoryPage } = Astro.props; +const { title, description, uid } = metadata ?? {}; +const isHelp = uid?.split("-")[0] == "help"; +const filePathUrl = filePath?.replace("external-content/superoffice-docs/",""); + +--- + +
+
+
+ + + + +
+ +
+
diff --git a/src/components/QuickAccessShortcuts.astro b/ClientApp/src/components/QuickAccessShortcuts.astro similarity index 100% rename from src/components/QuickAccessShortcuts.astro rename to ClientApp/src/components/QuickAccessShortcuts.astro diff --git a/src/components/Search.astro b/ClientApp/src/components/Search.astro similarity index 100% rename from src/components/Search.astro rename to ClientApp/src/components/Search.astro diff --git a/src/components/SearchPage.tsx b/ClientApp/src/components/SearchPage.tsx similarity index 100% rename from src/components/SearchPage.tsx rename to ClientApp/src/components/SearchPage.tsx diff --git a/src/components/Share.astro b/ClientApp/src/components/Share.astro similarity index 97% rename from src/components/Share.astro rename to ClientApp/src/components/Share.astro index 443947da..b8eb67fc 100644 --- a/src/components/Share.astro +++ b/ClientApp/src/components/Share.astro @@ -1,65 +1,65 @@ ---- -import { TwitterShareButton, LinkedInShareButton, FacebookShareButton, EmailShareButton } from "astro-social-share"; - -const { description, title } = Astro.props; ---- - - - - - - +--- +import { TwitterShareButton, LinkedInShareButton, FacebookShareButton, EmailShareButton } from "astro-social-share"; + +const { description, title } = Astro.props; +--- + + + + + + diff --git a/src/components/SubCategoryCard.astro b/ClientApp/src/components/SubCategoryCard.astro similarity index 100% rename from src/components/SubCategoryCard.astro rename to ClientApp/src/components/SubCategoryCard.astro diff --git a/src/components/TableOfContentList.tsx b/ClientApp/src/components/TableOfContentList.tsx similarity index 100% rename from src/components/TableOfContentList.tsx rename to ClientApp/src/components/TableOfContentList.tsx diff --git a/src/components/YamlClass.astro b/ClientApp/src/components/YamlClass.astro similarity index 100% rename from src/components/YamlClass.astro rename to ClientApp/src/components/YamlClass.astro diff --git a/src/components/YamlItem.astro b/ClientApp/src/components/YamlItem.astro similarity index 100% rename from src/components/YamlItem.astro rename to ClientApp/src/components/YamlItem.astro diff --git a/src/components/YamlNamespace.astro b/ClientApp/src/components/YamlNamespace.astro similarity index 100% rename from src/components/YamlNamespace.astro rename to ClientApp/src/components/YamlNamespace.astro diff --git a/src/content.config.ts b/ClientApp/src/content.config.ts similarity index 100% rename from src/content.config.ts rename to ClientApp/src/content.config.ts diff --git a/src/content.schema.ts b/ClientApp/src/content.schema.ts similarity index 100% rename from src/content.schema.ts rename to ClientApp/src/content.schema.ts diff --git a/src/data/audience.ts b/ClientApp/src/data/audience.ts similarity index 97% rename from src/data/audience.ts rename to ClientApp/src/data/audience.ts index 0c2fbf69..c318ebf9 100644 --- a/src/data/audience.ts +++ b/ClientApp/src/data/audience.ts @@ -1,30 +1,30 @@ -const base = import.meta.env.BASE_URL; - -export const audienceTypes = { - audience: [ - { - "title": "SuperUser", - "description": "A person who has system administrative privilege's and special functional and data access rights for managing how SuperOffice behaves. The friend you need to tweak the system!", - "href": `${base}/en/learn/customization`, - "color": "bg-seaFoamGreen" - }, - { - "title": "Administrator", - "description": "A person who is primarily responsible for the setup, configuration, maintenance of operation of SuperOffice in an organization. The guy you call when shit hits the fan!", - "href": `${base}/en/onsite`, - "color": "bg-mistBlue" - }, - { - "title": "Consultant", - "description": "A person who works with companies to improve their use of SuperOffice to achieve business goals and an expert in all technical aspects of SuperOffice. Hired to provide advice, solve problems and increase efficiency.", - "href": `${base}/en/automation`, - "color": "bg-lightTealGray" - }, - { - "title": "Developer", - "description": "A software engineer responsible for the implementation of requirements for an application or integration, or provides advice (consultancy) as to how the an integration should be implemented using current industry trends.", - "href": `${base}/en/api`, - "color": "bg-deepTeal" - } - ], +const base = import.meta.env.BASE_URL; + +export const audienceTypes = { + audience: [ + { + "title": "SuperUser", + "description": "A person who has system administrative privilege's and special functional and data access rights for managing how SuperOffice behaves. The friend you need to tweak the system!", + "href": `${base}/en/learn/customization`, + "color": "bg-seaFoamGreen" + }, + { + "title": "Administrator", + "description": "A person who is primarily responsible for the setup, configuration, maintenance of operation of SuperOffice in an organization. The guy you call when shit hits the fan!", + "href": `${base}/en/onsite`, + "color": "bg-mistBlue" + }, + { + "title": "Consultant", + "description": "A person who works with companies to improve their use of SuperOffice to achieve business goals and an expert in all technical aspects of SuperOffice. Hired to provide advice, solve problems and increase efficiency.", + "href": `${base}/en/automation`, + "color": "bg-lightTealGray" + }, + { + "title": "Developer", + "description": "A software engineer responsible for the implementation of requirements for an application or integration, or provides advice (consultancy) as to how the an integration should be implemented using current industry trends.", + "href": `${base}/en/api`, + "color": "bg-deepTeal" + } + ], }; \ No newline at end of file diff --git a/src/data/navigation.ts b/ClientApp/src/data/navigation.ts similarity index 96% rename from src/data/navigation.ts rename to ClientApp/src/data/navigation.ts index 0952c6f8..cb008b1a 100644 --- a/src/data/navigation.ts +++ b/ClientApp/src/data/navigation.ts @@ -1,276 +1,276 @@ -const base = import.meta.env.BASE_URL; - - -export const headerData = { - links: [ - { - text: 'Learn', - href: "/en/learn" - }, - { - text: 'Areas', - links: [ - { - text: 'Company', - href: '/en/company', - }, - { - text: 'Contact', - href: '/en/contact', - }, - { - text: 'Diary', - href: '/en/diary', - }, - { - text: 'Document', - href: '/en/document', - }, - { - text: 'Email', - href: '/en/email', - }, - { - text: 'Project', - href: '/en/project', - }, - { - text: 'Request', - href: '/en/request', - }, - { - text: 'Sale', - href: '/en/sale', - }, - ], - }, - { - text: 'CRM Online', - href: '/en/online', - }, - { - text: 'CRM Onsite', - href: '/en/onsite', - }, - { - text: 'Developer Guide', - links: [ - { - text: 'Overview', - href: '/en/api', - }, - { - text: 'Introduction to APIs', - href: '/en/api/overview', - }, - { - text: 'Automaton / CRMScript', - href: '/en/automation', - }, - { - text: 'Configurable screens (Sales)', - href: '/en/ui/screen-designer/learn', - }, - { - text: 'Custom screens (Service)', - href: '/en/ui/blogic/custom-screens', - }, - { - text: 'Database overview', - href: '/en/database/getting-started', - }, - { - text: 'Developer Portal', - href: '/en/developer-portal', - }, - { - text: 'Search APIs', - href: '/en/api/netserver/search', - }, - { - text: 'Webhooks', - href: '/en/automation/webhook', - }, - { - text: 'Web Services', - href: '/en/api/netserver/web-services', - }, - ], - }, - ], -}; - -export const heroItems = { - links: [ - { - title: "Learn", - description: "Product knowledge-base to learn concepts, features and solve issues.", - icon: "mdi:learn-outline", - url: "/en/learn" - }, - { - title: "CRM Online", - description: "Learn all about SuperOffice CRM offering for the cloud.", - icon: "fluent:phone-laptop-32-regular", - url: "/en/online" - }, - { - title: "CRM Onsite", - description: "Learn how to install SuperOffice in your on premise organization.", - icon: "mdi:business", - url: "/en/onsite" - }, - { - title: "Release Notes", - description: "Contains the history of product and API changes.", - icon: "material-symbols-light:release-alert-outline", - url: "/release-notes" - }, - { - title: "SuperOffice APIs", - description: "Introduction to all extensibility and integration points.", - icon: "material-symbols-light:api", - url: "/en/api" - }, - { - title: "Developer Portal", - description: "Learn how to create online applications.", - icon: "material-symbols-light:developer-mode-tv-outline", - url: "/en/developer-portal" - }, - { - title: "Customer Service", - description: "Learn all about SuperOffice Service.", - icon: "material-symbols-light:support-agent-outline", - url: "/en/service" - }, - { - title: "Email and communication", - description: "Great customer relations start with great communication.", - icon: "mdi:email-outline", - url: "/en/email" - } - ], -}; - -export const areasOfInterest = { - "links": [ - { "text": "Admin", "href": "/en/admin/overview" }, - { "text": "Artificial Intelligence", "href": "/en/ai" }, - { "text": "Automation", "href": "/en/automation" }, - { "text": "Company", "href": "/en/company" }, - { "text": "Contact", "href": "/en/contact" }, - { "text": "CRMScript", "href": "/en/automation/crmscript" }, - { "text": "Customer Service", "href": "/en/service" }, - { "text": "Database Mirroring", "href": "/en/online/mirroring/overview" }, - { "text": "Diary", "href": "/en/diary" }, - { "text": "Document", "href": "/en/document" }, - { "text": "Globalization", "href": "/en/globalization-and-localization" }, - { "text": "Mobile", "href": "/en/mobile" }, - { "text": "Project", "href": "/en/project" }, - { "text": "Request Management", "href": "/en/request" }, - { "text": "Sale", "href": "/en/sale" }, - { "text": "Security", "href": "/en/security" }, - { "text": "Video Meetings", "href": "/en/diary/video-meeting" }, - { "text": "WebTools", "href": "/en/document/webtools" } - ] -}; - - -export const quickAccessShortcuts = { - cards: [ - { - title : "Getting Started", - subLinks : [ - { - title : "System requirements", - link : `${base}/en/onsite/requirements` - }, - { - title : "Security concerns", - link : `${base}/en/onsite/security` - }, - { - title : "Onsite topics", - link : `${base}/en/onsite` - }, - { - title : "Online migration", - link : `${base}/en/online/migrate` - } - ] - }, - { - title : "Installation", - subLinks : [ - { - title : "CRM Server", - link : `${base}/en/onsite/install/server` - }, - { - title : "Web applications", - link : `${base}/en/onsite/install/web-client` - }, - { - title : "Web tools", - link : `${base}/en/document/webtools` - }, - { - title : "Mobile application", - link : `${base}/en/mobile/overview` - } - ] - }, - { - title : "Configuration", - subLinks : [ - { - title : "NetServer Configuration", - link : `${base}/en/api/netserver/config` - }, - { - title : "Document template variables", - link : `${base}/en/document/templates/variables` - }, - { - title : "Service reply templates", - link : `${base}/en/request/reply-templates` - }, - { - title : "Batch task service", - link : `${base}/en/onsite/batch-task-server` - }, - { - title : "INI files", - link : `${base}/en/onsite/config` - } - ] - }, - { - title : "Online development", - subLinks : [ - { - title : "Register online developer account", - link : `${base}/en/onsite/requirements` - }, - { - title : "Developer portal", - link : `${base}/en/onsite/security` - }, - ] - }, - ] -}; - -export const footerData = { - links: [ - { text: 'SuperOffice', href: 'https://www.superoffice.com/' }, - { text: 'Community', href: 'https://community.superoffice.com' }, - { text: 'Release Notes', href: `${base}/release-notes` }, - { text: 'Privacy', href: 'https://www.superoffice.com/company/privacy/' }, - { text: 'Site feedback', href: 'https://github.com/SuperOfficeDocs/feedback/issues/new?title=Feedback%20for%20SuperOffice%20Docs&body=%0A%0A%5BEnter%20feedback%20here%5D%0A%0A%0A---%0A%23%23%23%23%20Document%20Details%0A%0A%E2%9A%A0%20*Do%20not%20edit%20this%20section.%20It%20is%20required%20for%20docs.superOffice.com%20%E2%9E%9F%20Docs%20Team%20processing.*%0A%0A*%20Content%20Source%3A%20%5BSuperOffice%20Docs%5D(https%3A%2F%2Fdocs.superoffice.com)'}, - { text: 'About', href: `${base}/about` }, - { text: 'Contribute', href:`${base}/contribute/overview`}, - { text: 'Back to top', href:'#'} - ], -}; +const base = import.meta.env.BASE_URL; + + +export const headerData = { + links: [ + { + text: 'Learn', + href: "/en/learn" + }, + { + text: 'Areas', + links: [ + { + text: 'Company', + href: '/en/company', + }, + { + text: 'Contact', + href: '/en/contact', + }, + { + text: 'Diary', + href: '/en/diary', + }, + { + text: 'Document', + href: '/en/document', + }, + { + text: 'Email', + href: '/en/email', + }, + { + text: 'Project', + href: '/en/project', + }, + { + text: 'Request', + href: '/en/request', + }, + { + text: 'Sale', + href: '/en/sale', + }, + ], + }, + { + text: 'CRM Online', + href: '/en/online', + }, + { + text: 'CRM Onsite', + href: '/en/onsite', + }, + { + text: 'Developer Guide', + links: [ + { + text: 'Overview', + href: '/en/api', + }, + { + text: 'Introduction to APIs', + href: '/en/api/overview', + }, + { + text: 'Automaton / CRMScript', + href: '/en/automation', + }, + { + text: 'Configurable screens (Sales)', + href: '/en/ui/screen-designer/learn', + }, + { + text: 'Custom screens (Service)', + href: '/en/ui/blogic/custom-screens', + }, + { + text: 'Database overview', + href: '/en/database/getting-started', + }, + { + text: 'Developer Portal', + href: '/en/developer-portal', + }, + { + text: 'Search APIs', + href: '/en/api/netserver/search', + }, + { + text: 'Webhooks', + href: '/en/automation/webhook', + }, + { + text: 'Web Services', + href: '/en/api/netserver/web-services', + }, + ], + }, + ], +}; + +export const heroItems = { + links: [ + { + title: "Learn", + description: "Product knowledge-base to learn concepts, features and solve issues.", + icon: "mdi:learn-outline", + url: "/en/learn" + }, + { + title: "CRM Online", + description: "Learn all about SuperOffice CRM offering for the cloud.", + icon: "fluent:phone-laptop-32-regular", + url: "/en/online" + }, + { + title: "CRM Onsite", + description: "Learn how to install SuperOffice in your on premise organization.", + icon: "mdi:business", + url: "/en/onsite" + }, + { + title: "Release Notes", + description: "Contains the history of product and API changes.", + icon: "material-symbols-light:release-alert-outline", + url: "/release-notes" + }, + { + title: "SuperOffice APIs", + description: "Introduction to all extensibility and integration points.", + icon: "material-symbols-light:api", + url: "/en/api" + }, + { + title: "Developer Portal", + description: "Learn how to create online applications.", + icon: "material-symbols-light:developer-mode-tv-outline", + url: "/en/developer-portal" + }, + { + title: "Customer Service", + description: "Learn all about SuperOffice Service.", + icon: "material-symbols-light:support-agent-outline", + url: "/en/service" + }, + { + title: "Email and communication", + description: "Great customer relations start with great communication.", + icon: "mdi:email-outline", + url: "/en/email" + } + ], +}; + +export const areasOfInterest = { + "links": [ + { "text": "Admin", "href": "/en/admin/overview" }, + { "text": "Artificial Intelligence", "href": "/en/ai" }, + { "text": "Automation", "href": "/en/automation" }, + { "text": "Company", "href": "/en/company" }, + { "text": "Contact", "href": "/en/contact" }, + { "text": "CRMScript", "href": "/en/automation/crmscript" }, + { "text": "Customer Service", "href": "/en/service" }, + { "text": "Database Mirroring", "href": "/en/online/mirroring/overview" }, + { "text": "Diary", "href": "/en/diary" }, + { "text": "Document", "href": "/en/document" }, + { "text": "Globalization", "href": "/en/globalization-and-localization" }, + { "text": "Mobile", "href": "/en/mobile" }, + { "text": "Project", "href": "/en/project" }, + { "text": "Request Management", "href": "/en/request" }, + { "text": "Sale", "href": "/en/sale" }, + { "text": "Security", "href": "/en/security" }, + { "text": "Video Meetings", "href": "/en/diary/video-meeting" }, + { "text": "WebTools", "href": "/en/document/webtools" } + ] +}; + + +export const quickAccessShortcuts = { + cards: [ + { + title : "Getting Started", + subLinks : [ + { + title : "System requirements", + link : `${base}/en/onsite/requirements` + }, + { + title : "Security concerns", + link : `${base}/en/onsite/security` + }, + { + title : "Onsite topics", + link : `${base}/en/onsite` + }, + { + title : "Online migration", + link : `${base}/en/online/migrate` + } + ] + }, + { + title : "Installation", + subLinks : [ + { + title : "CRM Server", + link : `${base}/en/onsite/install/server` + }, + { + title : "Web applications", + link : `${base}/en/onsite/install/web-client` + }, + { + title : "Web tools", + link : `${base}/en/document/webtools` + }, + { + title : "Mobile application", + link : `${base}/en/mobile/overview` + } + ] + }, + { + title : "Configuration", + subLinks : [ + { + title : "NetServer Configuration", + link : `${base}/en/api/netserver/config` + }, + { + title : "Document template variables", + link : `${base}/en/document/templates/variables` + }, + { + title : "Service reply templates", + link : `${base}/en/request/reply-templates` + }, + { + title : "Batch task service", + link : `${base}/en/onsite/batch-task-server` + }, + { + title : "INI files", + link : `${base}/en/onsite/config` + } + ] + }, + { + title : "Online development", + subLinks : [ + { + title : "Register online developer account", + link : `${base}/en/onsite/requirements` + }, + { + title : "Developer portal", + link : `${base}/en/onsite/security` + }, + ] + }, + ] +}; + +export const footerData = { + links: [ + { text: 'SuperOffice', href: 'https://www.superoffice.com/' }, + { text: 'Community', href: 'https://community.superoffice.com' }, + { text: 'Release Notes', href: `${base}/release-notes` }, + { text: 'Privacy', href: 'https://www.superoffice.com/company/privacy/' }, + { text: 'Site feedback', href: 'https://github.com/SuperOfficeDocs/feedback/issues/new?title=Feedback%20for%20SuperOffice%20Docs&body=%0A%0A%5BEnter%20feedback%20here%5D%0A%0A%0A---%0A%23%23%23%23%20Document%20Details%0A%0A%E2%9A%A0%20*Do%20not%20edit%20this%20section.%20It%20is%20required%20for%20docs.superOffice.com%20%E2%9E%9F%20Docs%20Team%20processing.*%0A%0A*%20Content%20Source%3A%20%5BSuperOffice%20Docs%5D(https%3A%2F%2Fdocs.superoffice.com)'}, + { text: 'About', href: `${base}/about` }, + { text: 'Contribute', href:`${base}/contribute/overview`}, + { text: 'Back to top', href:'#'} + ], +}; diff --git a/src/env.d.ts b/ClientApp/src/env.d.ts similarity index 100% rename from src/env.d.ts rename to ClientApp/src/env.d.ts diff --git a/src/layouts/Base.astro b/ClientApp/src/layouts/Base.astro similarity index 96% rename from src/layouts/Base.astro rename to ClientApp/src/layouts/Base.astro index 6da73419..35b60f67 100644 --- a/src/layouts/Base.astro +++ b/ClientApp/src/layouts/Base.astro @@ -1,43 +1,43 @@ ---- -import favIcon from "@assets/favicon.ico"; -import Header from "@components/Header.astro"; -import Footer from "@components/Footer"; -import { footerData, headerData } from "../data/navigation"; -import { ClientRouter } from "astro:transitions"; -import "@styles/main.css"; - -export interface Props { - metadata: { - title: string; - }; - lang: string; - scroll?: boolean; -} - -const { metadata, lang = "en", scroll = true } = Astro.props; ---- - - - - - - - - - - {metadata.title} - - - -
-
-
- -
-
-
- - +--- +import favIcon from "@assets/favicon.ico"; +import Header from "@components/Header.astro"; +import Footer from "@components/Footer"; +import { footerData, headerData } from "../data/navigation"; +import { ClientRouter } from "astro:transitions"; +import "@styles/main.css"; + +export interface Props { + metadata: { + title: string; + }; + lang: string; + scroll?: boolean; +} + +const { metadata, lang = "en", scroll = true } = Astro.props; +--- + + + + + + + + + + {metadata.title} + + + +
+
+
+ +
+
+
+ + diff --git a/src/layouts/CategoryLandingLayout.astro b/ClientApp/src/layouts/CategoryLandingLayout.astro similarity index 100% rename from src/layouts/CategoryLandingLayout.astro rename to ClientApp/src/layouts/CategoryLandingLayout.astro diff --git a/src/layouts/ContentLayout.astro b/ClientApp/src/layouts/ContentLayout.astro similarity index 96% rename from src/layouts/ContentLayout.astro rename to ClientApp/src/layouts/ContentLayout.astro index 08237cd1..50beecf6 100644 --- a/src/layouts/ContentLayout.astro +++ b/ClientApp/src/layouts/ContentLayout.astro @@ -1,81 +1,81 @@ ---- -import { type CollectionEntry, type DataEntryMap } from "astro:content"; -import type { TocData } from "~/types/TableOfContentTypes"; -import type { Heading } from "~/types/OnThisArticleTypes"; -import PageHeader from "@components/PageHeader.astro"; -import OnThisArticle from "@components/OnThisArticle"; -import TableOfContentList from "@components/TableOfContentList"; -import Base from "./Base.astro"; - -export interface Props { - /** Accept an entry from *any* collection our site defines */ - entry?: CollectionEntry; - toc: TocData; - isLearn?: boolean; - language?: string; - TOCBasePath?: string; - htmlEntry?: any; - headings: Heading[]; -} - -const { - entry, - toc, - isLearn = false, - language = "en", - TOCBasePath, - htmlEntry, - headings, -} = Astro.props; - -const { data: frontmatter, filePath, collection, id } = entry ?? htmlEntry; - -// Determine TOC path: use fixed segment for release notes, if a TOCBasePath is available, use it as TOCPath, otherwise build from language + category -const getTOCPath = (): string => { - if (TOCBasePath != undefined) return TOCBasePath; - else return `${language}/${isLearn ? "learn" : id.split("/")[0]}`; -}; - -const TOCPath = getTOCPath(); ---- - - -
- -
-
-
- - -
- -
-
- -
- +--- +import { type CollectionEntry, type DataEntryMap } from "astro:content"; +import type { TocData } from "~/types/TableOfContentTypes"; +import type { Heading } from "~/types/OnThisArticleTypes"; +import PageHeader from "@components/PageHeader.astro"; +import OnThisArticle from "@components/OnThisArticle"; +import TableOfContentList from "@components/TableOfContentList"; +import Base from "./Base.astro"; + +export interface Props { + /** Accept an entry from *any* collection our site defines */ + entry?: CollectionEntry; + toc: TocData; + isLearn?: boolean; + language?: string; + TOCBasePath?: string; + htmlEntry?: any; + headings: Heading[]; +} + +const { + entry, + toc, + isLearn = false, + language = "en", + TOCBasePath, + htmlEntry, + headings, +} = Astro.props; + +const { data: frontmatter, filePath, collection, id } = entry ?? htmlEntry; + +// Determine TOC path: use fixed segment for release notes, if a TOCBasePath is available, use it as TOCPath, otherwise build from language + category +const getTOCPath = (): string => { + if (TOCBasePath != undefined) return TOCBasePath; + else return `${language}/${isLearn ? "learn" : id.split("/")[0]}`; +}; + +const TOCPath = getTOCPath(); +--- + + +
+ +
+
+
+ + +
+ +
+
+ +
+ diff --git a/src/layouts/SubCategoryLandingLayout.astro b/ClientApp/src/layouts/SubCategoryLandingLayout.astro similarity index 100% rename from src/layouts/SubCategoryLandingLayout.astro rename to ClientApp/src/layouts/SubCategoryLandingLayout.astro diff --git a/src/layouts/YamlLayoutPage.astro b/ClientApp/src/layouts/YamlLayoutPage.astro similarity index 100% rename from src/layouts/YamlLayoutPage.astro rename to ClientApp/src/layouts/YamlLayoutPage.astro diff --git a/src/media/contribute/add-suggestion-icon.png b/ClientApp/src/media/contribute/add-suggestion-icon.png similarity index 100% rename from src/media/contribute/add-suggestion-icon.png rename to ClientApp/src/media/contribute/add-suggestion-icon.png diff --git a/src/media/contribute/checkout-pr.png b/ClientApp/src/media/contribute/checkout-pr.png similarity index 100% rename from src/media/contribute/checkout-pr.png rename to ClientApp/src/media/contribute/checkout-pr.png diff --git a/src/media/contribute/comment.png b/ClientApp/src/media/contribute/comment.png similarity index 100% rename from src/media/contribute/comment.png rename to ClientApp/src/media/contribute/comment.png diff --git a/src/media/contribute/commit-suggestion.png b/ClientApp/src/media/contribute/commit-suggestion.png similarity index 100% rename from src/media/contribute/commit-suggestion.png rename to ClientApp/src/media/contribute/commit-suggestion.png diff --git a/src/media/contribute/commit-to-patch.png b/ClientApp/src/media/contribute/commit-to-patch.png similarity index 100% rename from src/media/contribute/commit-to-patch.png rename to ClientApp/src/media/contribute/commit-to-patch.png diff --git a/src/media/contribute/conversation-view-changes.png b/ClientApp/src/media/contribute/conversation-view-changes.png similarity index 100% rename from src/media/contribute/conversation-view-changes.png rename to ClientApp/src/media/contribute/conversation-view-changes.png diff --git a/src/media/contribute/copy-branch-name.png b/ClientApp/src/media/contribute/copy-branch-name.png similarity index 100% rename from src/media/contribute/copy-branch-name.png rename to ClientApp/src/media/contribute/copy-branch-name.png diff --git a/src/media/contribute/copy-path.png b/ClientApp/src/media/contribute/copy-path.png similarity index 100% rename from src/media/contribute/copy-path.png rename to ClientApp/src/media/contribute/copy-path.png diff --git a/src/media/contribute/create-issue-on-github.png b/ClientApp/src/media/contribute/create-issue-on-github.png similarity index 100% rename from src/media/contribute/create-issue-on-github.png rename to ClientApp/src/media/contribute/create-issue-on-github.png diff --git a/src/media/contribute/create-patch.png b/ClientApp/src/media/contribute/create-patch.png similarity index 100% rename from src/media/contribute/create-patch.png rename to ClientApp/src/media/contribute/create-patch.png diff --git a/src/media/contribute/create-pull-request-on-github.png b/ClientApp/src/media/contribute/create-pull-request-on-github.png similarity index 100% rename from src/media/contribute/create-pull-request-on-github.png rename to ClientApp/src/media/contribute/create-pull-request-on-github.png diff --git a/src/media/contribute/edit-article-on-github.png b/ClientApp/src/media/contribute/edit-article-on-github.png similarity index 100% rename from src/media/contribute/edit-article-on-github.png rename to ClientApp/src/media/contribute/edit-article-on-github.png diff --git a/src/media/contribute/edit-file-in-pr.png b/ClientApp/src/media/contribute/edit-file-in-pr.png similarity index 100% rename from src/media/contribute/edit-file-in-pr.png rename to ClientApp/src/media/contribute/edit-file-in-pr.png diff --git a/src/media/contribute/edit-in-patch.png b/ClientApp/src/media/contribute/edit-in-patch.png similarity index 100% rename from src/media/contribute/edit-in-patch.png rename to ClientApp/src/media/contribute/edit-in-patch.png diff --git a/src/media/contribute/edit-markdown-on-github.png b/ClientApp/src/media/contribute/edit-markdown-on-github.png similarity index 100% rename from src/media/contribute/edit-markdown-on-github.png rename to ClientApp/src/media/contribute/edit-markdown-on-github.png diff --git a/src/media/contribute/enter-suggestion.png b/ClientApp/src/media/contribute/enter-suggestion.png similarity index 100% rename from src/media/contribute/enter-suggestion.png rename to ClientApp/src/media/contribute/enter-suggestion.png diff --git a/src/media/contribute/fork-repo-on-github.png b/ClientApp/src/media/contribute/fork-repo-on-github.png similarity index 100% rename from src/media/contribute/fork-repo-on-github.png rename to ClientApp/src/media/contribute/fork-repo-on-github.png diff --git a/src/media/contribute/gitbash-pull.png b/ClientApp/src/media/contribute/gitbash-pull.png similarity index 100% rename from src/media/contribute/gitbash-pull.png rename to ClientApp/src/media/contribute/gitbash-pull.png diff --git a/src/media/contribute/github-clone.png b/ClientApp/src/media/contribute/github-clone.png similarity index 100% rename from src/media/contribute/github-clone.png rename to ClientApp/src/media/contribute/github-clone.png diff --git a/src/media/contribute/github-create-pr.png b/ClientApp/src/media/contribute/github-create-pr.png similarity index 100% rename from src/media/contribute/github-create-pr.png rename to ClientApp/src/media/contribute/github-create-pr.png diff --git a/src/media/contribute/github-open-pr.png b/ClientApp/src/media/contribute/github-open-pr.png similarity index 100% rename from src/media/contribute/github-open-pr.png rename to ClientApp/src/media/contribute/github-open-pr.png diff --git a/src/media/contribute/how-to-create-tutorial-a-overview.png b/ClientApp/src/media/contribute/how-to-create-tutorial-a-overview.png similarity index 100% rename from src/media/contribute/how-to-create-tutorial-a-overview.png rename to ClientApp/src/media/contribute/how-to-create-tutorial-a-overview.png diff --git a/src/media/contribute/line-comment.png b/ClientApp/src/media/contribute/line-comment.png similarity index 100% rename from src/media/contribute/line-comment.png rename to ClientApp/src/media/contribute/line-comment.png diff --git a/src/media/contribute/mdlint-list-hover.png b/ClientApp/src/media/contribute/mdlint-list-hover.png similarity index 100% rename from src/media/contribute/mdlint-list-hover.png rename to ClientApp/src/media/contribute/mdlint-list-hover.png diff --git a/src/media/contribute/mdlint-list-quickfix.png b/ClientApp/src/media/contribute/mdlint-list-quickfix.png similarity index 100% rename from src/media/contribute/mdlint-list-quickfix.png rename to ClientApp/src/media/contribute/mdlint-list-quickfix.png diff --git a/src/media/contribute/mdlint-list-warning.png b/ClientApp/src/media/contribute/mdlint-list-warning.png similarity index 100% rename from src/media/contribute/mdlint-list-warning.png rename to ClientApp/src/media/contribute/mdlint-list-warning.png diff --git a/src/media/contribute/plain-action-buttons.PNG b/ClientApp/src/media/contribute/plain-action-buttons.PNG similarity index 100% rename from src/media/contribute/plain-action-buttons.PNG rename to ClientApp/src/media/contribute/plain-action-buttons.PNG diff --git a/src/media/contribute/preview-suggestion.png b/ClientApp/src/media/contribute/preview-suggestion.png similarity index 100% rename from src/media/contribute/preview-suggestion.png rename to ClientApp/src/media/contribute/preview-suggestion.png diff --git a/src/media/contribute/propose-changes-on-github.png b/ClientApp/src/media/contribute/propose-changes-on-github.png similarity index 100% rename from src/media/contribute/propose-changes-on-github.png rename to ClientApp/src/media/contribute/propose-changes-on-github.png diff --git a/src/media/contribute/review-changes.png b/ClientApp/src/media/contribute/review-changes.png similarity index 100% rename from src/media/contribute/review-changes.png rename to ClientApp/src/media/contribute/review-changes.png diff --git a/src/media/contribute/select-branch.png b/ClientApp/src/media/contribute/select-branch.png similarity index 100% rename from src/media/contribute/select-branch.png rename to ClientApp/src/media/contribute/select-branch.png diff --git a/src/media/contribute/submit-review.png b/ClientApp/src/media/contribute/submit-review.png similarity index 100% rename from src/media/contribute/submit-review.png rename to ClientApp/src/media/contribute/submit-review.png diff --git a/src/media/contribute/vscode-branch-menu.png b/ClientApp/src/media/contribute/vscode-branch-menu.png similarity index 100% rename from src/media/contribute/vscode-branch-menu.png rename to ClientApp/src/media/contribute/vscode-branch-menu.png diff --git a/src/media/contribute/vscode-branches.png b/ClientApp/src/media/contribute/vscode-branches.png similarity index 100% rename from src/media/contribute/vscode-branches.png rename to ClientApp/src/media/contribute/vscode-branches.png diff --git a/src/media/contribute/vscode-clone.png b/ClientApp/src/media/contribute/vscode-clone.png similarity index 100% rename from src/media/contribute/vscode-clone.png rename to ClientApp/src/media/contribute/vscode-clone.png diff --git a/src/media/contribute/vscode-commit-menu.png b/ClientApp/src/media/contribute/vscode-commit-menu.png similarity index 100% rename from src/media/contribute/vscode-commit-menu.png rename to ClientApp/src/media/contribute/vscode-commit-menu.png diff --git a/src/media/contribute/vscode-confirm-commit.png b/ClientApp/src/media/contribute/vscode-confirm-commit.png similarity index 100% rename from src/media/contribute/vscode-confirm-commit.png rename to ClientApp/src/media/contribute/vscode-confirm-commit.png diff --git a/src/media/contribute/vscode-create-branch.png b/ClientApp/src/media/contribute/vscode-create-branch.png similarity index 100% rename from src/media/contribute/vscode-create-branch.png rename to ClientApp/src/media/contribute/vscode-create-branch.png diff --git a/src/media/contribute/vscode-push-commit.png b/ClientApp/src/media/contribute/vscode-push-commit.png similarity index 100% rename from src/media/contribute/vscode-push-commit.png rename to ClientApp/src/media/contribute/vscode-push-commit.png diff --git a/src/media/contribute/vscode-push.png b/ClientApp/src/media/contribute/vscode-push.png similarity index 100% rename from src/media/contribute/vscode-push.png rename to ClientApp/src/media/contribute/vscode-push.png diff --git a/src/media/contribute/vscode-source-control-menu.png b/ClientApp/src/media/contribute/vscode-source-control-menu.png similarity index 100% rename from src/media/contribute/vscode-source-control-menu.png rename to ClientApp/src/media/contribute/vscode-source-control-menu.png diff --git a/src/media/contribute/vscode-stage-all-changes.png b/ClientApp/src/media/contribute/vscode-stage-all-changes.png similarity index 100% rename from src/media/contribute/vscode-stage-all-changes.png rename to ClientApp/src/media/contribute/vscode-stage-all-changes.png diff --git a/src/media/contribute/vscode-stash.png b/ClientApp/src/media/contribute/vscode-stash.png similarity index 100% rename from src/media/contribute/vscode-stash.png rename to ClientApp/src/media/contribute/vscode-stash.png diff --git a/src/media/contribute/vscode-switch-branch.png b/ClientApp/src/media/contribute/vscode-switch-branch.png similarity index 100% rename from src/media/contribute/vscode-switch-branch.png rename to ClientApp/src/media/contribute/vscode-switch-branch.png diff --git a/src/media/contribute/vscode-sync-changes.png b/ClientApp/src/media/contribute/vscode-sync-changes.png similarity index 100% rename from src/media/contribute/vscode-sync-changes.png rename to ClientApp/src/media/contribute/vscode-sync-changes.png diff --git a/src/media/edit-action-button.png b/ClientApp/src/media/edit-action-button.png similarity index 100% rename from src/media/edit-action-button.png rename to ClientApp/src/media/edit-action-button.png diff --git a/src/media/feedback-action-button.png b/ClientApp/src/media/feedback-action-button.png similarity index 100% rename from src/media/feedback-action-button.png rename to ClientApp/src/media/feedback-action-button.png diff --git a/src/media/github-superoffice-docs.png b/ClientApp/src/media/github-superoffice-docs.png similarity index 100% rename from src/media/github-superoffice-docs.png rename to ClientApp/src/media/github-superoffice-docs.png diff --git a/src/media/mobile/mobile-add-email-address.png b/ClientApp/src/media/mobile/mobile-add-email-address.png similarity index 100% rename from src/media/mobile/mobile-add-email-address.png rename to ClientApp/src/media/mobile/mobile-add-email-address.png diff --git a/src/media/mobile/mobile-add-email-as-attendee.png b/ClientApp/src/media/mobile/mobile-add-email-as-attendee.png similarity index 100% rename from src/media/mobile/mobile-add-email-as-attendee.png rename to ClientApp/src/media/mobile/mobile-add-email-as-attendee.png diff --git a/src/media/mobile/mobile-crm-follow-up-description-to-title-agenda-internal-notes.png b/ClientApp/src/media/mobile/mobile-crm-follow-up-description-to-title-agenda-internal-notes.png similarity index 100% rename from src/media/mobile/mobile-crm-follow-up-description-to-title-agenda-internal-notes.png rename to ClientApp/src/media/mobile/mobile-crm-follow-up-description-to-title-agenda-internal-notes.png diff --git a/src/media/mobile/mobile-crm-follow-up-show-links.png b/ClientApp/src/media/mobile/mobile-crm-follow-up-show-links.png similarity index 100% rename from src/media/mobile/mobile-crm-follow-up-show-links.png rename to ClientApp/src/media/mobile/mobile-crm-follow-up-show-links.png diff --git a/src/media/mobile/mobile-crm-gif-prev-02.gif b/ClientApp/src/media/mobile/mobile-crm-gif-prev-02.gif similarity index 100% rename from src/media/mobile/mobile-crm-gif-prev-02.gif rename to ClientApp/src/media/mobile/mobile-crm-gif-prev-02.gif diff --git a/src/media/share-action-button.png b/ClientApp/src/media/share-action-button.png similarity index 100% rename from src/media/share-action-button.png rename to ClientApp/src/media/share-action-button.png diff --git a/src/pages/404.astro b/ClientApp/src/pages/404.astro similarity index 97% rename from src/pages/404.astro rename to ClientApp/src/pages/404.astro index 5660b10c..b1442ba8 100644 --- a/src/pages/404.astro +++ b/ClientApp/src/pages/404.astro @@ -1,33 +1,33 @@ ---- -import Layout from "@layouts/Base.astro"; -import GradientBanner from "@components/GradientBanner.astro"; -import { Image } from "astro:assets"; -import hugoImg from "@assets/404_Hugo.svg"; -const title = `Error 404`; -const base = import.meta.env.BASE_URL; -const liveUrl = Astro.url.toString(); ---- - - -
- -
- Hugo - the SuperOffice owl mascot -
-
-
-

- - 404! -

-

- Sorry, the page you requested was not found. -

-

{liveUrl}

- - Back to homepage - -
-
-
-
+--- +import Layout from "@layouts/Base.astro"; +import GradientBanner from "@components/GradientBanner.astro"; +import { Image } from "astro:assets"; +import hugoImg from "@assets/404_Hugo.svg"; +const title = `Error 404`; +const base = import.meta.env.BASE_URL; +const liveUrl = Astro.url.toString(); +--- + + +
+ +
+ Hugo - the SuperOffice owl mascot +
+
+
+

+ + 404! +

+

+ Sorry, the page you requested was not found. +

+

{liveUrl}

+ + Back to homepage + +
+
+
+
diff --git a/src/pages/_migrate.md b/ClientApp/src/pages/_migrate.md similarity index 93% rename from src/pages/_migrate.md rename to ClientApp/src/pages/_migrate.md index a2345e66..86109cd1 100644 --- a/src/pages/_migrate.md +++ b/ClientApp/src/pages/_migrate.md @@ -1,53 +1,53 @@ -# Hacks for migrating Markdown content - -* Turn off Learn lint - -## Frontmatter - -* Add layout prop (if using regex do this before commenting out H1) - -## Admonitions - -Regex search for - -```html -> \[!(NOTE|TIP|CAUTION|WARNING)\]\s*(?:\r?\n)(?:(?:> (.*))(?:\r?\n|$))+ -``` - -Replace with - -```html -:::note{.\L$1} -$2 -::: - -``` - -(yes blank line below ending triple colon) - -Need a custom run to deal with indented notes! - -## Comment out H1 - -Regex search for - -```html -^# (.*) -``` - -Exclude content code samples, then replace with - -```html - -``` - -## Headings - -Change self-closing anchor tags to `` - -(NA. Solved in issue 1285) - -## Media - -* Move images to central folder -* Update paths accordingly +# Hacks for migrating Markdown content + +* Turn off Learn lint + +## Frontmatter + +* Add layout prop (if using regex do this before commenting out H1) + +## Admonitions + +Regex search for + +```html +> \[!(NOTE|TIP|CAUTION|WARNING)\]\s*(?:\r?\n)(?:(?:> (.*))(?:\r?\n|$))+ +``` + +Replace with + +```html +:::note{.\L$1} +$2 +::: + +``` + +(yes blank line below ending triple colon) + +Need a custom run to deal with indented notes! + +## Comment out H1 + +Regex search for + +```html +^# (.*) +``` + +Exclude content code samples, then replace with + +```html + +``` + +## Headings + +Change self-closing anchor tags to `` + +(NA. Solved in issue 1285) + +## Media + +* Move images to central folder +* Update paths accordingly diff --git a/src/pages/contribute/[...slug].astro b/ClientApp/src/pages/contribute/[...slug].astro similarity index 100% rename from src/pages/contribute/[...slug].astro rename to ClientApp/src/pages/contribute/[...slug].astro diff --git a/src/pages/contribute/index.astro b/ClientApp/src/pages/contribute/index.astro similarity index 100% rename from src/pages/contribute/index.astro rename to ClientApp/src/pages/contribute/index.astro diff --git a/src/pages/da/[...slug].astro b/ClientApp/src/pages/da/[...slug].astro similarity index 100% rename from src/pages/da/[...slug].astro rename to ClientApp/src/pages/da/[...slug].astro diff --git a/src/pages/da/[...subcategory].astro b/ClientApp/src/pages/da/[...subcategory].astro similarity index 100% rename from src/pages/da/[...subcategory].astro rename to ClientApp/src/pages/da/[...subcategory].astro diff --git a/src/pages/da/[category].astro b/ClientApp/src/pages/da/[category].astro similarity index 100% rename from src/pages/da/[category].astro rename to ClientApp/src/pages/da/[category].astro diff --git a/src/pages/de/[...slug].astro b/ClientApp/src/pages/de/[...slug].astro similarity index 100% rename from src/pages/de/[...slug].astro rename to ClientApp/src/pages/de/[...slug].astro diff --git a/src/pages/de/[...subcategory].astro b/ClientApp/src/pages/de/[...subcategory].astro similarity index 100% rename from src/pages/de/[...subcategory].astro rename to ClientApp/src/pages/de/[...subcategory].astro diff --git a/src/pages/de/[category].astro b/ClientApp/src/pages/de/[category].astro similarity index 100% rename from src/pages/de/[category].astro rename to ClientApp/src/pages/de/[category].astro diff --git a/src/pages/en/[...category].astro b/ClientApp/src/pages/en/[...category].astro similarity index 100% rename from src/pages/en/[...category].astro rename to ClientApp/src/pages/en/[...category].astro diff --git a/src/pages/en/[...slug].astro b/ClientApp/src/pages/en/[...slug].astro similarity index 100% rename from src/pages/en/[...slug].astro rename to ClientApp/src/pages/en/[...slug].astro diff --git a/src/pages/en/[...subcategory].astro b/ClientApp/src/pages/en/[...subcategory].astro similarity index 100% rename from src/pages/en/[...subcategory].astro rename to ClientApp/src/pages/en/[...subcategory].astro diff --git a/src/pages/en/api/[...slug].astro b/ClientApp/src/pages/en/api/[...slug].astro similarity index 100% rename from src/pages/en/api/[...slug].astro rename to ClientApp/src/pages/en/api/[...slug].astro diff --git a/src/pages/en/api/reference/[...slug].astro b/ClientApp/src/pages/en/api/reference/[...slug].astro similarity index 100% rename from src/pages/en/api/reference/[...slug].astro rename to ClientApp/src/pages/en/api/reference/[...slug].astro diff --git a/src/pages/en/api/reference/netserver/core/[...slug].astro b/ClientApp/src/pages/en/api/reference/netserver/core/[...slug].astro similarity index 100% rename from src/pages/en/api/reference/netserver/core/[...slug].astro rename to ClientApp/src/pages/en/api/reference/netserver/core/[...slug].astro diff --git a/src/pages/en/api/reference/netserver/services/[...slug].astro b/ClientApp/src/pages/en/api/reference/netserver/services/[...slug].astro similarity index 100% rename from src/pages/en/api/reference/netserver/services/[...slug].astro rename to ClientApp/src/pages/en/api/reference/netserver/services/[...slug].astro diff --git a/src/pages/en/api/reference/web/[...slug].astro b/ClientApp/src/pages/en/api/reference/web/[...slug].astro similarity index 100% rename from src/pages/en/api/reference/web/[...slug].astro rename to ClientApp/src/pages/en/api/reference/web/[...slug].astro diff --git a/src/pages/en/api/reference/webapi/[...slug].astro b/ClientApp/src/pages/en/api/reference/webapi/[...slug].astro similarity index 100% rename from src/pages/en/api/reference/webapi/[...slug].astro rename to ClientApp/src/pages/en/api/reference/webapi/[...slug].astro diff --git a/src/pages/en/automation/crmscript/[...slug].astro b/ClientApp/src/pages/en/automation/crmscript/[...slug].astro similarity index 100% rename from src/pages/en/automation/crmscript/[...slug].astro rename to ClientApp/src/pages/en/automation/crmscript/[...slug].astro diff --git a/src/pages/en/automation/netserver-scripting/[...slug].astro b/ClientApp/src/pages/en/automation/netserver-scripting/[...slug].astro similarity index 100% rename from src/pages/en/automation/netserver-scripting/[...slug].astro rename to ClientApp/src/pages/en/automation/netserver-scripting/[...slug].astro diff --git a/src/pages/index.astro b/ClientApp/src/pages/index.astro similarity index 100% rename from src/pages/index.astro rename to ClientApp/src/pages/index.astro diff --git a/src/pages/nl/[...slug].astro b/ClientApp/src/pages/nl/[...slug].astro similarity index 100% rename from src/pages/nl/[...slug].astro rename to ClientApp/src/pages/nl/[...slug].astro diff --git a/src/pages/nl/[...subcategory].astro b/ClientApp/src/pages/nl/[...subcategory].astro similarity index 100% rename from src/pages/nl/[...subcategory].astro rename to ClientApp/src/pages/nl/[...subcategory].astro diff --git a/src/pages/nl/[category].astro b/ClientApp/src/pages/nl/[category].astro similarity index 100% rename from src/pages/nl/[category].astro rename to ClientApp/src/pages/nl/[category].astro diff --git a/src/pages/no/[...slug].astro b/ClientApp/src/pages/no/[...slug].astro similarity index 100% rename from src/pages/no/[...slug].astro rename to ClientApp/src/pages/no/[...slug].astro diff --git a/src/pages/no/[...subcategory].astro b/ClientApp/src/pages/no/[...subcategory].astro similarity index 100% rename from src/pages/no/[...subcategory].astro rename to ClientApp/src/pages/no/[...subcategory].astro diff --git a/src/pages/no/[category].astro b/ClientApp/src/pages/no/[category].astro similarity index 100% rename from src/pages/no/[category].astro rename to ClientApp/src/pages/no/[category].astro diff --git a/src/pages/release-notes/[...slug].astro b/ClientApp/src/pages/release-notes/[...slug].astro similarity index 96% rename from src/pages/release-notes/[...slug].astro rename to ClientApp/src/pages/release-notes/[...slug].astro index 138a64a2..1b6a6b6c 100644 --- a/src/pages/release-notes/[...slug].astro +++ b/ClientApp/src/pages/release-notes/[...slug].astro @@ -1,43 +1,43 @@ ---- -import { render } from "astro:content"; -import { getCollection } from "astro:content"; -import { stripFilePathAndExtension } from "@utils/slugUtils"; -import { getTocByPath } from "@utils/tocUtils"; -import ContentLayout from "@layouts/ContentLayout.astro"; - -//const language = "en" as const; - -const tocData = await getTocByPath("superoffice-docs/release-notes"); - -// Generate static paths from release-notes collection -export async function getStaticPaths() { - const collection = "release-notes"; - const docEntries = await getCollection(collection, ({ data }) => { - return !(data as { redirect_url?: string }).redirect_url; - }); - - return docEntries.map((entry) => { - const generatedSlug = stripFilePathAndExtension( - entry.filePath!, - `superoffice-docs/${collection}` - ); - - return { - params: { slug: generatedSlug }, - props: { entry }, - }; - }); -} - -const { entry } = Astro.props; -const { Content, headings } = await render(entry); ---- - - - {Content && } - +--- +import { render } from "astro:content"; +import { getCollection } from "astro:content"; +import { stripFilePathAndExtension } from "@utils/slugUtils"; +import { getTocByPath } from "@utils/tocUtils"; +import ContentLayout from "@layouts/ContentLayout.astro"; + +//const language = "en" as const; + +const tocData = await getTocByPath("superoffice-docs/release-notes"); + +// Generate static paths from release-notes collection +export async function getStaticPaths() { + const collection = "release-notes"; + const docEntries = await getCollection(collection, ({ data }) => { + return !(data as { redirect_url?: string }).redirect_url; + }); + + return docEntries.map((entry) => { + const generatedSlug = stripFilePathAndExtension( + entry.filePath!, + `superoffice-docs/${collection}` + ); + + return { + params: { slug: generatedSlug }, + props: { entry }, + }; + }); +} + +const { entry } = Astro.props; +const { Content, headings } = await render(entry); +--- + + + {Content && } + diff --git a/src/pages/search.astro b/ClientApp/src/pages/search.astro similarity index 100% rename from src/pages/search.astro rename to ClientApp/src/pages/search.astro diff --git a/src/pages/sv/[...slug].astro b/ClientApp/src/pages/sv/[...slug].astro similarity index 100% rename from src/pages/sv/[...slug].astro rename to ClientApp/src/pages/sv/[...slug].astro diff --git a/src/pages/sv/[...subcategory].astro b/ClientApp/src/pages/sv/[...subcategory].astro similarity index 100% rename from src/pages/sv/[...subcategory].astro rename to ClientApp/src/pages/sv/[...subcategory].astro diff --git a/src/pages/sv/[category].astro b/ClientApp/src/pages/sv/[category].astro similarity index 100% rename from src/pages/sv/[category].astro rename to ClientApp/src/pages/sv/[category].astro diff --git a/src/plugins/AddIncludesToMarkdown.js b/ClientApp/src/plugins/AddIncludesToMarkdown.js similarity index 100% rename from src/plugins/AddIncludesToMarkdown.js rename to ClientApp/src/plugins/AddIncludesToMarkdown.js diff --git a/src/plugins/RestyleDirectives.js b/ClientApp/src/plugins/RestyleDirectives.js similarity index 100% rename from src/plugins/RestyleDirectives.js rename to ClientApp/src/plugins/RestyleDirectives.js diff --git a/src/reuse/code/hello-world.cs b/ClientApp/src/reuse/code/hello-world.cs similarity index 97% rename from src/reuse/code/hello-world.cs rename to ClientApp/src/reuse/code/hello-world.cs index 0f16fe9a..50d26c67 100644 --- a/src/reuse/code/hello-world.cs +++ b/ClientApp/src/reuse/code/hello-world.cs @@ -1,4 +1,4 @@ -Console.WriteLine("Hello World!"); - -string greeting = " Hello World! "; +Console.WriteLine("Hello World!"); + +string greeting = " Hello World! "; Console.WriteLine($"[{greeting}]"); \ No newline at end of file diff --git a/src/scripts/getLastUpdatedFromGitHub.js b/ClientApp/src/scripts/getLastUpdatedFromGitHub.js similarity index 97% rename from src/scripts/getLastUpdatedFromGitHub.js rename to ClientApp/src/scripts/getLastUpdatedFromGitHub.js index 7a70a5e0..c9baf104 100644 --- a/src/scripts/getLastUpdatedFromGitHub.js +++ b/ClientApp/src/scripts/getLastUpdatedFromGitHub.js @@ -1,28 +1,28 @@ -import fetch from 'node-fetch'; - -const GITHUB_API_URL = 'https://api.github.com'; -const REPO_OWNER = 'digitaldiina'; -const REPO_NAME = 'docs-next'; -const GITHUB_TOKEN = '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'; - -export async function getLastUpdatedFromGitHub(filePath) { - const url = `${GITHUB_API_URL}/repos/${REPO_OWNER}/${REPO_NAME}/commits?path=${filePath}&per_page=1`; - - try { - const response = await fetch(url, { - headers: { - 'Accept': 'application/vnd.github.v3+json', - 'Authorization': `token ${GITHUB_TOKEN}`, - }, - }); - const data = await response.json(); - if (data && data[0] && data[0].commit && data[0].commit.committer) { - const lastUpdated = new Date(data[0].commit.committer.date).toLocaleDateString(); - return lastUpdated; - } - return null; - } catch (error) { - console.error('Error fetching last updated date from GitHub:', error); - return null; - } -} +import fetch from 'node-fetch'; + +const GITHUB_API_URL = 'https://api.github.com'; +const REPO_OWNER = 'digitaldiina'; +const REPO_NAME = 'docs-next'; +const GITHUB_TOKEN = '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'; + +export async function getLastUpdatedFromGitHub(filePath) { + const url = `${GITHUB_API_URL}/repos/${REPO_OWNER}/${REPO_NAME}/commits?path=${filePath}&per_page=1`; + + try { + const response = await fetch(url, { + headers: { + 'Accept': 'application/vnd.github.v3+json', + 'Authorization': `token ${GITHUB_TOKEN}`, + }, + }); + const data = await response.json(); + if (data && data[0] && data[0].commit && data[0].commit.committer) { + const lastUpdated = new Date(data[0].commit.committer.date).toLocaleDateString(); + return lastUpdated; + } + return null; + } catch (error) { + console.error('Error fetching last updated date from GitHub:', error); + return null; + } +} diff --git a/src/styles/IncludeDirectiveStyles.css b/ClientApp/src/styles/IncludeDirectiveStyles.css similarity index 100% rename from src/styles/IncludeDirectiveStyles.css rename to ClientApp/src/styles/IncludeDirectiveStyles.css diff --git a/src/styles/VideoEmbeddingStyles.css b/ClientApp/src/styles/VideoEmbeddingStyles.css similarity index 100% rename from src/styles/VideoEmbeddingStyles.css rename to ClientApp/src/styles/VideoEmbeddingStyles.css diff --git a/src/styles/main.css b/ClientApp/src/styles/main.css similarity index 94% rename from src/styles/main.css rename to ClientApp/src/styles/main.css index 11b271bd..5dfcd596 100644 --- a/src/styles/main.css +++ b/ClientApp/src/styles/main.css @@ -1,73 +1,73 @@ -@import "tailwindcss/base"; -@import "tailwindcss/components"; -@import "tailwindcss/utilities"; -@import "@phosphor-icons/web/regular"; -@import "./VideoEmbeddingStyles.css"; -@import "./IncludeDirectiveStyles.css"; -@import "./pagefind/customPagefindStyles.css"; - -body { - font-family: "Segoe UI", Tahoma, Helvetica, sans-serif; - font-size: 16px; -} - -body, -html { - margin: 0 auto; - width: 100%; - line-height: 1.5; -} - -* { - box-sizing: border-box; -} - -h1 { - margin: 1rem 0; - font-size: 2.5rem; -} - -.text-primary { - color: #0c5d58; -} - -.text-inverse { - color: #fff; -} - -.text-dark { - color: #222; -} - -[astro-icon].icon-light>* { - stroke-width: 1.2; -} - -[astro-icon].icon-bold>* { - stroke-width: 2.4; -} - -/* Add border to screenshots explicitly marked as such in the alt tag */ - -.article img[alt$="-screenshot"], -.tab-content img[alt$="-screenshot"] { - border: 2px solid #176457; - padding: 4px; - /* max-width: 600px; prevent image size issues on small screens */ - height: auto; - margin-top: 25px; - margin-bottom: 25px; -} - -/* Like -screenshot but no zoom and max height for images of mobile devices*/ - -.article img[alt$="-app-screen"], -.tab-content img[alt$="-app-screen"] { - border: 2px solid #176457; - padding: 4px; - max-height: 498px; - width: auto; - margin-top: 25px; - margin-bottom: 25px; -} - +@import "tailwindcss/base"; +@import "tailwindcss/components"; +@import "tailwindcss/utilities"; +@import "@phosphor-icons/web/regular"; +@import "./VideoEmbeddingStyles.css"; +@import "./IncludeDirectiveStyles.css"; +@import "./pagefind/customPagefindStyles.css"; + +body { + font-family: "Segoe UI", Tahoma, Helvetica, sans-serif; + font-size: 16px; +} + +body, +html { + margin: 0 auto; + width: 100%; + line-height: 1.5; +} + +* { + box-sizing: border-box; +} + +h1 { + margin: 1rem 0; + font-size: 2.5rem; +} + +.text-primary { + color: #0c5d58; +} + +.text-inverse { + color: #fff; +} + +.text-dark { + color: #222; +} + +[astro-icon].icon-light>* { + stroke-width: 1.2; +} + +[astro-icon].icon-bold>* { + stroke-width: 2.4; +} + +/* Add border to screenshots explicitly marked as such in the alt tag */ + +.article img[alt$="-screenshot"], +.tab-content img[alt$="-screenshot"] { + border: 2px solid #176457; + padding: 4px; + /* max-width: 600px; prevent image size issues on small screens */ + height: auto; + margin-top: 25px; + margin-bottom: 25px; +} + +/* Like -screenshot but no zoom and max height for images of mobile devices*/ + +.article img[alt$="-app-screen"], +.tab-content img[alt$="-app-screen"] { + border: 2px solid #176457; + padding: 4px; + max-height: 498px; + width: auto; + margin-top: 25px; + margin-bottom: 25px; +} + diff --git a/src/styles/pagefind/customPagefindStyles.css b/ClientApp/src/styles/pagefind/customPagefindStyles.css similarity index 100% rename from src/styles/pagefind/customPagefindStyles.css rename to ClientApp/src/styles/pagefind/customPagefindStyles.css diff --git a/src/styles/pagefind/ui.css b/ClientApp/src/styles/pagefind/ui.css similarity index 100% rename from src/styles/pagefind/ui.css rename to ClientApp/src/styles/pagefind/ui.css diff --git a/src/types/CategoryPageTypes.ts b/ClientApp/src/types/CategoryPageTypes.ts similarity index 100% rename from src/types/CategoryPageTypes.ts rename to ClientApp/src/types/CategoryPageTypes.ts diff --git a/src/types/DocsTypes.ts b/ClientApp/src/types/DocsTypes.ts similarity index 100% rename from src/types/DocsTypes.ts rename to ClientApp/src/types/DocsTypes.ts diff --git a/src/types/OnThisArticleTypes.ts b/ClientApp/src/types/OnThisArticleTypes.ts similarity index 100% rename from src/types/OnThisArticleTypes.ts rename to ClientApp/src/types/OnThisArticleTypes.ts diff --git a/src/types/SubCategoryPageTypes.ts b/ClientApp/src/types/SubCategoryPageTypes.ts similarity index 100% rename from src/types/SubCategoryPageTypes.ts rename to ClientApp/src/types/SubCategoryPageTypes.ts diff --git a/src/types/TableOfContentTypes.ts b/ClientApp/src/types/TableOfContentTypes.ts similarity index 100% rename from src/types/TableOfContentTypes.ts rename to ClientApp/src/types/TableOfContentTypes.ts diff --git a/src/types/WebAPITypes.ts b/ClientApp/src/types/WebAPITypes.ts similarity index 100% rename from src/types/WebAPITypes.ts rename to ClientApp/src/types/WebAPITypes.ts diff --git a/src/types/YamlManagedReferencesLayoutTypes.ts b/ClientApp/src/types/YamlManagedReferencesLayoutTypes.ts similarity index 100% rename from src/types/YamlManagedReferencesLayoutTypes.ts rename to ClientApp/src/types/YamlManagedReferencesLayoutTypes.ts diff --git a/src/types/YamlManagedReferencesTypes.ts b/ClientApp/src/types/YamlManagedReferencesTypes.ts similarity index 100% rename from src/types/YamlManagedReferencesTypes.ts rename to ClientApp/src/types/YamlManagedReferencesTypes.ts diff --git a/src/types/pagefind-default-ui.d.ts b/ClientApp/src/types/pagefind-default-ui.d.ts similarity index 100% rename from src/types/pagefind-default-ui.d.ts rename to ClientApp/src/types/pagefind-default-ui.d.ts diff --git a/src/types/pagefind.d.ts b/ClientApp/src/types/pagefind.d.ts similarity index 100% rename from src/types/pagefind.d.ts rename to ClientApp/src/types/pagefind.d.ts diff --git a/src/utils/contentUtils.ts b/ClientApp/src/utils/contentUtils.ts similarity index 100% rename from src/utils/contentUtils.ts rename to ClientApp/src/utils/contentUtils.ts diff --git a/src/utils/headerUtils.ts b/ClientApp/src/utils/headerUtils.ts similarity index 97% rename from src/utils/headerUtils.ts rename to ClientApp/src/utils/headerUtils.ts index 52185bbc..d8c72d72 100644 --- a/src/utils/headerUtils.ts +++ b/ClientApp/src/utils/headerUtils.ts @@ -1,39 +1,39 @@ -export const githubBaseUrl = 'https://github.com/SuperOfficeDocs/'; -export const baseGithubUrl = `${githubBaseUrl}superoffice-docs/blob/main/`; -export const newIssueUrl = `${githubBaseUrl}feedback/issues/new`; - -export const trim = (str = '', ch?: string) => { - let start = 0, - end = str.length || 0; - while (start < end && str[start] === ch) ++start; - while (end > start && str[end - 1] === ch) --end; - return start > 0 || end < str.length ? str.substring(start, end) : str; -}; - -export const trimSlash = (s: string) => trim(trim(s, '/')); - -export function formatDate(d?: Date) { - if (!d) { - return ''; - } - - return new Date(d).toLocaleDateString('en-US', { - month: 'short', - day: '2-digit', - year: 'numeric', - }); -} - -export function getFeedbackHref(docurl:string, title:string, uid:string) { - if (!docurl) return ''; - title = 'Feedback for ' + title; - var body = '%0A%0A%5BEnter%20feedback%20here%5D%0A%0A%0A---%0A%23%23%23%23%20Document%20Details%0A%0A%E2%9A%A0%20*Do%20not%20edit%20this%20section.%20It%20is%20required%20for%20docs.superOffice.com%20%E2%9E%9F%20Docs%20Team%20processing.*%0A%0A*%20Content%20Source%3A%20%5B' + encodeURIComponent(uid) + '%5D(' + encodeURIComponent(baseGithubUrl + docurl) + ')'; - return newIssueUrl + '?title=' + title + '&body=' + body; -} - -export function getEditHref(docurl?: string | null): string { - if (!docurl) return ''; - - // Construct the full GitHub URL to the file - return `${baseGithubUrl}${docurl.replace(/^\//, '')}`; +export const githubBaseUrl = 'https://github.com/SuperOfficeDocs/'; +export const baseGithubUrl = `${githubBaseUrl}superoffice-docs/blob/main/`; +export const newIssueUrl = `${githubBaseUrl}feedback/issues/new`; + +export const trim = (str = '', ch?: string) => { + let start = 0, + end = str.length || 0; + while (start < end && str[start] === ch) ++start; + while (end > start && str[end - 1] === ch) --end; + return start > 0 || end < str.length ? str.substring(start, end) : str; +}; + +export const trimSlash = (s: string) => trim(trim(s, '/')); + +export function formatDate(d?: Date) { + if (!d) { + return ''; + } + + return new Date(d).toLocaleDateString('en-US', { + month: 'short', + day: '2-digit', + year: 'numeric', + }); +} + +export function getFeedbackHref(docurl:string, title:string, uid:string) { + if (!docurl) return ''; + title = 'Feedback for ' + title; + var body = '%0A%0A%5BEnter%20feedback%20here%5D%0A%0A%0A---%0A%23%23%23%23%20Document%20Details%0A%0A%E2%9A%A0%20*Do%20not%20edit%20this%20section.%20It%20is%20required%20for%20docs.superOffice.com%20%E2%9E%9F%20Docs%20Team%20processing.*%0A%0A*%20Content%20Source%3A%20%5B' + encodeURIComponent(uid) + '%5D(' + encodeURIComponent(baseGithubUrl + docurl) + ')'; + return newIssueUrl + '?title=' + title + '&body=' + body; +} + +export function getEditHref(docurl?: string | null): string { + if (!docurl) return ''; + + // Construct the full GitHub URL to the file + return `${baseGithubUrl}${docurl.replace(/^\//, '')}`; } \ No newline at end of file diff --git a/src/utils/slugUtils.ts b/ClientApp/src/utils/slugUtils.ts similarity index 100% rename from src/utils/slugUtils.ts rename to ClientApp/src/utils/slugUtils.ts diff --git a/src/utils/tocUtils.ts b/ClientApp/src/utils/tocUtils.ts similarity index 100% rename from src/utils/tocUtils.ts rename to ClientApp/src/utils/tocUtils.ts diff --git a/tailwind.config.mjs b/ClientApp/tailwind.config.mjs similarity index 100% rename from tailwind.config.mjs rename to ClientApp/tailwind.config.mjs diff --git a/tsconfig.json b/ClientApp/tsconfig.json similarity index 100% rename from tsconfig.json rename to ClientApp/tsconfig.json diff --git a/Docs-Next-Solution.sln b/Docs-Next-Solution.sln new file mode 100644 index 00000000..635abeba --- /dev/null +++ b/Docs-Next-Solution.sln @@ -0,0 +1,34 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.0.31903.59 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Server", "Server\Server.csproj", "{7E46C9BE-8B62-41C2-938E-36BF1703453E}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Release|Any CPU = Release|Any CPU + Release|x64 = Release|x64 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {7E46C9BE-8B62-41C2-938E-36BF1703453E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7E46C9BE-8B62-41C2-938E-36BF1703453E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7E46C9BE-8B62-41C2-938E-36BF1703453E}.Debug|x64.ActiveCfg = Debug|Any CPU + {7E46C9BE-8B62-41C2-938E-36BF1703453E}.Debug|x64.Build.0 = Debug|Any CPU + {7E46C9BE-8B62-41C2-938E-36BF1703453E}.Debug|x86.ActiveCfg = Debug|Any CPU + {7E46C9BE-8B62-41C2-938E-36BF1703453E}.Debug|x86.Build.0 = Debug|Any CPU + {7E46C9BE-8B62-41C2-938E-36BF1703453E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7E46C9BE-8B62-41C2-938E-36BF1703453E}.Release|Any CPU.Build.0 = Release|Any CPU + {7E46C9BE-8B62-41C2-938E-36BF1703453E}.Release|x64.ActiveCfg = Release|Any CPU + {7E46C9BE-8B62-41C2-938E-36BF1703453E}.Release|x64.Build.0 = Release|Any CPU + {7E46C9BE-8B62-41C2-938E-36BF1703453E}.Release|x86.ActiveCfg = Release|Any CPU + {7E46C9BE-8B62-41C2-938E-36BF1703453E}.Release|x86.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Server/Program.cs b/Server/Program.cs new file mode 100644 index 00000000..ee9d65d6 --- /dev/null +++ b/Server/Program.cs @@ -0,0 +1,41 @@ +var builder = WebApplication.CreateBuilder(args); + +// Add services to the container. +// Learn more about configuring OpenAPI at https://aka.ms/aspnet/openapi +builder.Services.AddOpenApi(); + +var app = builder.Build(); + +// Configure the HTTP request pipeline. +if (app.Environment.IsDevelopment()) +{ + app.MapOpenApi(); +} + +app.UseHttpsRedirection(); + +var summaries = new[] +{ + "Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching" +}; + +app.MapGet("/weatherforecast", () => +{ + var forecast = Enumerable.Range(1, 5).Select(index => + new WeatherForecast + ( + DateOnly.FromDateTime(DateTime.Now.AddDays(index)), + Random.Shared.Next(-20, 55), + summaries[Random.Shared.Next(summaries.Length)] + )) + .ToArray(); + return forecast; +}) +.WithName("GetWeatherForecast"); + +app.Run(); + +record WeatherForecast(DateOnly Date, int TemperatureC, string? Summary) +{ + public int TemperatureF => 32 + (int)(TemperatureC / 0.5556); +} diff --git a/Server/Properties/launchSettings.json b/Server/Properties/launchSettings.json new file mode 100644 index 00000000..81dceacb --- /dev/null +++ b/Server/Properties/launchSettings.json @@ -0,0 +1,23 @@ +{ + "$schema": "https://json.schemastore.org/launchsettings.json", + "profiles": { + "http": { + "commandName": "Project", + "dotnetRunMessages": true, + "launchBrowser": false, + "applicationUrl": "http://localhost:5215", + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + }, + "https": { + "commandName": "Project", + "dotnetRunMessages": true, + "launchBrowser": false, + "applicationUrl": "https://localhost:7185;http://localhost:5215", + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + } + } +} diff --git a/Server/Server.csproj b/Server/Server.csproj new file mode 100644 index 00000000..06f4aab1 --- /dev/null +++ b/Server/Server.csproj @@ -0,0 +1,13 @@ + + + + net9.0 + enable + enable + + + + + + + diff --git a/Server/Server.csproj.user b/Server/Server.csproj.user new file mode 100644 index 00000000..9ff5820a --- /dev/null +++ b/Server/Server.csproj.user @@ -0,0 +1,6 @@ + + + + https + + \ No newline at end of file diff --git a/Server/Server.http b/Server/Server.http new file mode 100644 index 00000000..a40ff099 --- /dev/null +++ b/Server/Server.http @@ -0,0 +1,6 @@ +@Server_HostAddress = http://localhost:5215 + +GET {{Server_HostAddress}}/weatherforecast/ +Accept: application/json + +### diff --git a/Server/appsettings.Development.json b/Server/appsettings.Development.json new file mode 100644 index 00000000..0c208ae9 --- /dev/null +++ b/Server/appsettings.Development.json @@ -0,0 +1,8 @@ +{ + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft.AspNetCore": "Warning" + } + } +} diff --git a/Server/appsettings.json b/Server/appsettings.json new file mode 100644 index 00000000..10f68b8c --- /dev/null +++ b/Server/appsettings.json @@ -0,0 +1,9 @@ +{ + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft.AspNetCore": "Warning" + } + }, + "AllowedHosts": "*" +} diff --git a/Server/obj/Debug/net9.0/.NETCoreApp,Version=v9.0.AssemblyAttributes.cs b/Server/obj/Debug/net9.0/.NETCoreApp,Version=v9.0.AssemblyAttributes.cs new file mode 100644 index 00000000..feda5e9f --- /dev/null +++ b/Server/obj/Debug/net9.0/.NETCoreApp,Version=v9.0.AssemblyAttributes.cs @@ -0,0 +1,4 @@ +// +using System; +using System.Reflection; +[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v9.0", FrameworkDisplayName = ".NET 9.0")] diff --git a/Server/obj/Debug/net9.0/Server.AssemblyInfo.cs b/Server/obj/Debug/net9.0/Server.AssemblyInfo.cs new file mode 100644 index 00000000..a7cb7b76 --- /dev/null +++ b/Server/obj/Debug/net9.0/Server.AssemblyInfo.cs @@ -0,0 +1,23 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +using System; +using System.Reflection; + +[assembly: System.Reflection.AssemblyCompanyAttribute("Server")] +[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] +[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] +[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+628aaa28d624617fa99246a08ba27d1e41ad1224")] +[assembly: System.Reflection.AssemblyProductAttribute("Server")] +[assembly: System.Reflection.AssemblyTitleAttribute("Server")] +[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] + +// Generated by the MSBuild WriteCodeFragment class. + diff --git a/Server/obj/Debug/net9.0/Server.AssemblyInfoInputs.cache b/Server/obj/Debug/net9.0/Server.AssemblyInfoInputs.cache new file mode 100644 index 00000000..c326bbb8 --- /dev/null +++ b/Server/obj/Debug/net9.0/Server.AssemblyInfoInputs.cache @@ -0,0 +1 @@ +b4ea2d3bfbdae508984e3090a38d5f71ef7c8d5b9fc0070c38a17a649a2642b0 diff --git a/Server/obj/Debug/net9.0/Server.GeneratedMSBuildEditorConfig.editorconfig b/Server/obj/Debug/net9.0/Server.GeneratedMSBuildEditorConfig.editorconfig new file mode 100644 index 00000000..36da3aa3 --- /dev/null +++ b/Server/obj/Debug/net9.0/Server.GeneratedMSBuildEditorConfig.editorconfig @@ -0,0 +1,21 @@ +is_global = true +build_property.TargetFramework = net9.0 +build_property.TargetPlatformMinVersion = +build_property.UsingMicrosoftNETSdkWeb = true +build_property.ProjectTypeGuids = +build_property.InvariantGlobalization = +build_property.PlatformNeutralAssembly = +build_property.EnforceExtendedAnalyzerRules = +build_property._SupportedPlatformList = Linux,macOS,Windows +build_property.RootNamespace = Server +build_property.RootNamespace = Server +build_property.ProjectDir = C:\Users\povindu.samarasekara\SuperOffice\docs-next\Server\ +build_property.EnableComHosting = +build_property.EnableGeneratedComInterfaceComImportInterop = +build_property.RazorLangVersion = 9.0 +build_property.SupportLocalizedComponentNames = +build_property.GenerateRazorMetadataSourceChecksumAttributes = +build_property.MSBuildProjectDirectory = C:\Users\povindu.samarasekara\SuperOffice\docs-next\Server +build_property._RazorSourceGeneratorDebug = +build_property.EffectiveAnalysisLevelStyle = 9.0 +build_property.EnableCodeStyleSeverity = diff --git a/Server/obj/Debug/net9.0/Server.GlobalUsings.g.cs b/Server/obj/Debug/net9.0/Server.GlobalUsings.g.cs new file mode 100644 index 00000000..025530a2 --- /dev/null +++ b/Server/obj/Debug/net9.0/Server.GlobalUsings.g.cs @@ -0,0 +1,17 @@ +// +global using global::Microsoft.AspNetCore.Builder; +global using global::Microsoft.AspNetCore.Hosting; +global using global::Microsoft.AspNetCore.Http; +global using global::Microsoft.AspNetCore.Routing; +global using global::Microsoft.Extensions.Configuration; +global using global::Microsoft.Extensions.DependencyInjection; +global using global::Microsoft.Extensions.Hosting; +global using global::Microsoft.Extensions.Logging; +global using global::System; +global using global::System.Collections.Generic; +global using global::System.IO; +global using global::System.Linq; +global using global::System.Net.Http; +global using global::System.Net.Http.Json; +global using global::System.Threading; +global using global::System.Threading.Tasks; diff --git a/Server/obj/Debug/net9.0/Server.assets.cache b/Server/obj/Debug/net9.0/Server.assets.cache new file mode 100644 index 0000000000000000000000000000000000000000..25cc42157b9d1af6a9f1a6a6bc118d93aa241370 GIT binary patch literal 1889 zcmc(gK~EDw6vvCUl&T<5(UO?hn2;DHTWMkiJvAjXjanO9IgmLp?Y@=?yF25~EYgGv zi8nrn2S12kz)#@ai$}fr9&G6-6@!QJlK<|`?wi@)zW3&B<3+W6BauiGINI>Q<)K^r4Qm9;B)*$i(kNn? zLXi>USecaDCJr*2iN?f|8yVcPQsh8Jlkbjniocqi=7tW|U0VPC@X6Wa6^>I)Y099; z{ThnWcO6A_IE|V?-9*izh{m~CN^wS_ic=b)?1kLVZwL=`eyO;+zgk)it!FI+Lpt?j9r&C_uL(twS70SNedaIjpAS?4~aW1MVF*L>xPjxb(- z9l9a_H?_e%4O4GGOK%U{WGjpyNx+SZH30wg_wl!%O{T0hm{wmwI*bA%e8^O!>c5m7 e?j;Src77eS5dk+Cxn|TRi2T1Iv@mqAzWNuw<2s1| literal 0 HcmV?d00001 diff --git a/Server/obj/Debug/net9.0/Server.csproj.AssemblyReference.cache b/Server/obj/Debug/net9.0/Server.csproj.AssemblyReference.cache new file mode 100644 index 0000000000000000000000000000000000000000..ecc4b443190094a32926c781be5463cd70b1b9aa GIT binary patch literal 1234 zcmZQ$WMW`oV61VriU}=FEh>&F$S=#xODWYWPRva#N-R#z29hy)d8O&8B{2nw$=QkN zsl_q5naM@@#rbI^dWppad8sAI`9-OE`30$Yi3OQ4mU;$yW-&RLNijefAScEbuG+D< zz%RAL8Kl}DsM@h0Q!gbahmjHJ1ctt=t!-29axgM7%HY$$$O%#m1Z)tB0i+p>>wyfG z1}LY6F)cGE)k@$6AKGTQzOdsYmeSALC2m4GP=retY&-C#*6zsDF3_zd) zan}?elMNKwKz>lLqagze$gPYFpRF`m{8wIgIJsHTYVy;XmMujm{J6XLq@MJpul(`t z-rV?l+n_bdPr8muFn+u3h7LgJ^UibNE>fN}ftlksPC-1h&+F@U` z+G_nvTmHj`OuEbb*KgQ(pxE}QNaVWJZV}8a`{$M%dDNJ){p=(69}{=6cgoCd*SfTu zkpt+awL2>eEH&$9&wg`Rcf(SoDRe_TvD1`}voeND=Acv!* zvT{lj8Po&%5D&nT7Lo^$k{GfF7J!^ZAYDzZ+0xv;Y3W!0n8%YsKlZC#*0P+*yQ$_& zyZQQKdy-0Lubj4H(f)0vS02x|WqY$VO1xXz!SK$e<>`-Rmfz?(*XG45w*TPfeY^SY z&wteVk^ldJ74eg=rTk)D&;D!is!LB@C3N>!)Y)Iw4qLM__T%Cs&tu<+dD%<(q}ooG zX8eD6-sU6VbY&mzJSDm8gA-#YMi?U!6U6t#q$cAuQ*#qzOA|9=bF(x96C+SCprs}N Dvl6Dy literal 0 HcmV?d00001 diff --git a/Server/obj/Debug/net9.0/staticwebassets.removed.txt b/Server/obj/Debug/net9.0/staticwebassets.removed.txt new file mode 100644 index 00000000..e69de29b diff --git a/Server/obj/Release/net9.0/.NETCoreApp,Version=v9.0.AssemblyAttributes.cs b/Server/obj/Release/net9.0/.NETCoreApp,Version=v9.0.AssemblyAttributes.cs new file mode 100644 index 00000000..feda5e9f --- /dev/null +++ b/Server/obj/Release/net9.0/.NETCoreApp,Version=v9.0.AssemblyAttributes.cs @@ -0,0 +1,4 @@ +// +using System; +using System.Reflection; +[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v9.0", FrameworkDisplayName = ".NET 9.0")] diff --git a/Server/obj/Release/net9.0/Server.AssemblyInfo.cs b/Server/obj/Release/net9.0/Server.AssemblyInfo.cs new file mode 100644 index 00000000..90069913 --- /dev/null +++ b/Server/obj/Release/net9.0/Server.AssemblyInfo.cs @@ -0,0 +1,23 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +using System; +using System.Reflection; + +[assembly: System.Reflection.AssemblyCompanyAttribute("Server")] +[assembly: System.Reflection.AssemblyConfigurationAttribute("Release")] +[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] +[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+628aaa28d624617fa99246a08ba27d1e41ad1224")] +[assembly: System.Reflection.AssemblyProductAttribute("Server")] +[assembly: System.Reflection.AssemblyTitleAttribute("Server")] +[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] + +// Generated by the MSBuild WriteCodeFragment class. + diff --git a/Server/obj/Release/net9.0/Server.AssemblyInfoInputs.cache b/Server/obj/Release/net9.0/Server.AssemblyInfoInputs.cache new file mode 100644 index 00000000..18e564e4 --- /dev/null +++ b/Server/obj/Release/net9.0/Server.AssemblyInfoInputs.cache @@ -0,0 +1 @@ +d1ead1308e8f75765129c077da2a072b566e809c3026fff8f716d77b45387aa5 diff --git a/Server/obj/Release/net9.0/Server.GeneratedMSBuildEditorConfig.editorconfig b/Server/obj/Release/net9.0/Server.GeneratedMSBuildEditorConfig.editorconfig new file mode 100644 index 00000000..36da3aa3 --- /dev/null +++ b/Server/obj/Release/net9.0/Server.GeneratedMSBuildEditorConfig.editorconfig @@ -0,0 +1,21 @@ +is_global = true +build_property.TargetFramework = net9.0 +build_property.TargetPlatformMinVersion = +build_property.UsingMicrosoftNETSdkWeb = true +build_property.ProjectTypeGuids = +build_property.InvariantGlobalization = +build_property.PlatformNeutralAssembly = +build_property.EnforceExtendedAnalyzerRules = +build_property._SupportedPlatformList = Linux,macOS,Windows +build_property.RootNamespace = Server +build_property.RootNamespace = Server +build_property.ProjectDir = C:\Users\povindu.samarasekara\SuperOffice\docs-next\Server\ +build_property.EnableComHosting = +build_property.EnableGeneratedComInterfaceComImportInterop = +build_property.RazorLangVersion = 9.0 +build_property.SupportLocalizedComponentNames = +build_property.GenerateRazorMetadataSourceChecksumAttributes = +build_property.MSBuildProjectDirectory = C:\Users\povindu.samarasekara\SuperOffice\docs-next\Server +build_property._RazorSourceGeneratorDebug = +build_property.EffectiveAnalysisLevelStyle = 9.0 +build_property.EnableCodeStyleSeverity = diff --git a/Server/obj/Release/net9.0/Server.GlobalUsings.g.cs b/Server/obj/Release/net9.0/Server.GlobalUsings.g.cs new file mode 100644 index 00000000..025530a2 --- /dev/null +++ b/Server/obj/Release/net9.0/Server.GlobalUsings.g.cs @@ -0,0 +1,17 @@ +// +global using global::Microsoft.AspNetCore.Builder; +global using global::Microsoft.AspNetCore.Hosting; +global using global::Microsoft.AspNetCore.Http; +global using global::Microsoft.AspNetCore.Routing; +global using global::Microsoft.Extensions.Configuration; +global using global::Microsoft.Extensions.DependencyInjection; +global using global::Microsoft.Extensions.Hosting; +global using global::Microsoft.Extensions.Logging; +global using global::System; +global using global::System.Collections.Generic; +global using global::System.IO; +global using global::System.Linq; +global using global::System.Net.Http; +global using global::System.Net.Http.Json; +global using global::System.Threading; +global using global::System.Threading.Tasks; diff --git a/Server/obj/Release/net9.0/Server.assets.cache b/Server/obj/Release/net9.0/Server.assets.cache new file mode 100644 index 0000000000000000000000000000000000000000..62ac05fe946644ad038270dd6a8f8deadb0b0ec9 GIT binary patch literal 1889 zcmc(g&2G~`5XS>JO;Tu~4J|z&6cCk)kTxWhLd%ILRip3`A`*Jq%O>8YtFFB(@49Lv zPQVHA4BSBC!i_6Wz=3z*#9J`aI?X~uQ8}a|{cW#3yZ(7*cHDYguU<-}Qtuz$_`0&n zKEC;W`}L<+n*1oe`}ui#wX=BhOZLv&Z;w8t!6~uxaDG{PKwlUh8LHKu2>qBC7O;pJ zz6(c6!nn^Z)vUM6`rOb!^de={wk6EyklUV$I8mC1ObfbB?vVy&&oI?at7oV&RGt1ziSR0U-@JT}oj_st!|Hk?Kb*C~OMJO<}pbw!c zOpDo_MwpcMUFf;R!=76_Y1?AYJ-*|o4m;&avWU|uoyD9^=`~rvGYL+MQCB<;C%HjWu`gI literal 0 HcmV?d00001 diff --git a/Server/obj/Release/net9.0/Server.csproj.AssemblyReference.cache b/Server/obj/Release/net9.0/Server.csproj.AssemblyReference.cache new file mode 100644 index 0000000000000000000000000000000000000000..ecc4b443190094a32926c781be5463cd70b1b9aa GIT binary patch literal 1234 zcmZQ$WMW`oV61VriU}=FEh>&F$S=#xODWYWPRva#N-R#z29hy)d8O&8B{2nw$=QkN zsl_q5naM@@#rbI^dWppad8sAI`9-OE`30$Yi3OQ4mU;$yW-&RLNijefAScEbuG+D< zz%RAL8Kl}DsM@h0Q!gbahmjHJ1ctt=t!-29axgM7%HY$$$O%#m1Z)tB0i+p>>wyfG z1}LY6F)cGE)k@$6AKGTQzOdsYmeSALC2m4GP=retY&-C#*6zsDF3_zd) zan}?elMNKwKz>lLqagze$gPYFpRF`m{8wIgIJsHTYVy;XmMujm{J6XLq@MJpul(`t z-rV?l+n_bdPr8muFn+u3h7LgJ^UibNE>fN}ftlksPC-1h&+F@U` z+G_nvTmHj`OuEbb*KgQ(pxE}QNaVWJZV}8a`{$M%dDNJ){p=(69}{=6cgoCd*SfTu zkpt+awL2>eEH&$9&wg`Rcf(SoDRe_TvD1`}voeND=Acv!* zvT{lj8Po&%5D&nT7Lo^$k{GfF7J!^ZAYDzZ+0xv;Y3W!0n8%YsKlZC#*0P+*yQ$_& zyZQQKdy-0Lubj4H(f)0vS02x|WqY$VO1xXz!SK$e<>`-Rmfz?(*XG45w*TPfeY^SY z&wteVk^ldJ74eg=rTk)D&;D!is!LB@C3N>!)Y)Iw4qLM__T%Cs&tu<+dD%<(q}ooG zX8eD6-sU6VbY&mzJSDm8gA-#YMi?U!6U6t#q$cAuQ*#qzOA|9=bF(x96C+SCprs}N Dvl6Dy literal 0 HcmV?d00001 diff --git a/Server/obj/Server.csproj.nuget.dgspec.json b/Server/obj/Server.csproj.nuget.dgspec.json new file mode 100644 index 00000000..3d02cfbf --- /dev/null +++ b/Server/obj/Server.csproj.nuget.dgspec.json @@ -0,0 +1,82 @@ +{ + "format": 1, + "restore": { + "C:\\Users\\povindu.samarasekara\\SuperOffice\\docs-next\\Server\\Server.csproj": {} + }, + "projects": { + "C:\\Users\\povindu.samarasekara\\SuperOffice\\docs-next\\Server\\Server.csproj": { + "version": "1.0.0", + "restore": { + "projectUniqueName": "C:\\Users\\povindu.samarasekara\\SuperOffice\\docs-next\\Server\\Server.csproj", + "projectName": "Server", + "projectPath": "C:\\Users\\povindu.samarasekara\\SuperOffice\\docs-next\\Server\\Server.csproj", + "packagesPath": "C:\\Users\\povindu.samarasekara\\.nuget\\packages\\", + "outputPath": "C:\\Users\\povindu.samarasekara\\SuperOffice\\docs-next\\Server\\obj\\", + "projectStyle": "PackageReference", + "fallbackFolders": [ + "C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages" + ], + "configFilePaths": [ + "C:\\Users\\povindu.samarasekara\\AppData\\Roaming\\NuGet\\NuGet.Config", + "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.FallbackLocation.config", + "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config" + ], + "originalTargetFrameworks": [ + "net9.0" + ], + "sources": { + "C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {}, + "https://api.nuget.org/v3/index.json": {} + }, + "frameworks": { + "net9.0": { + "targetAlias": "net9.0", + "projectReferences": {} + } + }, + "warningProperties": { + "warnAsError": [ + "NU1605" + ] + }, + "restoreAuditProperties": { + "enableAudit": "true", + "auditLevel": "low", + "auditMode": "direct" + }, + "SdkAnalysisLevel": "9.0.200" + }, + "frameworks": { + "net9.0": { + "targetAlias": "net9.0", + "dependencies": { + "Microsoft.AspNetCore.OpenApi": { + "target": "Package", + "version": "[9.0.6, )" + } + }, + "imports": [ + "net461", + "net462", + "net47", + "net471", + "net472", + "net48", + "net481" + ], + "assetTargetFallback": true, + "warn": true, + "frameworkReferences": { + "Microsoft.AspNetCore.App": { + "privateAssets": "none" + }, + "Microsoft.NETCore.App": { + "privateAssets": "all" + } + }, + "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\9.0.205/PortableRuntimeIdentifierGraph.json" + } + } + } + } +} \ No newline at end of file diff --git a/Server/obj/Server.csproj.nuget.g.props b/Server/obj/Server.csproj.nuget.g.props new file mode 100644 index 00000000..a54028f1 --- /dev/null +++ b/Server/obj/Server.csproj.nuget.g.props @@ -0,0 +1,16 @@ + + + + True + NuGet + $(MSBuildThisFileDirectory)project.assets.json + $(UserProfile)\.nuget\packages\ + C:\Users\povindu.samarasekara\.nuget\packages\;C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages + PackageReference + 6.13.2 + + + + + + \ No newline at end of file diff --git a/Server/obj/Server.csproj.nuget.g.targets b/Server/obj/Server.csproj.nuget.g.targets new file mode 100644 index 00000000..3dc06ef3 --- /dev/null +++ b/Server/obj/Server.csproj.nuget.g.targets @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/Server/obj/project.assets.json b/Server/obj/project.assets.json new file mode 100644 index 00000000..9ace5663 --- /dev/null +++ b/Server/obj/project.assets.json @@ -0,0 +1,155 @@ +{ + "version": 3, + "targets": { + "net9.0": { + "Microsoft.AspNetCore.OpenApi/9.0.6": { + "type": "package", + "dependencies": { + "Microsoft.OpenApi": "1.6.17" + }, + "compile": { + "lib/net9.0/Microsoft.AspNetCore.OpenApi.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net9.0/Microsoft.AspNetCore.OpenApi.dll": { + "related": ".xml" + } + }, + "frameworkReferences": [ + "Microsoft.AspNetCore.App" + ] + }, + "Microsoft.OpenApi/1.6.17": { + "type": "package", + "compile": { + "lib/netstandard2.0/Microsoft.OpenApi.dll": { + "related": ".pdb;.xml" + } + }, + "runtime": { + "lib/netstandard2.0/Microsoft.OpenApi.dll": { + "related": ".pdb;.xml" + } + } + } + } + }, + "libraries": { + "Microsoft.AspNetCore.OpenApi/9.0.6": { + "sha512": "MOJ4DG1xd3NlWMYh+JdGNT9uvBtEk1XQU/FQlpNZFlAzM8t0oB5IimvnGlnK7jmyY4vQagLPB1xw1HjJ8CHrZg==", + "type": "package", + "path": "microsoft.aspnetcore.openapi/9.0.6", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "lib/net9.0/Microsoft.AspNetCore.OpenApi.dll", + "lib/net9.0/Microsoft.AspNetCore.OpenApi.xml", + "microsoft.aspnetcore.openapi.9.0.6.nupkg.sha512", + "microsoft.aspnetcore.openapi.nuspec" + ] + }, + "Microsoft.OpenApi/1.6.17": { + "sha512": "Le+kehlmrlQfuDFUt1zZ2dVwrhFQtKREdKBo+rexOwaCoYP0/qpgT9tLxCsZjsgR5Itk1UKPcbgO+FyaNid/bA==", + "type": "package", + "path": "microsoft.openapi/1.6.17", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "README.md", + "lib/netstandard2.0/Microsoft.OpenApi.dll", + "lib/netstandard2.0/Microsoft.OpenApi.pdb", + "lib/netstandard2.0/Microsoft.OpenApi.xml", + "microsoft.openapi.1.6.17.nupkg.sha512", + "microsoft.openapi.nuspec" + ] + } + }, + "projectFileDependencyGroups": { + "net9.0": [ + "Microsoft.AspNetCore.OpenApi >= 9.0.6" + ] + }, + "packageFolders": { + "C:\\Users\\povindu.samarasekara\\.nuget\\packages\\": {}, + "C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages": {} + }, + "project": { + "version": "1.0.0", + "restore": { + "projectUniqueName": "C:\\Users\\povindu.samarasekara\\SuperOffice\\docs-next\\Server\\Server.csproj", + "projectName": "Server", + "projectPath": "C:\\Users\\povindu.samarasekara\\SuperOffice\\docs-next\\Server\\Server.csproj", + "packagesPath": "C:\\Users\\povindu.samarasekara\\.nuget\\packages\\", + "outputPath": "C:\\Users\\povindu.samarasekara\\SuperOffice\\docs-next\\Server\\obj\\", + "projectStyle": "PackageReference", + "fallbackFolders": [ + "C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages" + ], + "configFilePaths": [ + "C:\\Users\\povindu.samarasekara\\AppData\\Roaming\\NuGet\\NuGet.Config", + "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.FallbackLocation.config", + "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config" + ], + "originalTargetFrameworks": [ + "net9.0" + ], + "sources": { + "C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {}, + "https://api.nuget.org/v3/index.json": {} + }, + "frameworks": { + "net9.0": { + "targetAlias": "net9.0", + "projectReferences": {} + } + }, + "warningProperties": { + "warnAsError": [ + "NU1605" + ] + }, + "restoreAuditProperties": { + "enableAudit": "true", + "auditLevel": "low", + "auditMode": "direct" + }, + "SdkAnalysisLevel": "9.0.200" + }, + "frameworks": { + "net9.0": { + "targetAlias": "net9.0", + "dependencies": { + "Microsoft.AspNetCore.OpenApi": { + "target": "Package", + "version": "[9.0.6, )" + } + }, + "imports": [ + "net461", + "net462", + "net47", + "net471", + "net472", + "net48", + "net481" + ], + "assetTargetFallback": true, + "warn": true, + "frameworkReferences": { + "Microsoft.AspNetCore.App": { + "privateAssets": "none" + }, + "Microsoft.NETCore.App": { + "privateAssets": "all" + } + }, + "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\9.0.205/PortableRuntimeIdentifierGraph.json" + } + } + } +} \ No newline at end of file diff --git a/Server/obj/project.nuget.cache b/Server/obj/project.nuget.cache new file mode 100644 index 00000000..0540ce9a --- /dev/null +++ b/Server/obj/project.nuget.cache @@ -0,0 +1,11 @@ +{ + "version": 2, + "dgSpecHash": "Fc1c9yve6dc=", + "success": true, + "projectFilePath": "C:\\Users\\povindu.samarasekara\\SuperOffice\\docs-next\\Server\\Server.csproj", + "expectedPackageFiles": [ + "C:\\Users\\povindu.samarasekara\\.nuget\\packages\\microsoft.aspnetcore.openapi\\9.0.6\\microsoft.aspnetcore.openapi.9.0.6.nupkg.sha512", + "C:\\Users\\povindu.samarasekara\\.nuget\\packages\\microsoft.openapi\\1.6.17\\microsoft.openapi.1.6.17.nupkg.sha512" + ], + "logs": [] +} \ No newline at end of file From c447abaff37033c8264e62e8526aed96873c10ad Mon Sep 17 00:00:00 2001 From: Povindu Samarasekara Date: Tue, 2 Sep 2025 10:58:11 +0530 Subject: [PATCH 02/24] Remove obj folder from repo and update .gitignore --- ...CoreApp,Version=v9.0.AssemblyAttributes.cs | 4 - .../obj/Debug/net9.0/Server.AssemblyInfo.cs | 23 --- .../net9.0/Server.AssemblyInfoInputs.cache | 1 - ....GeneratedMSBuildEditorConfig.editorconfig | 21 --- .../obj/Debug/net9.0/Server.GlobalUsings.g.cs | 17 -- Server/obj/Debug/net9.0/Server.assets.cache | Bin 1889 -> 0 bytes .../Server.csproj.AssemblyReference.cache | Bin 1234 -> 0 bytes .../Debug/net9.0/staticwebassets.removed.txt | 0 ...CoreApp,Version=v9.0.AssemblyAttributes.cs | 4 - .../obj/Release/net9.0/Server.AssemblyInfo.cs | 23 --- .../net9.0/Server.AssemblyInfoInputs.cache | 1 - ....GeneratedMSBuildEditorConfig.editorconfig | 21 --- .../Release/net9.0/Server.GlobalUsings.g.cs | 17 -- Server/obj/Release/net9.0/Server.assets.cache | Bin 1889 -> 0 bytes .../Server.csproj.AssemblyReference.cache | Bin 1234 -> 0 bytes Server/obj/Server.csproj.nuget.dgspec.json | 82 --------- Server/obj/Server.csproj.nuget.g.props | 16 -- Server/obj/Server.csproj.nuget.g.targets | 2 - Server/obj/project.assets.json | 155 ------------------ Server/obj/project.nuget.cache | 11 -- 20 files changed, 398 deletions(-) delete mode 100644 Server/obj/Debug/net9.0/.NETCoreApp,Version=v9.0.AssemblyAttributes.cs delete mode 100644 Server/obj/Debug/net9.0/Server.AssemblyInfo.cs delete mode 100644 Server/obj/Debug/net9.0/Server.AssemblyInfoInputs.cache delete mode 100644 Server/obj/Debug/net9.0/Server.GeneratedMSBuildEditorConfig.editorconfig delete mode 100644 Server/obj/Debug/net9.0/Server.GlobalUsings.g.cs delete mode 100644 Server/obj/Debug/net9.0/Server.assets.cache delete mode 100644 Server/obj/Debug/net9.0/Server.csproj.AssemblyReference.cache delete mode 100644 Server/obj/Debug/net9.0/staticwebassets.removed.txt delete mode 100644 Server/obj/Release/net9.0/.NETCoreApp,Version=v9.0.AssemblyAttributes.cs delete mode 100644 Server/obj/Release/net9.0/Server.AssemblyInfo.cs delete mode 100644 Server/obj/Release/net9.0/Server.AssemblyInfoInputs.cache delete mode 100644 Server/obj/Release/net9.0/Server.GeneratedMSBuildEditorConfig.editorconfig delete mode 100644 Server/obj/Release/net9.0/Server.GlobalUsings.g.cs delete mode 100644 Server/obj/Release/net9.0/Server.assets.cache delete mode 100644 Server/obj/Release/net9.0/Server.csproj.AssemblyReference.cache delete mode 100644 Server/obj/Server.csproj.nuget.dgspec.json delete mode 100644 Server/obj/Server.csproj.nuget.g.props delete mode 100644 Server/obj/Server.csproj.nuget.g.targets delete mode 100644 Server/obj/project.assets.json delete mode 100644 Server/obj/project.nuget.cache diff --git a/Server/obj/Debug/net9.0/.NETCoreApp,Version=v9.0.AssemblyAttributes.cs b/Server/obj/Debug/net9.0/.NETCoreApp,Version=v9.0.AssemblyAttributes.cs deleted file mode 100644 index feda5e9f..00000000 --- a/Server/obj/Debug/net9.0/.NETCoreApp,Version=v9.0.AssemblyAttributes.cs +++ /dev/null @@ -1,4 +0,0 @@ -// -using System; -using System.Reflection; -[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v9.0", FrameworkDisplayName = ".NET 9.0")] diff --git a/Server/obj/Debug/net9.0/Server.AssemblyInfo.cs b/Server/obj/Debug/net9.0/Server.AssemblyInfo.cs deleted file mode 100644 index a7cb7b76..00000000 --- a/Server/obj/Debug/net9.0/Server.AssemblyInfo.cs +++ /dev/null @@ -1,23 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:4.0.30319.42000 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -using System; -using System.Reflection; - -[assembly: System.Reflection.AssemblyCompanyAttribute("Server")] -[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] -[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] -[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+628aaa28d624617fa99246a08ba27d1e41ad1224")] -[assembly: System.Reflection.AssemblyProductAttribute("Server")] -[assembly: System.Reflection.AssemblyTitleAttribute("Server")] -[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] - -// Generated by the MSBuild WriteCodeFragment class. - diff --git a/Server/obj/Debug/net9.0/Server.AssemblyInfoInputs.cache b/Server/obj/Debug/net9.0/Server.AssemblyInfoInputs.cache deleted file mode 100644 index c326bbb8..00000000 --- a/Server/obj/Debug/net9.0/Server.AssemblyInfoInputs.cache +++ /dev/null @@ -1 +0,0 @@ -b4ea2d3bfbdae508984e3090a38d5f71ef7c8d5b9fc0070c38a17a649a2642b0 diff --git a/Server/obj/Debug/net9.0/Server.GeneratedMSBuildEditorConfig.editorconfig b/Server/obj/Debug/net9.0/Server.GeneratedMSBuildEditorConfig.editorconfig deleted file mode 100644 index 36da3aa3..00000000 --- a/Server/obj/Debug/net9.0/Server.GeneratedMSBuildEditorConfig.editorconfig +++ /dev/null @@ -1,21 +0,0 @@ -is_global = true -build_property.TargetFramework = net9.0 -build_property.TargetPlatformMinVersion = -build_property.UsingMicrosoftNETSdkWeb = true -build_property.ProjectTypeGuids = -build_property.InvariantGlobalization = -build_property.PlatformNeutralAssembly = -build_property.EnforceExtendedAnalyzerRules = -build_property._SupportedPlatformList = Linux,macOS,Windows -build_property.RootNamespace = Server -build_property.RootNamespace = Server -build_property.ProjectDir = C:\Users\povindu.samarasekara\SuperOffice\docs-next\Server\ -build_property.EnableComHosting = -build_property.EnableGeneratedComInterfaceComImportInterop = -build_property.RazorLangVersion = 9.0 -build_property.SupportLocalizedComponentNames = -build_property.GenerateRazorMetadataSourceChecksumAttributes = -build_property.MSBuildProjectDirectory = C:\Users\povindu.samarasekara\SuperOffice\docs-next\Server -build_property._RazorSourceGeneratorDebug = -build_property.EffectiveAnalysisLevelStyle = 9.0 -build_property.EnableCodeStyleSeverity = diff --git a/Server/obj/Debug/net9.0/Server.GlobalUsings.g.cs b/Server/obj/Debug/net9.0/Server.GlobalUsings.g.cs deleted file mode 100644 index 025530a2..00000000 --- a/Server/obj/Debug/net9.0/Server.GlobalUsings.g.cs +++ /dev/null @@ -1,17 +0,0 @@ -// -global using global::Microsoft.AspNetCore.Builder; -global using global::Microsoft.AspNetCore.Hosting; -global using global::Microsoft.AspNetCore.Http; -global using global::Microsoft.AspNetCore.Routing; -global using global::Microsoft.Extensions.Configuration; -global using global::Microsoft.Extensions.DependencyInjection; -global using global::Microsoft.Extensions.Hosting; -global using global::Microsoft.Extensions.Logging; -global using global::System; -global using global::System.Collections.Generic; -global using global::System.IO; -global using global::System.Linq; -global using global::System.Net.Http; -global using global::System.Net.Http.Json; -global using global::System.Threading; -global using global::System.Threading.Tasks; diff --git a/Server/obj/Debug/net9.0/Server.assets.cache b/Server/obj/Debug/net9.0/Server.assets.cache deleted file mode 100644 index 25cc42157b9d1af6a9f1a6a6bc118d93aa241370..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1889 zcmc(gK~EDw6vvCUl&T<5(UO?hn2;DHTWMkiJvAjXjanO9IgmLp?Y@=?yF25~EYgGv zi8nrn2S12kz)#@ai$}fr9&G6-6@!QJlK<|`?wi@)zW3&B<3+W6BauiGINI>Q<)K^r4Qm9;B)*$i(kNn? zLXi>USecaDCJr*2iN?f|8yVcPQsh8Jlkbjniocqi=7tW|U0VPC@X6Wa6^>I)Y099; z{ThnWcO6A_IE|V?-9*izh{m~CN^wS_ic=b)?1kLVZwL=`eyO;+zgk)it!FI+Lpt?j9r&C_uL(twS70SNedaIjpAS?4~aW1MVF*L>xPjxb(- z9l9a_H?_e%4O4GGOK%U{WGjpyNx+SZH30wg_wl!%O{T0hm{wmwI*bA%e8^O!>c5m7 e?j;Src77eS5dk+Cxn|TRi2T1Iv@mqAzWNuw<2s1| diff --git a/Server/obj/Debug/net9.0/Server.csproj.AssemblyReference.cache b/Server/obj/Debug/net9.0/Server.csproj.AssemblyReference.cache deleted file mode 100644 index ecc4b443190094a32926c781be5463cd70b1b9aa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1234 zcmZQ$WMW`oV61VriU}=FEh>&F$S=#xODWYWPRva#N-R#z29hy)d8O&8B{2nw$=QkN zsl_q5naM@@#rbI^dWppad8sAI`9-OE`30$Yi3OQ4mU;$yW-&RLNijefAScEbuG+D< zz%RAL8Kl}DsM@h0Q!gbahmjHJ1ctt=t!-29axgM7%HY$$$O%#m1Z)tB0i+p>>wyfG z1}LY6F)cGE)k@$6AKGTQzOdsYmeSALC2m4GP=retY&-C#*6zsDF3_zd) zan}?elMNKwKz>lLqagze$gPYFpRF`m{8wIgIJsHTYVy;XmMujm{J6XLq@MJpul(`t z-rV?l+n_bdPr8muFn+u3h7LgJ^UibNE>fN}ftlksPC-1h&+F@U` z+G_nvTmHj`OuEbb*KgQ(pxE}QNaVWJZV}8a`{$M%dDNJ){p=(69}{=6cgoCd*SfTu zkpt+awL2>eEH&$9&wg`Rcf(SoDRe_TvD1`}voeND=Acv!* zvT{lj8Po&%5D&nT7Lo^$k{GfF7J!^ZAYDzZ+0xv;Y3W!0n8%YsKlZC#*0P+*yQ$_& zyZQQKdy-0Lubj4H(f)0vS02x|WqY$VO1xXz!SK$e<>`-Rmfz?(*XG45w*TPfeY^SY z&wteVk^ldJ74eg=rTk)D&;D!is!LB@C3N>!)Y)Iw4qLM__T%Cs&tu<+dD%<(q}ooG zX8eD6-sU6VbY&mzJSDm8gA-#YMi?U!6U6t#q$cAuQ*#qzOA|9=bF(x96C+SCprs}N Dvl6Dy diff --git a/Server/obj/Debug/net9.0/staticwebassets.removed.txt b/Server/obj/Debug/net9.0/staticwebassets.removed.txt deleted file mode 100644 index e69de29b..00000000 diff --git a/Server/obj/Release/net9.0/.NETCoreApp,Version=v9.0.AssemblyAttributes.cs b/Server/obj/Release/net9.0/.NETCoreApp,Version=v9.0.AssemblyAttributes.cs deleted file mode 100644 index feda5e9f..00000000 --- a/Server/obj/Release/net9.0/.NETCoreApp,Version=v9.0.AssemblyAttributes.cs +++ /dev/null @@ -1,4 +0,0 @@ -// -using System; -using System.Reflection; -[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v9.0", FrameworkDisplayName = ".NET 9.0")] diff --git a/Server/obj/Release/net9.0/Server.AssemblyInfo.cs b/Server/obj/Release/net9.0/Server.AssemblyInfo.cs deleted file mode 100644 index 90069913..00000000 --- a/Server/obj/Release/net9.0/Server.AssemblyInfo.cs +++ /dev/null @@ -1,23 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:4.0.30319.42000 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -using System; -using System.Reflection; - -[assembly: System.Reflection.AssemblyCompanyAttribute("Server")] -[assembly: System.Reflection.AssemblyConfigurationAttribute("Release")] -[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] -[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+628aaa28d624617fa99246a08ba27d1e41ad1224")] -[assembly: System.Reflection.AssemblyProductAttribute("Server")] -[assembly: System.Reflection.AssemblyTitleAttribute("Server")] -[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] - -// Generated by the MSBuild WriteCodeFragment class. - diff --git a/Server/obj/Release/net9.0/Server.AssemblyInfoInputs.cache b/Server/obj/Release/net9.0/Server.AssemblyInfoInputs.cache deleted file mode 100644 index 18e564e4..00000000 --- a/Server/obj/Release/net9.0/Server.AssemblyInfoInputs.cache +++ /dev/null @@ -1 +0,0 @@ -d1ead1308e8f75765129c077da2a072b566e809c3026fff8f716d77b45387aa5 diff --git a/Server/obj/Release/net9.0/Server.GeneratedMSBuildEditorConfig.editorconfig b/Server/obj/Release/net9.0/Server.GeneratedMSBuildEditorConfig.editorconfig deleted file mode 100644 index 36da3aa3..00000000 --- a/Server/obj/Release/net9.0/Server.GeneratedMSBuildEditorConfig.editorconfig +++ /dev/null @@ -1,21 +0,0 @@ -is_global = true -build_property.TargetFramework = net9.0 -build_property.TargetPlatformMinVersion = -build_property.UsingMicrosoftNETSdkWeb = true -build_property.ProjectTypeGuids = -build_property.InvariantGlobalization = -build_property.PlatformNeutralAssembly = -build_property.EnforceExtendedAnalyzerRules = -build_property._SupportedPlatformList = Linux,macOS,Windows -build_property.RootNamespace = Server -build_property.RootNamespace = Server -build_property.ProjectDir = C:\Users\povindu.samarasekara\SuperOffice\docs-next\Server\ -build_property.EnableComHosting = -build_property.EnableGeneratedComInterfaceComImportInterop = -build_property.RazorLangVersion = 9.0 -build_property.SupportLocalizedComponentNames = -build_property.GenerateRazorMetadataSourceChecksumAttributes = -build_property.MSBuildProjectDirectory = C:\Users\povindu.samarasekara\SuperOffice\docs-next\Server -build_property._RazorSourceGeneratorDebug = -build_property.EffectiveAnalysisLevelStyle = 9.0 -build_property.EnableCodeStyleSeverity = diff --git a/Server/obj/Release/net9.0/Server.GlobalUsings.g.cs b/Server/obj/Release/net9.0/Server.GlobalUsings.g.cs deleted file mode 100644 index 025530a2..00000000 --- a/Server/obj/Release/net9.0/Server.GlobalUsings.g.cs +++ /dev/null @@ -1,17 +0,0 @@ -// -global using global::Microsoft.AspNetCore.Builder; -global using global::Microsoft.AspNetCore.Hosting; -global using global::Microsoft.AspNetCore.Http; -global using global::Microsoft.AspNetCore.Routing; -global using global::Microsoft.Extensions.Configuration; -global using global::Microsoft.Extensions.DependencyInjection; -global using global::Microsoft.Extensions.Hosting; -global using global::Microsoft.Extensions.Logging; -global using global::System; -global using global::System.Collections.Generic; -global using global::System.IO; -global using global::System.Linq; -global using global::System.Net.Http; -global using global::System.Net.Http.Json; -global using global::System.Threading; -global using global::System.Threading.Tasks; diff --git a/Server/obj/Release/net9.0/Server.assets.cache b/Server/obj/Release/net9.0/Server.assets.cache deleted file mode 100644 index 62ac05fe946644ad038270dd6a8f8deadb0b0ec9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1889 zcmc(g&2G~`5XS>JO;Tu~4J|z&6cCk)kTxWhLd%ILRip3`A`*Jq%O>8YtFFB(@49Lv zPQVHA4BSBC!i_6Wz=3z*#9J`aI?X~uQ8}a|{cW#3yZ(7*cHDYguU<-}Qtuz$_`0&n zKEC;W`}L<+n*1oe`}ui#wX=BhOZLv&Z;w8t!6~uxaDG{PKwlUh8LHKu2>qBC7O;pJ zz6(c6!nn^Z)vUM6`rOb!^de={wk6EyklUV$I8mC1ObfbB?vVy&&oI?at7oV&RGt1ziSR0U-@JT}oj_st!|Hk?Kb*C~OMJO<}pbw!c zOpDo_MwpcMUFf;R!=76_Y1?AYJ-*|o4m;&avWU|uoyD9^=`~rvGYL+MQCB<;C%HjWu`gI diff --git a/Server/obj/Release/net9.0/Server.csproj.AssemblyReference.cache b/Server/obj/Release/net9.0/Server.csproj.AssemblyReference.cache deleted file mode 100644 index ecc4b443190094a32926c781be5463cd70b1b9aa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1234 zcmZQ$WMW`oV61VriU}=FEh>&F$S=#xODWYWPRva#N-R#z29hy)d8O&8B{2nw$=QkN zsl_q5naM@@#rbI^dWppad8sAI`9-OE`30$Yi3OQ4mU;$yW-&RLNijefAScEbuG+D< zz%RAL8Kl}DsM@h0Q!gbahmjHJ1ctt=t!-29axgM7%HY$$$O%#m1Z)tB0i+p>>wyfG z1}LY6F)cGE)k@$6AKGTQzOdsYmeSALC2m4GP=retY&-C#*6zsDF3_zd) zan}?elMNKwKz>lLqagze$gPYFpRF`m{8wIgIJsHTYVy;XmMujm{J6XLq@MJpul(`t z-rV?l+n_bdPr8muFn+u3h7LgJ^UibNE>fN}ftlksPC-1h&+F@U` z+G_nvTmHj`OuEbb*KgQ(pxE}QNaVWJZV}8a`{$M%dDNJ){p=(69}{=6cgoCd*SfTu zkpt+awL2>eEH&$9&wg`Rcf(SoDRe_TvD1`}voeND=Acv!* zvT{lj8Po&%5D&nT7Lo^$k{GfF7J!^ZAYDzZ+0xv;Y3W!0n8%YsKlZC#*0P+*yQ$_& zyZQQKdy-0Lubj4H(f)0vS02x|WqY$VO1xXz!SK$e<>`-Rmfz?(*XG45w*TPfeY^SY z&wteVk^ldJ74eg=rTk)D&;D!is!LB@C3N>!)Y)Iw4qLM__T%Cs&tu<+dD%<(q}ooG zX8eD6-sU6VbY&mzJSDm8gA-#YMi?U!6U6t#q$cAuQ*#qzOA|9=bF(x96C+SCprs}N Dvl6Dy diff --git a/Server/obj/Server.csproj.nuget.dgspec.json b/Server/obj/Server.csproj.nuget.dgspec.json deleted file mode 100644 index 3d02cfbf..00000000 --- a/Server/obj/Server.csproj.nuget.dgspec.json +++ /dev/null @@ -1,82 +0,0 @@ -{ - "format": 1, - "restore": { - "C:\\Users\\povindu.samarasekara\\SuperOffice\\docs-next\\Server\\Server.csproj": {} - }, - "projects": { - "C:\\Users\\povindu.samarasekara\\SuperOffice\\docs-next\\Server\\Server.csproj": { - "version": "1.0.0", - "restore": { - "projectUniqueName": "C:\\Users\\povindu.samarasekara\\SuperOffice\\docs-next\\Server\\Server.csproj", - "projectName": "Server", - "projectPath": "C:\\Users\\povindu.samarasekara\\SuperOffice\\docs-next\\Server\\Server.csproj", - "packagesPath": "C:\\Users\\povindu.samarasekara\\.nuget\\packages\\", - "outputPath": "C:\\Users\\povindu.samarasekara\\SuperOffice\\docs-next\\Server\\obj\\", - "projectStyle": "PackageReference", - "fallbackFolders": [ - "C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages" - ], - "configFilePaths": [ - "C:\\Users\\povindu.samarasekara\\AppData\\Roaming\\NuGet\\NuGet.Config", - "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.FallbackLocation.config", - "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config" - ], - "originalTargetFrameworks": [ - "net9.0" - ], - "sources": { - "C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {}, - "https://api.nuget.org/v3/index.json": {} - }, - "frameworks": { - "net9.0": { - "targetAlias": "net9.0", - "projectReferences": {} - } - }, - "warningProperties": { - "warnAsError": [ - "NU1605" - ] - }, - "restoreAuditProperties": { - "enableAudit": "true", - "auditLevel": "low", - "auditMode": "direct" - }, - "SdkAnalysisLevel": "9.0.200" - }, - "frameworks": { - "net9.0": { - "targetAlias": "net9.0", - "dependencies": { - "Microsoft.AspNetCore.OpenApi": { - "target": "Package", - "version": "[9.0.6, )" - } - }, - "imports": [ - "net461", - "net462", - "net47", - "net471", - "net472", - "net48", - "net481" - ], - "assetTargetFallback": true, - "warn": true, - "frameworkReferences": { - "Microsoft.AspNetCore.App": { - "privateAssets": "none" - }, - "Microsoft.NETCore.App": { - "privateAssets": "all" - } - }, - "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\9.0.205/PortableRuntimeIdentifierGraph.json" - } - } - } - } -} \ No newline at end of file diff --git a/Server/obj/Server.csproj.nuget.g.props b/Server/obj/Server.csproj.nuget.g.props deleted file mode 100644 index a54028f1..00000000 --- a/Server/obj/Server.csproj.nuget.g.props +++ /dev/null @@ -1,16 +0,0 @@ - - - - True - NuGet - $(MSBuildThisFileDirectory)project.assets.json - $(UserProfile)\.nuget\packages\ - C:\Users\povindu.samarasekara\.nuget\packages\;C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages - PackageReference - 6.13.2 - - - - - - \ No newline at end of file diff --git a/Server/obj/Server.csproj.nuget.g.targets b/Server/obj/Server.csproj.nuget.g.targets deleted file mode 100644 index 3dc06ef3..00000000 --- a/Server/obj/Server.csproj.nuget.g.targets +++ /dev/null @@ -1,2 +0,0 @@ - - \ No newline at end of file diff --git a/Server/obj/project.assets.json b/Server/obj/project.assets.json deleted file mode 100644 index 9ace5663..00000000 --- a/Server/obj/project.assets.json +++ /dev/null @@ -1,155 +0,0 @@ -{ - "version": 3, - "targets": { - "net9.0": { - "Microsoft.AspNetCore.OpenApi/9.0.6": { - "type": "package", - "dependencies": { - "Microsoft.OpenApi": "1.6.17" - }, - "compile": { - "lib/net9.0/Microsoft.AspNetCore.OpenApi.dll": { - "related": ".xml" - } - }, - "runtime": { - "lib/net9.0/Microsoft.AspNetCore.OpenApi.dll": { - "related": ".xml" - } - }, - "frameworkReferences": [ - "Microsoft.AspNetCore.App" - ] - }, - "Microsoft.OpenApi/1.6.17": { - "type": "package", - "compile": { - "lib/netstandard2.0/Microsoft.OpenApi.dll": { - "related": ".pdb;.xml" - } - }, - "runtime": { - "lib/netstandard2.0/Microsoft.OpenApi.dll": { - "related": ".pdb;.xml" - } - } - } - } - }, - "libraries": { - "Microsoft.AspNetCore.OpenApi/9.0.6": { - "sha512": "MOJ4DG1xd3NlWMYh+JdGNT9uvBtEk1XQU/FQlpNZFlAzM8t0oB5IimvnGlnK7jmyY4vQagLPB1xw1HjJ8CHrZg==", - "type": "package", - "path": "microsoft.aspnetcore.openapi/9.0.6", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "Icon.png", - "PACKAGE.md", - "THIRD-PARTY-NOTICES.TXT", - "lib/net9.0/Microsoft.AspNetCore.OpenApi.dll", - "lib/net9.0/Microsoft.AspNetCore.OpenApi.xml", - "microsoft.aspnetcore.openapi.9.0.6.nupkg.sha512", - "microsoft.aspnetcore.openapi.nuspec" - ] - }, - "Microsoft.OpenApi/1.6.17": { - "sha512": "Le+kehlmrlQfuDFUt1zZ2dVwrhFQtKREdKBo+rexOwaCoYP0/qpgT9tLxCsZjsgR5Itk1UKPcbgO+FyaNid/bA==", - "type": "package", - "path": "microsoft.openapi/1.6.17", - "files": [ - ".nupkg.metadata", - ".signature.p7s", - "README.md", - "lib/netstandard2.0/Microsoft.OpenApi.dll", - "lib/netstandard2.0/Microsoft.OpenApi.pdb", - "lib/netstandard2.0/Microsoft.OpenApi.xml", - "microsoft.openapi.1.6.17.nupkg.sha512", - "microsoft.openapi.nuspec" - ] - } - }, - "projectFileDependencyGroups": { - "net9.0": [ - "Microsoft.AspNetCore.OpenApi >= 9.0.6" - ] - }, - "packageFolders": { - "C:\\Users\\povindu.samarasekara\\.nuget\\packages\\": {}, - "C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages": {} - }, - "project": { - "version": "1.0.0", - "restore": { - "projectUniqueName": "C:\\Users\\povindu.samarasekara\\SuperOffice\\docs-next\\Server\\Server.csproj", - "projectName": "Server", - "projectPath": "C:\\Users\\povindu.samarasekara\\SuperOffice\\docs-next\\Server\\Server.csproj", - "packagesPath": "C:\\Users\\povindu.samarasekara\\.nuget\\packages\\", - "outputPath": "C:\\Users\\povindu.samarasekara\\SuperOffice\\docs-next\\Server\\obj\\", - "projectStyle": "PackageReference", - "fallbackFolders": [ - "C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages" - ], - "configFilePaths": [ - "C:\\Users\\povindu.samarasekara\\AppData\\Roaming\\NuGet\\NuGet.Config", - "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.FallbackLocation.config", - "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config" - ], - "originalTargetFrameworks": [ - "net9.0" - ], - "sources": { - "C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {}, - "https://api.nuget.org/v3/index.json": {} - }, - "frameworks": { - "net9.0": { - "targetAlias": "net9.0", - "projectReferences": {} - } - }, - "warningProperties": { - "warnAsError": [ - "NU1605" - ] - }, - "restoreAuditProperties": { - "enableAudit": "true", - "auditLevel": "low", - "auditMode": "direct" - }, - "SdkAnalysisLevel": "9.0.200" - }, - "frameworks": { - "net9.0": { - "targetAlias": "net9.0", - "dependencies": { - "Microsoft.AspNetCore.OpenApi": { - "target": "Package", - "version": "[9.0.6, )" - } - }, - "imports": [ - "net461", - "net462", - "net47", - "net471", - "net472", - "net48", - "net481" - ], - "assetTargetFallback": true, - "warn": true, - "frameworkReferences": { - "Microsoft.AspNetCore.App": { - "privateAssets": "none" - }, - "Microsoft.NETCore.App": { - "privateAssets": "all" - } - }, - "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\9.0.205/PortableRuntimeIdentifierGraph.json" - } - } - } -} \ No newline at end of file diff --git a/Server/obj/project.nuget.cache b/Server/obj/project.nuget.cache deleted file mode 100644 index 0540ce9a..00000000 --- a/Server/obj/project.nuget.cache +++ /dev/null @@ -1,11 +0,0 @@ -{ - "version": 2, - "dgSpecHash": "Fc1c9yve6dc=", - "success": true, - "projectFilePath": "C:\\Users\\povindu.samarasekara\\SuperOffice\\docs-next\\Server\\Server.csproj", - "expectedPackageFiles": [ - "C:\\Users\\povindu.samarasekara\\.nuget\\packages\\microsoft.aspnetcore.openapi\\9.0.6\\microsoft.aspnetcore.openapi.9.0.6.nupkg.sha512", - "C:\\Users\\povindu.samarasekara\\.nuget\\packages\\microsoft.openapi\\1.6.17\\microsoft.openapi.1.6.17.nupkg.sha512" - ], - "logs": [] -} \ No newline at end of file From c4f1647af8b6e2471f7aa1edc4d7fa9233bf052b Mon Sep 17 00:00:00 2001 From: Povindu Samarasekara Date: Tue, 2 Sep 2025 11:01:57 +0530 Subject: [PATCH 03/24] feat: updated astro build script and baseurl --- ClientApp/astro.config.mjs | 2 +- ClientApp/build/local-build-script.mjs | 23 +++++++++++++++++++---- 2 files changed, 20 insertions(+), 5 deletions(-) diff --git a/ClientApp/astro.config.mjs b/ClientApp/astro.config.mjs index df572459..49a6fc1f 100644 --- a/ClientApp/astro.config.mjs +++ b/ClientApp/astro.config.mjs @@ -130,6 +130,6 @@ export default defineConfig({ }, logLevel: process.env.CI ? 'error' : 'info', site: "https://superofficedocs.github.io", - base: "/docs-next", + // base: "/", trailingSlash: "never", }); diff --git a/ClientApp/build/local-build-script.mjs b/ClientApp/build/local-build-script.mjs index 210d346e..af2a9b99 100644 --- a/ClientApp/build/local-build-script.mjs +++ b/ClientApp/build/local-build-script.mjs @@ -1,6 +1,15 @@ import { execSync } from "child_process"; import { cpSync, rmSync, existsSync } from "fs"; import path from "path"; +import { fileURLToPath } from "url"; + +// Work out project root +const __dirname = path.dirname(fileURLToPath(import.meta.url)); +const clientRoot = path.resolve(__dirname, ".."); + +// Paths to local binaries +const astroBin = path.join(clientRoot, "node_modules", ".bin", "astro"); +const pagefindBin = path.join(clientRoot, "node_modules", ".bin", "pagefind"); // Paths const distDir = path.resolve("dist"); @@ -14,12 +23,18 @@ const distB = path.resolve(".distB"); // First build with API_ONLY=true console.log("Building with API_ONLY=true"); -execSync("cross-env API_ONLY=false astro build", { stdio: "inherit" }); +execSync(`"${astroBin}" build`, { + stdio: "inherit", + env: { ...process.env, API_ONLY: "true" }, +}); cpSync(distDir, distA, { recursive: true }); // Second build with API_ONLY=false console.log("Building with API_ONLY=false"); -execSync("cross-env API_ONLY=false astro build", { stdio: "inherit" }); +execSync(`"${astroBin}" build`, { + stdio: "inherit", + env: { ...process.env, API_ONLY: "false" }, +}); cpSync(distDir, distB, { recursive: true }); // Merge outputs @@ -27,13 +42,13 @@ console.log("Merging distA and distB into dist..."); cpSync(distA, distDir, { recursive: true }); cpSync(distB, distDir, { recursive: true }); -// Cleanup tempory dir adter merging +// Cleanup temporary dirs after merging [distA, distB].forEach((dir) => { if (existsSync(dir)) rmSync(dir, { recursive: true, force: true }); }); // Pagefind Indexing console.log("Indexing with Pagefind"); -execSync("npx pagefind --site dist", { stdio: "inherit" }); +execSync(`"${pagefindBin}" --site dist`, { stdio: "inherit" }); console.log("Completed. Final merged build is in dist/"); From ebe76283de03922f8d9ea135b17d94d35171377d Mon Sep 17 00:00:00 2001 From: Povindu Samarasekara Date: Tue, 2 Sep 2025 11:02:48 +0530 Subject: [PATCH 04/24] feat: updated landing page links --- ClientApp/src/data/audience.ts | 10 +-- ClientApp/src/data/navigation.ts | 130 +++++++++++++++---------------- 2 files changed, 69 insertions(+), 71 deletions(-) diff --git a/ClientApp/src/data/audience.ts b/ClientApp/src/data/audience.ts index c318ebf9..31f0e53e 100644 --- a/ClientApp/src/data/audience.ts +++ b/ClientApp/src/data/audience.ts @@ -1,29 +1,27 @@ -const base = import.meta.env.BASE_URL; - export const audienceTypes = { audience: [ { "title": "SuperUser", "description": "A person who has system administrative privilege's and special functional and data access rights for managing how SuperOffice behaves. The friend you need to tweak the system!", - "href": `${base}/en/learn/customization`, + "href": `en/learn/customization`, "color": "bg-seaFoamGreen" }, { "title": "Administrator", "description": "A person who is primarily responsible for the setup, configuration, maintenance of operation of SuperOffice in an organization. The guy you call when shit hits the fan!", - "href": `${base}/en/onsite`, + "href": `en/onsite`, "color": "bg-mistBlue" }, { "title": "Consultant", "description": "A person who works with companies to improve their use of SuperOffice to achieve business goals and an expert in all technical aspects of SuperOffice. Hired to provide advice, solve problems and increase efficiency.", - "href": `${base}/en/automation`, + "href": `en/automation`, "color": "bg-lightTealGray" }, { "title": "Developer", "description": "A software engineer responsible for the implementation of requirements for an application or integration, or provides advice (consultancy) as to how the an integration should be implemented using current industry trends.", - "href": `${base}/en/api`, + "href": `en/api`, "color": "bg-deepTeal" } ], diff --git a/ClientApp/src/data/navigation.ts b/ClientApp/src/data/navigation.ts index cb008b1a..b7cf0a4c 100644 --- a/ClientApp/src/data/navigation.ts +++ b/ClientApp/src/data/navigation.ts @@ -5,95 +5,95 @@ export const headerData = { links: [ { text: 'Learn', - href: "/en/learn" + href: "en/learn" }, { text: 'Areas', links: [ { text: 'Company', - href: '/en/company', + href: 'en/company', }, { text: 'Contact', - href: '/en/contact', + href: 'en/contact', }, { text: 'Diary', - href: '/en/diary', + href: 'en/diary', }, { text: 'Document', - href: '/en/document', + href: 'en/document', }, { text: 'Email', - href: '/en/email', + href: 'en/email', }, { text: 'Project', - href: '/en/project', + href: 'en/project', }, { text: 'Request', - href: '/en/request', + href: 'en/request', }, { text: 'Sale', - href: '/en/sale', + href: 'en/sale', }, ], }, { text: 'CRM Online', - href: '/en/online', + href: 'en/online', }, { text: 'CRM Onsite', - href: '/en/onsite', + href: 'en/onsite', }, { text: 'Developer Guide', links: [ { text: 'Overview', - href: '/en/api', + href: 'en/api', }, { text: 'Introduction to APIs', - href: '/en/api/overview', + href: 'en/api/overview', }, { text: 'Automaton / CRMScript', - href: '/en/automation', + href: 'en/automation', }, { text: 'Configurable screens (Sales)', - href: '/en/ui/screen-designer/learn', + href: 'en/ui/screen-designer/learn', }, { text: 'Custom screens (Service)', - href: '/en/ui/blogic/custom-screens', + href: 'en/ui/blogic/custom-screens', }, { text: 'Database overview', - href: '/en/database/getting-started', + href: 'en/database/getting-started', }, { text: 'Developer Portal', - href: '/en/developer-portal', + href: 'en/developer-portal', }, { text: 'Search APIs', - href: '/en/api/netserver/search', + href: 'en/api/netserver/search', }, { text: 'Webhooks', - href: '/en/automation/webhook', + href: 'en/automation/webhook', }, { text: 'Web Services', - href: '/en/api/netserver/web-services', + href: 'en/api/netserver/web-services', }, ], }, @@ -106,73 +106,73 @@ export const heroItems = { title: "Learn", description: "Product knowledge-base to learn concepts, features and solve issues.", icon: "mdi:learn-outline", - url: "/en/learn" + url: "en/learn" }, { title: "CRM Online", description: "Learn all about SuperOffice CRM offering for the cloud.", icon: "fluent:phone-laptop-32-regular", - url: "/en/online" + url: "en/online" }, { title: "CRM Onsite", description: "Learn how to install SuperOffice in your on premise organization.", icon: "mdi:business", - url: "/en/onsite" + url: "en/onsite" }, { title: "Release Notes", description: "Contains the history of product and API changes.", icon: "material-symbols-light:release-alert-outline", - url: "/release-notes" + url: "release-notes" }, { title: "SuperOffice APIs", description: "Introduction to all extensibility and integration points.", icon: "material-symbols-light:api", - url: "/en/api" + url: "en/api" }, { title: "Developer Portal", description: "Learn how to create online applications.", icon: "material-symbols-light:developer-mode-tv-outline", - url: "/en/developer-portal" + url: "en/developer-portal" }, { title: "Customer Service", description: "Learn all about SuperOffice Service.", icon: "material-symbols-light:support-agent-outline", - url: "/en/service" + url: "en/service" }, { title: "Email and communication", description: "Great customer relations start with great communication.", icon: "mdi:email-outline", - url: "/en/email" + url: "en/email" } ], }; export const areasOfInterest = { "links": [ - { "text": "Admin", "href": "/en/admin/overview" }, - { "text": "Artificial Intelligence", "href": "/en/ai" }, - { "text": "Automation", "href": "/en/automation" }, - { "text": "Company", "href": "/en/company" }, - { "text": "Contact", "href": "/en/contact" }, - { "text": "CRMScript", "href": "/en/automation/crmscript" }, - { "text": "Customer Service", "href": "/en/service" }, - { "text": "Database Mirroring", "href": "/en/online/mirroring/overview" }, - { "text": "Diary", "href": "/en/diary" }, - { "text": "Document", "href": "/en/document" }, - { "text": "Globalization", "href": "/en/globalization-and-localization" }, - { "text": "Mobile", "href": "/en/mobile" }, - { "text": "Project", "href": "/en/project" }, - { "text": "Request Management", "href": "/en/request" }, - { "text": "Sale", "href": "/en/sale" }, - { "text": "Security", "href": "/en/security" }, - { "text": "Video Meetings", "href": "/en/diary/video-meeting" }, - { "text": "WebTools", "href": "/en/document/webtools" } + { "text": "Admin", "href": "en/admin/overview" }, + { "text": "Artificial Intelligence", "href": "en/ai" }, + { "text": "Automation", "href": "en/automation" }, + { "text": "Company", "href": "en/company" }, + { "text": "Contact", "href": "en/contact" }, + { "text": "CRMScript", "href": "en/automation/crmscript" }, + { "text": "Customer Service", "href": "en/service" }, + { "text": "Database Mirroring", "href": "en/online/mirroring/overview" }, + { "text": "Diary", "href": "en/diary" }, + { "text": "Document", "href": "en/document" }, + { "text": "Globalization", "href": "en/globalization-and-localization" }, + { "text": "Mobile", "href": "en/mobile" }, + { "text": "Project", "href": "en/project" }, + { "text": "Request Management", "href": "en/request" }, + { "text": "Sale", "href": "en/sale" }, + { "text": "Security", "href": "en/security" }, + { "text": "Video Meetings", "href": "en/diary/video-meeting" }, + { "text": "WebTools", "href": "en/document/webtools" } ] }; @@ -184,19 +184,19 @@ export const quickAccessShortcuts = { subLinks : [ { title : "System requirements", - link : `${base}/en/onsite/requirements` + link : `en/onsite/requirements` }, { title : "Security concerns", - link : `${base}/en/onsite/security` + link : `en/onsite/security` }, { title : "Onsite topics", - link : `${base}/en/onsite` + link : `en/onsite` }, { title : "Online migration", - link : `${base}/en/online/migrate` + link : `en/online/migrate` } ] }, @@ -205,19 +205,19 @@ export const quickAccessShortcuts = { subLinks : [ { title : "CRM Server", - link : `${base}/en/onsite/install/server` + link : `en/onsite/install/server` }, { title : "Web applications", - link : `${base}/en/onsite/install/web-client` + link : `en/onsite/install/web-client` }, { title : "Web tools", - link : `${base}/en/document/webtools` + link : `en/document/webtools` }, { title : "Mobile application", - link : `${base}/en/mobile/overview` + link : `en/mobile/overview` } ] }, @@ -226,23 +226,23 @@ export const quickAccessShortcuts = { subLinks : [ { title : "NetServer Configuration", - link : `${base}/en/api/netserver/config` + link : `en/api/netserver/config` }, { title : "Document template variables", - link : `${base}/en/document/templates/variables` + link : `en/document/templates/variables` }, { title : "Service reply templates", - link : `${base}/en/request/reply-templates` + link : `en/request/reply-templates` }, { title : "Batch task service", - link : `${base}/en/onsite/batch-task-server` + link : `en/onsite/batch-task-server` }, { title : "INI files", - link : `${base}/en/onsite/config` + link : `en/onsite/config` } ] }, @@ -251,11 +251,11 @@ export const quickAccessShortcuts = { subLinks : [ { title : "Register online developer account", - link : `${base}/en/onsite/requirements` + link : `en/onsite/requirements` }, { title : "Developer portal", - link : `${base}/en/onsite/security` + link : `en/onsite/security` }, ] }, @@ -266,11 +266,11 @@ export const footerData = { links: [ { text: 'SuperOffice', href: 'https://www.superoffice.com/' }, { text: 'Community', href: 'https://community.superoffice.com' }, - { text: 'Release Notes', href: `${base}/release-notes` }, + { text: 'Release Notes', href: `release-notes` }, { text: 'Privacy', href: 'https://www.superoffice.com/company/privacy/' }, { text: 'Site feedback', href: 'https://github.com/SuperOfficeDocs/feedback/issues/new?title=Feedback%20for%20SuperOffice%20Docs&body=%0A%0A%5BEnter%20feedback%20here%5D%0A%0A%0A---%0A%23%23%23%23%20Document%20Details%0A%0A%E2%9A%A0%20*Do%20not%20edit%20this%20section.%20It%20is%20required%20for%20docs.superOffice.com%20%E2%9E%9F%20Docs%20Team%20processing.*%0A%0A*%20Content%20Source%3A%20%5BSuperOffice%20Docs%5D(https%3A%2F%2Fdocs.superoffice.com)'}, - { text: 'About', href: `${base}/about` }, - { text: 'Contribute', href:`${base}/contribute/overview`}, + { text: 'About', href: `about` }, + { text: 'Contribute', href:`contribute/overview`}, { text: 'Back to top', href:'#'} ], }; From d023795962fe7fa68b9a71abdad85bcd6af5c5ed Mon Sep 17 00:00:00 2001 From: Povindu Samarasekara Date: Tue, 2 Sep 2025 11:05:05 +0530 Subject: [PATCH 05/24] feat: setup controllers and test health api endpoint --- Server/Controllers/Health.cs | 19 +++++++++++++ Server/Program.cs | 52 +++++++++++++++--------------------- Server/Server.csproj | 25 ++++++++++++++++- Server/Server.csproj.user | 2 ++ Server/Server.http | 5 ---- 5 files changed, 67 insertions(+), 36 deletions(-) create mode 100644 Server/Controllers/Health.cs diff --git a/Server/Controllers/Health.cs b/Server/Controllers/Health.cs new file mode 100644 index 00000000..5ea96d38 --- /dev/null +++ b/Server/Controllers/Health.cs @@ -0,0 +1,19 @@ +using Microsoft.AspNetCore.Mvc; + +namespace Server.Controllers +{ + [ApiController] + [Route("api")] + public class TestController : ControllerBase + { + [HttpGet("health")] + public IActionResult Health() { + return Ok( + new { + status = "ok", + now = DateTime.UtcNow + } + ); + } + } +} \ No newline at end of file diff --git a/Server/Program.cs b/Server/Program.cs index ee9d65d6..fcb315e9 100644 --- a/Server/Program.cs +++ b/Server/Program.cs @@ -1,41 +1,33 @@ var builder = WebApplication.CreateBuilder(args); -// Add services to the container. -// Learn more about configuring OpenAPI at https://aka.ms/aspnet/openapi -builder.Services.AddOpenApi(); +builder.Services.AddControllers(); var app = builder.Build(); -// Configure the HTTP request pipeline. -if (app.Environment.IsDevelopment()) -{ - app.MapOpenApi(); -} - app.UseHttpsRedirection(); +app.UseRouting(); +app.UseAuthorization(); +app.MapControllers(); -var summaries = new[] -{ - "Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching" -}; -app.MapGet("/weatherforecast", () => +if (app.Environment.IsDevelopment()) { - var forecast = Enumerable.Range(1, 5).Select(index => - new WeatherForecast - ( - DateOnly.FromDateTime(DateTime.Now.AddDays(index)), - Random.Shared.Next(-20, 55), - summaries[Random.Shared.Next(summaries.Length)] - )) - .ToArray(); - return forecast; -}) -.WithName("GetWeatherForecast"); - -app.Run(); - -record WeatherForecast(DateOnly Date, int TemperatureC, string? Summary) + app.UseWhen( + context => !context.Request.Path.StartsWithSegments("/api"), + spaApp => + { + spaApp.UseSpa(spa => + { + spa.Options.SourcePath = "../ClientApp"; + spa.UseProxyToSpaDevelopmentServer("http://localhost:4321"); + }); + }); +} +else { - public int TemperatureF => 32 + (int)(TemperatureC / 0.5556); + app.UseDefaultFiles(); + app.UseStaticFiles(); + app.MapFallbackToFile("/index.html"); } + +app.Run(); diff --git a/Server/Server.csproj b/Server/Server.csproj index 06f4aab1..90c7d420 100644 --- a/Server/Server.csproj +++ b/Server/Server.csproj @@ -4,10 +4,33 @@ net9.0 enable enable + + + $(MSBuildThisFileDirectory)..\ClientApp\ + $(ClientAppDir)dist\ + wwwroot\ + + + + + + + + + - + + + + + + + + + + diff --git a/Server/Server.csproj.user b/Server/Server.csproj.user index 9ff5820a..031db340 100644 --- a/Server/Server.csproj.user +++ b/Server/Server.csproj.user @@ -2,5 +2,7 @@ https + MvcControllerEmptyScaffolder + root/Common/MVC/Controller \ No newline at end of file diff --git a/Server/Server.http b/Server/Server.http index a40ff099..484f22e7 100644 --- a/Server/Server.http +++ b/Server/Server.http @@ -1,6 +1 @@ @Server_HostAddress = http://localhost:5215 - -GET {{Server_HostAddress}}/weatherforecast/ -Accept: application/json - -### From 60d94f708f36055eb11b2e174ed89ab22427d5e3 Mon Sep 17 00:00:00 2001 From: Povindu Samarasekara Date: Tue, 2 Sep 2025 11:05:27 +0530 Subject: [PATCH 06/24] feat: added readme --- README.md | 91 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 00000000..2a77d1ca --- /dev/null +++ b/README.md @@ -0,0 +1,91 @@ +# ASP.NET Core Backend + Astro Frontend + +This repository contains two main projects: + +- **Backend**: ASP.NET Core Web API (serves APIs in Development and frontend + API's in Production). +- **Frontend**: Astro application (served via dev server in development; built and served from `wwwroot` in production). + +## Project Structure +``` +/docs-next +├──ClientApp/ # Astro frontend +├──Server/ # ASP.NET Core Backend +└──... +``` + +## Development Setup + +### 1. Prerequisites +- [.NET 9 SDK](https://dotnet.microsoft.com/download) +- [Node.js (LTS or latest)](https://nodejs.org/en/) +- [npm](https://www.npmjs.com/) + + +### 2. Install dependencies + +#### Backend + +```bash +cd Server +dotnet restore +``` + +Frontend +```bash +cd ClientApp +npm install +``` + +### 3. Run Development Servers + +#### Backend (with API and proxy to frontend) + +From docs-next/Server: +```bash +dotnet run +``` + +By default API runs at: http://localhost:5215/api. Any non-API request is proxied to the frontend dev server. + +#### Frontend (Astro dev server) + +From docs-next/ClientApp: + +```bash +npm run dev +``` + +By default Frontend dev server runs at: http://localhost:4321. The backend proxies requests to it, so you only need to visit: http://localhost:5215 + +/api/... → handled by backend. + +Any other path → served by Astro dev server. + +### 4. Run Production Build + +1. Build Backend (includes frontend) + +From root: +```bash +dotnet publish -c Release -o out +``` + +2. Run Published App + +```bash +cd out +dotnet docs-next.dll +``` + + +API: https://localhost:5001/api/... +Frontend: served from wwwroot + +### Notes +In development, run both servers: + + dotnet run (backend + proxy) + + npm run dev (frontend) + +In production run only the backend. It serves the built frontend automatically from wwwroot. From 18b35e6345cb386306d9e57a4ce564b7c564c872 Mon Sep 17 00:00:00 2001 From: Povindu Samarasekara Date: Tue, 2 Sep 2025 15:49:40 +0530 Subject: [PATCH 07/24] feat: updated server.csproj --- Server/Server.csproj | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/Server/Server.csproj b/Server/Server.csproj index 90c7d420..470b53a5 100644 --- a/Server/Server.csproj +++ b/Server/Server.csproj @@ -11,26 +11,26 @@ wwwroot\ - - - - - - - - - - - - - + + + + + + + + + + + + - + From ac004fec21d306e858e1744622ece25f07d63b6a Mon Sep 17 00:00:00 2001 From: Povindu Samarasekara Date: Tue, 2 Sep 2025 15:50:17 +0530 Subject: [PATCH 08/24] cicd: moved and updated workflows --- .../ISSUE_TEMPLATE/bug_report.md | 0 .../ISSUE_TEMPLATE/epic.md | 0 .../ISSUE_TEMPLATE/feature.md | 0 .../ISSUE_TEMPLATE/user-story.md | 0 .../.github => .github}/workflows/deploy.yml | 42 ++++++++----------- .../workflows/main_docs-next.yml | 32 ++++++++------ 6 files changed, 36 insertions(+), 38 deletions(-) rename {ClientApp/.github => .github}/ISSUE_TEMPLATE/bug_report.md (100%) rename {ClientApp/.github => .github}/ISSUE_TEMPLATE/epic.md (100%) rename {ClientApp/.github => .github}/ISSUE_TEMPLATE/feature.md (100%) rename {ClientApp/.github => .github}/ISSUE_TEMPLATE/user-story.md (100%) rename {ClientApp/.github => .github}/workflows/deploy.yml (75%) rename {ClientApp/.github => .github}/workflows/main_docs-next.yml (70%) diff --git a/ClientApp/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md similarity index 100% rename from ClientApp/.github/ISSUE_TEMPLATE/bug_report.md rename to .github/ISSUE_TEMPLATE/bug_report.md diff --git a/ClientApp/.github/ISSUE_TEMPLATE/epic.md b/.github/ISSUE_TEMPLATE/epic.md similarity index 100% rename from ClientApp/.github/ISSUE_TEMPLATE/epic.md rename to .github/ISSUE_TEMPLATE/epic.md diff --git a/ClientApp/.github/ISSUE_TEMPLATE/feature.md b/.github/ISSUE_TEMPLATE/feature.md similarity index 100% rename from ClientApp/.github/ISSUE_TEMPLATE/feature.md rename to .github/ISSUE_TEMPLATE/feature.md diff --git a/ClientApp/.github/ISSUE_TEMPLATE/user-story.md b/.github/ISSUE_TEMPLATE/user-story.md similarity index 100% rename from ClientApp/.github/ISSUE_TEMPLATE/user-story.md rename to .github/ISSUE_TEMPLATE/user-story.md diff --git a/ClientApp/.github/workflows/deploy.yml b/.github/workflows/deploy.yml similarity index 75% rename from ClientApp/.github/workflows/deploy.yml rename to .github/workflows/deploy.yml index 5440660f..0a5ab69c 100644 --- a/ClientApp/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -1,39 +1,25 @@ -# workflow for deploying astro project to GitHub Pages name: Build & Deploy docs-next to Github Pages on: - # Runs on pull requests and manual invocations for targeted bran pull_request: - - # Allows you to run this workflow manually from the Actions tab workflow_dispatch: inputs: target_branch: description: 'Branch to run the workflow on' required: false default: '' - - # Runs on pushes targeting the default branch push: branches: ["main"] -# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages permissions: contents: read pages: write id-token: write -# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued. -# However, do not cancel in-progress runs as we want to allow these production deployments to complete. concurrency: group: "pages" cancel-in-progress: false -# Application is built using 2 jobs which focuses on different content files. -# build-main is built using every content except en/api and build-api only build with en/api content. -# Both build jobs clones 3 repos - SuperOfficeDocs/docs-next, SuperOfficeDocs/superoffice-docs, SuperOfficeDocs/contribution -# Both build jobs outputs respective artifacts - artifact-main and artifact-api - jobs: build-main: runs-on: ubuntu-latest @@ -48,29 +34,33 @@ jobs: with: fetch-depth: 1 repository: SuperOfficeDocs/contribution - path: external-content/contribution + path: ClientApp/external-content/contribution + - name: Checkout SuperOfficeDocs repo uses: actions/checkout@v4 with: fetch-depth: 1 repository: SuperOfficeDocs/superoffice-docs - path: external-content/superoffice-docs + path: ClientApp/external-content/superoffice-docs - name: Setup Node.js uses: actions/setup-node@v4 with: node-version: 22 cache: 'npm' + cache-dependency-path: ClientApp/package-lock.json - run: npm ci + working-directory: ClientApp - name: Build Astro excluding API + working-directory: ClientApp env: API_ONLY: 'false' run: | npm run build - mkdir -p dist-out - cp -r dist/* dist-out/ + mkdir -p ../dist-out + cp -r dist/* ../dist-out/ - name: Upload main artifact uses: actions/upload-artifact@v4 @@ -93,30 +83,33 @@ jobs: with: fetch-depth: 1 repository: SuperOfficeDocs/contribution - path: external-content/contribution + path: ClientApp/external-content/contribution - name: Checkout SuperOfficeDocs repo uses: actions/checkout@v4 with: fetch-depth: 1 repository: SuperOfficeDocs/superoffice-docs - path: external-content/superoffice-docs + path: ClientApp/external-content/superoffice-docs - name: Setup Node.js uses: actions/setup-node@v4 with: node-version: 22 cache: 'npm' + cache-dependency-path: ClientApp/package-lock.json - run: npm ci + working-directory: ClientApp - name: Build Astro API only + working-directory: ClientApp env: API_ONLY: 'true' run: | npm run build - mkdir -p dist-out - cp -r dist/* dist-out/ + mkdir -p ../dist-out + cp -r dist/* ../dist-out/ - name: Upload API artifact uses: actions/upload-artifact@v4 @@ -124,7 +117,6 @@ jobs: name: artifact-api path: dist-out - # deploy job downloads artifacts from build jobs, merge them in to one directory, create search index, and deploy to github pages deploy: needs: [build-main, build-api] runs-on: ubuntu-latest @@ -163,7 +155,7 @@ jobs: - name: Index pages using Pagefind run: npx pagefind --site final-dist - + - name: Check if the PR originates from source repo id: check_pr_source run: | @@ -188,4 +180,4 @@ jobs: - name: Deploy to GitHub Pages if: steps.check_pr_source.outputs.skip_deploy == 'false' id: deployment - uses: actions/deploy-pages@v4 \ No newline at end of file + uses: actions/deploy-pages@v4 diff --git a/ClientApp/.github/workflows/main_docs-next.yml b/.github/workflows/main_docs-next.yml similarity index 70% rename from ClientApp/.github/workflows/main_docs-next.yml rename to .github/workflows/main_docs-next.yml index 4f4adccd..2c981877 100644 --- a/ClientApp/.github/workflows/main_docs-next.yml +++ b/.github/workflows/main_docs-next.yml @@ -1,6 +1,3 @@ -# Docs for the Azure Web Apps Deploy action: https://github.com/Azure/webapps-deploy -# More GitHub Actions for Azure: https://github.com/Azure/actions - name: Build and deploy ASP.Net Core app to Azure Web App - docs-next on: @@ -13,20 +10,30 @@ jobs: build: runs-on: ubuntu-latest permissions: - contents: read #This is required for actions/checkout + contents: read steps: - uses: actions/checkout@v4 - - name: Set up .NET Core + # Set up .NET + - name: Set up .NET uses: actions/setup-dotnet@v4 with: - dotnet-version: '8.x' + dotnet-version: '9.x' + + # Set up Node.js (for Astro build) + - name: Set up Node.js + uses: actions/setup-node@v4 + with: + node-version: '22.x' + cache: 'npm' + cache-dependency-path: 'ClientApp/package-lock.json' - - name: Build with dotnet + # Build backend + frontend + - name: Restore and Build run: dotnet build --configuration Release - - name: dotnet publish + - name: Publish project (runs npm + copies frontend via MSBuild target) run: dotnet publish -c Release -o ${{env.DOTNET_ROOT}}/myapp - name: Upload artifact for deployment job @@ -39,15 +46,15 @@ jobs: runs-on: ubuntu-latest needs: build permissions: - id-token: write #This is required for requesting the JWT - contents: read #This is required for actions/checkout + id-token: write + contents: read steps: - name: Download artifact from build job uses: actions/download-artifact@v4 with: name: .net-app - + - name: Login to Azure uses: azure/login@v2 with: @@ -61,5 +68,4 @@ jobs: with: app-name: 'docs-next' slot-name: 'Production' - package: . - \ No newline at end of file + package: .net-app From 7c36cab842642ad7ecf015fc4a1b2024794b0506 Mon Sep 17 00:00:00 2001 From: Povindu Samarasekara Date: Tue, 2 Sep 2025 11:01:24 +0530 Subject: [PATCH 09/24] feat: updated gitignore --- .gitignore | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/.gitignore b/.gitignore index 237fc158..05f242e2 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,9 @@ .vs +.vscode/ # build output +out + ClientApp/dist/ ClientApp/.distA/ @@ -13,6 +16,13 @@ ClientApp/.astro/ # dependencies ClientApp/node_modules/ + +# .NET +Server/bin/ +Server/obj/ +Server/wwwroot/ + + # logs npm-debug.log* yarn-debug.log* From d5bcb33b06857617d438a9945f82beae61cbf4cb Mon Sep 17 00:00:00 2001 From: Povindu Samarasekara Date: Wed, 3 Sep 2025 11:26:16 +0530 Subject: [PATCH 10/24] fix: updated normalized oath in api/reference --- ClientApp/src/pages/en/api/reference/[...slug].astro | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/ClientApp/src/pages/en/api/reference/[...slug].astro b/ClientApp/src/pages/en/api/reference/[...slug].astro index 1f384ece..99d6d497 100644 --- a/ClientApp/src/pages/en/api/reference/[...slug].astro +++ b/ClientApp/src/pages/en/api/reference/[...slug].astro @@ -85,9 +85,11 @@ export async function getStaticPaths() { // Convert relative path to absolute path for file reading const absoluteFilePath = path.resolve(baseContentPath, relativePath); + const normalizedPath = relativePath.replace(/\\/g, "/"); + // Generate slug from the relative path, removing base and extension // Remove "superoffice-docs/docs/en/api/reference/" and file extension to get clean slug - const cleanPath = relativePath + const cleanPath = normalizedPath .replace("superoffice-docs/docs/en/api/reference", "") .replace(/\.(md|mdx)$/, ""); const slug = cleanPath; From 9f9bc04e27d2aff0f8714f02a2c9d4e283d83d00 Mon Sep 17 00:00:00 2001 From: Povindu Samarasekara Date: Wed, 3 Sep 2025 11:27:26 +0530 Subject: [PATCH 11/24] cicd: updated gh pages workflow to on run on specific branch --- .github/workflows/{deploy.yml => gh-pages-deploy.yml} | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) rename .github/workflows/{deploy.yml => gh-pages-deploy.yml} (95%) diff --git a/.github/workflows/deploy.yml b/.github/workflows/gh-pages-deploy.yml similarity index 95% rename from .github/workflows/deploy.yml rename to .github/workflows/gh-pages-deploy.yml index 0a5ab69c..bb32fa3b 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/gh-pages-deploy.yml @@ -1,15 +1,23 @@ name: Build & Deploy docs-next to Github Pages on: + # Runs only when a pull request targets deploy-to-github-pages pull_request: + branches: + - deploy-to-github-pages + + # Allows manual run workflow_dispatch: inputs: target_branch: description: 'Branch to run the workflow on' required: false default: '' + + # Runs only on pushes to deploy-to-github-pages push: - branches: ["main"] + branches: + - deploy-to-github-pages permissions: contents: read From 662605391230b313036fbd011541d19c9a812d5c Mon Sep 17 00:00:00 2001 From: Povindu Samarasekara Date: Wed, 3 Sep 2025 14:08:38 +0530 Subject: [PATCH 12/24] feat: updated .net version to 8.0 --- Server/Server.csproj | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Server/Server.csproj b/Server/Server.csproj index 470b53a5..164a96d8 100644 --- a/Server/Server.csproj +++ b/Server/Server.csproj @@ -1,7 +1,7 @@ - net9.0 + net8.0 enable enable @@ -12,7 +12,7 @@ - + From c2baa5080e97754084a5231ae3375ab759eb611a Mon Sep 17 00:00:00 2001 From: Povindu Samarasekara Date: Wed, 3 Sep 2025 14:13:17 +0530 Subject: [PATCH 13/24] cicd: updated appservice workflow --- .github/workflows/main_docs-next.yml | 34 ++++++++++++++++++++-------- 1 file changed, 25 insertions(+), 9 deletions(-) diff --git a/.github/workflows/main_docs-next.yml b/.github/workflows/main_docs-next.yml index 2c981877..5f45e79f 100644 --- a/.github/workflows/main_docs-next.yml +++ b/.github/workflows/main_docs-next.yml @@ -1,5 +1,4 @@ name: Build and deploy ASP.Net Core app to Azure Web App - docs-next - on: push: branches: @@ -13,13 +12,28 @@ jobs: contents: read steps: - - uses: actions/checkout@v4 + - name: Checkout docs-next + uses: actions/checkout@v4 + + - name: Checkout contribution repo + uses: actions/checkout@v4 + with: + fetch-depth: 1 + repository: SuperOfficeDocs/contribution + path: ClientApp/external-content/contribution + + - name: Checkout SuperOfficeDocs repo + uses: actions/checkout@v4 + with: + fetch-depth: 1 + repository: SuperOfficeDocs/superoffice-docs + path: ClientApp/external-content/superoffice-docs # Set up .NET - name: Set up .NET uses: actions/setup-dotnet@v4 with: - dotnet-version: '9.x' + dotnet-version: '8.x' # Set up Node.js (for Astro build) - name: Set up Node.js @@ -30,17 +44,19 @@ jobs: cache-dependency-path: 'ClientApp/package-lock.json' # Build backend + frontend - - name: Restore and Build - run: dotnet build --configuration Release + # - name: Restore and Build + # working-directory: ./Server + # run: dotnet build --configuration Release - name: Publish project (runs npm + copies frontend via MSBuild target) - run: dotnet publish -c Release -o ${{env.DOTNET_ROOT}}/myapp + working-directory: ./Server + run: dotnet publish -c Release -o ${{env.DOTNET_ROOT}}/out - name: Upload artifact for deployment job uses: actions/upload-artifact@v4 with: name: .net-app - path: ${{env.DOTNET_ROOT}}/myapp + path: ${{env.DOTNET_ROOT}}/out deploy: runs-on: ubuntu-latest @@ -67,5 +83,5 @@ jobs: uses: azure/webapps-deploy@v3 with: app-name: 'docs-next' - slot-name: 'Production' - package: .net-app + # slot-name: 'Production' + package: . \ No newline at end of file From 2c092c0a552fbe55c11f5e2eed50d927e6f705c8 Mon Sep 17 00:00:00 2001 From: Developer Network Date: Wed, 3 Sep 2025 14:34:17 +0200 Subject: [PATCH 14/24] Change trigger branch for workflow to feat/povindu/setup-dotnet-project --- .github/workflows/main_docs-next.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/main_docs-next.yml b/.github/workflows/main_docs-next.yml index 5f45e79f..18b18d38 100644 --- a/.github/workflows/main_docs-next.yml +++ b/.github/workflows/main_docs-next.yml @@ -2,7 +2,7 @@ name: Build and deploy ASP.Net Core app to Azure Web App - docs-next on: push: branches: - - main + - feat/povindu/setup-dotnet-project workflow_dispatch: jobs: @@ -84,4 +84,4 @@ jobs: with: app-name: 'docs-next' # slot-name: 'Production' - package: . \ No newline at end of file + package: . From 294031dac519abebe243ccb386226e3c01b18b9d Mon Sep 17 00:00:00 2001 From: Developer Network Date: Thu, 4 Sep 2025 09:15:40 +0200 Subject: [PATCH 15/24] Add id-token permission to build job --- .github/workflows/main_docs-next.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/main_docs-next.yml b/.github/workflows/main_docs-next.yml index 18b18d38..291e2cd2 100644 --- a/.github/workflows/main_docs-next.yml +++ b/.github/workflows/main_docs-next.yml @@ -9,7 +9,9 @@ jobs: build: runs-on: ubuntu-latest permissions: + id-token: write contents: read + steps: - name: Checkout docs-next From f694d5e2c1d6dea624e6d2509b23a4b3a1959efa Mon Sep 17 00:00:00 2001 From: Povindu Samarasekara Date: Thu, 4 Sep 2025 15:02:17 +0530 Subject: [PATCH 16/24] feat: setup zip deployment --- .github/workflows/main_docs-next.yml | 28 ++++++++++++++-------------- .gitignore | 4 ++++ 2 files changed, 18 insertions(+), 14 deletions(-) diff --git a/.github/workflows/main_docs-next.yml b/.github/workflows/main_docs-next.yml index 291e2cd2..403eea67 100644 --- a/.github/workflows/main_docs-next.yml +++ b/.github/workflows/main_docs-next.yml @@ -45,19 +45,14 @@ jobs: cache: 'npm' cache-dependency-path: 'ClientApp/package-lock.json' - # Build backend + frontend - # - name: Restore and Build - # working-directory: ./Server - # run: dotnet build --configuration Release - - name: Publish project (runs npm + copies frontend via MSBuild target) working-directory: ./Server run: dotnet publish -c Release -o ${{env.DOTNET_ROOT}}/out - - name: Upload artifact for deployment job + - name: Upload artifact uses: actions/upload-artifact@v4 with: - name: .net-app + name: dotnet-artifact path: ${{env.DOTNET_ROOT}}/out deploy: @@ -68,22 +63,27 @@ jobs: contents: read steps: - - name: Download artifact from build job + - name: Download build artifact uses: actions/download-artifact@v4 with: - name: .net-app + name: dotnet-artifact + path: ./publish + + - name: Create deployment ZIP + run: | + cd publish + zip -r ../app.zip . + cd .. - - name: Login to Azure + - name: Azure Login (OIDC) uses: azure/login@v2 with: client-id: ${{ secrets.AZUREAPPSERVICE_CLIENTID_7D6201BE9CBA4102A67082079FA9D045 }} tenant-id: ${{ secrets.AZUREAPPSERVICE_TENANTID_E5F979726F2140149EE71D82B31CE225 }} subscription-id: ${{ secrets.AZUREAPPSERVICE_SUBSCRIPTIONID_3F73E186A6F2462480840A28C77242B0 }} - - name: Deploy to Azure Web App - id: deploy-to-webapp + - name: Deploy ZIP to Azure Web App uses: azure/webapps-deploy@v3 with: app-name: 'docs-next' - # slot-name: 'Production' - package: . + package: ./app.zip diff --git a/.gitignore b/.gitignore index 05f242e2..566f1e29 100644 --- a/.gitignore +++ b/.gitignore @@ -16,11 +16,15 @@ ClientApp/.astro/ # dependencies ClientApp/node_modules/ +# Build Log +ClientApp/build.log + # .NET Server/bin/ Server/obj/ Server/wwwroot/ +Server/publish/ # logs From f7371b5b7daa126edddf4e97f60f18a8c8e7a3a9 Mon Sep 17 00:00:00 2001 From: Povindu Samarasekara Date: Thu, 4 Sep 2025 17:12:28 +0530 Subject: [PATCH 17/24] fix: updated static file serving methid in program.cs --- Server/Program.cs | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/Server/Program.cs b/Server/Program.cs index fcb315e9..ec89fd96 100644 --- a/Server/Program.cs +++ b/Server/Program.cs @@ -25,9 +25,21 @@ } else { - app.UseDefaultFiles(); + // Serve the static Astro files + app.UseDefaultFiles(); app.UseStaticFiles(); - app.MapFallbackToFile("/index.html"); + + app.Use(async (context, next) => + { + await next(); + + if (context.Response.StatusCode == 404 && + !context.Request.Path.StartsWithSegments("/api")) + { + context.Request.Path = "/index.html"; + await next(); + } + }); } app.Run(); From 3a49516b5290858e647fdfe026ff236448deffcc Mon Sep 17 00:00:00 2001 From: Povindu Samarasekara Date: Mon, 8 Sep 2025 17:42:28 +0530 Subject: [PATCH 18/24] fix: added redirects to .html extenstion when routing --- Server/Program.cs | 15 +++++++++++++-- Server/Server.csproj | 4 ++-- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/Server/Program.cs b/Server/Program.cs index ec89fd96..7c971987 100644 --- a/Server/Program.cs +++ b/Server/Program.cs @@ -1,3 +1,5 @@ +using Microsoft.AspNetCore.Rewrite; + var builder = WebApplication.CreateBuilder(args); builder.Services.AddControllers(); @@ -25,10 +27,19 @@ } else { - // Serve the static Astro files - app.UseDefaultFiles(); + var rewriteOptions = new RewriteOptions() + // Redirect /something.html -> /something (permanent redirect) + .AddRedirect(@"^(.*)\.html$", "$1", statusCode: 301) + // Rewrite /something -> /something.html (internal rewrite, no redirect) + .AddRewrite(@"^([^.]+)$", "$1.html", skipRemainingRules: true); + + app.UseRewriter(rewriteOptions); + + // Serve static Astro files + app.UseDefaultFiles(); app.UseStaticFiles(); + app.Use(async (context, next) => { await next(); diff --git a/Server/Server.csproj b/Server/Server.csproj index 164a96d8..fbb5bd8b 100644 --- a/Server/Server.csproj +++ b/Server/Server.csproj @@ -12,6 +12,7 @@ + @@ -29,8 +30,7 @@ - + From 199b486bbd9eb10085e0eb37b9f11393fc1fccce Mon Sep 17 00:00:00 2001 From: Povindu Samarasekara Date: Thu, 4 Sep 2025 15:02:54 +0530 Subject: [PATCH 19/24] test build --- ClientApp/src/pages/en/api/reference/[...slug].astro | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ClientApp/src/pages/en/api/reference/[...slug].astro b/ClientApp/src/pages/en/api/reference/[...slug].astro index 99d6d497..09b24098 100644 --- a/ClientApp/src/pages/en/api/reference/[...slug].astro +++ b/ClientApp/src/pages/en/api/reference/[...slug].astro @@ -9,7 +9,7 @@ import ContentLayout from "@layouts/ContentLayout.astro"; import { renderMarkdownWithHeadingIds } from "@utils/contentUtils"; export async function getStaticPaths() { - const apiOnly = process.env.API_ONLY === "true"; + const apiOnly = process.env.API_ONLY === 'true'; if (!apiOnly) { return []; From 58ac41feaf69aa50a9ed598f28c186e81c4a5577 Mon Sep 17 00:00:00 2001 From: Povindu Samarasekara Date: Wed, 10 Sep 2025 12:14:57 +0530 Subject: [PATCH 20/24] feat: removed baseUrl variables --- ClientApp/src/components/Header.astro | 2 +- ClientApp/src/components/Search.astro | 2 +- ClientApp/src/components/TableOfContentList.tsx | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/ClientApp/src/components/Header.astro b/ClientApp/src/components/Header.astro index 67eb6a99..421fc22c 100644 --- a/ClientApp/src/components/Header.astro +++ b/ClientApp/src/components/Header.astro @@ -104,7 +104,7 @@ const currentPath = `/${trimSlash(new URL(Astro.url).pathname)}`;
Date: Wed, 10 Sep 2025 13:42:37 +0530 Subject: [PATCH 21/24] feat: updated middlewware piepline in program.cs --- Server/Program.cs | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/Server/Program.cs b/Server/Program.cs index 7c971987..706f7dd0 100644 --- a/Server/Program.cs +++ b/Server/Program.cs @@ -1,4 +1,5 @@ using Microsoft.AspNetCore.Rewrite; +using Microsoft.AspNetCore.SpaServices; var builder = WebApplication.CreateBuilder(args); @@ -7,13 +8,14 @@ var app = builder.Build(); app.UseHttpsRedirection(); -app.UseRouting(); -app.UseAuthorization(); -app.MapControllers(); - if (app.Environment.IsDevelopment()) { + app.UseRouting(); + app.UseAuthorization(); + app.MapControllers(); + + // Proxy to Astro dev server for frontend app.UseWhen( context => !context.Request.Path.StartsWithSegments("/api"), spaApp => @@ -35,11 +37,15 @@ app.UseRewriter(rewriteOptions); - // Serve static Astro files app.UseDefaultFiles(); app.UseStaticFiles(); + app.UseRouting(); + app.UseAuthorization(); + + app.MapControllers(); + // SPA fallback for non-API paths app.Use(async (context, next) => { await next(); From 21f46158b919d3d0f1fcdcd38f253574c823e864 Mon Sep 17 00:00:00 2001 From: Povindu Samarasekara Date: Thu, 11 Sep 2025 12:37:38 +0530 Subject: [PATCH 22/24] feat: updated html rewrite to exclude api paths --- Server/Program.cs | 28 +++++++++++++++++----------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/Server/Program.cs b/Server/Program.cs index 706f7dd0..f6c0a500 100644 --- a/Server/Program.cs +++ b/Server/Program.cs @@ -35,7 +35,13 @@ // Rewrite /something -> /something.html (internal rewrite, no redirect) .AddRewrite(@"^([^.]+)$", "$1.html", skipRemainingRules: true); - app.UseRewriter(rewriteOptions); + app.UseWhen( + context => !context.Request.Path.StartsWithSegments("/api"), + branch => + { + branch.UseRewriter(rewriteOptions); + } + ); app.UseDefaultFiles(); app.UseStaticFiles(); @@ -46,17 +52,17 @@ app.MapControllers(); // SPA fallback for non-API paths - app.Use(async (context, next) => - { - await next(); + // app.Use(async (context, next) => + // { + // await next(); - if (context.Response.StatusCode == 404 && - !context.Request.Path.StartsWithSegments("/api")) - { - context.Request.Path = "/index.html"; - await next(); - } - }); + // if (context.Response.StatusCode == 404 && + // !context.Request.Path.StartsWithSegments("/api")) + // { + // context.Request.Path = "/index.html"; + // await next(); + // } + // }); } app.Run(); From 87888b24b22e79338974a02b91809e461070927a Mon Sep 17 00:00:00 2001 From: Povindu Samarasekara Date: Thu, 11 Sep 2025 12:40:24 +0530 Subject: [PATCH 23/24] cicd: updated deployment branch --- .github/workflows/main_docs-next.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/main_docs-next.yml b/.github/workflows/main_docs-next.yml index 403eea67..332a2b09 100644 --- a/.github/workflows/main_docs-next.yml +++ b/.github/workflows/main_docs-next.yml @@ -2,7 +2,10 @@ name: Build and deploy ASP.Net Core app to Azure Web App - docs-next on: push: branches: - - feat/povindu/setup-dotnet-project + - main + pull_request: + branches: + - main workflow_dispatch: jobs: From 58189f6276d24c6a0253da4b7d15df638b1b4a2a Mon Sep 17 00:00:00 2001 From: Povindu Samarasekara Date: Mon, 15 Sep 2025 10:45:39 +0530 Subject: [PATCH 24/24] Update Azure Pipelines - setup build job --- build/azure-pipelines-docs-next.yml | 103 ++++++++++++++++++++++++++++ 1 file changed, 103 insertions(+) create mode 100644 build/azure-pipelines-docs-next.yml diff --git a/build/azure-pipelines-docs-next.yml b/build/azure-pipelines-docs-next.yml new file mode 100644 index 00000000..f4fab09f --- /dev/null +++ b/build/azure-pipelines-docs-next.yml @@ -0,0 +1,103 @@ +trigger: + branches: + include: + - main + +pr: + branches: + include: + - main + +resources: + repositories: + - repository: self + type: git + ref: main + # - repository: contributionRepo + # type: github + # name: SuperOfficeDocs/contribution + # ref: main # always pull main, adjust if needed + # - repository: superofficeDocsRepo + # type: github + # name: SuperOfficeDocs/superoffice-docs + # ref: main + +stages: + - stage: Build + displayName: "Build and Package" + jobs: + - job: Build + displayName: "Build .NET + Astro frontend" + pool: + name: Default # Uses Agent Pool named 'Default' + demands: + - agent.os -equals Linux + steps: + # Checkout your main repo + - checkout: self + + # Checkout external repos + - script: | + git clone https://github.com/SuperOfficeDocs/contribution.git ClientApp/external-content/contribution + git clone https://github.com/SuperOfficeDocs/superoffice-docs.git ClientApp/external-content/superoffice-docs + displayName: "Clone external GitHub repos" + + # Install .NET SDK + - task: UseDotNet@2 + inputs: + packageType: 'sdk' + version: '8.x' + + # Install Node.js + - task: NodeTool@0 + inputs: + versionSpec: '22.x' + + # Build & publish the .NET project (includes front-end build if wired in MSBuild targets) + - script: | + cd Server + dotnet publish -c Release -o $(Build.ArtifactStagingDirectory)/out + displayName: "Publish .NET & Astro project" + + # Zip the published output + - task: ArchiveFiles@2 + inputs: + rootFolderOrFile: '$(Build.ArtifactStagingDirectory)/out' + includeRootFolder: false + archiveType: 'zip' + archiveFile: '$(Build.ArtifactStagingDirectory)/app.zip' + replaceExistingArchive: true + + # Publish the zip as a pipeline artifact + - publish: $(Build.ArtifactStagingDirectory)/app.zip + artifact: docs-nect-artifact + + # - stage: Deploy + # displayName: "Deploy to Azure Web App" + # dependsOn: Build + # condition: or(eq(variables['Build.SourceBranch'], 'refs/heads/main'), + # eq(variables['Build.Reason'], 'Manual')) + # jobs: + # - deployment: DeployJob + # environment: 'production' + # pool: + # vmImage: 'ubuntu-latest' + # strategy: + # runOnce: + # deploy: + # steps: + # # Download artifact from Build stage + # - download: current + # artifact: docs-nect-artifact + + # # Deploy the artifact to Azure App Service + # - task: AzureWebApp@1 + # displayName: "Deploy ZIP to Azure Web App" + # inputs: + # azureSubscription: '' # ARM service connection in DevOps + # appName: 'docs-next' # Azure App Service name + # package: '$(Pipeline.Workspace)/drop/app.zip' + # appType: 'webAppLinux' + + +