From 4541139e16ba43adbf6fe8abd09043db9f10aa55 Mon Sep 17 00:00:00 2001
From: Patrick de Mooij
Date: Wed, 29 Sep 2021 20:02:45 +0200
Subject: [PATCH] Umbraco 9!
---
.gitignore | 23 +-
source/.vscode/launch.json | 33 +
source/.vscode/tasks.json | 42 +
.../InboundLinkErrors.Core.csproj | 4 +-
.../LinkErrorsDashboard.cs | 2 +-
.../LinkErrorsUserComposer.cs | 7 +-
.../MiddleWare/LinkErrorsMiddleware.cs | 27 +-
.../Repositories/LinkErrorsRepository.cs | 4 +-
.../InboundLinkErrors/assets/scripts/app.js | 6 +-
.../InboundLinkErrors.Website.csproj | 13 +-
.../Properties/launchSettings.json | 6 +-
source/InboundLinkErrors.Website/Startup.cs | 4 +-
.../Umbraco/Config/Lang/cs.xml | 567 +--
.../Umbraco/Config/Lang/da.xml | 106 +-
.../Umbraco/Config/Lang/de.xml | 135 +-
.../Umbraco/Config/Lang/en.xml | 256 +-
.../Umbraco/Config/Lang/en_us.xml | 259 +-
.../Umbraco/Config/Lang/es.xml | 396 +-
.../Umbraco/Config/Lang/fr.xml | 207 +-
.../Umbraco/Config/Lang/he.xml | 13 +-
.../Umbraco/Config/Lang/it.xml | 59 +-
.../Umbraco/Config/Lang/ja.xml | 30 +-
.../Umbraco/Config/Lang/ko.xml | 12 +-
.../Umbraco/Config/Lang/nb.xml | 32 +-
.../Umbraco/Config/Lang/nl.xml | 299 +-
.../Umbraco/Config/Lang/pl.xml | 85 +-
.../Umbraco/Config/Lang/pt.xml | 12 +-
.../Umbraco/Config/Lang/ru.xml | 95 +-
.../Umbraco/Config/Lang/sv.xml | 51 +-
.../Umbraco/Config/Lang/tr.xml | 265 +-
.../Umbraco/Config/Lang/zh.xml | 74 +-
.../Umbraco/Config/Lang/zh_tw.xml | 72 +-
.../Views/Test.cshtml | 6 +
.../appsettings.json | 9 +-
.../umbraco/UmbracoBackOffice/Default.cshtml | 4 +-
.../umbraco/UmbracoWebsite/NoNodes.cshtml | 14 +-
.../umbraco/config/appsettings-schema.json | 124 +-
.../umbraco/config/lang/cy.xml | 2482 +++++++++
.../umbraco/assets/css/installer.min.css | 2 +-
.../umbraco/assets/css/umbraco.min.css | 2 +-
.../umbraco/js/umbraco.controllers.min.js | 2 +-
.../umbraco/js/umbraco.directives.min.js | 2 +-
.../umbraco/js/umbraco.resources.min.js | 2 +-
.../umbraco/js/umbraco.services.min.js | 2 +-
.../wwwroot/umbraco/js/utilities.min.js | 2 +-
.../umbraco/lib/flatpickr/flatpickr.min.css | 8 +-
.../umbraco/lib/flatpickr/flatpickr.min.js | 4 +-
.../wwwroot/umbraco/lib/flatpickr/l10n/ar.js | 61 +-
.../wwwroot/umbraco/lib/flatpickr/l10n/at.js | 73 +-
.../wwwroot/umbraco/lib/flatpickr/l10n/az.js | 74 +
.../wwwroot/umbraco/lib/flatpickr/l10n/be.js | 78 +-
.../wwwroot/umbraco/lib/flatpickr/l10n/bg.js | 75 +-
.../wwwroot/umbraco/lib/flatpickr/l10n/bn.js | 73 +-
.../wwwroot/umbraco/lib/flatpickr/l10n/bs.js | 66 +
.../wwwroot/umbraco/lib/flatpickr/l10n/cat.js | 110 +-
.../wwwroot/umbraco/lib/flatpickr/l10n/cs.js | 78 +-
.../wwwroot/umbraco/lib/flatpickr/l10n/cy.js | 109 +-
.../wwwroot/umbraco/lib/flatpickr/l10n/da.js | 78 +-
.../wwwroot/umbraco/lib/flatpickr/l10n/de.js | 74 +-
.../umbraco/lib/flatpickr/l10n/default.js | 96 +-
.../wwwroot/umbraco/lib/flatpickr/l10n/eo.js | 78 +-
.../wwwroot/umbraco/lib/flatpickr/l10n/es.js | 78 +-
.../wwwroot/umbraco/lib/flatpickr/l10n/et.js | 78 +-
.../wwwroot/umbraco/lib/flatpickr/l10n/fa.js | 77 +-
.../wwwroot/umbraco/lib/flatpickr/l10n/fi.js | 78 +-
.../wwwroot/umbraco/lib/flatpickr/l10n/fo.js | 74 +
.../wwwroot/umbraco/lib/flatpickr/l10n/fr.js | 81 +-
.../wwwroot/umbraco/lib/flatpickr/l10n/ga.js | 66 +
.../wwwroot/umbraco/lib/flatpickr/l10n/gr.js | 77 +-
.../wwwroot/umbraco/lib/flatpickr/l10n/he.js | 67 +-
.../wwwroot/umbraco/lib/flatpickr/l10n/hi.js | 73 +-
.../wwwroot/umbraco/lib/flatpickr/l10n/hr.js | 74 +-
.../wwwroot/umbraco/lib/flatpickr/l10n/hu.js | 79 +-
.../wwwroot/umbraco/lib/flatpickr/l10n/id.js | 71 +-
.../umbraco/lib/flatpickr/l10n/index.js | 4534 +++++++++++++----
.../wwwroot/umbraco/lib/flatpickr/l10n/is.js | 72 +
.../wwwroot/umbraco/lib/flatpickr/l10n/it.js | 78 +-
.../wwwroot/umbraco/lib/flatpickr/l10n/ja.js | 80 +-
.../wwwroot/umbraco/lib/flatpickr/l10n/ka.js | 75 +
.../wwwroot/umbraco/lib/flatpickr/l10n/km.js | 78 +-
.../wwwroot/umbraco/lib/flatpickr/l10n/ko.js | 78 +-
.../wwwroot/umbraco/lib/flatpickr/l10n/kz.js | 77 +-
.../wwwroot/umbraco/lib/flatpickr/l10n/lt.js | 79 +-
.../wwwroot/umbraco/lib/flatpickr/l10n/lv.js | 74 +-
.../wwwroot/umbraco/lib/flatpickr/l10n/mk.js | 74 +-
.../wwwroot/umbraco/lib/flatpickr/l10n/mn.js | 66 +-
.../wwwroot/umbraco/lib/flatpickr/l10n/ms.js | 75 +-
.../wwwroot/umbraco/lib/flatpickr/l10n/my.js | 78 +-
.../wwwroot/umbraco/lib/flatpickr/l10n/nl.js | 83 +-
.../wwwroot/umbraco/lib/flatpickr/l10n/no.js | 78 +-
.../wwwroot/umbraco/lib/flatpickr/l10n/pa.js | 74 +-
.../wwwroot/umbraco/lib/flatpickr/l10n/pl.js | 82 +-
.../wwwroot/umbraco/lib/flatpickr/l10n/pt.js | 74 +-
.../wwwroot/umbraco/lib/flatpickr/l10n/ro.js | 78 +-
.../wwwroot/umbraco/lib/flatpickr/l10n/ru.js | 78 +-
.../wwwroot/umbraco/lib/flatpickr/l10n/si.js | 74 +-
.../wwwroot/umbraco/lib/flatpickr/l10n/sk.js | 78 +-
.../wwwroot/umbraco/lib/flatpickr/l10n/sl.js | 78 +-
.../wwwroot/umbraco/lib/flatpickr/l10n/sq.js | 74 +-
.../umbraco/lib/flatpickr/l10n/sr-cyr.js | 67 +
.../wwwroot/umbraco/lib/flatpickr/l10n/sr.js | 74 +-
.../wwwroot/umbraco/lib/flatpickr/l10n/sv.js | 78 +-
.../wwwroot/umbraco/lib/flatpickr/l10n/th.js | 78 +-
.../wwwroot/umbraco/lib/flatpickr/l10n/tr.js | 78 +-
.../wwwroot/umbraco/lib/flatpickr/l10n/uk.js | 74 +-
.../wwwroot/umbraco/lib/flatpickr/l10n/uz.js | 75 +
.../umbraco/lib/flatpickr/l10n/uz_latn.js | 75 +
.../wwwroot/umbraco/lib/flatpickr/l10n/vn.js | 74 +-
.../umbraco/lib/flatpickr/l10n/zh-tw.js | 68 +
.../wwwroot/umbraco/lib/flatpickr/l10n/zh.js | 73 +-
.../umbraco/lib/nouislider/nouislider.min.css | 1 -
.../umbraco/lib/nouislider/nouislider.min.js | 3 +-
.../views/common/drawers/help/help.html | 13 +-
.../blockpicker/blockpicker.html | 2 +-
.../compositions/compositions.html | 12 +-
.../datatypeconfigurationpicker.html | 4 +-
.../datatypepicker/datatypepicker.html | 6 +-
.../datatypesettings/datatypesettings.html | 2 +-
.../iconpicker/iconpicker.html | 2 +-
.../itempicker/itempicker.html | 23 +-
.../macroparameterpicker.html | 4 +-
.../macropicker/macropicker.html | 2 +-
.../mediaentryeditor/mediaentryeditor.html | 19 +-
.../mediapicker/mediapicker.html | 2 +-
.../overlays/mediacropdetails.html | 5 +
.../propertysettings/propertysettings.html | 20 +-
.../querybuilder/querybuilder.html | 6 +-
.../sectionpicker/sectionpicker.html | 5 +-
.../templatesections/templatesections.html | 34 +-
.../treepicker/treepicker.html | 2 +-
.../usergrouppicker/usergrouppicker.html | 4 +-
.../overlays/itempicker/itempicker.html | 8 +-
.../views/common/overlays/user/user.html | 24 +-
.../application/umb-app-header.html | 4 +-
.../components/application/umb-backdrop.html | 2 +-
.../application/umb-contextmenu.html | 6 +-
.../components/application/umb-login.html | 16 +-
.../application/umb-navigation.html | 2 +-
.../components/application/umb-search.html | 4 +-
.../application/umbtour/umb-tour-step.html | 2 +-
.../components/blockcard/umb-block-card.html | 13 +-
.../buttons/umb-button-ellipsis.html | 1 +
.../views/components/buttons/umb-button.html | 10 +-
.../views/components/buttons/umb-toggle.html | 4 +-
.../content/umb-content-node-info.html | 9 +-
.../content/umb-tabbed-content.html | 35 +-
.../content/umb-variant-content.html | 2 +-
.../contenttype/umb-content-type-group.html | 62 +
.../contenttype/umb-content-type-groups.html | 1 +
.../umb-content-type-property.html | 149 +
.../contenttype/umb-content-type-tab.html | 71 +
.../editor/umb-editor-content-header.html | 50 +-
.../components/editor/umb-editor-header.html | 10 +-
.../components/editor/umb-editor-menu.html | 2 +-
.../editor/umb-editor-navigation-item.html | 2 +-
.../editor/umb-editor-navigation.html | 36 +-
.../components/editor/umb-editor-tab-bar.html | 3 +
.../umb-element-editor-content.component.html | 32 +-
.../views/components/forms/umb-checkbox.html | 38 +-
.../components/forms/umb-radiobutton.html | 36 +-
.../components/forms/umb-search-filter.html | 11 +-
.../components/imaging/umb-image-crop.html | 6 +-
.../components/imaging/umb-image-gravity.html | 4 +-
.../components/media/umb-media-node-info.html | 8 +-
.../components/mediacard/umb-media-card.html | 4 +-
.../components/overlays/umb-overlay.html | 14 +-
.../property/umb-property-actions.html | 2 +-
.../views/components/tabs/umb-tabs-nav.html | 20 +-
.../components/tags/umb-tags-editor.html | 6 +-
.../views/components/tree/umb-tree-item.html | 2 +-
.../components/tree/umb-tree-search-box.html | 20 +-
.../tree/umb-tree-search-results.html | 2 +-
.../views/components/tree/umb-tree.html | 4 +-
.../views/components/umb-checkmark.html | 4 +-
.../views/components/umb-child-selector.html | 6 +-
.../views/components/umb-color-swatches.html | 6 +-
.../views/components/umb-confirm-action.html | 24 +-
.../views/components/umb-content-grid.html | 2 +-
.../components/umb-date-time-picker.html | 4 +-
.../views/components/umb-file-icon.html | 8 +-
.../views/components/umb-folder-grid.html | 2 +-
.../views/components/umb-grid-selector.html | 10 +-
.../views/components/umb-groups-builder.html | 404 +-
.../umbraco/views/components/umb-icon.html | 8 +-
.../views/components/umb-layout-selector.html | 4 +-
.../views/components/umb-lightbox.html | 7 +-
.../components/umb-list-view-settings.html | 4 +-
.../views/components/umb-locked-field.html | 4 +-
.../views/components/umb-media-grid.html | 22 +-
.../views/components/umb-mini-list-view.html | 34 +-
.../views/components/umb-mini-search.html | 6 +-
.../views/components/umb-node-preview.html | 26 +-
.../views/components/umb-progress-bar.html | 2 +-
.../umb-property-info-button.html | 8 +-
.../umbraco/views/components/umb-table.html | 4 +-
.../components/upload/umb-file-dropzone.html | 20 +-
.../upload/umb-property-file-upload.html | 4 +-
.../components/users/change-password.html | 5 +-
.../users/umb-user-group-preview.html | 8 +-
.../views/content/apps/content/content.html | 3 +-
.../umbraco/views/content/assigndomain.html | 2 +-
.../wwwroot/umbraco/views/content/create.html | 20 +-
.../views/content/createblueprint.html | 2 +-
.../views/content/overlays/schedule.html | 8 +-
.../wwwroot/umbraco/views/content/rights.html | 2 +-
.../wwwroot/umbraco/views/content/sort.html | 16 +-
.../views/contentblueprints/create.html | 6 +-
.../views/dashboard/content/redirecturls.html | 2 +-
.../dashboard/forms/formsdashboardintro.html | 2 +-
.../dashboard/settings/examinemanagement.html | 62 +-
.../views/dashboard/settings/healthcheck.html | 24 +-
.../umbraco/views/datatypes/create.html | 12 +-
.../umbraco/views/datatypes/delete.html | 42 +-
.../umbraco/views/datatypes/rename.html | 2 +-
.../views/datatypes/views/datatype.info.html | 6 +-
.../umbraco/views/dictionary/list.html | 5 +-
.../umbraco/views/documenttypes/create.html | 19 +-
.../umbraco/views/documenttypes/delete.html | 2 +-
.../umbraco/views/documenttypes/property.html | 4 +-
.../umbraco/views/documenttypes/rename.html | 2 +-
.../views/listview/listview.html | 4 +-
.../views/permissions/permissions.html | 22 +-
.../views/templates/templates.html | 4 +-
.../umbraco/views/install/database.html | 58 +-
.../wwwroot/umbraco/views/install/error.html | 2 +-
.../umbraco/views/languages/overview.html | 2 +-
.../umbraco/views/logviewer/overview.html | 4 +-
.../umbraco/views/logviewer/search.html | 45 +-
.../macros/infiniteeditors/parameter.html | 2 +-
.../views/macros/views/parameters.html | 2 +-
.../views/media/apps/content/content.html | 32 +-
.../wwwroot/umbraco/views/media/create.html | 10 +-
.../wwwroot/umbraco/views/media/sort.html | 16 +-
.../umbraco/views/mediatypes/create.html | 12 +-
.../umbraco/views/mediatypes/delete.html | 2 +-
.../umbraco/views/mediatypes/rename.html | 2 +-
.../mediatypes/views/listview/listview.html | 6 +-
.../views/permissions/permissions.html | 8 +-
.../views/member/apps/content/content.html | 32 +-
.../wwwroot/umbraco/views/member/create.html | 2 +-
.../umbraco/views/membertypes/create.html | 7 +-
.../umbraco/views/membertypes/delete.html | 2 +-
.../views/partialviewmacros/create.html | 10 +-
.../umbraco/views/partialviews/create.html | 8 +-
.../umbraco/views/prevalueeditors/hidden.html | 2 +-
.../views/prevalueeditors/imagepicker.html | 4 +-
.../prevalueeditors/mediafolderpicker.html | 6 +-
.../views/prevalueeditors/multivalues.html | 2 +-
.../views/prevalueeditors/numberrange.html | 53 +-
.../views/prevalueeditors/overlaysize.html | 9 +
.../views/prevalueeditors/textstring.html | 2 +-
.../views/prevalueeditors/treepicker.html | 4 +-
.../views/prevalueeditors/treesource.html | 6 +-
.../inlineblock/inlineblock.editor.html | 2 +-
.../labelblock/labelblock.editor.html | 2 +-
.../unsupportedblock.editor.html | 2 +-
.../blocklist.blockconfiguration.html | 13 +-
.../blocklist.blockconfiguration.overlay.html | 16 +-
.../umb-block-list-property-editor.html | 19 +-
.../blocklist/umb-block-list-row.html | 6 +-
.../colorpicker/colorpicker.prevalues.html | 2 +-
.../datepicker/datepicker.html | 4 +-
.../grid/dialogs/layoutconfig.html | 15 +-
.../grid/dialogs/rowconfig.html | 20 +-
.../propertyeditors/grid/editors/embed.html | 2 +-
.../propertyeditors/grid/editors/macro.html | 2 +-
.../propertyeditors/grid/editors/media.html | 2 +-
.../views/propertyeditors/grid/grid.html | 27 +-
.../propertyeditors/grid/grid.prevalues.html | 20 +-
.../imagecropper/imagecropper.html | 9 +-
.../imagecropper/imagecropper.prevalues.html | 2 +-
.../listview/includeproperties.prevalues.html | 4 +-
.../listview/layouts.prevalues.html | 6 +-
.../propertyeditors/listview/listview.html | 12 +-
.../mediapicker/mediapicker.html | 8 +-
.../umb-media-picker3-property-editor.html | 9 +-
.../membergrouppicker/membergrouppicker.html | 17 +-
.../membergroups/membergroups.html | 8 +-
.../multipletextbox/multipletextbox.html | 4 +-
.../nestedcontent.propertyeditor.html | 11 +-
.../relatedlinks/relatedlinks.html | 8 +-
.../propertyeditors/textbox/textbox.html | 2 +-
.../propertyeditors/urllist/urllist.html | 2 +-
.../wwwroot/umbraco/views/scripts/create.html | 4 +-
.../umbraco/views/stylesheets/create.html | 6 +-
.../views/stylesheets/views/rules/rules.html | 2 +-
.../wwwroot/umbraco/views/templates/edit.html | 2 +-
.../views/users/views/groups/groups.html | 4 +-
.../views/users/views/users/users.html | 2 +-
source/InboundLinkErrors.sln | 10 +-
.../InboundLinkErrors/assets/scripts/app.js | 6 +-
.../InboundLinkErrors.csproj | 8 +-
.../build/InboundLinkErrors.targets | 27 +
293 files changed, 12127 insertions(+), 5509 deletions(-)
create mode 100644 source/.vscode/launch.json
create mode 100644 source/.vscode/tasks.json
create mode 100644 source/InboundLinkErrors.Website/Views/Test.cshtml
create mode 100644 source/InboundLinkErrors.Website/umbraco/config/lang/cy.xml
create mode 100644 source/InboundLinkErrors.Website/wwwroot/umbraco/lib/flatpickr/l10n/az.js
create mode 100644 source/InboundLinkErrors.Website/wwwroot/umbraco/lib/flatpickr/l10n/bs.js
create mode 100644 source/InboundLinkErrors.Website/wwwroot/umbraco/lib/flatpickr/l10n/fo.js
create mode 100644 source/InboundLinkErrors.Website/wwwroot/umbraco/lib/flatpickr/l10n/ga.js
create mode 100644 source/InboundLinkErrors.Website/wwwroot/umbraco/lib/flatpickr/l10n/is.js
create mode 100644 source/InboundLinkErrors.Website/wwwroot/umbraco/lib/flatpickr/l10n/ka.js
create mode 100644 source/InboundLinkErrors.Website/wwwroot/umbraco/lib/flatpickr/l10n/sr-cyr.js
create mode 100644 source/InboundLinkErrors.Website/wwwroot/umbraco/lib/flatpickr/l10n/uz.js
create mode 100644 source/InboundLinkErrors.Website/wwwroot/umbraco/lib/flatpickr/l10n/uz_latn.js
create mode 100644 source/InboundLinkErrors.Website/wwwroot/umbraco/lib/flatpickr/l10n/zh-tw.js
create mode 100644 source/InboundLinkErrors.Website/wwwroot/umbraco/views/components/contenttype/umb-content-type-group.html
create mode 100644 source/InboundLinkErrors.Website/wwwroot/umbraco/views/components/contenttype/umb-content-type-groups.html
create mode 100644 source/InboundLinkErrors.Website/wwwroot/umbraco/views/components/contenttype/umb-content-type-property.html
create mode 100644 source/InboundLinkErrors.Website/wwwroot/umbraco/views/components/contenttype/umb-content-type-tab.html
create mode 100644 source/InboundLinkErrors.Website/wwwroot/umbraco/views/components/editor/umb-editor-tab-bar.html
create mode 100644 source/InboundLinkErrors.Website/wwwroot/umbraco/views/prevalueeditors/overlaysize.html
create mode 100644 source/InboundLinkErrors/build/InboundLinkErrors.targets
diff --git a/.gitignore b/.gitignore
index 78edf6b..4ca0f89 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,7 +17,6 @@
[Rr]eleases/
x64/
x86/
-build/
bld/
[Bb]in/
[Oo]bj/
@@ -199,4 +198,24 @@ FakesAssemblies/
TEMP/
Logs/
-App_Data/
\ No newline at end of file
+
+# Umbraco
+# Ignore unimportant folders generated by Umbraco
+**/App_Data/Logs/
+**/App_Data/[Pp]review/
+**/App_Data/TEMP/
+**/App_Data/NuGetBackup/
+
+# Ignore Umbraco content cache file
+**/App_Data/umbraco.config
+
+## this [Uu]mbraco/ folder should be created by cmd like `Install-Package UmbracoCms -Version 8.5.3`
+## you can find your Umbraco version in your Web.config. (i.e. )
+## Uncomment this line if you think it fits the way you work on your project.
+## **/[Uu]mbraco/
+
+# ImageProcessor DiskCache
+**/App_Data/cache/
+
+# Ignore the Models Builder models out of date flag
+**/ood.flag
\ No newline at end of file
diff --git a/source/.vscode/launch.json b/source/.vscode/launch.json
new file mode 100644
index 0000000..de4578a
--- /dev/null
+++ b/source/.vscode/launch.json
@@ -0,0 +1,33 @@
+{
+ // Use IntelliSense to learn about possible attributes.
+ // Hover to view descriptions of existing attributes.
+ // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
+ "version": "0.2.0",
+ "configurations": [
+ {
+ "name": ".NET Core Launch (web)",
+ "type": "coreclr",
+ "request": "launch",
+ "preLaunchTask": "build",
+ "program": "${workspaceFolder}/InboundLinkErrors.Website/bin/Debug/net5.0/InboundLinkErrors.Website.dll",
+ "args": [],
+ "cwd": "${workspaceFolder}/InboundLinkErrors.Website",
+ "stopAtEntry": false,
+ "serverReadyAction": {
+ "action": "openExternally",
+ "pattern": "\\bNow listening on:\\s+(https?://\\S+)"
+ },
+ "env": {
+ "ASPNETCORE_ENVIRONMENT": "Development"
+ },
+ "sourceFileMap": {
+ "/Views": "${workspaceFolder}/Views"
+ }
+ },
+ {
+ "name": ".NET Core Attach",
+ "type": "coreclr",
+ "request": "attach"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/source/.vscode/tasks.json b/source/.vscode/tasks.json
new file mode 100644
index 0000000..0508788
--- /dev/null
+++ b/source/.vscode/tasks.json
@@ -0,0 +1,42 @@
+{
+ "version": "2.0.0",
+ "tasks": [
+ {
+ "label": "build",
+ "command": "dotnet",
+ "type": "process",
+ "args": [
+ "build",
+ "${workspaceFolder}/InboundLinkErrors.Website/InboundLinkErrors.Website.csproj",
+ "/property:GenerateFullPaths=true",
+ "/consoleloggerparameters:NoSummary"
+ ],
+ "problemMatcher": "$msCompile"
+ },
+ {
+ "label": "publish",
+ "command": "dotnet",
+ "type": "process",
+ "args": [
+ "publish",
+ "${workspaceFolder}/InboundLinkErrors.Website/InboundLinkErrors.Website.csproj",
+ "/property:GenerateFullPaths=true",
+ "/consoleloggerparameters:NoSummary"
+ ],
+ "problemMatcher": "$msCompile"
+ },
+ {
+ "label": "watch",
+ "command": "dotnet",
+ "type": "process",
+ "args": [
+ "watch",
+ "run",
+ "${workspaceFolder}/InboundLinkErrors.Website/InboundLinkErrors.Website.csproj",
+ "/property:GenerateFullPaths=true",
+ "/consoleloggerparameters:NoSummary"
+ ],
+ "problemMatcher": "$msCompile"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/source/InboundLinkErrors.Core/InboundLinkErrors.Core.csproj b/source/InboundLinkErrors.Core/InboundLinkErrors.Core.csproj
index 2ca0552..e30c001 100644
--- a/source/InboundLinkErrors.Core/InboundLinkErrors.Core.csproj
+++ b/source/InboundLinkErrors.Core/InboundLinkErrors.Core.csproj
@@ -11,7 +11,7 @@
-
-
+
+
diff --git a/source/InboundLinkErrors.Core/LinkErrorsDashboard.cs b/source/InboundLinkErrors.Core/LinkErrorsDashboard.cs
index 825c640..e7e44e9 100644
--- a/source/InboundLinkErrors.Core/LinkErrorsDashboard.cs
+++ b/source/InboundLinkErrors.Core/LinkErrorsDashboard.cs
@@ -6,7 +6,7 @@ namespace InboundLinkErrors.Core
public class LinkErrorsDashboard : IDashboard
{
public string Alias => "linkErrorsDashboard";
- public string View => "/App_Plugins/LinkErrors/app.html";
+ public string View => "/App_Plugins/InboundLinkErrors/app.html";
public string[] Sections => new string[] {"Content"};
public IAccessRule[] AccessRules => Array.Empty();
}
diff --git a/source/InboundLinkErrors.Core/LinkErrorsUserComposer.cs b/source/InboundLinkErrors.Core/LinkErrorsUserComposer.cs
index 85ef4d0..72e0b2f 100644
--- a/source/InboundLinkErrors.Core/LinkErrorsUserComposer.cs
+++ b/source/InboundLinkErrors.Core/LinkErrorsUserComposer.cs
@@ -2,11 +2,12 @@
using InboundLinkErrors.Core.ConfigurationProvider;
using InboundLinkErrors.Core.Interfaces;
using InboundLinkErrors.Core.Mappers;
-using InboundLinkErrors.Core.MiddleWare;
+using InboundLinkErrors.Core.Middleware;
using InboundLinkErrors.Core.Options;
using InboundLinkErrors.Core.Processor;
using InboundLinkErrors.Core.Repositories;
using InboundLinkErrors.Core.Services;
+using InboundLinkErrors.Core.Tasks;
using Microsoft.AspNetCore.Builder;
using Microsoft.Extensions.DependencyInjection;
using Umbraco.Cms.Core;
@@ -37,8 +38,12 @@ public void Compose(IUmbracoBuilder composition)
composition.Services.AddUnique();
composition.Services.AddUnique();
+ composition.Services.AddHostedService();
+ composition.Services.AddHostedService();
+
composition.Services.Configure(composition.Config.GetSection(
LinkErrorsOptions.Position));
+
composition.Services.Configure(options => {
options.AddFilter(new UmbracoPipelineFilter(
"InboundLinkErrors",
diff --git a/source/InboundLinkErrors.Core/MiddleWare/LinkErrorsMiddleware.cs b/source/InboundLinkErrors.Core/MiddleWare/LinkErrorsMiddleware.cs
index 16be266..7c999a2 100644
--- a/source/InboundLinkErrors.Core/MiddleWare/LinkErrorsMiddleware.cs
+++ b/source/InboundLinkErrors.Core/MiddleWare/LinkErrorsMiddleware.cs
@@ -6,18 +6,21 @@
using InboundLinkErrors.Core.Processor;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Http.Extensions;
+using Umbraco.Cms.Core.Routing;
using Umbraco.Cms.Core.Web;
-namespace InboundLinkErrors.Core.MiddleWare
+namespace InboundLinkErrors.Core.Middleware
{
public class LinkErrorsMiddleware
{
private readonly RequestDelegate _next;
private readonly ILinkErrorsProcessor _processor;
private readonly LinkErrorConfiguration _configuration;
+ private readonly IUmbracoContextAccessor _umbracoContextAccessor;
- public LinkErrorsMiddleware(RequestDelegate next, ILinkErrorsProcessor processor, ILinkErrorConfigurationProvider configurationProvider)
+ public LinkErrorsMiddleware(RequestDelegate next, ILinkErrorsProcessor processor, ILinkErrorConfigurationProvider configurationProvider, IUmbracoContextAccessor umbracoContextAccessor)
{
+ _umbracoContextAccessor = umbracoContextAccessor;
_next = next;
_processor = processor;
_configuration = configurationProvider.GetConfiguration();
@@ -25,22 +28,28 @@ public LinkErrorsMiddleware(RequestDelegate next, ILinkErrorsProcessor processor
public async Task InvokeAsync(HttpContext context)
{
- if (context.Response.StatusCode != (int)HttpStatusCode.NotFound)
+ var pathAndQuery = context.Request.GetEncodedPathAndQuery();
+
+ if (pathAndQuery.IndexOf("/umbraco", StringComparison.InvariantCultureIgnoreCase) == 0)
{
await _next(context);
return;
}
- var pathAndQuery = context.Request.GetEncodedPathAndQuery();
+ if (!_configuration.TrackMedia && Path.HasExtension(pathAndQuery))
+ {
+ await _next(context);
+ return;
+ }
- // Ignore all /umbraco/ requests
- if (pathAndQuery.IndexOf("/umbraco/", StringComparison.InvariantCultureIgnoreCase) == 0)
+ if (!_umbracoContextAccessor.TryGetUmbracoContext(out var umbracoContext))
{
await _next(context);
return;
}
+ var publishedRequest = umbracoContext?.PublishedRequest;
- if (!_configuration.TrackMedia && Path.HasExtension(pathAndQuery))
+ if (publishedRequest is not null && publishedRequest.ResponseStatusCode != StatusCodes.Status404NotFound)
{
await _next(context);
return;
@@ -50,8 +59,8 @@ public async Task InvokeAsync(HttpContext context)
var referrer = _configuration.TrackReferrer ? headers.Referer?.AbsoluteUri : null;
var userAgent = _configuration.TrackUserAgents ? headers.Headers["User-Agent"].ToString() : null;
- _processor.AddRequest(pathAndQuery, referrer, userAgent);
+ _processor.AddRequest(context.Request.GetEncodedUrl(), referrer, userAgent);
await _next(context);
}
}
-}
+}
\ No newline at end of file
diff --git a/source/InboundLinkErrors.Core/Repositories/LinkErrorsRepository.cs b/source/InboundLinkErrors.Core/Repositories/LinkErrorsRepository.cs
index d86e25f..4d0fef5 100644
--- a/source/InboundLinkErrors.Core/Repositories/LinkErrorsRepository.cs
+++ b/source/InboundLinkErrors.Core/Repositories/LinkErrorsRepository.cs
@@ -14,9 +14,9 @@ namespace InboundLinkErrors.Core.Repositories
public class LinkErrorsRepository : ILinkErrorsRepository
{
private readonly IScopeProvider _scopeProvider;
- private readonly UmbracoMapper _umbracoMapper;
+ private readonly IUmbracoMapper _umbracoMapper;
- public LinkErrorsRepository(IScopeProvider scopeProvider, UmbracoMapper umbracoMapper)
+ public LinkErrorsRepository(IScopeProvider scopeProvider, IUmbracoMapper umbracoMapper)
{
_scopeProvider = scopeProvider;
_umbracoMapper = umbracoMapper;
diff --git a/source/InboundLinkErrors.Website/App_Plugins/InboundLinkErrors/assets/scripts/app.js b/source/InboundLinkErrors.Website/App_Plugins/InboundLinkErrors/assets/scripts/app.js
index 9c98a8c..399b14f 100644
--- a/source/InboundLinkErrors.Website/App_Plugins/InboundLinkErrors/assets/scripts/app.js
+++ b/source/InboundLinkErrors.Website/App_Plugins/InboundLinkErrors/assets/scripts/app.js
@@ -39,7 +39,7 @@ angular.module("umbraco").controller("LinkErrorsController", function ($scope, $
$scope.openRedirectDialog = function (linkError) {
var redirectDialogOptions = {
title: "Set redirect",
- view: "/App_Plugins/LinkErrors/assets/views/createRedirect.html",
+ view: "/App_Plugins/InboundLinkErrors/assets/views/createRedirect.html",
size: "small",
submit: function (model) {
var selectedNodeId = model.selectedNode.id;
@@ -58,7 +58,7 @@ angular.module("umbraco").controller("LinkErrorsController", function ($scope, $
$scope.openDetailDialog = function (linkError) {
var detailDialogOptions = {
title: "Details",
- view: "/App_Plugins/LinkErrors/assets/views/detail.html",
+ view: "/App_Plugins/InboundLinkErrors/assets/views/detail.html",
size: "small",
linkError: linkError,
close: function () {
@@ -203,7 +203,7 @@ angular.module("umbraco.resources").factory("LinkErrorsApi", function ($http) {
},
//Remove / Delete an existing redirect
remove: function (id) {
- return $http.delete("backoffice/LinkErrors/LinkErrorsApi/Delete/" + id);
+ return $http.delete("backoffice/LinkErrors/LinkErrorsApi/Delete/?id=" + id);
},
setRedirect: function (linkErrorId, nodeId, culture) {
return $http.post("backoffice/LinkErrors/LinkErrorsApi/SetRedirect?linkErrorId=" + linkErrorId + "&nodeId=" + nodeId + "&culture=" + culture);
diff --git a/source/InboundLinkErrors.Website/InboundLinkErrors.Website.csproj b/source/InboundLinkErrors.Website/InboundLinkErrors.Website.csproj
index 7e9de2c..036c7f9 100644
--- a/source/InboundLinkErrors.Website/InboundLinkErrors.Website.csproj
+++ b/source/InboundLinkErrors.Website/InboundLinkErrors.Website.csproj
@@ -4,14 +4,11 @@
-
+
+
+
-
-
-
-
-
@@ -41,6 +38,10 @@
+
+
+
+
diff --git a/source/InboundLinkErrors.Website/Properties/launchSettings.json b/source/InboundLinkErrors.Website/Properties/launchSettings.json
index 49234fe..54c7bd8 100644
--- a/source/InboundLinkErrors.Website/Properties/launchSettings.json
+++ b/source/InboundLinkErrors.Website/Properties/launchSettings.json
@@ -4,8 +4,8 @@
"windowsAuthentication": false,
"anonymousAuthentication": true,
"iisExpress": {
- "applicationUrl": "http://localhost:26438",
- "sslPort": 44369
+ "applicationUrl": "http://localhost:47665",
+ "sslPort": 44325
}
},
"profiles": {
@@ -20,7 +20,7 @@
"commandName": "Project",
"dotnetRunMessages": true,
"launchBrowser": true,
- "applicationUrl": "https://localhost:44369;http://localhost:26438",
+ "applicationUrl": "https://localhost:44325;http://localhost:47665",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
diff --git a/source/InboundLinkErrors.Website/Startup.cs b/source/InboundLinkErrors.Website/Startup.cs
index 795e0a4..075bb3a 100644
--- a/source/InboundLinkErrors.Website/Startup.cs
+++ b/source/InboundLinkErrors.Website/Startup.cs
@@ -62,8 +62,8 @@ public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
app.UseUmbraco()
.WithMiddleware(u =>
{
- u.WithBackOffice();
- u.WithWebsite();
+ u.UseBackOffice();
+ u.UseWebsite();
})
.WithEndpoints(u =>
{
diff --git a/source/InboundLinkErrors.Website/Umbraco/Config/Lang/cs.xml b/source/InboundLinkErrors.Website/Umbraco/Config/Lang/cs.xml
index 75159d7..1c9def6 100644
--- a/source/InboundLinkErrors.Website/Umbraco/Config/Lang/cs.xml
+++ b/source/InboundLinkErrors.Website/Umbraco/Config/Lang/cs.xml
@@ -16,10 +16,10 @@
Vytvořit skupinu
Odstranit
Deaktivovat
- Vyprázdnit koš
+ Vyprázdnit koš
Aktivovat
Exportovat typ dokumentu
- Importovat typ dokumentu
+ Importovat typ dokumentu
Importovat balíček
Editovat na stránce
Odhlásit
@@ -33,7 +33,6 @@
Práva
Přejmenovat
Obnovit
- Nastavit oprávnění pro stránku %0%
Kam zkopírovat
Kam přesunout
do struktury stromu pod
@@ -135,12 +134,10 @@
Uložit
Uložit a zavřít
Uložit a publikovat
- Uložit a naplánovat
Uložit a odeslat ke schválení
Náhled
Uložit zobrazení seznamu
Naplánovat
- Náhled
Náhled je deaktivován, protože není přiřazena žádná šablona
Vybrat styl
Zobrazit styly
@@ -149,7 +146,6 @@
Uložit a generovat modely
Zpět
Znovu
- Obnovit
Smazat štítek
Zrušit
Potvrdit
@@ -185,29 +181,7 @@
Seřadit
Historie (všechny jazyky)
-
- Abyste změnili typ dokumentu pro zvolený obsah, nejprve jej vyberte ze seznamu typů platných pro tohle umístění.
- Pak potvrďte a/nebo pozměňte mapování vlastností z aktuálního typu na nový a dejte Uložit.
- Obsah byl znovu publikován.
- Aktuální vlastnost
- Aktuální typ
- Typ dokumentu nemůže být změněn, neboť neexistují alternativy platné pro toto umístění.
- Typ dokumentu byl změněn
- Mapování vlastností
- Mapování na vlastnost
- Nová šablona
- Nový typ
- nic
- Obsah
- Vybrat nový typ dokumentu
- Typ dokumentu pro zvolený obsah byl úspěšně změněný na [new type] a následující vlastnosti byly namapovány:
- na
- Nelze dokončit mapování vlastností, neboť nejméně jedna z vlastností má definováno více než jedno mapování.
- Jsou zobrazeny pouze alternativní typy platné pro aktuální umístění.
-
- Nepodařilo se vytvořit složku pod rodičem s ID %0%
- Nepodařilo se vytvořit složku pod rodičem s názvem %0%
Název složky nesmí obsahovat nepovolené znaky.
Odstranění položky se nezdařilo: %0%
@@ -296,17 +270,10 @@
Include drafts: also publish unpublished content items.
This value is hidden. If you need access to view this value please contact your website administrator.
This value is hidden.
- What languages would you like to publish? All languages with content are saved!
What languages would you like to publish?
- What languages would you like to save?
- All languages with content are saved on creation!
What languages would you like to send for approval?
What languages would you like to schedule?
Select the languages to unpublish. Unpublishing a mandatory language will unpublish all languages.
- Published Languages
- Unpublished Languages
- Unmodified Languages
- These languages haven't been created
Ready to Publish?
Ready to Save?
Send for approval
@@ -327,13 +294,10 @@
Klikněte pro nahrání
nebo kliknutím sem vyberte soubory
- Sem můžete přetáhnout a nahrát soubory.
Tento soubor nelze nahrát, nemá povolený typ souboru
Maximální velikost souboru je
Nejvyšší složka médií
- Nepodařilo se přesunout média
Nadřazené a cílové složky nemohou být stejné
- Médium se nepodařilo zkopírovat
Nepodařilo se vytvořit složku pod nadřazeným id %0%
Nepodařilo se přejmenovat složku s id %0%
Přetáhněte své soubory do oblasti
@@ -441,7 +405,6 @@
Místní odkaz:
Při používání místních odkazů vložte znak "#" před odkaz
Otevřít v novém okně?
- Nastavení makra
Toto makro nemá žádné vlastnosti, které by bylo možno editovat
Vložit
Editovat oprávnění pro
@@ -579,10 +542,6 @@
Související stylopisy
Zobrazit jmenovku
Šířka a výška
- Všechny typy vlastností a údaje o nich
- použití tohoto datového typu bude trvale smazáno, potvrďte, že je chcete odstranit
- Ano, smazat
- a všechny typy vlastností a data vlastností používající tento typ dat
Vyberte složku, kterou chcete přesunout
do stromové struktury níže
byla přesunuta pod
@@ -676,7 +635,6 @@
Ikona
Id
Import
- Zahrnout podsložky do vyhledávání
Info
Vnitřní okraj
Vložit
@@ -768,7 +726,6 @@
Další
Články
Videa
- Instalování
Modrá
@@ -819,7 +776,7 @@
Pro pokračování otevřete, prosím, soubor "web.config" (za pužití Visual Studia nebo Vašeho oblíbeného tedtového editoru), přejděte na jeho konec, přidejte připojovací řetězec pro Vaši databázi v klíčí nazvaném "umbracoDbDSN" a soubor uložte.
Klikněte na tlačítko zopakovat, až budete hotovi.
- Další informace o editování souboru web.config zde.
]]>
+ Další informace o editování souboru web.config zde.
]]>
Pokud je to nezbytné, kontaktujte vašeho poskytovatele hostingu.
Jestliže instalujete na místní počítač nebo server, budete potřebovat informace od Vašeho systémového administrátora.]]>
@@ -942,85 +899,85 @@
Umbraco: Resetování hesla
-
-
-
-
-
-
-
-
-
- |
-
-
-
-
-
-
-
-
-
-
- Vyžadováno resetování hesla
-
-
- Vaše uživatelské jméno pro přihlášení do backoffice Umbraco je: %0%
-
-
-
-
- Pokud nemůžete kliknout na odkaz, zkopírujte a vložte tuto adresu URL do okna prohlížeče:
-
-
- |
-
-
- |
-
-
-
-
- |
- |
-
-
-
-