From 407f6b1ab8cf355269d216db351944aa3daba807 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Thu, 14 Nov 2019 13:32:42 +0100 Subject: [PATCH 001/206] set a minimum version requirement for node --- src/Umbraco.Web.UI.Client/package-lock.json | 83 +++++++++++---------- src/Umbraco.Web.UI.Client/package.json | 5 +- 2 files changed, 47 insertions(+), 41 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/package-lock.json b/src/Umbraco.Web.UI.Client/package-lock.json index a2f55b76b1..df2f3637f6 100644 --- a/src/Umbraco.Web.UI.Client/package-lock.json +++ b/src/Umbraco.Web.UI.Client/package-lock.json @@ -9214,9 +9214,9 @@ } }, "npm": { - "version": "6.12.0", - "resolved": "https://registry.npmjs.org/npm/-/npm-6.12.0.tgz", - "integrity": "sha512-juj5VkB3/k+PWbJUnXD7A/8oc8zLusDnK/sV9PybSalsbOVOTIp5vSE0rz5rQ7BsmUgQS47f/L2GYQnWXaKgnQ==", + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/npm/-/npm-6.13.0.tgz", + "integrity": "sha512-zjSJ8zjk0cDBZXqTWbQ6+qOdm1m2k489YDFP60RQRUhOxT5LOBhl+cDtFlEXEIblcNjofmsZ/qQ/wzmn5frimQ==", "requires": { "JSONStream": "^1.3.5", "abbrev": "~1.1.1", @@ -9229,7 +9229,7 @@ "byte-size": "^5.0.1", "cacache": "^12.0.3", "call-limit": "^1.1.1", - "chownr": "^1.1.2", + "chownr": "^1.1.3", "ci-info": "^2.0.0", "cli-columns": "^3.1.2", "cli-table3": "^0.5.1", @@ -9247,7 +9247,7 @@ "fs-write-stream-atomic": "~1.0.10", "gentle-fs": "^2.2.1", "glob": "^7.1.4", - "graceful-fs": "^4.2.2", + "graceful-fs": "^4.2.3", "has-unicode": "~2.0.1", "hosted-git-info": "^2.8.5", "iferr": "^1.0.2", @@ -9260,7 +9260,7 @@ "is-cidr": "^3.0.0", "json-parse-better-errors": "^1.0.2", "lazy-property": "~1.0.0", - "libcipm": "^4.0.4", + "libcipm": "^4.0.7", "libnpm": "^3.0.1", "libnpmaccess": "^3.0.2", "libnpmhook": "^5.0.3", @@ -9294,23 +9294,23 @@ "npm-install-checks": "^3.0.2", "npm-lifecycle": "^3.1.4", "npm-package-arg": "^6.1.1", - "npm-packlist": "^1.4.4", + "npm-packlist": "^1.4.6", "npm-pick-manifest": "^3.0.2", "npm-profile": "^4.0.2", - "npm-registry-fetch": "^4.0.0", + "npm-registry-fetch": "^4.0.2", "npm-user-validate": "~1.0.0", "npmlog": "~4.1.2", "once": "~1.4.0", "opener": "^1.5.1", "osenv": "^0.1.5", - "pacote": "^9.5.8", + "pacote": "^9.5.9", "path-is-inside": "~1.0.2", "promise-inflight": "~1.0.1", "qrcode-terminal": "^0.12.0", "query-string": "^6.8.2", "qw": "~1.0.1", "read": "~1.0.7", - "read-cmd-shim": "^1.0.4", + "read-cmd-shim": "^1.0.5", "read-installed": "~4.0.3", "read-package-json": "^2.1.0", "read-package-tree": "^5.3.1", @@ -9327,7 +9327,7 @@ "sorted-union-stream": "~2.1.3", "ssri": "^6.0.1", "stringify-package": "^1.0.1", - "tar": "^4.4.12", + "tar": "^4.4.13", "text-table": "~0.2.0", "tiny-relative-date": "^1.3.0", "uid-number": "0.0.6", @@ -9335,7 +9335,7 @@ "unique-filename": "^1.1.1", "unpipe": "~1.0.0", "update-notifier": "^2.5.0", - "uuid": "^3.3.2", + "uuid": "^3.3.3", "validate-npm-package-license": "^3.0.4", "validate-npm-package-name": "~3.0.0", "which": "^1.3.1", @@ -9581,7 +9581,7 @@ } }, "chownr": { - "version": "1.1.2", + "version": "1.1.3", "bundled": true }, "ci-info": { @@ -10142,7 +10142,7 @@ }, "dependencies": { "minipass": { - "version": "2.8.6", + "version": "2.9.0", "bundled": true, "requires": { "safe-buffer": "^5.1.2", @@ -10324,7 +10324,7 @@ } }, "graceful-fs": { - "version": "4.2.2", + "version": "4.2.3", "bundled": true }, "har-schema": { @@ -10410,7 +10410,7 @@ "bundled": true }, "ignore-walk": { - "version": "3.0.1", + "version": "3.0.3", "bundled": true, "requires": { "minimatch": "^3.0.4" @@ -10624,7 +10624,7 @@ } }, "libcipm": { - "version": "4.0.4", + "version": "4.0.7", "bundled": true, "requires": { "bin-links": "^1.1.2", @@ -10946,27 +10946,23 @@ "version": "0.0.8", "bundled": true }, - "minipass": { - "version": "2.3.3", + "minizlib": { + "version": "1.3.3", "bundled": true, "requires": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" + "minipass": "^2.9.0" }, "dependencies": { - "yallist": { - "version": "3.0.2", - "bundled": true + "minipass": { + "version": "2.9.0", + "bundled": true, + "requires": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } } } }, - "minizlib": { - "version": "1.2.2", - "bundled": true, - "requires": { - "minipass": "^2.2.1" - } - }, "mississippi": { "version": "3.0.0", "bundled": true, @@ -11134,7 +11130,7 @@ } }, "npm-packlist": { - "version": "1.4.4", + "version": "1.4.6", "bundled": true, "requires": { "ignore-walk": "^3.0.1", @@ -11160,7 +11156,7 @@ } }, "npm-registry-fetch": { - "version": "4.0.0", + "version": "4.0.2", "bundled": true, "requires": { "JSONStream": "^1.3.4", @@ -11168,7 +11164,14 @@ "figgy-pudding": "^3.4.1", "lru-cache": "^5.1.1", "make-fetch-happen": "^5.0.0", - "npm-package-arg": "^6.1.0" + "npm-package-arg": "^6.1.0", + "safe-buffer": "^5.2.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.2.0", + "bundled": true + } } }, "npm-run-path": { @@ -11285,7 +11288,7 @@ } }, "pacote": { - "version": "9.5.8", + "version": "9.5.9", "bundled": true, "requires": { "bluebird": "^3.5.3", @@ -11320,7 +11323,7 @@ }, "dependencies": { "minipass": { - "version": "2.3.5", + "version": "2.9.0", "bundled": true, "requires": { "safe-buffer": "^5.1.2", @@ -11520,7 +11523,7 @@ } }, "read-cmd-shim": { - "version": "1.0.4", + "version": "1.0.5", "bundled": true, "requires": { "graceful-fs": "^4.1.2" @@ -11932,7 +11935,7 @@ } }, "tar": { - "version": "4.4.12", + "version": "4.4.13", "bundled": true, "requires": { "chownr": "^1.1.1", @@ -11945,7 +11948,7 @@ }, "dependencies": { "minipass": { - "version": "2.8.6", + "version": "2.9.0", "bundled": true, "requires": { "safe-buffer": "^5.1.2", @@ -12107,7 +12110,7 @@ } }, "uuid": { - "version": "3.3.2", + "version": "3.3.3", "bundled": true }, "validate-npm-package-license": { diff --git a/src/Umbraco.Web.UI.Client/package.json b/src/Umbraco.Web.UI.Client/package.json index 44ecb4026f..d003b9725f 100644 --- a/src/Umbraco.Web.UI.Client/package.json +++ b/src/Umbraco.Web.UI.Client/package.json @@ -9,6 +9,9 @@ "fastdev": "gulp fastdev", "watch": "gulp watch" }, + "engines": { + "node": ">=10.00.0" + }, "dependencies": { "ace-builds": "1.4.2", "angular": "1.7.5", @@ -39,7 +42,7 @@ "moment": "2.22.2", "ng-file-upload": "12.2.13", "nouislider": "14.0.2", - "npm": "6.12.0", + "npm": "^6.13.0", "signalr": "2.4.0", "spectrum-colorpicker": "1.8.0", "tinymce": "4.9.2", From ee8247533536c1c7b65b52f29f08e7cb50468abc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Tue, 26 Nov 2019 11:03:49 +0100 Subject: [PATCH 002/206] remove out icon --- src/Umbraco.Web.UI.Client/src/less/navs.less | 4 ++++ .../src/views/components/content/umb-content-node-info.html | 1 - .../src/views/components/media/umb-media-node-info.html | 4 +--- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/less/navs.less b/src/Umbraco.Web.UI.Client/src/less/navs.less index 5b97464e31..8336a6cd42 100644 --- a/src/Umbraco.Web.UI.Client/src/less/navs.less +++ b/src/Umbraco.Web.UI.Client/src/less/navs.less @@ -185,6 +185,10 @@ } .nav-stacked > li > a { margin-right: 0; // no need for the gap between nav items + color: @ui-option-type; +} +.nav-stacked > li > a:hover { + color: @ui-option-type-hover; } // Tabs diff --git a/src/Umbraco.Web.UI.Client/src/views/components/content/umb-content-node-info.html b/src/Umbraco.Web.UI.Client/src/views/components/content/umb-content-node-info.html index d72e977010..61d0e6a33e 100644 --- a/src/Umbraco.Web.UI.Client/src/views/components/content/umb-content-node-info.html +++ b/src/Umbraco.Web.UI.Client/src/views/components/content/umb-content-node-info.html @@ -9,7 +9,6 @@
  • {{url.culture}} - {{url.text}}
    diff --git a/src/Umbraco.Web.UI.Client/src/views/components/media/umb-media-node-info.html b/src/Umbraco.Web.UI.Client/src/views/components/media/umb-media-node-info.html index 4f7141559c..e4fa80d25f 100644 --- a/src/Umbraco.Web.UI.Client/src/views/components/media/umb-media-node-info.html +++ b/src/Umbraco.Web.UI.Client/src/views/components/media/umb-media-node-info.html @@ -13,9 +13,7 @@ From 8e0693feaf612341ffd727eca45bd48dadc226f8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Tue, 26 Nov 2019 13:11:48 +0100 Subject: [PATCH 003/206] fixing history headline + minor style adjustments --- .../content/umbcontentnodeinfo.directive.js | 10 ++++----- .../src/less/components/umb-badge.less | 3 ++- src/Umbraco.Web.UI.Client/src/less/navs.less | 10 +++++---- .../src/less/properties.less | 9 ++++++-- .../content/umb-content-node-info.html | 21 +++++++++---------- .../components/media/umb-media-node-info.html | 2 +- .../propertyeditors/urllist/urllist.html | 4 ++-- .../src/views/users/views/user/details.html | 2 +- 8 files changed, 33 insertions(+), 28 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/common/directives/components/content/umbcontentnodeinfo.directive.js b/src/Umbraco.Web.UI.Client/src/common/directives/components/content/umbcontentnodeinfo.directive.js index 78a2111fc5..fb180f3c57 100644 --- a/src/Umbraco.Web.UI.Client/src/common/directives/components/content/umbcontentnodeinfo.directive.js +++ b/src/Umbraco.Web.UI.Client/src/common/directives/components/content/umbcontentnodeinfo.directive.js @@ -18,6 +18,8 @@ scope.allowChangeTemplate = false; scope.allTemplates = []; + scope.historyLabelKey = scope.node.variants && scope.node.variants.length === 1 ? "general_history" : "auditTrails_historyIncludingVariants"; + function onInit() { entityResource.getAll("Template").then(function (templates) { scope.allTemplates = templates; @@ -46,8 +48,6 @@ "content_notCreated", "prompt_unsavedChanges", "prompt_doctypeChangeWarning", - "general_history", - "auditTrails_historyIncludingVariants", "content_itemNotPublished", "general_choose" ]; @@ -61,10 +61,8 @@ labels.notCreated = data[4]; labels.unsavedChanges = data[5]; labels.doctypeChangeWarning = data[6]; - labels.notPublished = data[9]; - - scope.historyLabel = scope.node.variants && scope.node.variants.length === 1 ? data[7] : data[8]; - scope.chooseLabel = data[10]; + labels.notPublished = data[7]; + scope.chooseLabel = data[8]; setNodePublishStatus(); diff --git a/src/Umbraco.Web.UI.Client/src/less/components/umb-badge.less b/src/Umbraco.Web.UI.Client/src/less/components/umb-badge.less index 9a18bef2de..e1eb2ee2ec 100644 --- a/src/Umbraco.Web.UI.Client/src/less/components/umb-badge.less +++ b/src/Umbraco.Web.UI.Client/src/less/components/umb-badge.less @@ -46,7 +46,8 @@ } .umb-badge--xs { - font-size: 13px; + font-size: 12px; + font-weight: 600; padding: 1px 10px; } diff --git a/src/Umbraco.Web.UI.Client/src/less/navs.less b/src/Umbraco.Web.UI.Client/src/less/navs.less index 8336a6cd42..a06c172c25 100644 --- a/src/Umbraco.Web.UI.Client/src/less/navs.less +++ b/src/Umbraco.Web.UI.Client/src/less/navs.less @@ -168,8 +168,7 @@ // Active state .nav-pills > .active > a, -.nav-pills > .active > a:hover, -.nav-pills > .active > a:focus { +.nav-pills > .active > a:hover { color: @white; background-color: @linkColor; } @@ -184,11 +183,14 @@ float: none; } .nav-stacked > li > a { + position: relative; margin-right: 0; // no need for the gap between nav items - color: @ui-option-type; + color: @ui-action-discreet-type; + border-radius: 3px; } .nav-stacked > li > a:hover { - color: @ui-option-type-hover; + color: @ui-action-discreet-type-hover; + background-color: @ui-action-discreet-hover; } // Tabs diff --git a/src/Umbraco.Web.UI.Client/src/less/properties.less b/src/Umbraco.Web.UI.Client/src/less/properties.less index 8523fe9300..04f1ceda99 100644 --- a/src/Umbraco.Web.UI.Client/src/less/properties.less +++ b/src/Umbraco.Web.UI.Client/src/less/properties.less @@ -116,7 +116,9 @@ } .history-item__date { - font-size: 13px; + font-size: 12px; + margin-top: -4px; + display: block; color: @gray-5; } @@ -128,7 +130,10 @@ } .history-item__badge { - margin-right: 5px; + margin-right: 10px; +} +.history-item__description { + color: @gray-5; } /* RESPONSIVE */ diff --git a/src/Umbraco.Web.UI.Client/src/views/components/content/umb-content-node-info.html b/src/Umbraco.Web.UI.Client/src/views/components/content/umb-content-node-info.html index 61d0e6a33e..e6681051cb 100644 --- a/src/Umbraco.Web.UI.Client/src/views/components/content/umb-content-node-info.html +++ b/src/Umbraco.Web.UI.Client/src/views/components/content/umb-content-node-info.html @@ -7,13 +7,13 @@
    @@ -42,8 +42,7 @@ - + title-key="{{historyLabelKey}}" ng-if="historyLabelKey">
    - @@ -78,7 +77,7 @@
    - {{ item.logType }} - + {{ item.comment }} - +
    @@ -125,7 +124,7 @@
    - + diff --git a/src/Umbraco.Web.UI.Client/src/views/components/media/umb-media-node-info.html b/src/Umbraco.Web.UI.Client/src/views/components/media/umb-media-node-info.html index e4fa80d25f..2f3db533d1 100644 --- a/src/Umbraco.Web.UI.Client/src/views/components/media/umb-media-node-info.html +++ b/src/Umbraco.Web.UI.Client/src/views/components/media/umb-media-node-info.html @@ -12,7 +12,7 @@
    diff --git a/src/Umbraco.Web.UI.Client/src/views/users/views/user/details.html b/src/Umbraco.Web.UI.Client/src/views/users/views/user/details.html index ee77e4c14e..169e16d0ce 100644 --- a/src/Umbraco.Web.UI.Client/src/views/users/views/user/details.html +++ b/src/Umbraco.Web.UI.Client/src/views/users/views/user/details.html @@ -306,7 +306,7 @@ Status:
    - + {{model.user.userDisplayState.name}}
    From 27fdc1656975e84d738e905c0ca0d3135221cadf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Thu, 9 Jan 2020 14:19:42 +0100 Subject: [PATCH 004/206] added round corners in umb-media-grid for media-picker --- .../src/less/components/umb-media-grid.less | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/less/components/umb-media-grid.less b/src/Umbraco.Web.UI.Client/src/less/components/umb-media-grid.less index 5d6b7ad962..482f65fe29 100644 --- a/src/Umbraco.Web.UI.Client/src/less/components/umb-media-grid.less +++ b/src/Umbraco.Web.UI.Client/src/less/components/umb-media-grid.less @@ -19,11 +19,19 @@ align-items: center; align-self: stretch; + border-radius: @baseBorderRadius; + margin: 10px; position: relative; user-select: none; box-shadow: 0 1px 1px 0 rgba(0,0,0,.2); transition: box-shadow 150ms ease-in-out; + + > div { + overflow: hidden; + border-radius: @baseBorderRadius; + } + } .umb-media-grid__item.-unselectable { @@ -35,7 +43,8 @@ left: 0; right: 0; bottom: 0; - background-color: rgba(230, 230, 230, .5); + border-radius: @baseBorderRadius; + background-color: rgba(230, 230, 230, .8); pointer-events: none; } } From 342bce5c588bd8dab524a76ac84034f40929c341 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Mon, 3 Feb 2020 14:56:57 +0100 Subject: [PATCH 005/206] keep umb-editor inside viewport width --- .../src/less/components/editor/umb-editor.less | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/less/components/editor/umb-editor.less b/src/Umbraco.Web.UI.Client/src/less/components/editor/umb-editor.less index d2a3bdedb1..44595542f8 100644 --- a/src/Umbraco.Web.UI.Client/src/less/components/editor/umb-editor.less +++ b/src/Umbraco.Web.UI.Client/src/less/components/editor/umb-editor.less @@ -11,6 +11,7 @@ .absolute(); background: @brownGrayLight; z-index: @zIndexEditor; + max-width: 100%; &--infiniteMode { transform: none; @@ -104,4 +105,4 @@ i { margin-right:5px; } -} \ No newline at end of file +} From e1ef5f4e6b6b28715d965a9a3d2dac951f251de6 Mon Sep 17 00:00:00 2001 From: Sebastiaan Janssen Date: Mon, 28 Sep 2020 21:24:46 +0200 Subject: [PATCH 006/206] Fix cropper / preview not showing --- .../mediapicker/overlays/mediacropdetails.controller.js | 4 ++-- .../mediapicker/overlays/mediacropdetails.html | 5 ++--- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/views/common/infiniteeditors/mediapicker/overlays/mediacropdetails.controller.js b/src/Umbraco.Web.UI.Client/src/views/common/infiniteeditors/mediapicker/overlays/mediacropdetails.controller.js index 030200e1e6..851a209ba9 100644 --- a/src/Umbraco.Web.UI.Client/src/views/common/infiniteeditors/mediapicker/overlays/mediacropdetails.controller.js +++ b/src/Umbraco.Web.UI.Client/src/views/common/infiniteeditors/mediapicker/overlays/mediacropdetails.controller.js @@ -6,7 +6,7 @@ vm.submit = submit; vm.close = close; - vm.cropSet = cropSet; + vm.hasCrops = cropSet() === true; if (!$scope.model.target.coordinates && !$scope.model.target.focalPoint) { $scope.model.target.focalPoint = { left: .5, top: .5 }; @@ -59,6 +59,6 @@ function cropSet() { var model = $scope.model; - return (model.cropSize || {}).width && model.target.thumbnail; + return (model.cropSize || {}).width !== undefined && (model.cropSize || {}).height !== undefined; } }); diff --git a/src/Umbraco.Web.UI.Client/src/views/common/infiniteeditors/mediapicker/overlays/mediacropdetails.html b/src/Umbraco.Web.UI.Client/src/views/common/infiniteeditors/mediapicker/overlays/mediacropdetails.html index cda42043c1..3f75e25a05 100644 --- a/src/Umbraco.Web.UI.Client/src/views/common/infiniteeditors/mediapicker/overlays/mediacropdetails.html +++ b/src/Umbraco.Web.UI.Client/src/views/common/infiniteeditors/mediapicker/overlays/mediacropdetails.html @@ -25,8 +25,7 @@
    - -
    +
    Preview
    @@ -34,7 +33,7 @@ {{model.target.name}}
    -
    +
    Crop section
    From df0222b09e5b86f2bb75439d5c8bccfaedf32bf8 Mon Sep 17 00:00:00 2001 From: Sebastiaan Janssen Date: Tue, 29 Sep 2020 10:49:48 +0200 Subject: [PATCH 007/206] Don't remove focal point - reverts a potential breaking change --- .../mediapicker/mediapicker.controller.js | 20 ++++++++++++++++--- .../overlays/mediacropdetails.controller.js | 8 ++++++++ .../overlays/mediacropdetails.html | 15 +++++++++++++- 3 files changed, 39 insertions(+), 4 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/views/common/infiniteeditors/mediapicker/mediapicker.controller.js b/src/Umbraco.Web.UI.Client/src/views/common/infiniteeditors/mediapicker/mediapicker.controller.js index a022657e7c..288a63f534 100644 --- a/src/Umbraco.Web.UI.Client/src/views/common/infiniteeditors/mediapicker/mediapicker.controller.js +++ b/src/Umbraco.Web.UI.Client/src/views/common/infiniteeditors/mediapicker/mediapicker.controller.js @@ -17,6 +17,7 @@ angular.module("umbraco") vm.changeSearch = changeSearch; vm.submitFolder = submitFolder; vm.enterSubmitFolder = enterSubmitFolder; + vm.focalPointChanged = focalPointChanged; vm.changePagination = changePagination; vm.clickHandler = clickHandler; @@ -241,7 +242,7 @@ angular.module("umbraco") return getChildren(folder.id); } - + function toggleListView() { vm.showMediaList = !vm.showMediaList; } @@ -370,7 +371,7 @@ angular.module("umbraco") } function openDetailsDialog() { - + const dialog = { view: "views/common/infiniteeditors/mediapicker/overlays/mediacropdetails.html", size: "small", @@ -378,7 +379,7 @@ angular.module("umbraco") target: $scope.target, disableFocalPoint: $scope.disableFocalPoint, submit: function (model) { - + $scope.model.selection.push($scope.target); $scope.model.submit($scope.model); @@ -546,6 +547,19 @@ angular.module("umbraco") } } + /** + * Called when the umbImageGravity component updates the focal point value + * @param {any} left + * @param {any} top + */ + function focalPointChanged(left, top) { + // update the model focalpoint value + $scope.target.focalPoint = { + left: left, + top: top + }; + } + function submit() { if ($scope.model && $scope.model.submit) { $scope.model.submit($scope.model); diff --git a/src/Umbraco.Web.UI.Client/src/views/common/infiniteeditors/mediapicker/overlays/mediacropdetails.controller.js b/src/Umbraco.Web.UI.Client/src/views/common/infiniteeditors/mediapicker/overlays/mediacropdetails.controller.js index 851a209ba9..1c7b2a7520 100644 --- a/src/Umbraco.Web.UI.Client/src/views/common/infiniteeditors/mediapicker/overlays/mediacropdetails.controller.js +++ b/src/Umbraco.Web.UI.Client/src/views/common/infiniteeditors/mediapicker/overlays/mediacropdetails.controller.js @@ -8,6 +8,14 @@ vm.close = close; vm.hasCrops = cropSet() === true; + vm.disableFocalPoint = false; + if(typeof $scope.model.disableFocalPoint === "boolean") { + vm.disableFocalPoint = $scope.model.disableFocalPoint + } + else { + vm.disableFocalPoint = ($scope.model.disableFocalPoint !== undefined && $scope.model.disableFocalPoint !== "0") ? true : false; + } + if (!$scope.model.target.coordinates && !$scope.model.target.focalPoint) { $scope.model.target.focalPoint = { left: .5, top: .5 }; } diff --git a/src/Umbraco.Web.UI.Client/src/views/common/infiniteeditors/mediapicker/overlays/mediacropdetails.html b/src/Umbraco.Web.UI.Client/src/views/common/infiniteeditors/mediapicker/overlays/mediacropdetails.html index 3f75e25a05..da6e3f439c 100644 --- a/src/Umbraco.Web.UI.Client/src/views/common/infiniteeditors/mediapicker/overlays/mediacropdetails.html +++ b/src/Umbraco.Web.UI.Client/src/views/common/infiniteeditors/mediapicker/overlays/mediacropdetails.html @@ -25,7 +25,7 @@
    -
    +
    Preview
    @@ -33,6 +33,19 @@ {{model.target.name}}
    +
    +
    + Focal point +
    + +
    + + +
    +
    +
    Crop section From de511359e4e063af9a6e55432f69acc8119632ba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Tue, 29 Sep 2020 15:19:30 +0200 Subject: [PATCH 008/206] Always show actions --- src/Umbraco.Web.UI.Client/src/views/datatypes/delete.html | 2 +- src/Umbraco.Web.UI.Client/src/views/documenttypes/delete.html | 2 +- src/Umbraco.Web.UI.Client/src/views/mediatypes/delete.html | 2 +- src/Umbraco.Web.UI.Client/src/views/membertypes/delete.html | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/views/datatypes/delete.html b/src/Umbraco.Web.UI.Client/src/views/datatypes/delete.html index e27433c739..952738dcf3 100644 --- a/src/Umbraco.Web.UI.Client/src/views/datatypes/delete.html +++ b/src/Umbraco.Web.UI.Client/src/views/datatypes/delete.html @@ -111,7 +111,7 @@
    - - +
    diff --git a/src/Umbraco.Web.UI.Client/src/views/mediatypes/delete.html b/src/Umbraco.Web.UI.Client/src/views/mediatypes/delete.html index de41b6a21f..89bf449fb3 100644 --- a/src/Umbraco.Web.UI.Client/src/views/mediatypes/delete.html +++ b/src/Umbraco.Web.UI.Client/src/views/mediatypes/delete.html @@ -26,7 +26,7 @@ - +
    diff --git a/src/Umbraco.Web.UI.Client/src/views/membertypes/delete.html b/src/Umbraco.Web.UI.Client/src/views/membertypes/delete.html index 1939b9e659..90ed968da7 100644 --- a/src/Umbraco.Web.UI.Client/src/views/membertypes/delete.html +++ b/src/Umbraco.Web.UI.Client/src/views/membertypes/delete.html @@ -15,7 +15,7 @@ - + From 5b82264c8eb8a27511bef703da3579f0367f4a49 Mon Sep 17 00:00:00 2001 From: Bjarne Fyrstenborg Date: Wed, 2 Sep 2020 11:48:29 +0200 Subject: [PATCH 009/206] Set enabled similar to preventDefault and preventEnterSubmit directives --- .../components/forms/umbautofocus.directive.js | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/common/directives/components/forms/umbautofocus.directive.js b/src/Umbraco.Web.UI.Client/src/common/directives/components/forms/umbautofocus.directive.js index eb3503f799..bb076e5bff 100644 --- a/src/Umbraco.Web.UI.Client/src/common/directives/components/forms/umbautofocus.directive.js +++ b/src/Umbraco.Web.UI.Client/src/common/directives/components/forms/umbautofocus.directive.js @@ -1,18 +1,28 @@ angular.module("umbraco.directives") .directive('umbAutoFocus', function($timeout) { - return function(scope, element, attr){ + return function (scope, element, attrs) { + var update = function() { //if it uses its default naming - if(element.val() === "" || attr.focusOnFilled){ + if (element.val() === "" || attrs.focusOnFilled) { element.trigger("focus"); } }; - if (attr.umbAutoFocus !== "false") { + var enabled = true; + //check if there's a value for the attribute, if there is and it's false then we conditionally don't + //use auto focus. + if (attrs.umbAutoFocus) { + attrs.$observe("umbAutoFocus", function (newVal) { + enabled = (newVal === "false" || newVal === 0 || newVal === false) ? false : true; + }); + } + + if (enabled) { $timeout(function() { update(); }); } - }; + }; }); From 59f90bd08be677817133584fc877f4a53a349359 Mon Sep 17 00:00:00 2001 From: Kenn Jacobsen Date: Fri, 4 Sep 2020 10:07:28 +0200 Subject: [PATCH 010/206] Fix JS error preventing newly created dictionary items from opening automatically --- .../src/views/dictionary/dictionary.create.controller.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/views/dictionary/dictionary.create.controller.js b/src/Umbraco.Web.UI.Client/src/views/dictionary/dictionary.create.controller.js index 716d994809..03ffcfd09d 100644 --- a/src/Umbraco.Web.UI.Client/src/views/dictionary/dictionary.create.controller.js +++ b/src/Umbraco.Web.UI.Client/src/views/dictionary/dictionary.create.controller.js @@ -15,7 +15,7 @@ function DictionaryCreateController($scope, $location, dictionaryResource, navig function createItem() { - if (formHelper.submitForm({ scope: $scope, formCtrl: this.createDictionaryForm })) { + if (formHelper.submitForm({ scope: $scope, formCtrl: $scope.createDictionaryForm })) { var node = $scope.currentNode; @@ -27,14 +27,14 @@ function DictionaryCreateController($scope, $location, dictionaryResource, navig navigationService.syncTree({ tree: "dictionary", path: currPath + "," + data, forceReload: true, activate: true }); // reset form state - formHelper.resetForm({ scope: $scope, formCtrl: this.createDictionaryForm }); + formHelper.resetForm({ scope: $scope, formCtrl: $scope.createDictionaryForm }); // navigate to edit view var currentSection = appState.getSectionState("currentSection"); $location.path("/" + currentSection + "/dictionary/edit/" + data); }, function (err) { - formHelper.resetForm({ scope: $scope, formCtrl: this.createDictionaryForm, hasErrors: true }); + formHelper.resetForm({ scope: $scope, formCtrl: $scope.createDictionaryForm, hasErrors: true }); if (err.data && err.data.message) { notificationsService.error(err.data.message); navigationService.hideMenu(); From 4ecbb7abe66b81e6f74a0c430caed45c3427deb0 Mon Sep 17 00:00:00 2001 From: Kenn Jacobsen Date: Fri, 4 Sep 2020 10:46:56 +0200 Subject: [PATCH 011/206] Fix JS errors when creating folders in the settings section --- .../src/views/datatypes/create.controller.js | 6 +++--- src/Umbraco.Web.UI.Client/src/views/datatypes/create.html | 4 ++-- .../src/views/documenttypes/create.controller.js | 6 +++--- .../src/views/documenttypes/create.html | 4 ++-- .../src/views/mediatypes/create.controller.js | 6 +++--- src/Umbraco.Web.UI.Client/src/views/mediatypes/create.html | 4 ++-- 6 files changed, 15 insertions(+), 15 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/views/datatypes/create.controller.js b/src/Umbraco.Web.UI.Client/src/views/datatypes/create.controller.js index 9bc602678e..11c12392f6 100644 --- a/src/Umbraco.Web.UI.Client/src/views/datatypes/create.controller.js +++ b/src/Umbraco.Web.UI.Client/src/views/datatypes/create.controller.js @@ -21,18 +21,18 @@ function DataTypeCreateController($scope, $location, navigationService, dataType } $scope.createContainer = function () { - if (formHelper.submitForm({ scope: $scope, formCtrl: this.createFolderForm })) { + if (formHelper.submitForm({ scope: $scope, formCtrl: $scope.createFolderForm })) { dataTypeResource.createContainer(node.id, $scope.model.folderName).then(function (folderId) { navigationService.hideMenu(); var currPath = node.path ? node.path : "-1"; navigationService.syncTree({ tree: "datatypes", path: currPath + "," + folderId, forceReload: true, activate: true }); - formHelper.resetForm({ scope: $scope, formCtrl: this.createFolderFor }); + formHelper.resetForm({ scope: $scope, formCtrl: $scope.createFolderForm }); }, function(err) { - formHelper.resetForm({ scope: $scope, formCtrl: this.createFolderFor, hasErrors: true }); + formHelper.resetForm({ scope: $scope, formCtrl: $scope.createFolderForm, hasErrors: true }); // TODO: Handle errors }); }; diff --git a/src/Umbraco.Web.UI.Client/src/views/datatypes/create.html b/src/Umbraco.Web.UI.Client/src/views/datatypes/create.html index 00a2bab648..9440d896a5 100644 --- a/src/Umbraco.Web.UI.Client/src/views/datatypes/create.html +++ b/src/Umbraco.Web.UI.Client/src/views/datatypes/create.html @@ -1,7 +1,7 @@
  • @@ -22,7 +22,7 @@ Open/Close backoffice help... - +
  • From 8231e8e72efb204b0f99f33a1f91abcad451cbfb Mon Sep 17 00:00:00 2001 From: Kenn Jacobsen Date: Thu, 1 Oct 2020 14:35:04 +0200 Subject: [PATCH 030/206] Sort the entries in the variant picker by display name (#9006) --- .../src/views/components/editor/umb-editor-content-header.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/views/components/editor/umb-editor-content-header.html b/src/Umbraco.Web.UI.Client/src/views/components/editor/umb-editor-content-header.html index 13123ae373..1ef870960d 100644 --- a/src/Umbraco.Web.UI.Client/src/views/components/editor/umb-editor-content-header.html +++ b/src/Umbraco.Web.UI.Client/src/views/components/editor/umb-editor-content-header.html @@ -51,7 +51,7 @@ From 03ff867e3a7ae6b73611d55e3c9785b3717c2a6a Mon Sep 17 00:00:00 2001 From: Kenn Jacobsen Date: Thu, 1 Oct 2020 14:39:02 +0200 Subject: [PATCH 031/206] Sort the languages in the global language selector (#9007) --- .../src/views/components/application/umb-navigation.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/views/components/application/umb-navigation.html b/src/Umbraco.Web.UI.Client/src/views/components/application/umb-navigation.html index 65e42fd5c4..d75a9a5379 100644 --- a/src/Umbraco.Web.UI.Client/src/views/components/application/umb-navigation.html +++ b/src/Umbraco.Web.UI.Client/src/views/components/application/umb-navigation.html @@ -23,7 +23,7 @@ class="umb-language-picker__dropdown-item" ng-class="{'umb-language-picker__dropdown-item--current': language.active}" ng-click="selectLanguage(language)" - ng-repeat="language in languages" + ng-repeat="language in languages | orderBy:'name'" > Switch language to From 9e48e8aa3af062c615904763d4da6ad289103052 Mon Sep 17 00:00:00 2001 From: Lotte Pitcher Date: Thu, 1 Oct 2020 11:05:11 +0100 Subject: [PATCH 032/206] use 'contact links' config feature to replace issue templates that link elsewhere --- .github/ISSUE_TEMPLATE/4_Support_question.md | 9 ------ .../ISSUE_TEMPLATE/5_Documentation_issue.md | 9 ------ .github/ISSUE_TEMPLATE/6_Security_issue.md | 31 ------------------- .github/ISSUE_TEMPLATE/config.yml | 11 +++++++ 4 files changed, 11 insertions(+), 49 deletions(-) delete mode 100644 .github/ISSUE_TEMPLATE/4_Support_question.md delete mode 100644 .github/ISSUE_TEMPLATE/5_Documentation_issue.md delete mode 100644 .github/ISSUE_TEMPLATE/6_Security_issue.md create mode 100644 .github/ISSUE_TEMPLATE/config.yml diff --git a/.github/ISSUE_TEMPLATE/4_Support_question.md b/.github/ISSUE_TEMPLATE/4_Support_question.md deleted file mode 100644 index 829df982f9..0000000000 --- a/.github/ISSUE_TEMPLATE/4_Support_question.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -name: ⁉️ Support Question -about: Having trouble with Umbraco? -> https://our.umbraco.com ---- - -This issue tracker is NOT meant for support questions. If you have a question, -please join us on the forum at https://our.umbraco.com. - -Thanks! diff --git a/.github/ISSUE_TEMPLATE/5_Documentation_issue.md b/.github/ISSUE_TEMPLATE/5_Documentation_issue.md deleted file mode 100644 index 8893647aa8..0000000000 --- a/.github/ISSUE_TEMPLATE/5_Documentation_issue.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -name: 📖 Documentation Issue -about: See https://github.com/umbraco/UmbracoDocs/issues for documentation issues ---- - -The Umbraco documentation has its own dedicated repository. Please open your -documentation-related issue at https://github.com/umbraco/UmbracoDocs/issues - -Thanks! diff --git a/.github/ISSUE_TEMPLATE/6_Security_issue.md b/.github/ISSUE_TEMPLATE/6_Security_issue.md deleted file mode 100644 index 84c5f5989c..0000000000 --- a/.github/ISSUE_TEMPLATE/6_Security_issue.md +++ /dev/null @@ -1,31 +0,0 @@ ---- -name: 🔐 Security Issue -about: Discovered a Security Issue in Umbraco? ---- - -⚠️ PLEASE DON'T DISCLOSE SECURITY-RELATED ISSUES PUBLICLY, SEE BELOW. - -If you have found a security issue in Umbraco, please send the details to -security@umbraco.com and don't disclose it publicly until we can provide a fix for -it. If you wish, we'll credit you for finding verified issues, when we release -the patched version. - -❗ Please read more about how to report security issues on https://umbraco.com/security - -A note on "Self XSS" --------------------- - -Umbraco is a CMS, that allows users to edit content on a website. As such, -all _authenticated users_ can: - - - Edit content, and (depending on the field types) insert HTML and CSS in that - content, with a variety of allowed attributes. - - Depending on the user level: Edit template files, and insert C#, HTML, CSS and - javascript in so on. - - Upload files to the site, which will become publicly available. - -We see these functionalities as _features_, and not as security issues. Please -report the mentioned items only if they can be performed by non-authorized -users, or other exploitable vulnerabilities. - -Thanks! diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 0000000000..37d1be9158 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,11 @@ +blank_issues_enabled: true +contact_links: + - name: ⁉️ Support Question + url: https://our.umbraco.com + about: This issue tracker is NOT meant for support questions. If you have a question, please join us on the forum. + - name: 📖 Documentation Issue + url: https://github.com/umbraco/UmbracoDocs/issues + about: Documentation issues should be reported on the Umbraco documentation repository. + - name: 🔐 Security Issue + url: https://umbraco.com/about-us/trust-center/security-and-umbraco/how-to-report-a-vulnerability-in-umbraco/ + about: Discovered a Security Issue in Umbraco? \ No newline at end of file From 2de04b31964eec16dbb5c9235884c2ae26f4780a Mon Sep 17 00:00:00 2001 From: BatJan <1932158+BatJan@users.noreply.github.com> Date: Wed, 30 Sep 2020 23:27:40 +0200 Subject: [PATCH 033/206] Convert link to button --- .../views/common/infiniteeditors/linkpicker/linkpicker.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/views/common/infiniteeditors/linkpicker/linkpicker.html b/src/Umbraco.Web.UI.Client/src/views/common/infiniteeditors/linkpicker/linkpicker.html index 65148d5cc6..093e69b5ed 100644 --- a/src/Umbraco.Web.UI.Client/src/views/common/infiniteeditors/linkpicker/linkpicker.html +++ b/src/Umbraco.Web.UI.Client/src/views/common/infiniteeditors/linkpicker/linkpicker.html @@ -107,9 +107,9 @@
    Link to media
    - +
    From c608d950872e452e8aad0643c8871e7f3bce3798 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B8ren=20Kottal?= Date: Fri, 2 Oct 2020 14:48:47 +0200 Subject: [PATCH 034/206] Adds polling function to the Logviewer (#9023) * Add polling function to logviewer * float the sub buttons right --- .../src/views/logviewer/search.controller.js | 90 ++++++++++++++++++- .../src/views/logviewer/search.html | 10 ++- src/Umbraco.Web.UI/Umbraco/config/lang/en.xml | 11 +++ .../Umbraco/config/lang/en_us.xml | 11 +++ 4 files changed, 118 insertions(+), 4 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/views/logviewer/search.controller.js b/src/Umbraco.Web.UI.Client/src/views/logviewer/search.controller.js index b11445e3e4..d8f799b18e 100644 --- a/src/Umbraco.Web.UI.Client/src/views/logviewer/search.controller.js +++ b/src/Umbraco.Web.UI.Client/src/views/logviewer/search.controller.js @@ -1,7 +1,7 @@ (function () { "use strict"; - function LogViewerSearchController($location, logViewerResource, overlayService, localizationService) { + function LogViewerSearchController($location, $timeout, logViewerResource, overlayService, localizationService) { var vm = this; @@ -40,6 +40,83 @@ } ]; + vm.polling = { + enabled: false, + interval: 0, + promise: null, + + defaultButton: { + labelKey: "logViewer_polling", + handler: function() { + if (vm.polling.enabled) { + vm.polling.enabled = false; + vm.polling.interval = 0; + vm.polling.defaultButton.icon = null; + vm.polling.defaultButton.labelKey = "logViewer_polling"; + } + else { + vm.polling.subButtons[0].handler(); + } + } + }, + subButtons: [ + { + labelKey: "logViewer_every2", + handler: function() { + enablePolling(2); + } + }, + { + labelKey: "logViewer_every5", + handler: function() { + enablePolling(5); + } + }, + { + labelKey: "logViewer_every10", + handler: function() { + enablePolling(10); + } + }, + { + labelKey: "logViewer_every20", + handler: function() { + enablePolling(20); + } + }, + { + labelKey: "logViewer_every30", + handler: function() { + enablePolling(30); + } + } + ] + + } + + function enablePolling(interval) { + vm.polling.enabled = true; + vm.polling.interval = interval; + vm.polling.defaultButton.icon = "icon-axis-rotation fa-spin"; + vm.polling.defaultButton.labelKey = "logViewer_pollingEvery" + interval; + + if (vm.polling.promise) + { + $timeout.cancel(vm.polling.promise); + } + vm.polling.promise = poll(interval); + } + + function poll(interval) { + vm.polling.promise = $timeout(function() { + getLogs(true, true); + if (vm.polling.enabled && vm.polling.interval > 0) { + poll(vm.polling.interval); + } + }, interval*1000); + } + + vm.searches = []; vm.logItems = {}; @@ -161,10 +238,17 @@ getLogs(); } - function getLogs(){ - vm.logsLoading = true; + function getLogs(hideLoadingIndicator, keepOpenItems){ + vm.logsLoading = !hideLoadingIndicator; logViewerResource.getLogs(vm.logOptions).then(function (data) { + if (keepOpenItems) { + var openItemTimestamps = vm.logItems.items.filter(item => item.open).map(item => item.Timestamp); + data.items = data.items.map(item => { + item.open = openItemTimestamps.indexOf(item.Timestamp) > -1; + return item; + }); + } vm.logItems = data; vm.logsLoading = false; diff --git a/src/Umbraco.Web.UI.Client/src/views/logviewer/search.html b/src/Umbraco.Web.UI.Client/src/views/logviewer/search.html index aad61b7395..560cb293f4 100644 --- a/src/Umbraco.Web.UI.Client/src/views/logviewer/search.html +++ b/src/Umbraco.Web.UI.Client/src/views/logviewer/search.html @@ -48,7 +48,15 @@ - +
    + + + +