Compare commits

..
526 Commits
Author SHA1 Message Date
Andy Butland c6ab394947 Merge branch 'release/10.8.11' into v10/dev
# Conflicts:
#	version.json
2025-07-02 06:32:18 +02:00
Kenn JacobsenandGitHub d8f68d2c40 Merge commit from fork 2025-06-24 08:39:17 +02:00
Andy Butland ff88617db0 Bumped version to 10.8.11. 2025-06-05 07:49:09 +02:00
Andy Butland 9f912aea0e Merge branch 'release/10.8.10' into v10/dev
# Conflicts:
#	version.json
2025-05-06 07:15:10 +02:00
Andy Butland ba95c12f09 Resolved failures in unit tests. 2025-05-06 05:37:30 +02:00
Andy ButlandandGitHub 14fbd20665 Merge commit from fork
* Backport user enumeration fix.

* Supress warning on use of .NET 6 with TimeProvider dependency.

* Replace TimeProvider with Stopwatch, as the former isn't tested against .NET 6.0 and generates warnings.

* Remove full path details from exception when requesting a path outside of the physical file system's root.

* Added randomness to login duration.

* Ensured against negative duration.
2025-05-06 05:11:03 +02:00
mole 2d8b5e8786 Use windows agent for nuget push 2025-04-28 10:48:26 +02:00
Andy Butland 747e095178 Bump version to 10.8.10. 2025-04-22 10:06:27 +02:00
Andy Butland 1cfa5a225e Merge branch 'release/10.8.9' into v10/dev
# Conflicts:
#	version.json
2025-03-11 09:20:51 +01:00
7888b9a4ce Merge commit from fork
* Bumped version to 10.8.9.

* Fixed parsing of node if in content and media permission querystring handlers to retrieve expected value when multiple are provided in the querystring.

# Conflicts:
#	tests/Umbraco.Tests.UnitTests/Umbraco.Web.BackOffice/Authorization/ContentPermissionsQueryStringHandlerTests.cs
#	tests/Umbraco.Tests.UnitTests/Umbraco.Web.BackOffice/Authorization/MediaPermissionsQueryStringHandlerTests.cs

* Add HttpPost attributes to backoffice endpoints that should only accept post requests.

* Narrow PermissionQueryString parsing to the releveant UmbracoObjectType

* Add missed update from v10

---------

Co-authored-by: Sven Geusens <sge@umbraco.dk>
2025-03-11 05:11:08 +01:00
Andy Butland e31582b297 Backport bumped imagesharp to prevent CVE-2025-27598 #18602 2025-03-09 08:58:25 +01:00
Nikolaj Geisle 75cc017a18 Merge branch 'release/10.8.8' into v10/dev
# Conflicts:
#	version.json
2025-01-23 11:08:09 +01:00
d60137e6da Merge commit from fork
* Ensure preview can only be requested with a valid culture code.

* Update src/Umbraco.Web.BackOffice/Controllers/PreviewController.cs

Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>

* Restricted to predefined culture codes.

---------

Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>
2025-01-20 14:14:28 +01:00
Andy Butland 9f9c88781a Bumped version to 10.8.8. 2025-01-07 10:08:01 +01:00
c7014e159b Sort manifest file paths alphabetically (#14466)
* Sort manifest file paths alphabetically

* Update src/Umbraco.Infrastructure/Manifest/ManifestParser.cs

Co-authored-by: Ronald Barendse <ronald@barend.se>

---------

Co-authored-by: Ronald Barendse <ronald@barend.se>
2024-11-21 16:19:48 +01:00
Zeegaan 31e1acce67 Merge remote-tracking branch 'origin/release/10.8.7' into v10/dev
# Conflicts:
#	version.json
2024-10-23 08:48:08 +02:00
Sven GeusensandNikolaj Geisle 35c51a029a Prevents XSS when viewing an uploaded SVG
from the media-info and image-preview components.
2024-10-21 12:42:06 +02:00
ElitsaandNikolaj Geisle 8c1128c85b Update the HttpContext's user with the authenticated user's principal 2024-10-21 12:41:42 +02:00
ElitsaandNikolaj Geisle c9021ab2d2 Reduce the time when getRemainingTimeoutSeconds request is made from 30s to 20s, so fewer calls are made 2024-10-21 12:41:18 +02:00
ElitsaandNikolaj Geisle 67a71f8f82 Make sure that the client shows the login screen as close to the server's timout time as possible 2024-10-21 12:41:17 +02:00
Andreas ZerbstandAndreas Zerbst edd0a4a4a9 Updated message pack (#17320)
(cherry picked from commit 11270eaaf5)
2024-10-21 11:46:43 +02:00
Andreas ZerbstandGitHub 11270eaaf5 Updated message pack (#17320) 2024-10-21 11:00:47 +02:00
Bjarke BergandGitHub 2d71b5a63b Updated image sharp to a non vulnerable version (#17290) 2024-10-16 12:16:38 +02:00
Nikolaj Geisle 9bab74d30e Bump version.json 2024-10-07 11:55:34 +02:00
Bjarke Berg 0ee0db8071 Merge remote-tracking branch 'refs/remotes/origin/release/10.8' into v10/dev
# Conflicts:
#	version.json
2024-05-21 08:44:27 +02:00
Bjarke BergandGitHub c17d4e1a60 Merge pull request from GHSA-j74q-mv2c-rxmp 2024-05-17 08:37:51 +02:00
Bjarke Berg fee222daff Bump version 2024-05-03 09:29:37 +02:00
119fde2033 V10: Fix for fallback file upload (#14892) (#15868)
* Fix for fallback file upload (#14892)

* Added check for file type

* Removed unneeded null checks and fixed tabs

* Cleaning

* Cleanups, cleanups, and removal of unneeded null checks

* Reverted removal of relationshipservice

* Revert null check removals (too risky)

---------

Co-authored-by: Ambert van Unen <AvanUnen@ilionx.com>
Co-authored-by: Laura Neto <12862535+lauraneto@users.noreply.github.com>

(cherry picked from commit 0b5d1f8aa6)

* Fix up formatting

---------

Co-authored-by: Ambert van Unen <ambertvu@gmail.com>
2024-04-24 13:44:20 +02:00
Andy ButlandandGitHub 52c21b0fca Updates JSON schema for Umbraco 10 with latest references for Forms and Deploy (#15918) 2024-03-20 13:20:40 +01:00
Bjarke Berg 99d5a7e609 Merge remote-tracking branch 'origin/release/10.8' into v10/dev 2024-03-19 08:43:59 +01:00
JeyandBjarke Berg 7e1d1a1968 Merge pull request from GHSA-552f-97wf-pmpq
Co-authored-by: jey <jey@umbraco.dk>
(cherry picked from commit b743f6a2df)
2024-03-18 08:28:25 +01:00
b743f6a2df Merge pull request from GHSA-552f-97wf-pmpq
Co-authored-by: jey <jey@umbraco.dk>
2024-03-18 08:27:41 +01:00
Bjarke Berg a2511ff09b Fixing locking issues for document type saves. (#15854)
* Added  ExecuteNonQuery(DbCommand command) on database to ensure we call OnExecutingCommand and OnExecutedCommand when executing DbCommands

* Added Cache Instructions lock, to avoid deadlocks

* Optimized read locks for nucache when only one content type is rebuilt

* Optimized the SqlServer locks, so only one command is executed (and thereby roundtrip) per lock instead of two

* Avoid breaking changes

* Cosmetic changes

* Take locks if everything is rebuild

* Use same lock in scopes, to avoid potential deadlocks between the two

* Use eager locks in PublishedSnapshotService.cs

* Added timeouts to some of the application locks

* Revert "Use eager locks in PublishedSnapshotService.cs"

This reverts commit 01873aae97.

* Revert "Added Cache Instructions lock, to avoid deadlocks"

This reverts commit e3fca7c12a.

* Use single readlock call to lock many

* Use eager locks for reads

* Eager write locks

* Ignore test of lazy locks

* Unique timeout exception messages

---------

Co-authored-by: kjac <kja@umbraco.dk>
(cherry picked from commit 2c23e67c65)
2024-03-15 14:55:20 +01:00
2c23e67c65 Fixing locking issues for document type saves. (#15854)
* Added  ExecuteNonQuery(DbCommand command) on database to ensure we call OnExecutingCommand and OnExecutedCommand when executing DbCommands

* Added Cache Instructions lock, to avoid deadlocks

* Optimized read locks for nucache when only one content type is rebuilt

* Optimized the SqlServer locks, so only one command is executed (and thereby roundtrip) per lock instead of two

* Avoid breaking changes

* Cosmetic changes

* Take locks if everything is rebuild

* Use same lock in scopes, to avoid potential deadlocks between the two

* Use eager locks in PublishedSnapshotService.cs

* Added timeouts to some of the application locks

* Revert "Use eager locks in PublishedSnapshotService.cs"

This reverts commit 01873aae97.

* Revert "Added Cache Instructions lock, to avoid deadlocks"

This reverts commit e3fca7c12a.

* Use single readlock call to lock many

* Use eager locks for reads

* Eager write locks

* Ignore test of lazy locks

* Unique timeout exception messages

---------

Co-authored-by: kjac <kja@umbraco.dk>
2024-03-15 10:56:02 +01:00
Bjarke Berg 8e837d387d Merge remote-tracking branch 'origin/v10/dev' into release/10.8
# Conflicts:
#	version.json
2024-03-14 14:53:42 +01:00
Bjarke Berg 801fb5f885 Bump version 2024-03-14 14:48:09 +01:00
Bjarke BergandGitHub ed517ecd86 Update Imagesharp (#15885) 2024-03-14 14:31:30 +01:00
Bjarke Berg b5e46ba880 Merge remote-tracking branch 'origin/release/10.8' into v10/dev 2024-02-06 11:07:16 +01:00
Nikolaj GeisleandGitHub cbf9f9bcd1 Merge pull request from GHSA-gvpc-3pj6-4m9w
* Add MarkDownPropertyValueEditor with html sanitizer

* Implement IMarkdownSanitizer.
2024-02-06 09:53:40 +01:00
Bjarke Berg 2735f17ed8 Merge remote-tracking branch 'origin/release/10.8' into v10/dev
# Conflicts:
#	version.json
2024-02-01 11:09:47 +01:00
Ronald BarendseandBjarke Berg e37cf30690 Skip cache refresher operations for content blueprints (#15633)
* Skip cache refresher operations for content blueprints

* Fix JsonPayload deserialization error by adding a default constructor and property initializers

* Obsolete JsonPayload constructor and update usages

(cherry picked from commit 3e28e10cdf)
2024-02-01 10:00:42 +01:00
Bjarke BergandGitHub 118ac8e230 V10+ version of https://github.com/umbraco/Umbraco-CMS/pull/15638 (#15664) 2024-02-01 09:58:42 +01:00
Ronald BarendseandGitHub 3e28e10cdf Skip cache refresher operations for content blueprints (#15633)
* Skip cache refresher operations for content blueprints

* Fix JsonPayload deserialization error by adding a default constructor and property initializers

* Obsolete JsonPayload constructor and update usages
2024-02-01 09:55:09 +01:00
AleksanderandBjarke Berg b18b6cc5e7 Pass cache level to properties when creating published content in nucache
(cherry picked from commit d9d2b66e85)

# Conflicts:
#	src/Umbraco.Web/PublishedCache/NuCache/PublishedContent.cs
(cherry picked from commit 040495f359)
2024-01-31 10:52:01 +01:00
Elitsa MarinovskaandBjarke Berg 7a04baf9ef V10: Pass in variation context to published cache (#15563)
* Make sure that we always have variation context

* Fix references

(cherry picked from commit 57b3a196bf)
2024-01-30 15:57:33 +01:00
Sven GeusensandBjarke Berg bc1ddaed8c Run the same cleanup with scaffolding content as when copying. (#15541)
* Run the same cleanup with scaffolding content as when copying.

- Added a new ContentScaffoldedNotification
- Published the notification when a new scaffold has been created from a blueprint (content template)
- Linked up the ComplextPEContent handler to do the same cleanup for the new notification as when copying.
- registered handlers to the event for blocklist, blockgrid and nested content

* PR pattern matching suggestion

Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>

---------

Co-authored-by: Sven Geusens <sge@umbraco.dk>
Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>
(cherry picked from commit dff90c6ec0)
2024-01-30 15:54:33 +01:00
Bjarke Berg 860afb35f2 Bump version 2024-01-30 15:53:21 +01:00
Ronald BarendseandGitHub 9799c550f4 Create shadow file systems in configured LocalTempPath (#15637) 2024-01-29 08:48:45 +01:00
Ronald BarendseandGitHub b7e43a8def Get references from macro parameters using IDataValueReferenceFactory (#15625) 2024-01-23 16:08:17 +01:00
Ronald BarendseandGitHub cdbbd6a921 Optimize relation tracking for adding new and keeping existing relations (#15596)
* Include automatic relation type aliases from factory and fix SQL parameter overflow (#15141)

* Include automatic relation type aliases from factory

* Remove unnessecary distinct and fix SQL parameter overflow issue

* Fixed assertions and test distinct aliases

* Simplified collection assertions

* Improve logging of invalid reference relations (#15160)

* Include automatic relation type aliases from factory

* Remove unnessecary distinct and fix SQL parameter overflow issue

* Fixed assertions and test distinct aliases

* Simplified collection assertions

* Improve logging of invalid reference relations

* Always get all automatic relation type aliases

* Do not set relation type alias for unknown entity types

* Get references from recursive (nested/block) properties

* Optimize relation tracking for adding new and keeping existing relations

* Optimize getting references by grouping by property editor alias and avoiding duplicate parsing of the same value
2024-01-22 14:53:20 +01:00
Ronald BarendseandGitHub 5198e7c52d Backport relation tracking fixes and get references from recursive (nested/block) properties (#15593)
* Include automatic relation type aliases from factory and fix SQL parameter overflow (#15141)

* Include automatic relation type aliases from factory

* Remove unnessecary distinct and fix SQL parameter overflow issue

* Fixed assertions and test distinct aliases

* Simplified collection assertions

* Improve logging of invalid reference relations (#15160)

* Include automatic relation type aliases from factory

* Remove unnessecary distinct and fix SQL parameter overflow issue

* Fixed assertions and test distinct aliases

* Simplified collection assertions

* Improve logging of invalid reference relations

* Always get all automatic relation type aliases

* Do not set relation type alias for unknown entity types

* Get references from recursive (nested/block) properties
2024-01-19 20:02:57 +01:00
Andy ButlandandGitHub 49f5d2e2d4 Updates JSON schema for Umbraco 10 to include details of additional configuration introduced in Forms and Deploy. (#15566) 2024-01-12 13:13:20 +01:00
Elitsa MarinovskaandGitHub 57b3a196bf V10: Pass in variation context to published cache (#15563)
* Make sure that we always have variation context

* Fix references
2024-01-11 12:46:31 +01:00
dff90c6ec0 Run the same cleanup with scaffolding content as when copying. (#15541)
* Run the same cleanup with scaffolding content as when copying.

- Added a new ContentScaffoldedNotification
- Published the notification when a new scaffold has been created from a blueprint (content template)
- Linked up the ComplextPEContent handler to do the same cleanup for the new notification as when copying.
- registered handlers to the event for blocklist, blockgrid and nested content

* PR pattern matching suggestion

Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>

---------

Co-authored-by: Sven Geusens <sge@umbraco.dk>
Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>
2024-01-10 12:22:36 +01:00
AleksanderandSebastiaan Janssen 040495f359 Pass cache level to properties when creating published content in nucache
(cherry picked from commit d9d2b66e85)

# Conflicts:
#	src/Umbraco.Web/PublishedCache/NuCache/PublishedContent.cs
2024-01-08 14:42:17 +01:00
Bjarke Berg a2ad95d965 Change content 2023-12-22 13:49:57 +01:00
Bjarke Berg 64f2447c0e Added script to update default version 2023-12-22 13:15:13 +01:00
Bjarke Berg b648126d19 Use wildcard as default valid 2023-12-22 12:59:13 +01:00
812b414d96 Batched more update calls to avoid Sql paramater count error (#15487)
Co-authored-by: Sven Geusens <sge@umbraco.dk>
2023-12-21 09:43:37 +01:00
Bjarke Berg ec91c47158 Merge remote-tracking branch 'origin/release/10.8' into v10/dev
# Conflicts:
#	version.json
2023-12-20 09:51:14 +01:00
Kenn JacobsenandGitHub e04a41be45 Add policies for content template handling (#15482) 2023-12-19 14:18:48 +01:00
Chris Fitz-AvonandBjarke Berg d5156aced2 Remove content section access policy from GetAllLanguages endpoint. #15435 (#15450)
(cherry picked from commit cedfdcc9b2)
2023-12-18 08:25:00 +01:00
Bjarke Berg fa9b0e4718 Bump version 2023-12-18 08:23:34 +01:00
Bjarke Berg 8915064780 Merge remote-tracking branch 'origin/release/10.8' into v10/dev
# Conflicts:
#	version.json
2023-12-13 09:28:19 +01:00
ZeegaanandBjarke Berg 677ff59d04 Loosen up policies so editors can get what they need 2023-12-12 15:46:46 +01:00
Bjarke Berg 1fe2ec08be bump version 2023-12-12 15:35:15 +01:00
Bjarke Berg 5dfa76600a Post fix 2023-12-11 16:32:38 +01:00
Bjarke Berg 83bcd37250 Merge remote-tracking branch 'origin/release/10.8' into v10/dev 2023-12-11 14:37:10 +01:00
Kenn JacobsenandGitHub 4a7ad4a562 Merge pull request from GHSA-v98m-398x-269r 2023-12-11 14:00:23 +01:00
cdd4d2a000 Merge pull request from GHSA-cfr5-7p54-4qg8
* Bump version

* Apply authorization policies to controllers

* Return bad request if we urltracking is disabled

* Apply authorization policies to controllers

* Return bad request if we urltracking is disabled

---------

Co-authored-by: Bjarke Berg <mail@bergmania.dk>
Co-authored-by: Zeegaan <nge@umbraco.dk>
2023-12-11 13:59:59 +01:00
be5a740c96 Merge pull request from GHSA-8qp8-9rpw-j46c
* Added Exception handling and replicated error and info message

* Update auth.resource.js

Fixed the message

* Changed Delay introduction to early phase to avoid repeating code.

---------

Co-authored-by: jey <jey@umbraco.dk>
Co-authored-by: Jey <cyaqublu@gmail.com>
2023-12-11 13:59:35 +01:00
13cc320f19 Merge pull request from GHSA-6324-52pr-h4p5
* Bump version

* Fix https://github.com/umbraco/Umbraco-CMS/security/advisories/GHSA-6324-52pr-h4p5

* Fix https://github.com/umbraco/Umbraco-CMS/security/advisories/GHSA-6324-52pr-h4p5

---------

Co-authored-by: Bjarke Berg <mail@bergmania.dk>
Co-authored-by: Zeegaan <nge@umbraco.dk>
2023-12-11 13:59:03 +01:00
ZeegaanandBjarke Berg b5544aa520 Suppress flow when queueing background threads 2023-12-11 12:43:25 +01:00
Bjarke Berg 9e3f8c7d0c Merge remote-tracking branch 'origin/release/10.8' into v10/dev
# Conflicts:
#	version.json
2023-12-08 13:12:33 +01:00
Bjarke Berg cb76554455 Bugfix: Count existing media correct (#15206)
* https://github.com/umbraco/Umbraco-CMS/issues/15205
Count media correct

* Fix content should be document

(cherry picked from commit d2ff2ea46e)
2023-12-07 09:21:25 +01:00
Jacob Overgaard 37e4d80ce8 Update nightly build (#15359)
* cherry-pick templateParameters from v14/dev

* add isNightly parameter

* remove v9

* add parameter check for myget isNightly
2023-12-05 12:45:23 +01:00
Bjarke Berg d5d4edbe92 Bump Version 2023-11-30 21:51:54 +01:00
Bjarke Berg 8d9343b564 Merge branch 'release/10.8' into v10/dev
# Conflicts:
#	version.json
2023-11-27 18:10:40 +01:00
Bjarke Berg 1ee891c8d5 Merge remote-tracking branch 'origin/release/10.8' into release/10.8 2023-11-27 18:09:41 +01:00
Bjarke Berg bf1a5b9b28 Bump version 2023-11-27 18:09:30 +01:00
Bjarke Berg 696b74cdb6 Merge branch 'release/10.8' into v10/dev 2023-11-27 18:08:30 +01:00
Bjarke BergandGitHub bf8af4588e Centralised NuGet packages (#15293)
* Moved to centralized nuget packages

* Handle JsonSchema

* Change PackageReference to PackageVersion

* Opt out of central package management for mangement api (at least for versions less than 14) and the UI project

* ManagePackageVersionsCentrally = false

* Change folder acceptance tests are build, to avoid reading the test Directory.Packages.props

* Change folder acceptance tests are build, to avoid reading the test Directory.Packages.props

* change working directory

* workingDirectory

* Force the template to use local nuget packages

* Force the template to use local nuget packages

* clean up

* added wait on

* added wait on
2023-11-27 15:18:00 +01:00
Kenn JacobsenandBjarke Berg 4781fb1d8b Ensure content types are updated in ContentStore when a data type changes (#15239) 2023-11-17 10:37:23 +01:00
Bjarke Berg d714741bee Fixed build 2023-11-15 09:53:28 +01:00
Bjarke Berg ea33b73daa Added scope.complete in edge cases. (#15207)
(cherry picked from commit 28e8ac11f0)
2023-11-15 09:46:24 +01:00
Bjarke Berg ba64b46824 Merge remote-tracking branch 'origin/release/10.8' into release/10.8 2023-11-15 09:45:30 +01:00
Bjarke Berg 04e59e9a9d Fixed a couple of occurrences where scopes was auto-completed while modified db state (#14947)
* Fixed a couple of occurrences where scopes was auto-complated while actually modified the state of the database.

* Added temp ctor to fix boot issue

(cherry picked from commit 41f8f03c2c)
2023-11-15 09:45:23 +01:00
Jacob OvergaardandGitHub be39b9c19a V10: Update @umbraco-ui/uui, jQuery, ace-editor, nouislider, spectrum-colorpicker2 (#15197)
* V13: Add support for Node.js 20 (#15022)

* update versionSpec to nodejs 20 and avoid specifying minor and patch versions to improve Azure Pipelines stability

* update engines and package lock files

* update helpful displayNames for npm builds

* add retry to counter nodejs.org timeouts

add retryCountOnTaskFailure as suggested on https://developercommunity.visualstudio.com/t/NodeTool0-task-to-install-nodejs-fails/10455454

* update lockfile

* bump nvm support to latest node.js 20.9 LTS

* build(deps): bump @umbraco-ui/uui from 1.3.0 to 1.5.0

* build(deps): bump public dependencies to latest

* build(deps-dev): bump build dependencies to latest

* build(deps-dev): bump test tools to latest

* build: add script to lint and run --fix

* revert login merge from v13
2023-11-14 13:08:29 +01:00
Bjarke Berg 9a143c0850 Merge remote-tracking branch 'origin/release/10.8' into release/10.8 2023-11-14 11:46:26 +01:00
Bjarke Berg df4cd63962 https://github.com/umbraco/Umbraco-CMS/issues/15195 Fixed issue with media not cached correct (#15196) 2023-11-14 10:59:30 +01:00
Bjarke Berg a17e398f28 Merge remote-tracking branch 'origin/release/10.8' into v10/dev 2023-11-14 09:29:36 +01:00
Bjarke Berg 9af9dd2c02 Merge remote-tracking branch 'origin/release/10.8' into v10/dev 2023-11-14 09:29:09 +01:00
Bjarke BergandGitHub 2266a98fc6 https://github.com/umbraco/Umbraco-CMS/issues/15195 Fixed issue with media not cached correct (#15196) 2023-11-14 09:14:01 +01:00
151fccee97 Performance optimisations related to blocks (and multi url picker) (#15184)
* Added content types to property index value factory, because the deep cloning is too expensive to execute often

* Do not use entityservice in ToEditor, as it goes to the database. We need to use something that is cached.

* Small performance optimization for nested content too

* A little formatting and an obsoletion message

---------

Co-authored-by: kjac <kja@umbraco.dk>
2023-11-14 08:12:05 +01:00
Bjarke Berg abfa07367f Bump version 2023-11-13 18:06:41 +01:00
Bjarke BergandGitHub e5de8bf56b Updated nuget packages (#15192) 2023-11-13 14:59:52 +01:00
Bjarke Berg 00bb5170a0 Merge remote-tracking branch 'origin/v10/dev' into release/10.8
# Conflicts:
#	version.json
2023-11-09 13:53:46 +01:00
919138c299 #14835 Update link on permissionsreport.html (#14872)
* #14835 Update link on permissionsreport.html

Updated link to permissions page to point to 10-LTS documentation

* retrigger checks

---------

Co-authored-by: Rasmus Berntsen <rasmus.berntsen@isobar.com>
2023-11-09 13:53:18 +01:00
Ronald BarendseandGitHub ed65645a33 Add global.json and cleanup UI project file (#14900)
* Add global.json with minimum .NET 6.0.5 SDK version and roll forward policy

* Clean up UI project file
2023-11-09 13:52:21 +01:00
Ronald BarendseandGitHub d0be4ab263 Publish ContentTreeChangeNotification after saving/deleting blueprints (#14898) 2023-11-09 13:51:05 +01:00
Bjarke Berg ddb26632f9 Bump to rc 2023-11-09 13:38:34 +01:00
Bjarke Berg d5b1f5875b Bump version 2023-11-09 13:38:13 +01:00
Bjarke Berg f8c1a560ff Bump version 2023-11-09 13:36:57 +01:00
9e5ff305c8 Batched bulk WhereIn query to avoid To mana paramaters error (#15004)
Co-authored-by: Sven Geusens <sge@umbraco.dk>
2023-11-07 10:49:46 +01:00
Elitsa MarinovskaandGitHub ffaa77eb25 Update correct action (#15142) 2023-11-06 17:54:16 +01:00
Kenn JacobsenandGitHub 6777145079 Ensure that missing access rules do not break the site (#15081) 2023-11-02 08:45:27 +01:00
Elitsa MarinovskaandGitHub 92af8ac881 Check content permissions before performing action (#15043)
* Setting actionContext.Result when authz wasn't successful

* Taking into account permissions when it is a new node

* Cleanup

* Passing nodeId as path when new item
2023-11-01 11:30:32 +01:00
Lucas Bach BisgaardandSebastiaan Janssen bde88caf14 Fixes #14351 - Using Fallback to default langauge on a specific item changes the whole VariationContext (#14620)
(cherry picked from commit 738749b705)
2023-10-26 11:47:44 +02:00
Bjarke BergandGitHub f4ac6cdded Added "pr: none" to nightly trigger (#15044) 2023-10-26 09:01:25 +02:00
Elitsa MarinovskaandGitHub 132935c2d7 Handle corrupted index (#14889) 2023-10-09 10:19:36 +02:00
Kenn JacobsenandGitHub 04b05714e5 Add notification state to "final" published notification when publishing with descendants (#14922)
* Revert "V10/bugfix/14543 publish descendants (#14763)"

This reverts commit f750bca453.

* Add notification state to "final" published notification when publishing with descendants
2023-10-05 14:39:00 +02:00
Kenn JacobsenandGitHub 7be1852827 Make sure to sign out external users if an error occurs during sign-in (#14867) 2023-09-28 13:25:11 +02:00
Andreas ZerbstandGitHub 158cef1692 V10 fixed up failing acceptance test (#14829)
* Updated playwright, our builders, and our helpers

* Updated the use of our testhelper methods, we removed the need for sending umbracoApi through the methods as a parameter since it was unnecessary

* Added a timeout

* Updated successNotifications and added a locator

* Removed timeout from successNotification

* Added additional timeouts and updated old locators which were failing

* Updated locator so it only finds one element

* Removed timeouts and added a waitForTimeout

* Removed timeouts

* Removed timeouts

* Added timeouts

* Updated locator

* Added a timeout

* Updated locators for clicking button

* Changed locator for adding the image, sometimes the old locator would find 2 locators
2023-09-20 12:15:24 +02:00
Bjarke Berg 1a4f3981eb Merge remote-tracking branch 'origin/v10/dev' into v10/dev 2023-09-20 09:42:28 +02:00
Bjarke Berg 7765f98ee1 Added random delay in forgot password to lessen the risk the response times can be use to determine whether the mail exist or not. 2023-09-20 09:02:32 +02:00
6b72880c0b fix: ensured that allowed user name characters are supported in backoffice users as well (#14810) (#14825)
Co-authored-by: Arkadiusz Biel <bielu@bielu.com.pl>
2023-09-19 09:01:35 +02:00
Andy ButlandandGitHub d9f3936a43 Updated dependencies to Forms and Deploy for JSON schema generation. (#14826) 2023-09-19 08:54:41 +02:00
bf09c87f87 Mention MultiUrlPickerValueConverter instead (#14818)
Co-authored-by: Zeegaan <nge@umbraco.dk>
2023-09-18 13:48:11 +02:00
Sven GeusensandGitHub ec2134dea0 Disabled nighly build branch trigger (#14807) 2023-09-15 10:02:29 +02:00
Nikolaj GeisleandGitHub 8ccc2faee0 Add UsePagedSqlQuery setting to NucacheSettings (#14806)
* imlement UsePagedSqlQuery

* Remove unneccesary spacing
2023-09-14 20:11:08 +02:00
Jacob Overgaard 0a4cc27a5d V12: Property editors should only contain layout when in preview mode (#14796)
* Revert "Make sure the property editor layout is contained within its container (prevent Z-index bleed-through) (#13583)"

This reverts commit 8463d906a7.

* remove seemingly unused attribute readonly

* contain everything with contain:layout

this is set if the property editor is in preview mode to make sure all overlays work

* Revert "remove seemingly unused attribute readonly"

This reverts commit 7a2743e8f6.
2023-09-14 13:19:36 +02:00
c8e054baa2 V10/feature/pipeline test filters (#14766)
* Add configuration/code to not run certain tests based on variables/release builds

* Applied longrunning testAttribute to the worst offenders (>200ms on my machine)

* Fix yaml notation

* split up windows/non windows test runs

* Added supression for moved tests

* Fix yaml validation issues

* Change yaml string parameter null value to empty string

* Convert empty strings to whitespace strings

* Rename and cleanup some paramater to better reflect why we use them

* Nightly build test

* Change nightly build authentication type

* template paramater fix

* Update nightly pipeline name

---------

Co-authored-by: Sven Geusens <sge@umbraco.dk>
2023-09-12 14:16:27 +02:00
Bjarke Berg 95ffdae475 Merge remote-tracking branch 'origin/v10/dev' into v10/dev 2023-09-12 09:43:52 +02:00
Andreas ZerbstandJacob Overgaard ca8ac21f4b Added test for checking if settings model contains default value (#14513)
* Added test for checking if a settings model contains default value.
Fixed tests

* Bumped version

* Moved createSliderWithDefaultValue function to our testHelpers. Removed the use of count in test since there was only one
2023-09-11 15:13:08 +02:00
Jacob Overgaard f85a0d1715 Render all tabs in the background to ensure they register their initial state on any $scope.model in the stack. (#14493)
Sometimes a tab, e.g. a "block list settings model" might register some default values, but if the user never clicks on the tab then they are not registered due to how AngularJS renders views with "ng-if".
2023-09-11 15:12:48 +02:00
Andreas ZerbstandGitHub 2fc29e638c Limbo models builder changes the content to element when using Compositions (#14776) 2023-09-07 17:18:57 +02:00
Andreas ZerbstandGitHub 56486b1ace V10 Cherrypicked issuu RTE embed (#14777)
* Added a UserAgent to header

* Added the use of iframe. This allows us to see the issuu embed in the RTE
2023-09-07 16:28:11 +02:00
Bjarke Berg fd043f6ecf Merge remote-tracking branch 'origin/v10/dev' into release/10.7 2023-09-05 10:19:13 +02:00
Bjarke Berg 39a102ed8a rollback version 2023-09-05 10:14:21 +02:00
f750bca453 V10/bugfix/14543 publish descendants (#14763)
* WIP: Fix publish descendants and related notifications

* Removed related entitities from publish notification

* Fixed root not being saved when publishingWithDescendants

* Updated integrationtests to reflect the update view on when to save the root when its part of a branch

* PR formatting fix

Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>

* PR Cleanup

Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>

* Spicing up the codebase with some PR pattern matching

Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>

---------

Co-authored-by: Sven Geusens <sge@umbraco.dk>
Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>
2023-09-05 10:14:06 +02:00
Bjarke Berg 7e36203f60 Merge remote-tracking branch 'origin/release/10.7' into v10/dev
# Conflicts:
#	version.json
2023-09-04 10:24:22 +02:00
Bjarke Berg 334dff8645 bump version number 2023-09-04 10:23:44 +02:00
Bjarke Berg 9fd140f81d Merge remote-tracking branch 'origin/release/10.7' into v10/dev 2023-08-28 11:35:41 +02:00
Bjarke BergandGitHub 1198c76d67 Remove parsing of short into integer (#14721) 2023-08-25 13:07:42 +02:00
Nikolaj 869b480dae Bump version 2023-08-24 10:49:50 +02:00
Nikolaj 12704b112e Merge branch 'release/10.7' into v10/dev 2023-08-24 10:49:11 +02:00
Ronald BarendseandNikolaj 3c37653012 Fix exceptions in Slider and Tags property value converters (#13782)
* Fix IndexOutOfRangeException when converting single value to range in SliderValueConverter

* Fix NullReferenceException while deserializing empty value in TagsValueConverter

* Use invariant decimal parsing

* Handle converting from slider to single value

* Fix parsing range as single value

* Make Handle methods autonomous

---------

Co-authored-by: nikolajlauridsen <nikolajlauridsen@protonmail.ch>
2023-08-23 10:50:25 +02:00
e5a8d01004 Fix exceptions in Slider and Tags property value converters (#13782)
* Fix IndexOutOfRangeException when converting single value to range in SliderValueConverter

* Fix NullReferenceException while deserializing empty value in TagsValueConverter

* Use invariant decimal parsing

* Handle converting from slider to single value

* Fix parsing range as single value

* Make Handle methods autonomous

---------

Co-authored-by: nikolajlauridsen <nikolajlauridsen@protonmail.ch>
2023-08-23 10:09:43 +02:00
Andy ButlandandBjarke Berg 9fd0b1986c Updated JSON schema reference for Umbraco Forms. (#14701) 2023-08-22 13:30:26 +02:00
Andy ButlandandGitHub 80ea5174c6 Updated JSON schema reference for Umbraco Forms. (#14701) 2023-08-22 13:28:01 +02:00
Niels Lyngsøandkjac e1b4aebb0f directly render labels without angularJS template code (#14700) 2023-08-22 11:35:38 +02:00
Niels LyngsøandGitHub 38910a8d5c directly render labels without angularJS template code (#14700) 2023-08-22 11:27:16 +02:00
Kenn JacobsenandGitHub 0dc18982ee Do not allow content type property aliases that conflict with IPublishedElement (#14683) 2023-08-21 13:17:15 +02:00
311d322129 Add code infrastructure to validate file content (#14657)
* Implemented modular architecture for filestream security sanitization with an svg-html example

* 31440: Refactoring, applied to more entry points and removed test analyzer

* 31440 Added Unittests for FileStreamSecurityValidator

* PR fixes and better unittest mock names

---------

Co-authored-by: Sven Geusens <sge@umbraco.dk>
2023-08-21 13:08:26 +02:00
Andreas ZerbstandGitHub e7af98027d Updated the name of our Acceptance test project in the pipeline (#14691)
* Updated the name of our Acceptance test project.

The reason is because we want the naming to be clear and concise.

* Changed the name of the e2e pipeline project name for linux

* Updated dll file
2023-08-18 13:36:54 +03:00
Anders ReusandBjarke Berg 30f0cfc15d Add exclusion filter setting to typefinder settings (#14426)
* Obsolete constructor with deprecated IScopeProvider

* Add exclusion setting to typefinder settings

* The old TypeFinder constructor calls the new constructor now instead and excluded duplicates by using Union instead of Concat.

* Revert "The old TypeFinder constructor calls the new constructor now instead and excluded duplicates by using Union instead of Concat."

This reverts commit 87801c6c1c.

* Add changes to TypeFinder

* Do not use null when type is not nullable

---------

Co-authored-by: Bjarke Berg <mail@bergmania.dk>
2023-08-15 09:58:58 +02:00
Ronald BarendseandBjarke Berg b743e715d4 Add DynamicRequestCultureProviderBase and improve locking (#14064) 2023-08-10 11:16:23 +02:00
d3243f8700 Bugfix 31584 - Remove Lazy "caching" that retains keys of deleted ContentTypes which causes unecesary validation errors (#14643)
The validation errors should not happen as the model mapping cleans up block data for entity types that do not longer exist (which is checked on the aformentioned key)

Co-authored-by: Sven Geusens <sge@umbraco.dk>
2023-08-09 13:11:44 +02:00
264e4f8b57 Add config so it is configurable whether to explicitly index each nested property (#14648)
* Added new configuration "Umbraco:CMS:Examine:ExplicitlyIndexEachNestedProperty" that can be used to avoid nested properties like block grid to index each property individually.

* Moved the setting "Umbraco:CMS:Examine:ExplicitlyIndexEachNestedProperty" to "Umbraco:CMS:Indexing:ExplicitlyIndexEachNestedProperty" to make it more future proof

* Added missing registration

* Fixed registration

* Small readability improvement

---------

Co-authored-by: Sven Geusens <sge@umbraco.dk>
2023-08-09 11:47:45 +02:00
Sven Geusens 2b3f048db7 Revert "Implemented modular architecture for filestream security sanitization with an svg-html example"
This reverts commit 18ee016ae9.
2023-08-08 16:26:59 +02:00
Sven Geusens 18ee016ae9 Implemented modular architecture for filestream security sanitization with an svg-html example 2023-08-08 14:49:18 +02:00
Bjarke BergandGitHub 512199c8ab Pass the existing notification state to the ContentUnpublishingNotification so it can be shared. (#14638) 2023-08-08 09:40:44 +02:00
Bjarke BergandGitHub 4e410a9dd5 Stop event propagation when clicking on the expand-arrow in the tree. (#14637) 2023-08-08 09:27:23 +02:00
Jacob OvergaardandNiels Lyngsø e16e36c68f V12: Remove avatar step from login (#14629)
Co-authored-by: Niels Lyngsø <niels.lyngso@gmail.com>
2023-08-07 11:02:53 +02:00
Bjarke Berg f384e0c30c Allow newlines in invite email and escape other html (#14618) 2023-08-02 14:17:39 +02:00
Bjarke Berg 04b74dddd0 Added missing async awaits in notifications that ensures objects are not disposed too early
Fixes https://github.com/umbraco/Umbraco-CMS/issues/14574
2023-08-02 11:37:39 +02:00
Kenn JacobsenandGitHub 43700d2bcb Ensure that the Slider does not crash the back-office (#14601)
* Ensure that the Slider does not crash the back-office

* Add field descriptions to config
2023-07-25 08:39:59 +02:00
Adrian CojocariuandGitHub eed9feb5f3 Fix method invoke. (#14597) 2023-07-24 15:18:23 +02:00
b2a5ce3e48 V10: Dropzone should handle internal and external errors when uploading (#14578)
* fix: mark files that result in error as processed

* fix: for safety measure check that a file is truthy before trying to upload it

* fix: push an error when file.$error is encountered to make sure it does not get uploaded

* fix: remove header from error messages since it is not being used anyway

* fix: check for maxFileSize before uploading pasted images in tinymce

* use stored blob variable

* feat: add property to fileManager to get and format the maxFileSize

* fix: make tinymce use fileManager to get maxFileSize

* fix(image cropper): check for maxFileSize before setting file to upload

* multiply by 1000 to get bytes

---------

Co-authored-by: Elitsa <elm@umbraco.dk>
2023-07-24 10:17:21 +02:00
Andy ButlandandGitHub 0ae404ce03 Extends JSON schema/Intellisense to full details of InstallDefaultData settings. (#14568)
* Fixes an incorrect property name used for generating JSON schema.

* Added JSON schema/intellisense for default data dictionary keys.

* Renamed private variable to match setting name.
2023-07-20 13:51:05 +02:00
ab836d2326 V10: Find and persist embedded images in rich text (#14546)
* add method to find and persist embedded base64 (data-uri) images in a html string

* use method to find embedded images in the Umbraco.TinyMce and Umbraco.Grid property editors

* rename method to better reflect what it does

* set allowed upload file types for integration tests

* add test for embedded images in Umbraco.TinyMce

* let old ctor call new ctor

* Apply suggestions from code review

Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>

* apply pattern matching

---------

Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>
2023-07-18 09:17:19 +02:00
Andy ButlandandGitHub c12cce6d8c Fixes an incorrect property name used for generating JSON schema. (#14542) 2023-07-14 09:27:02 +02:00
nikolajlauridsen 78e1da3231 Merge branch 'release/10.6' into v10/dev 2023-07-13 10:55:36 +02:00
82eae48d09 Merge pull request from GHSA-h8wc-r4jh-mg7m
* Don't login after install

* Fail the install if database is not created

---------

Co-authored-by: Zeegaan <nge@umbraco.dk>
Co-authored-by: Nikolaj <nikolajlauridsen@protonmail.ch>
2023-07-13 06:03:39 +02:00
Elitsa MarinovskaandGitHub a5ba32bfd7 Store tags as text (instead of nvarchar) (#14510)
* Migrate tags from NVarchar To NText

* Cleanup
2023-07-07 14:23:32 +02:00
Bjarke Berg c695f2192f Merge remote-tracking branch 'origin/release/10.6' into v10/dev
# Conflicts:
#	version.json
2023-07-07 08:27:51 +02:00
Zeegaan dc5c7a14a5 Bump version 2023-07-06 10:40:50 +02:00
Zeegaan c751e90928 Merge branch 'release/10.6' into v10/dev
# Conflicts:
#	version.json
2023-07-06 09:20:47 +02:00
Zeegaan d86e4b2d38 Bumb version 2023-07-05 10:46:14 +02:00
MaartenandSebastiaan Janssen 3f196a9de4 Fix broken CookieAuthenticationRedirect caused by PR #14036 for non-api requests (#14399)
* Fix broken CookieAuthenticationRedirect caused by PR #14036 when not in an API controller

* Added Integration Tests for the MemberAuthorizationFilter

* Fix merge conflict

---------

Co-authored-by: Elitsa <elm@umbraco.dk>
(cherry picked from commit 1d239a30ca)
2023-07-04 11:10:58 +02:00
Nikolaj Brask-NielsenandSebastiaan Janssen 30ec9d9bc7 fix: Allows copying from unsaved content (#14464)
#14459

(cherry picked from commit 1d14158d82)
2023-07-04 11:08:39 +02:00
Anders BjernerandSebastiaan Janssen 3087fc3ba9 Added missing Danish translation for general_change (#14461)
* Added missing Danish translation for `general_change`

* Update en_us.xml

(cherry picked from commit a090997aa1)
2023-07-04 11:07:21 +02:00
christophnzandSebastiaan Janssen 7fd7a8715d Fixed typo "optinal" to "optional" for translation dictionary import dialog and 2 other occurrences
(cherry picked from commit 77a2e4b557)
2023-07-04 10:42:56 +02:00
Bjarne FyrstenborgandSebastiaan Janssen 62fd860a9e Show SVG icons for toolbar in configuration of richtext editor (#14404)
* Load default icons to show them next to checkboxes in configuration of richtext editor

* More mapping of icons

* Fix vertical align items centered not reflected

* Wrap mapping in function

* Map a few more icons

* Cleanup and formatting

* Cleanup

* Cleanup

* Add period in description

(cherry picked from commit 583965cf9d)
2023-07-04 10:41:40 +02:00
Mads Mørch SchouandSebastiaan Janssen 76ad99beb0 Makes sure the nucache is not truncated when its null (#14395)
* Makes sure the nucache is not truncated when its null
* Removed parentheses

(cherry picked from commit 0a4a938b88)
2023-07-04 10:36:57 +02:00
Jason ElkinandSebastiaan Janssen ebe375d23b Add ContentDeletingNotification to EmptyRecycleBin (#14397)
* Add ContentDeletingNotification to EmptyRecycleBin

* Fix formatting.

(cherry picked from commit 118f914158)
2023-07-04 10:35:08 +02:00
Marco TeodoroandSebastiaan Janssen 2f35967bb2 fix: #12253 Anchor picker does not appear (#13492)
* fix: #12253 Anchor picker does not appear

* Update ContentServiceExtensions.cs

fix: #12253  #13492 ; implement PR suggestions, test the new changes to confirm that they fix the issue with the anchorlink implementation on RTE from blocklist, blockgrid and normal RTE properties
Co-Authored-By: Laura Neto <12862535+lauraneto@users.noreply.github.com>

* Removed unnecessary using and code

* Small adjustments

---------

Co-authored-by: Laura Neto <12862535+lauraneto@users.noreply.github.com>
(cherry picked from commit 1ba834a9ca)
2023-07-04 10:33:05 +02:00
Paul SealandSebastiaan Janssen f93f3d88da Fix/delete language error message 14333 (#14396)
* Update the tour text to the correct text and to save confusion

* Added extra information to the delete language warning to inform the user that it will also delete all content related to the language

* Updated language files with same message re deletion

---------

Co-authored-by: Paul Seal <p.seal@clerkswell.com>
Co-authored-by: Emma Garland <emma.garland@rocksolidknowledge.com>
(cherry picked from commit 542d0f7f74)
2023-07-04 10:06:26 +02:00
Bjarne FyrstenborgandSebastiaan Janssen dbd009ffcd Update label in Danish translation
(cherry picked from commit 575f00d6f0)
2023-07-04 10:05:17 +02:00
alevak09andSebastiaan Janssen b99e14e288 Add Croatian Language (#14379)
Croatian language translation of Umbraco backoffice and culture settings

(cherry picked from commit 9f4d3e5525)
2023-07-04 10:03:42 +02:00
Paul SealandSebastiaan Janssen b8415ed7f0 Update the tour text to the correct text and to save confusion
(cherry picked from commit 5073a26e7f)
2023-07-04 10:00:09 +02:00
Miguel PintoandSebastiaan Janssen 8f6370a480 Swapped the sortCreateDateAscending and sortCreateDateDescending translation values to match the intended behavior (#14315)
(cherry picked from commit 76cb85224e)
2023-07-04 09:53:46 +02:00
RussellandSebastiaan Janssen aa4a1b3498 Fix for User null from IP address "::1" has logged out (#14322)
(cherry picked from commit dd59ef17f5)
2023-07-04 09:51:59 +02:00
RussellandSebastiaan Janssen b716e98780 Change "Media Picker" in RTE to "Image Picker" (#14321)
(cherry picked from commit 0220621337)

# Conflicts:
#	src/Umbraco.Web.UI.Client/src/common/services/tinymce.service.js
2023-07-04 09:49:34 +02:00
Elitsa MarinovskaandGitHub e86fb0eeb6 Adding null check and descriptive error (#14469) 2023-06-27 13:35:01 +02:00
Elitsa MarinovskaandGitHub fe1080dd64 Check the cases where there might be a custom image type, instead of an the default Umbraco image type (#14463) 2023-06-27 10:33:46 +02:00
Bjarke Berg 1133c4e7f2 Merge remote-tracking branch 'origin/release/10.6' into v10/dev 2023-06-27 09:06:17 +02:00
Jacob Overgaard f5b834974d package-lock.json sync 2023-06-26 14:28:59 +02:00
Nikolaj 75113a90fb Bump version 2023-06-22 09:18:57 +02:00
miguelcrpintoandZeegaan 7e573c70a3 Updated the IsoDateTimeConverter initialization in the JsonDateTimeFormatAttribute to set the Culture to InvariantCulture so that the custom DateTime format symbols ( date and time separators) are respected independent of the CurrentCulture being used. 2023-06-21 14:04:56 +02:00
dependabot[bot]andNikolaj 5c5de77965 Bump socket.io-parser from 4.2.1 to 4.2.4 in /src/Umbraco.Web.UI.Client
Bumps [socket.io-parser](https://github.com/socketio/socket.io-parser) from 4.2.1 to 4.2.4.
- [Release notes](https://github.com/socketio/socket.io-parser/releases)
- [Changelog](https://github.com/socketio/socket.io-parser/blob/main/CHANGELOG.md)
- [Commits](https://github.com/socketio/socket.io-parser/compare/4.2.1...4.2.4)

---
updated-dependencies:
- dependency-name: socket.io-parser
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-21 09:45:50 +02:00
dependabot[bot]andNikolaj 2f486610bb Bump fast-xml-parser and is-svg in /src/Umbraco.Web.UI.Client
Bumps [fast-xml-parser](https://github.com/NaturalIntelligence/fast-xml-parser) and [is-svg](https://github.com/sindresorhus/is-svg). These dependencies needed to be updated together.

Updates `fast-xml-parser` from 3.20.3 to 4.2.4
- [Release notes](https://github.com/NaturalIntelligence/fast-xml-parser/releases)
- [Changelog](https://github.com/NaturalIntelligence/fast-xml-parser/blob/master/CHANGELOG.md)
- [Commits](https://github.com/NaturalIntelligence/fast-xml-parser/commits)

Updates `is-svg` from 4.3.1 to 4.4.0
- [Release notes](https://github.com/sindresorhus/is-svg/releases)
- [Commits](https://github.com/sindresorhus/is-svg/compare/v4.3.1...v4.4.0)

---
updated-dependencies:
- dependency-name: fast-xml-parser
  dependency-type: indirect
- dependency-name: is-svg
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-21 09:45:45 +02:00
Nikolaj d19a30768f Merge remote-tracking branch 'origin/v10/dev' into v10/dev 2023-06-21 09:20:26 +02:00
Nikolaj b451bb802b Revert "Case-insensitive tag names with SQLite provider (#14012)"
This reverts commit bb7752c483.
2023-06-21 08:45:54 +02:00
MoleandGitHub 785390efd7 Add Noop property indexer to multi url picker (#14416) 2023-06-20 12:14:35 +02:00
nikolajlauridsenandBjarke Berg 3b3e1cec40 Add Noop property indexer to multi url picker 2023-06-20 12:12:00 +02:00
Jacob OvergaardandGitHub 89d104e176 v10: Backoffice JS updates (#14406)
* update @umbraco-ui/uui to 1.3.0

* update ace editor to 1.22.1

* update diff to 5.1.0

* update autoprefixer to 10.4.14

* update underscore to 1.13.6

* update jQuery to 3.7.0

* fix pr-first-response workflow
2023-06-20 09:24:07 +02:00
Bjarne FyrstenborgandNikolaj 9a3e655645 Fix transparent background after upgrade of spectrum color picker (#14251) 2023-06-19 08:50:57 +02:00
Andy ButlandandGitHub 5f15b8abb1 Updated Forms and Deploy references in JSON schema project for Umbraco 10. (#14383) 2023-06-16 10:01:09 +02:00
Andreas ZerbstandGitHub 4df3e19af7 Added a mapper for the IPropertyType (#14373) 2023-06-12 11:18:57 +02:00
89d670372d Update security stamps on logout (#14362)
Co-authored-by: Zeegaan <nge@umbraco.dk>
2023-06-12 09:56:04 +02:00
Mole b5ab115318 Remove external login tokens before removing external logins (#14341) 2023-06-06 14:11:20 +02:00
407263d090 V10: Handle blob images (#14317)
* Handle blob images

* remove dots from mapping

* Revert bad formatting

---------

Co-authored-by: Zeegaan <nge@umbraco.dk>
2023-05-31 08:43:14 +02:00
b37bb517ab V10: Implement varying blocklist indexing (#14287)
* Implement available culture in Interface and base classes

* Add available cultures

* DI localizationService and use it

* Make the new method have default implementation to avoid breaking change

* Create implementations for old method

* Pass available cultures

* Pass localization service

* Create new method that takes available cultures

* Add ILocalizationService to DI

* implement missing method

* Add database for schema test

* Fixed issue with indexes not added correctly to nested types..

---------

Co-authored-by: Zeegaan <nge@umbraco.dk>
Co-authored-by: Bjarke Berg <mail@bergmania.dk>
2023-05-25 08:36:42 +02:00
MoleandGitHub 999a83995e V10: Add external login provider count to detailed telemetry (#14282)
* Add backoffice external login provider count to telemetry

* Update translation

* Fix integration test
2023-05-24 11:48:56 +02:00
Kenn Jacobsenandnikolajlauridsen b3a93ac86c Ensure that blocks always open automatically when added to block list or block grid (#14294) 2023-05-24 10:23:40 +02:00
Andy ButlandandGitHub e79246368b Update JSON schema package references for Forms and Deploy. (#14285) 2023-05-23 09:38:01 +02:00
Sebastiaan Janssen b67c7fbe77 Cherry pick b8d6613bd8 accidentally kept both lines instead of just the one, this fixes the problem. 2023-05-22 15:15:19 +02:00
Dhanesh Kumar MjandSebastiaan Janssen 16f448a802 [Fix] Block editor labels showing Angular JS on first load. (#14143)
Co-authored-by: Dhanesh Kumar <“dhanesh.kumar@phases.io”>
(cherry picked from commit 58695b6e9f)
2023-05-19 11:25:15 +02:00
b3bedb4efe XPath can unambiguously use $site/$parent (#14127)
* XPath can unambiguously use $site/$parent

* add deprecation notices and obsolete methods

* Update deprecation description text/instruction

Co-authored-by: Mole <nikolajlauridsen@protonmail.ch>

* Small spelling fix on deprecation description

* keep depr. getByQuery and handle legacy usage

---------

Co-authored-by: Kalle Macklin <karlmacklin@users.noreply.github.co>
Co-authored-by: Mole <nikolajlauridsen@protonmail.ch>
2023-05-15 08:48:36 +02:00
Andreas ZerbstandGitHub 5b73fc19ee V10: Fix NoopPublishedValuefallback varation context member not implemented (#14227)
* Added missing VariationContextAccessor

* Fixed identation
2023-05-10 14:31:40 +02:00
4cdab08910 Fixes #14102 - NestedPropertyIndexValueFactoryBase ignores compositions (#14115) (#14219)
Co-authored-by: Nuklon <Nuklon@users.noreply.github.com>
2023-05-09 09:49:04 +02:00
MoleandGitHub 391cade75f Merge pull request #14205 from umbraco/v10/bugfix/fix_acceptance_test
Fix acceptance test
2023-05-04 10:24:24 +02:00
Anders BrohusandSebastiaan Janssen e27e8d1189 Fixing danish typos (#14184)
* Fixed typo

* Fixed another typo

* Removed space from translation

(cherry picked from commit 7df5c9c212)
2023-05-04 10:13:51 +02:00
MichałandSebastiaan Janssen 1e0ace7a34 Save and preview translation.
(cherry picked from commit 0765a2ebbb)
2023-05-04 10:10:56 +02:00
Nikolaj 21c6828b59 Use regex for class 2023-05-04 09:32:32 +02:00
Nikolaj f7f361239c Try quick fix for test 2023-05-04 09:32:27 +02:00
Nikolaj 05908e2c78 Remove test.only 2023-05-04 09:32:18 +02:00
Jacob Overgaard 3a7ba530a2 Fix: Form elements in thirdparty dashboard views get removed (#14152) 2023-05-03 11:07:33 +02:00
Jacob Overgaard f4073c1dc7 update @umbraco-ui/uui to 1.2.1 2023-05-03 11:07:10 +02:00
Niels LyngsøandJacob Overgaard 7b5233803e fix situation when config was not available. (#14148) 2023-05-03 08:42:19 +02:00
Jacob OvergaardandGitHub 822febb8e8 update @umbraco-ui/uui to 1.2.1 (#14186) 2023-05-03 08:07:04 +02:00
MoleandGitHub bf7b9a20a8 Set culture variation when getting property types for indexing (#14167) 2023-04-26 14:51:55 +02:00
Elitsa MarinovskaandGitHub 9aadb41f4a Change state to publishing before handling ContentSavingNotification (#14114) 2023-04-25 15:08:15 +02:00
Mark DrakeandSebastiaan Janssen aaec419672 Edge Cases for Issue #13838: Hotkey Actions Triggered from Web Components (#14098)
(cherry picked from commit 1436fe4e15)
2023-04-21 14:13:02 +02:00
Dhanesh Kumar MjandSebastiaan Janssen 66b1add0d0 Save and Preview blank on second use #14052 (#14094)
(cherry picked from commit 00eab03d50)
2023-04-21 11:31:47 +02:00
Søren KottalandSebastiaan Janssen 81c6a1b8e6 Adds padding to the icon in btn-social (#14080)
(cherry picked from commit c4cf5f910d)
2023-04-18 16:30:40 +02:00
Nikolaj GeisleandSebastiaan Janssen 747f2e7599 V11: Fix decimal variants (#13741)
* fix sqlite with variants

* Create and register SqlSpecificMapper

* Delete obsolete file

* Add back inheritance

Co-authored-by: Zeegaan <nge@umbraco.dk>
(cherry picked from commit c868c60ed2)
2023-04-18 15:22:39 +02:00
Markus JohanssonandSebastiaan Janssen f9aaf1984a #14016 Fixed, added cache buster to Block Grid Editor stylesheets
(cherry picked from commit 80f6bb404a)
2023-04-18 14:48:08 +02:00
Mark DrakeandSebastiaan Janssen 539640f995 resolve spacing issues with block list inline editor when it is the last property editor on the current tab
(cherry picked from commit 9a638b6edc)
2023-04-18 14:46:56 +02:00
Dhanesh KumarandSebastiaan Janssen 07a45d02f9 fix for the char limit(512) for textboxdatatype
(cherry picked from commit 2c580e8d4f)
2023-04-18 14:45:31 +02:00
Lewis HazellandSebastiaan Janssen bb7752c483 Case-insensitive tag names with SQLite provider (#14012)
* Ensure case insensitivity in tag name queries.

Use LIKE instead of = to ignore collation rules.

* Add integration test for creating tag relations with mixed casing.

(cherry picked from commit 37d737f9bc)
2023-04-18 14:41:06 +02:00
Lucas Bach BisgaardandSebastiaan Janssen d1975ee2cf Fix bug, in multiurlpicker where you cannot deselect a selected entity.
(cherry picked from commit 3385947c4e)
2023-04-18 14:40:10 +02:00
Bjarne FyrstenborgandSebastiaan Janssen 4d13345b14 Support readonly set via SendingContentNotification (#13557)
* Support readonly set via SendingContentNotification

* Apply changes to second umb-property-editor as well

* Remove check on property.supportsReadOnly

* Disable allow unlock

* Add check on property.readonly

* Small adjustment in the order of preview checks

---------

Co-authored-by: Laura Neto <12862535+lauraneto@users.noreply.github.com>
(cherry picked from commit e30587f90d)
2023-04-18 14:37:23 +02:00
Andreas ZerbstandGitHub 02e16992b4 V10/qa/added more acceptance tests (#14100)
* Imported BlockGrid tests from v11

* Updated existing tests

* Updated version of playwright, our models builders and testhelpers

* More imported tests

* Updated flaky tests
2023-04-18 08:13:01 +02:00
Nikolaj 5d3546e1b5 Bump version 2023-04-13 08:53:47 +02:00
Nikolaj 5828080589 Merge branch 'release/10.5' into v10/dev 2023-04-13 08:47:41 +02:00
Nikolaj 8e32ac3e20 Bump to non-rc 2023-04-12 09:35:23 +02:00
Elitsa MarinovskaandGitHub 22328598db Adding dedicated Forbidden and Unauthorized handling for members (#14036) 2023-04-11 15:41:55 +02:00
ce47281c04 Determine correct if we can create a database with current connectionstring (#14030)
* Fix CanForceCreateDatabase method and add some unit tests

* Fixed an old copy/paste error

* A little nitpicking over wording and formatting

---------

Co-authored-by: kjac <kja@umbraco.dk>
2023-03-31 11:44:56 +02:00
BatJanandSebastiaan Janssen 83ad463e81 Change style to class
(cherry picked from commit 69010baceb)
2023-03-28 12:56:22 +02:00
Matthew CareandSebastiaan Janssen 06f527e87b Fix pressing enter in a property editor name field (#13329)
Co-authored-by: Sebastiaan Janssen <sebastiaan@umbraco.com>
(cherry picked from commit 7349ae1c5c)
2023-03-28 12:55:50 +02:00
Sebastiaan Janssen 6bc999bca4 Unit tests need updating now that the WriterId is properly being set after merging #12843
(cherry picked from commit a88d0c0ec9)
2023-03-28 10:28:33 +02:00
patrickdemooij9andSebastiaan Janssen 5f8ba2e864 Memory improvements to ShortStringHelper (#13089)
(cherry picked from commit b17d9004fd)
2023-03-28 10:19:43 +02:00
patrickdemooij9andSebastiaan Janssen eee6207f19 Performance improvement for ReplaceFirst function (#13018)
* Some benchmarks for replacefirst & span method

(cherry picked from commit e550a4ce3a)
2023-03-28 10:14:42 +02:00
LandLogic ITandSebastiaan Janssen 888173ac5b Add it key translation
(cherry picked from commit 99268f6211)
2023-03-28 10:11:57 +02:00
DennisandSebastiaan Janssen 7208f591c7 Fix equality check on property group (#13133)
* Fix equality check on property group

Also fix circular reference on PropertyTypeCollection

(cherry picked from commit f64f634979)
2023-03-28 10:08:48 +02:00
gadgetfbiandSebastiaan Janssen 391bfb73e8 Fixes: listitem: <li> elements must be contained in a <ul> or <ol> (#13120)
Co-authored-by: Rob Nicolson <rob.nicolson@brightwire.net>
(cherry picked from commit 1f6307944b)
2023-03-28 09:38:51 +02:00
Matthew CareandSebastiaan Janssen 9f2e79e9db Prevent overflowing property values (#12943)
(cherry picked from commit b34a93ed59)
2023-03-27 12:49:20 +02:00
Ealse BoumaandSebastiaan Janssen 40285b76b9 Fix: Infinite Editor creates each save action a new version when content is invalid (#12713)
(cherry picked from commit 93a85a46f3)
2023-03-27 11:30:53 +02:00
Patrick de MooijandSebastiaan Janssen aab6539d1f 12748: Make sure to set writerId
(cherry picked from commit 3ee9bfbc93)
2023-03-27 09:57:51 +02:00
Nikolaj 5598cc2491 Convert path to absolute 2023-03-23 09:21:07 +01:00
Andy ButlandandNikolaj b665099657 Updated reference for JSON schema to latest release of Forms 10. (#13996) 2023-03-23 09:14:23 +01:00
Andy ButlandandGitHub 010f722fa0 Updated reference for JSON schema to latest release of Forms 10. (#13996) 2023-03-23 08:59:28 +01:00
NuklonandSebastiaan Janssen 4f8b8b3415 Fixes #13732 - IsBackOfficeRequest is extremely inefficient (#13743)
* Update UmbracoRequestPaths.cs

* Update UmbracoRequestPaths.cs

* remove redundant check

---------

Co-authored-by: Michael <michael@crossingpaths.be>
(cherry picked from commit de27eb697e)

# Conflicts:
#	src/Umbraco.Core/Routing/UmbracoRequestPaths.cs
2023-03-21 08:24:13 +01:00
jesperweberandSebastiaan Janssen b1fd9e6f16 Added sort audit to nodes actually being sorted
(cherry picked from commit 36069aa813)
2023-03-20 16:23:12 +01:00
Joel MandellandSebastiaan Janssen d31bd8755e Fixing issue #13865 (i.e. Rich text link picker not resolving correct variant when using .ValueFor()). (#13889)
(cherry picked from commit 451d1cec6a)
2023-03-20 15:59:08 +01:00
Dhanesh Kumar MjandSebastiaan Janssen 6b208362cc [fix] Infinite Editor from member property with a media picker (#13817)
(cherry picked from commit 71e7836001)

# Conflicts:
#	src/Umbraco.Web.UI.Client/src/views/propertyeditors/listview/listview.controller.js
2023-03-17 12:24:39 +01:00
Lennard FonteijnandSebastiaan Janssen 9d1140165e Fixed issue where filtering allowed element types with a NotificationHandler causes issues with Block Grid areas
(cherry picked from commit e10ff16fa1)
2023-03-17 08:52:46 +01:00
Matt BegentandSebastiaan Janssen f70533e3a0 Add skip links to header (#13938)
* Add skip links to header

* Tweak skip link z-index

(cherry picked from commit f6ebcdcfb6)
2023-03-17 08:51:41 +01:00
Jason ElkinandSebastiaan Janssen 53c547fb61 Use correct listenAddress for Karma on node 18+
(cherry picked from commit 50c4f8c6b5)
2023-03-17 08:50:31 +01:00
Erik-Jan WestendorpandSebastiaan Janssen 82c21da5b7 Add Romanian language (#13965)
(cherry picked from commit 11b20cc6cc)
2023-03-17 08:49:35 +01:00
Karn BlackmoreandSebastiaan Janssen 2d32f46d80 Fix algiment issues by setting the editor to position fix.
(cherry picked from commit daf54468b1)
2023-03-17 08:48:56 +01:00
kiasynandSebastiaan Janssen e9d17d3b9f Fix ViewContext.FormContext not being set during BeginUmbracoForm (#13914)
* Fix ViewContext.FormContext not being set during BeginUmbracoForm

Client validation is broken without this if there are multiple forms with the same field names on a page.

* Tweaked comment

(cherry picked from commit 62b49c7ea7)
2023-03-17 08:47:48 +01:00
ChadandSebastiaan Janssen 7c77fd1ca9 Faster cache key generation (#13504)
* Reduce the number of string concatenations required to generate cache keys.
* Updated to match existing Nucache keys.

---------

(cherry picked from commit 7c30da9fbf)
2023-03-17 08:46:29 +01:00
Joe GlombekandSebastiaan Janssen d4970ed752 Add checkered background to file upload
(including SVGs added to the media library)

(cherry picked from commit 066276a532)
2023-03-17 08:44:47 +01:00
AaronandSebastiaan Janssen 66c786a42d Changed to cast double to long (#13935)
(cherry picked from commit ca515c3ed7)
2023-03-17 08:43:27 +01:00
Sean ThorneandSebastiaan Janssen e6c0826d39 update block label not assigning fixes: #13833 (#13937)
Co-authored-by: Sean Thorne <sean.thorne@truedigital.co.uk>
Co-authored-by: georgebid <91198628+georgebid@users.noreply.github.com>
(cherry picked from commit 64bd310037)
2023-03-17 08:42:13 +01:00
AaronandSebastiaan Janssen 8a3cf2731e Solves tooltip issue for block column editor on remove block column editor option
(cherry picked from commit 393845ce4d)
2023-03-17 08:40:16 +01:00
Paul SealandSebastiaan Janssen b8d6613bd8 Fix the reference to the .targets file (#13847)
Updates the reference to the .targets file to use the correct folder name of `buildTransitive` instead of `build`

(cherry picked from commit d8f204ddf9)
2023-03-17 08:38:04 +01:00
ChadandSebastiaan Janssen 12414013d5 Faster full nucache table rebuild (#13501)
* SQL Server Truncate when full nucache SQL rebuild.

* Optimize truncate for SQL Lite

* Remove comment.

* Use current DB Types

* I added a couple of formatting changes.

---------

Co-authored-by: georgebid <91198628+georgebid@users.noreply.github.com>
(cherry picked from commit be72c8147d)
2023-03-17 08:37:05 +01:00
CyberReiterandSebastiaan Janssen 5fcbd4e4cd Fall back to object if PublishedPropertyType modelType is null (#13553)
* add null check

* return object when type is null

(cherry picked from commit 0cfc1fb664)
2023-03-17 08:36:05 +01:00
CyberReiterandSebastiaan Janssen 6b309dc3be Fix install when adding custom default languages (#13904)
* Adding ids to language installation

---------

Co-authored-by: Jason Elkin <jasonelkin86@gmail.com>
(cherry picked from commit 30abbb0c5d)
2023-03-17 08:35:12 +01:00
Miska HusgafvelandSebastiaan Janssen 458688aed6 Ensure cropperHelper.pixelsToCoordinates returns valid coordinates
(cherry picked from commit 282b7ac3d5)
2023-03-17 08:31:40 +01:00
Erik-Jan WestendorpandSebastiaan Janssen a56a6bae31 Map BackOfficeNotification in ContentMapDefinitions (#13874)
* Map Notifications

* Empty line

(cherry picked from commit 5158d8119d)
2023-03-17 08:29:20 +01:00
Erik-Jan WestendorpandSebastiaan Janssen 010ea5a2aa IsNullOrWhiteSpace Extension method for HtmlEncodedString (#13747)
* Add IsNullOrWhiteSpace Extension method

IsNullOrWhiteSpace extension method for IHtmlEncodedString

* Move extension method

* Add a UnitTest for the IsNullOrWhiteSpace extension method

* Update unit test

(cherry picked from commit 9771e77243)
2023-03-17 08:21:21 +01:00
Menno MoutandSebastiaan Janssen 84d81b20ef Added a CalculateMediaStartNodeIds method call when the startNode passed in as parameter is null. When this does return an array of startNodes the first one is being used. The question remains if this is desired behaviour. With this implementation the user has no real control over where the file is going to go. Atleast with this implementation the user can now see the file.
(cherry picked from commit ca23784898)
2023-03-17 08:19:57 +01:00
mwillebrandsandSebastiaan Janssen d148e93b45 Fix for #13860
Undefined error when inserting an empty link in the RTE editor

(cherry picked from commit 6ce30fb561)

# Conflicts:
#	src/Umbraco.Web.UI.Client/src/common/services/tinymce.service.js
2023-03-17 08:06:49 +01:00
niekvanderreestandSebastiaan Janssen 0ce2fdb23b Change GetMinNonAlphaNumericChars() to return 1 (#13876)
(cherry picked from commit 27e38e1606)
2023-03-17 08:03:45 +01:00
Menno MoutandSebastiaan Janssen 273e7708e5 Listview batch publishing on multi language site, publishes all variants #13755 - Fix (#13772)
* Modified PostPublishById to handle content that is culture variant. Added model and modified the javascript function that call the api endpoint.

* Added separate method for publishing with cultures. Added if else statment to js function.

* Moved check for all cultures being published to the top of PostPublishByIdAndCulture. Added parameter to ngDoc. Added Where Query.

(cherry picked from commit 37db3ae3da)
2023-03-16 13:03:16 +01:00
Bjarne FyrstenborgandSebastiaan Janssen 154021801e Reset selected index/searcher (#13866)
(cherry picked from commit 62fdbd159c)
2023-03-16 12:49:39 +01:00
Smayke95andSebastiaan Janssen d418d06c02 Add Bosnian language (#13854)
* Add Bosnian language

* fix

* Fix issue with Marketplace

(cherry picked from commit 42d143c6b2)
2023-03-16 12:47:50 +01:00
Simone ChiarettaandSebastiaan Janssen c684b38247 Changed modifier for ContentPickerValueConverter (#13864)
Changed internal to public for ContentPickerValueConverter, which was the only property value converter defined as `internal`
Fixes issue umbraco#13858

(cherry picked from commit 362832b594)
2023-03-16 12:46:38 +01:00
tristanjthompsonandSebastiaan Janssen dca1c1b1be Update JITOptimizerValidator error message.
(cherry picked from commit e9f5b562ad)
2023-03-16 11:35:28 +01:00
Sebastiaan Janssen 86247b4578 Revert "Add DefaultLanguage fallback policy for published values (#13814)"
This reverts commit ef4c9c508d.
2023-03-16 11:32:35 +01:00
Ronald BarendseandSebastiaan Janssen ef4c9c508d Add DefaultLanguage fallback policy for published values (#13814)
* Add DefaultLanguage fallback

* Implement DefaultLanguage fallback

* Add DefaultLanguage fallback test

(cherry picked from commit 7348171c01)
2023-03-16 11:31:30 +01:00
Anders BrohusandSebastiaan Janssen f7ba2cfe96 2FA translations
Added and changed some translations about 2FA

(cherry picked from commit 559e56949f)
2023-03-16 11:21:15 +01:00
Dhanesh Kumar MjandSebastiaan Janssen 80a2839797 Mini-list view search by id,name & key is fixed. (#13735)
* Mini-list view search by id,name & key is fixed.
Added  multiple conditions in the query to consider id or name or key from the filter param(search bar from minilistview)

* make it more simple ,now using || instead of clause conditions.

---------

Co-authored-by: Dhanesh Kumar <dhanesh.kumar@phases.dk>
Co-authored-by: Michael <michael@crossingpaths.be>
(cherry picked from commit 2f5726384d)
2023-03-16 11:20:00 +01:00
Erik-Jan WestendorpandSebastiaan Janssen aacac4997d Remove special characters in avatar [part 2] (#13796)
* Update regex

* Update src/Umbraco.Web.UI.Client/src/common/directives/components/umbavatar.directive.js

Co-authored-by: Ronald Barendse <ronald@barend.se>

---------

Co-authored-by: Ronald Barendse <ronald@barend.se>
(cherry picked from commit 280fbdd870)

# Conflicts:
#	src/Umbraco.Web.UI.Client/src/common/directives/components/umbavatar.directive.js
2023-03-16 11:17:02 +01:00
Jeroen BreuerandSebastiaan Janssen 815eb5b9c8 Make methods virtual so they can be redefined in derived classes.
(cherry picked from commit ff3d8c1c6c)
2023-03-16 11:06:19 +01:00
Ealse BoumaandSebastiaan Janssen 5966ad4a05 Changed default initialized button permissions for listviews
(cherry picked from commit 5c0673930a)
2023-03-16 11:01:45 +01:00
Warren BuckleyandSebastiaan Janssen 06b89963e4 Fixes #13715 Simple LogViewer queries not returning results (#13748)
* Fixes #13715 issue with simple logviewer searches

* Update Logviewer test - to ensure MessageLike and simple equivalent returns same result count to help catch

(cherry picked from commit d38fabea4a)
2023-03-16 10:57:52 +01:00
Marc GoodsonandSebastiaan Janssen caa4ca510e Add .woff2 to BrowsableFileExtensions
(cherry picked from commit 23b03f408e)
2023-03-16 10:53:44 +01:00
Sebastiaan Janssen 0ecb613b4a Revert "add the s html element to allow list for TinyMCE (#13697)"
This reverts commit 48ad91392f.
2023-03-16 10:45:47 +01:00
Jacob OvergaardandSebastiaan Janssen 48ad91392f add the s html element to allow list for TinyMCE (#13697)
Fixes #13637

(cherry picked from commit cfdc4a9573)

# Conflicts:
#	src/Umbraco.Core/Configuration/Models/RichTextEditorSettings.cs
2023-03-16 10:43:47 +01:00
CyberReiterandSebastiaan Janssen 5e555c6129 Updating german translation (#13684)
* updating german translations

* translating missing sections

* added missing closing tag

Co-authored-by: Michael <michael@crossingpaths.be>
(cherry picked from commit 8fdb5a55ea)
2023-03-16 10:38:20 +01:00
Mike MaseyandSebastiaan Janssen 47078bcc70 fix: move list view selection options to after list in focus order
(cherry picked from commit 3ebd15b67e)
2023-03-16 10:37:11 +01:00
ustadstarandSebastiaan Janssen 0ba1254e7d Fix copy content with descendants not copying sort order (#13464)
(cherry picked from commit fd992f65bb)
2023-03-16 10:33:39 +01:00
Erik-Jan WestendorpandSebastiaan Janssen d0e34c38a0 Translate dictionary area
(cherry picked from commit 045c755ccf)
2023-03-16 10:11:58 +01:00
Mykola GorbatenkoandSebastiaan Janssen 6be8d2e885 added Ukrainian language
(cherry picked from commit b52a4363c4)
2023-03-16 10:08:54 +01:00
CyberReiterandSebastiaan Janssen bfd29dfc3b minor improvements to indexing performance
(cherry picked from commit b7a26360e5)
2023-03-16 09:19:41 +01:00
Robert FosterandSebastiaan Janssen 4b2af296be fix for #13623 by hiding Member Edit Action Menu on Infinite editing … (#13624)
* fix for #13623 by hiding Member Edit Action Menu on Infinite editing for consistency

* added missing attribute to umb-editor-header for Member editing

(cherry picked from commit e7a986b1c3)
2023-03-16 09:18:23 +01:00
MehmetandSebastiaan Janssen 17aa9cee51 Rename title marketplace to packages (#13625)
(cherry picked from commit 59c5226d68)
2023-03-16 09:14:21 +01:00
Mario LopezandSebastiaan Janssen f035b2bee2 fixes data-element attribute on media section (#13621)
* fixes data-element attribute on media section

* Revert "fixes data-element attribute on media section"

This reverts commit 2a35c9fbed.

* use property alias on members umb-property

Co-authored-by: Mario Lopez <mario@luminary.com>
(cherry picked from commit dc46b649f7)
2023-03-16 09:10:57 +01:00
Calvin DavisandSebastiaan Janssen 4d4b5b7007 Add margin-right to block card name and subname
(cherry picked from commit 4fbb0805e8)
2023-03-16 09:08:05 +01:00
Bjarne FyrstenborgandSebastiaan Janssen c04b11cf17 Only show rollback button if allowed action
(cherry picked from commit 05a511a16c)
2023-03-16 09:06:14 +01:00
Bjarke Berg 6404f2dae8 Merge remote-tracking branch 'origin/release/10.4.1' into v10/dev
# Conflicts:
#	version.json
2023-03-15 16:21:40 +01:00
Nikolaj 0c6632eeb4 Bump version 2023-03-14 14:25:02 +01:00
Bjarke Berg 4e3ac66865 Check the tmpimg path is in the expected folder 2023-03-14 08:27:17 +01:00
Bjarke BergandGitHub de6e9aeb31 Prioritise surface controller requests highest (#13919)
* Fixed issue mentioned in https://github.com/umbraco/Umbraco-CMS/issues/13836

Now surface controller requests always has higher priority than other. So if this is both a surface controller request and a virtual page request, it will execute the surface controller.

* Moved some login into private methods

* More clean up

* Clean up

* Only handle valid candidates
2023-03-08 13:43:35 +01:00
Nikolaj GeisleandGitHub a8a8a7fea5 Make Detailed telemetry the default (#13918) 2023-03-07 13:14:23 +01:00
MoleandGitHub 84e20e74d3 Don't replace hyphen and underscore with empty string (#13896)
Replace it with a space instead
2023-03-07 11:31:15 +01:00
Bjarke BergandNikolaj Geisle 220414114e Fallback to use ActivatorUtilities to create controller from type, if it is not registered in DI (#13910) 2023-03-07 11:24:44 +01:00
MoleandGitHub 2538f946fc Check explicitly for MaintenanceResult in published request filter (#13911)
LGTM 💪
2023-03-07 08:15:19 +01:00
Bjarke BergandGitHub eb07998cf2 Merge pull request #13900 from umbraco/v10/bugfix/12200
Add allowlist of media hosts.
2023-03-02 14:34:05 +01:00
Bjarke Berg 7119253e6f Add allowlist of media hosts. 2023-03-01 15:17:08 +01:00
9cfda6e05c new up settings so they are no longer null (#13879)
Co-authored-by: Zeegaan <nge@umbraco.dk>
2023-02-23 14:22:33 +01:00
555f6e2514 Add obsolete messages to no longer used properties (#13859)
Co-authored-by: Zeegaan <nge@umbraco.dk>
2023-02-21 08:13:44 +01:00
Elitsa MarinovskaandGitHub cc76289a36 Fix mapping (#13844) 2023-02-17 09:38:39 +01:00
Andy ButlandandGitHub f9ed9c0ae8 Bumped dependencies on Forms and Deploy to latest releases in JSON schema project. (#13827) 2023-02-14 08:01:08 +01:00
d9f342bee7 Added missing property index value factories (#13819)
* Added missing PropertyIndexValueFactories, for Block Grid, Block List, Nested Content, Tags and added No-op for image picker, image cropper etc, where the content dont make any sense anyway.

Made it replace for block grid/list, nested content and tags

* Fixed tests

* Ensure raw-fields are the prefix

* Code clean up

* build fix

* Minor cleanup

* Fixed issue with published values / external index

---------

Co-authored-by: nikolajlauridsen <nikolajlauridsen@protonmail.ch>
2023-02-13 14:47:26 +01:00
Kenn JacobsenandGitHub e529818560 Make the default lockout time configurable for users and members (#13808)
* Make the default lock timeout configurable for users and members

* Update obsoletion to V13
2023-02-10 10:56:55 +01:00
Kenn JacobsenandGitHub 45f8ffcd0b Support notifications for multiple root nodes (#13805) 2023-02-10 10:49:39 +01:00
Kenn JacobsenandGitHub 7d9e07ff7c Don't show DB details on install screen when using a pre-configured connection string (#13809) 2023-02-10 10:45:19 +01:00
b83c88e9f1 V10: fix content version cleanup dto migration (#13788)
* Add DoesPrimaryKeyExist method

* Add primary key name to dto

* Add extension method PrimaryKeyExists

* Dont use sql_master table

* Implement DoesPrimaryKeyExists

* Rename without plural s

* Refactor to get proper primary key name and not column name

* Use primary key name and not column name

* Dont filter tables in memory

* Remove .Where

* Don't select all, select only sql

* throw NotImplementedException by default

* USe virtual instead of abstract to avoid breaking change

* Reinstert primary key attribute

---------

Co-authored-by: Zeegaan <nge@umbraco.dk>
2023-02-07 13:46:14 +01:00
Bjarke BergandGitHub 884793f729 Added fix to maintenance page so it is shown before the content cache is created. (#13767) 2023-02-05 16:47:09 +01:00
Jacob Overgaard c90a0ecfdc add check for editorState.getCurrent to find the current editor (relevant in infinite editors), and throw a warning if an editor completely misses the current node context (#13778)
disable drag&drop entirely if the property editor did not get a node through bindings or editorState
2023-02-03 10:24:27 +01:00
Andreas ZerbstandGitHub 5871fd2097 Updated the ID of the locator in the test 'can set a minimum of required blocks in content with a block list editor' to match the correct ID. (#13769) 2023-02-01 13:52:39 +01:00
Yari MariënandSebastiaan Janssen 8616f01bf6 Added youtube shorts url pattern. 2023-01-31 18:25:15 +01:00
Kenn JacobsenandGitHub c585b1da9e Correct the obsolete message for DataTypeService constructor. (#13761) 2023-01-31 09:56:36 +01:00
Andy ButlandandGitHub e87196909a Uses URL path separator when generating UDIs for files nested in folders. (#13689) 2023-01-31 09:46:45 +01:00
823c59cee1 Send email notification on password reset (#13756)
Co-authored-by: Aleksander <alf@umrabco.dk>
2023-01-31 09:05:15 +01:00
03365f55c4 Update label when updating color (#13720)
Co-authored-by: Zeegaan <nge@umbraco.dk>
2023-01-27 09:52:37 +01:00
Bjarke BergandGitHub f275d80e2f Fixes issue with nucache slow on linux, when cold-booting (#13719)
* Fixes issue with nucache slow on linux, when cold-booting

https://github.com/umbraco/Umbraco-CMS/issues/12159
2023-01-26 16:20:57 +01:00
Jacob OvergaardandElitsa Marinovska 435b6f0650 V11: Prevalues as toggles have problems in datatype settings view (#13709)
* format preValues with DataTypeHelper.createPreValuesProps before rendering so they have the 'alias' prop used for input-id to umb-toggle

* preValues are now formatted on fetch so we do not need to do it again

(cherry picked from commit 7aee15d6d1)
2023-01-20 08:16:25 +01:00
Bjarke BergandGitHub ea3668a224 Update docfx (#13679) 2023-01-16 16:10:06 +01:00
Kenn JacobsenandGitHub f6113db0fc Re-introduce the option to conditionally login members after registration (#13659)
* Re-introduce the option to conditionally login members after registration

* Make absolutely sure the default is true for automatic member login after registration
2023-01-12 10:56:14 +01:00
Kenn JacobsenandGitHub 9d522ea9a0 Make it possible to drag multiple properties to other tabs in succession (#13579) 2023-01-12 10:53:57 +01:00
Kenn JacobsenandGitHub 6f2016d6da Only save selected variant for new content (#13649) 2023-01-12 10:53:14 +01:00
Kenn JacobsenandGitHub 4e7f663596 Use element type icon colors in block list catalogue, unless a specific color has been defined for catalogue appearance (#13651) 2023-01-12 10:51:23 +01:00
Kenn JacobsenandGitHub 2ec05431ba Fix the content picker XPATH scope in infinite editing (#13657) 2023-01-12 10:49:30 +01:00
Kenn JacobsenandGitHub 75a85bab0f Make sure the expand icon is never faded in mini list views (#13661) 2023-01-12 10:48:28 +01:00
Kenn JacobsenandGitHub 0c694c4b9d Fix broken buttons for properties with alias "navigation" (#13663) 2023-01-12 10:47:27 +01:00
Nikolaj ba74ca0512 Bump version 2023-01-11 15:37:27 +01:00
Nikolaj 96561b9446 Merge branch 'release/10.4' into v10/dev 2023-01-11 15:36:00 +01:00
Andy ButlandandNikolaj daff9884a3 Changed healthcheck collection configuration to use a concrete type to ensure configuration settings are bound. 2023-01-11 10:16:53 +01:00
Andy ButlandandSebastiaan Janssen d582632c85 Changed healthcheck collection configuration to use a concrete type to ensure configuration settings are bound. 2023-01-11 10:12:49 +01:00
Nikolaj 29bc727a4b Bump version 2023-01-11 10:06:39 +01:00
Kenn JacobsenandGitHub 42f6717de8 Use the client culture if available when rendering macro HTML for the backoffice (#13653) 2023-01-11 10:02:51 +01:00
24455bae6e Add primary key column attribute to ContentVersionCleanupPolicyDto.cs (#12684)
* Add primary key column attribute to ContentVersionCleanupPolicyDto.cs

* Test pipelines

* Revert "Test pipelines"

This reverts commit a8f654ebb7.

* test commit for pipelines

* Revert "test commit for pipelines"

This reverts commit ab03f977f4.

* Dont cascade delete

Signed-off-by: Zeegaan <nge@umbraco.dk>

* Remove unneccesary delete clause

Signed-off-by: Zeegaan <nge@umbraco.dk>

* Remove added whitespace

Signed-off-by: Zeegaan <nge@umbraco.dk>

* Revert "Remove unneccesary delete clause"

This reverts commit 4b2b665169.

* Disable identity for PK

* Add PK migration

* formatting

* Keep latest entry

Signed-off-by: Zeegaan <nge@umbraco.dk>
Co-authored-by: Zeegaan <nge@umbraco.dk>
2023-01-10 10:59:10 +01:00
31655536b1 Implement check for connectionstring value (#13641)
Signed-off-by: Zeegaan <nge@umbraco.dk>

Signed-off-by: Zeegaan <nge@umbraco.dk>
Co-authored-by: Zeegaan <nge@umbraco.dk>
2023-01-09 08:52:46 +01:00
Nikolaj 392b48f159 Merge branch 'release/10.4' into v10/dev 2022-12-21 13:53:58 +01:00
a364141efa V10: Dont disable invited users (#13600)
* Dont allow disable user when invited

* Use data instead of selection

* return succesfully disabled users

* Disable disable button when invited

* Add integration tests

* Remove unused usings

* Update src/Umbraco.Web.BackOffice/Controllers/UsersController.cs

Co-authored-by: Kenn Jacobsen <kja@umbraco.dk>

* Create DisabledUsersModel

* use data.disabledUsers

* Return OK if no users to be saved

* User disabledUsersModel

Co-authored-by: Zeegaan <nge@umbraco.dk>
Co-authored-by: Kenn Jacobsen <kja@umbraco.dk>
2022-12-21 09:57:00 +01:00
Bjarke Berg fae74c53ba Merge remote-tracking branch 'origin/release/10.4' into v10/dev 2022-12-20 10:18:14 +01:00
d62e2d731b V10: Dont disable invited users (#13600)
* Dont allow disable user when invited

* Use data instead of selection

* return succesfully disabled users

* Disable disable button when invited

* Add integration tests

* Remove unused usings

* Update src/Umbraco.Web.BackOffice/Controllers/UsersController.cs

Co-authored-by: Kenn Jacobsen <kja@umbraco.dk>

* Create DisabledUsersModel

* use data.disabledUsers

* Return OK if no users to be saved

* User disabledUsersModel

Co-authored-by: Zeegaan <nge@umbraco.dk>
Co-authored-by: Kenn Jacobsen <kja@umbraco.dk>
2022-12-20 09:53:54 +01:00
Kenn Jacobsenandnikolajlauridsen ab82549fd6 Support space (and more) in tag groups (#13589) 2022-12-16 14:25:30 +01:00
Kenn JacobsenandGitHub 9c21951d02 Support space (and more) in tag groups (#13589) 2022-12-16 14:23:31 +01:00
Ronald BarendseandElitsa Marinovska 4d760a54c8 Set redirect URL when building model (#12969)
Co-authored-by: Elitsa Marinovska <elm@umbraco.dk>
(cherry picked from commit 544cb30602)
2022-12-16 13:00:39 +01:00
Nikolaj GeisleandGitHub 5066491726 Close shared connection (#13580)
* Close shared connection

* Use transaction instead of shared connection
2022-12-14 18:33:00 +01:00
Elitsa MarinovskaandSebastiaan Janssen dabc7bed9b Enabling an Umbraco admin user to disable 2FA for a member (#13369)
* Fix Invalid authentication code bug

* Add translation keys for 2fa

* Display toggle for 2FA on member

* Add TwoFactorEnabled prop when saving member

* Handle disabling of 2FA

* Fix tests

* Changing obsolete msg

(cherry picked from commit af6b8fc5cb)
2022-12-14 13:50:16 +01:00
Jacob OvergaardandSebastiaan Janssen d6d4421a37 Tree picker support for selecting containers (#13507)
Fixes https://github.com/umbraco/Umbraco-CMS/issues/13463

(cherry picked from commit 63e4adca92)
2022-12-14 13:48:51 +01:00
Bjarne FyrstenborgandSebastiaan Janssen aaababca9b UserController should use getLocalDate from dateHelper (#13469)
* Use `getLocalDate` from dateHelper

* Remove duplicate import

* Keep function getLocalDate but use dateHelper

* Mark function as deprecated

(cherry picked from commit 30a7bca0ef)
2022-12-14 13:45:01 +01:00
Erik-Jan WestendorpandSebastiaan Janssen 77fdcf20ca Add AddManifestFilter extension method to UmbracoBuilder.CollectionBuilders.cs (#13161)
(cherry picked from commit 65dd52ad05)
2022-12-14 13:44:22 +01:00
Anders BjernerandSebastiaan Janssen fb881d568b Added "loading" parameter to "umbEditorHeader" directive
(cherry picked from commit 33668a5d95)
2022-12-14 13:43:36 +01:00
Owain JonesandSebastiaan Janssen 345feaf16a Updated welsh translations file
(cherry picked from commit 079b2b7452)
2022-12-14 13:41:28 +01:00
Anders BjernerandSebastiaan Janssen f4012115a3 NullOrWhiteSpaceAsNull should be nullable
(cherry picked from commit 5ffc2b1ccb)
2022-12-14 13:40:40 +01:00
SimonJansson2andSebastiaan Janssen 8bee709720 Adding swedish backoffice translations
(cherry picked from commit 2071224d1f)
2022-12-14 13:40:02 +01:00
Jason ElkinandSebastiaan Janssen 90ffd25d96 Swap HSTS healthcheck status on localhost
(cherry picked from commit 6cb53fd703)
2022-12-14 13:39:10 +01:00
CyberReiterandSebastiaan Janssen 43a4a49409 adding some german translations
(cherry picked from commit ce60e72452)
2022-12-14 13:38:22 +01:00
Sebastiaan Janssen 2265d0a928 Changed Logo button behavior to be more consistent with the rest of the header
(cherry picked from commit 7d9ee69fbc)
2022-12-14 13:37:38 +01:00
Tobias MønsterandSebastiaan Janssen 67d6e9f3df Renames Installer form from "myForm" to "installerForm" (#12806)
Co-authored-by: Joe Glombek <joe@glombek.com>
(cherry picked from commit 6cad4013e4)
2022-12-14 13:36:53 +01:00
Anders BjernerandSebastiaan Janssen 8ff1d0769e Added shortcut="esc" to RTE HTML editor close button
(cherry picked from commit 4922144528)
2022-12-14 13:35:01 +01:00
TiffanyandSebastiaan Janssen 4dbd7de0d6 Tree Roots are H1
(cherry picked from commit 105670dcc1)
2022-12-14 13:34:17 +01:00
Matthew WiseandSebastiaan Janssen 508898c4ee standarising ActionLetter and ActionName for IAction
(cherry picked from commit ec56778c9f)
2022-12-14 13:32:08 +01:00
Kristian Tolleshaug MørchandSebastiaan Janssen ba53b47b72 Ensure format processor is before quality processor.
(cherry picked from commit 69c725b3ec)
2022-12-14 13:31:08 +01:00
ustadstarandSebastiaan Janssen faf69e4349 Fix check for existing userStatesFilter
(cherry picked from commit f7e73fbff5)
2022-12-14 13:26:28 +01:00
Paul SealandSebastiaan Janssen 5db507cb96 created an add current domain button to the cultures and hostnames sc… (#13436)
* created an add current domain button to the cultures and hostnames screen

* removed unwanted space

(cherry picked from commit d86d29807d)
2022-12-14 13:23:34 +01:00
Corné HoskamandSebastiaan Janssen 479dde280f Added various Block Grid translations (NL) - Pt 2. (#13508)
* Added various translations

* Added another translation

* Change request

* Added various other area translations

* Resolve conflict

* Forgot one!

* Update nl.xml

(cherry picked from commit 9099bf44ac)
2022-12-14 13:22:44 +01:00
Corné HoskamandSebastiaan Janssen 93c0a4ee38 Added various Block Grid translations (EN & NL) (#13488)
* Added various translations

* Added another translation

* Change request

(cherry picked from commit a4e67bf444)

# Conflicts:
#	src/Umbraco.Core/EmbeddedResources/Lang/en.xml
#	src/Umbraco.Core/EmbeddedResources/Lang/en_us.xml
2022-12-14 13:21:59 +01:00
Vlael LayugandSebastiaan Janssen a810c59774 add default culture when there's only 1 language configured
(cherry picked from commit f7b42a50cc)
2022-12-14 13:19:08 +01:00
Erik-Jan WestendorpandSebastiaan Janssen 0b36c1195e Use constants instead of hardcoded strings
(cherry picked from commit 4f129baebd)
2022-12-14 13:17:49 +01:00
Justin NevilleandSebastiaan Janssen 5f4dc7a994 Added aria label to time period on log dashboard
(cherry picked from commit 8bf6a9246f)
2022-12-14 13:17:00 +01:00
Justin NevilleandSebastiaan Janssen 04be6889ab Allow empty valuesets to be indexed so the back-offce does not hang when rebuilding empty indexes
(cherry picked from commit 88ff05a836)
2022-12-14 13:15:53 +01:00
Markus JohanssonandSebastiaan Janssen 3bd9da00cc LogViewe: Adding support for destructed properties
(cherry picked from commit d2ab80534a)
2022-12-14 13:15:01 +01:00
Lotte PitcherandSebastiaan Janssen a0e8049916 Remove reference to installing a local package via backoffice (#13330)
(cherry picked from commit da9eae1252)
2022-12-14 13:14:19 +01:00
CyberReiterandSebastiaan Janssen 328f5e0817 make use of spans in UriExtensions to make them faster
(cherry picked from commit 02dcf98e3d)
2022-12-14 13:13:24 +01:00
Vitor RodriguesandSebastiaan Janssen 57a29e4085 Re-use any existing ReloadableLogger
It's possible that consumers have already set up a bootstrap logger themselves before Umbraco had a chance too, if that's the case we just reload it.

(cherry picked from commit 7ad1e638e6)
2022-12-14 13:12:37 +01:00
Vitor RodriguesandSebastiaan Janssen ea3c862228 Added missing content-type header to BootFailedMiddleware response
When Umbraco is configured with X-Content-Type-Options nosniff as is recommended (there's even a health check for it), any boot failure would simply show the html source code in the browser instead of properly rendering the html, as the content-type wasn't being set.

(cherry picked from commit d4c921264d)
2022-12-14 13:11:32 +01:00
Kenn JacobsenandGitHub dc2701cb5e Handle StringValues in ObjectExtensions.TryConvertTo (#13575) 2022-12-14 11:39:36 +01:00
Marc GoodsonandSebastiaan Janssen b87b9bebe2 Adjust the wording of some of the helper text around the new Block Grid editor (#13484)
(cherry picked from commit 2461b7d805)

# Conflicts:
#	src/Umbraco.Core/EmbeddedResources/Lang/en.xml
#	src/Umbraco.Core/EmbeddedResources/Lang/en_us.xml
2022-12-14 11:03:45 +01:00
Kenn JacobsenandGitHub c0d022be10 Fix wrongfully reported pending package migrations (#13574) 2022-12-14 11:00:12 +01:00
Bjarne FyrstenborgandSebastiaan Janssen 2f1ef29690 Adjust sorting of block grid editor groups to y-axis only (#13225)
fixes https://github.com/umbraco/Umbraco-CMS/issues/13180

(cherry picked from commit d4c5f5017f)

# Conflicts:
#	src/Umbraco.Web.UI.Client/src/views/propertyeditors/blockgrid/prevalue/blockgrid.blockconfiguration.controller.js
2022-12-14 10:53:35 +01:00
CyberReiterandSebastiaan Janssen d46d5aac0d Use ToArray instead of ToList
(cherry picked from commit f99378c5d3)
2022-12-14 10:47:16 +01:00
Lars-Erik AabechandSebastiaan Janssen c0d5b544f5 Ensure culture is always set in LocalizeText
(cherry picked from commit 4d23e8a6bd)
2022-12-14 10:45:56 +01:00
Karl ButlerandSebastiaan Janssen 303abaea28 Accessibility Fixes for Users and Packages pages (#13087)
(cherry picked from commit 2d560e9766)
2022-12-14 10:41:49 +01:00
patrickdemooij9andSebastiaan Janssen 481d496641 Use span in StripFileExtension to speed up and use less memory (#13101)
(cherry picked from commit 475cea40a1)
2022-12-14 10:38:04 +01:00
bkclerkeandSebastiaan Janssen ae31c2f5e4 add aria-labelledby attribute to tags input
(cherry picked from commit 1009238f32)
2022-12-14 10:36:09 +01:00
Kenn JacobsenandGitHub 2e271ba766 Fix unpublished state for culture variant content in a single language site (#13570) 2022-12-14 10:35:41 +01:00
Jan SkovgaardandSebastiaan Janssen 39e59efd22 Accessibility: Fix - Missing table description: A data table is present with no description associated to it (#13117)
(cherry picked from commit 97fa4d76dc)
2022-12-14 10:33:22 +01:00
Asbjørn Riis-KnudsenandSebastiaan Janssen ce9766eb69 Skip populating the PropertyTypeGroup alias column if it is already populated (#13109)
(cherry picked from commit 50d361c4e6)
2022-12-14 10:32:05 +01:00
Bjarne FyrstenborgandSebastiaan Janssen 3c89b5271c Add input id to args in toggleValue event (#13108)
(cherry picked from commit a7368542d8)
2022-12-14 10:25:58 +01:00
JesseandSebastiaan Janssen a3c259482c added fix for ncNodeName filter in list view (#13086)
(cherry picked from commit e87701c482)
2022-12-14 10:24:22 +01:00
bakersbakebreadandSebastiaan Janssen ded4424b98 add setDirty() logic to remove actions on mediaPicker3 property editor
(cherry picked from commit 3377a7c96b)
2022-12-14 10:22:52 +01:00
TiffanyandSebastiaan Janssen 1c12e96c65 Fixed user invited badge color
(cherry picked from commit 5209840597)
2022-12-14 10:18:19 +01:00
Bjarke BergandGitHub 2d564a11b9 Maintenance page when in upgrade state (#13551)
* Added functionality to show maintenance page and fixed issues with showing custom api controllers and 404 page, when umbraco had been in install or upgrade state

* Fixed Tests

* Fixed typo

* Fixed issue with login screen redirecting to website when in upgrade state, instead of backoffice
2022-12-14 08:14:19 +01:00
Ronald BarendseandGitHub fd7778320a Save using consistent newline and support parsing different newlines (#13569) 2022-12-13 13:32:14 +01:00
BatJanandSebastiaan Janssen faa256dd92 Change prevalue order
(cherry picked from commit 8fe699f26b)
2022-12-13 13:27:14 +01:00
TiffanyandSebastiaan Janssen 90fdd8c5a8 Added h2 for the package details heading
(cherry picked from commit 96da638236)

# Conflicts:
#	src/Umbraco.Web.UI.Client/src/views/packages/views/repo.html
2022-12-13 13:21:54 +01:00
Rachel BreezeandSebastiaan Janssen 5d0d245f69 A11Y added missing iframe title to installer and preview controller.
(cherry picked from commit d32b93349d)
2022-12-13 13:19:29 +01:00
Michael LatoucheandSebastiaan Janssen 0b9e90821e Update datepicker.controller.js
Don't set dirty if date actually not changed

(cherry picked from commit 92ac072559)
2022-12-13 13:17:07 +01:00
Niels LyngsøandGitHub e4d1c65081 Make our default layout stylesheet handle area as flexbox, similar to backoffice styling. (#13534) 2022-12-13 09:35:34 +01:00
Niels LyngsøandGitHub f017c27db8 fix the broken responsiveness css calculation (#13535) 2022-12-13 09:34:18 +01:00
sofietoftandNikolaj 151708c4b5 Updated docs links to point to new platform (#13426)
* Updated docs links to point to new platform

* Update settingsdashboardintro.html

Co-authored-by: nikolajlauridsen <nikolajlauridsen@protonmail.ch>
2022-12-08 14:50:41 +01:00
793272bda1 V10: Umbraco Marketplace (#13511)
* v11: Umbraco Marketplace replaces packages repo (#13371)

* add lang keys for marketplace

* remove old 'repo' page and deprecate related services

* add new view for Umbraco Marketplace

* optimise margin/padding for other tabs

* mark Our Repository constants as obsolete

* improve css path to iframe slightly with more aliases and classnames

* remove style qs

* update URL of Marketplace

* add ng-controller with utitlities for future PostMessage API

* rename marketplace loaded function

* remove iframe postmessage logic for time being

* add handling of dynamic querystring params

* assume url does not change

* Added support for additional parameters for marketplace

* Update src/JsonSchema/AppSettings.cs

Fix styling issue

Co-authored-by: Ronald Barendse <ronald@barend.se>

* Update src/Umbraco.Core/Configuration/Models/MarketplaceSettings.cs

Fix styling issue

Co-authored-by: Ronald Barendse <ronald@barend.se>

* Update src/Umbraco.Core/Configuration/Models/MarketplaceSettings.cs

Make comment more descriptive

Co-authored-by: Ronald Barendse <ronald@barend.se>

* Update src/Umbraco.Core/Constants-Marketplace.cs

Fix styling issue

Co-authored-by: Ronald Barendse <ronald@barend.se>

Co-authored-by: Bjarke Berg <mail@bergmania.dk>
Co-authored-by: Ronald Barendse <ronald@barend.se>

* Info panes not loading prerequisites (#13486)

* load relations immediately on init and remove call to non-existing function `appTabChange` on destroy

* load relations immediately on init and remove now not-used eventsService

* update marketplace url to its final, live url

* re-add files to prevent breaking change

Co-authored-by: Bjarke Berg <mail@bergmania.dk>
Co-authored-by: Ronald Barendse <ronald@barend.se>
2022-12-07 10:44:34 +01:00
Justin NevilleandBjarke Berg f28b4c1279 Fix for issue 13017 - BeginUmbracoForm doesn't work with custom umbraco routes (#13103)
* Fix issue with custom Umbraco routes not working after submitting to a Surface controller

* Added comments

* Fixed breaking changes

* Fixed test by using correct new ctor

* Fixed initializtion of UmbracoRouteValueTransformer due to ambiguous ctor

Co-authored-by: Bjarke Berg <mail@bergmania.dk>
2022-12-06 12:42:06 +01:00
caed5bcb13 V11/feature/flaky test work (#13513) (#13527)
* Removed all the DeleteAllContent since I delete the doctypes in the before and after each functions which also deletes the content.

* fixed the test so it selects the specific button!

* I was dumb and forgot to remove the out commented code

* Added additional timeout so the pipeline has more time

* Removed language in settings because it was a duplicate of languages / languages

* Fixed the tests so they now check if each individual language that was created actually exists instead of checking for how many languages there are which could be flaky if another test touching the languages failed

* Bumped version

* Added a better locator for the buttons and increased timeouts

Signed-off-by: Zeegaan <nge@umbraco.dk>

Signed-off-by: Zeegaan <nge@umbraco.dk>
Co-authored-by: Andreas Zerbst <73799582+andr317c@users.noreply.github.com>
2022-12-06 11:32:23 +01:00
248a0c4f19 Allow indexing variant nodes when not all variants are published - fixes issues 11383. (#12669)
* This fixes issues 11383.
The introduction of the new Examine library caused an unintended consequence that it stopped indexing of nodes with language variants on them when one of the variants was unpublished.

These changes align ValueSetValidationStatus.Filtered to indicate that a node is intended as filtered out of a search, not that parts of its contents had been excluded from the result.

This brings it inline with how it is used in Umbraco.Examine.Lucene/UmbracoContentIndex

Unit tests changed to indicate the intent of ValueSetValidationStatus.Filtered

Change to UmbracoViewPage to make model variable nullable (because the solution wouldn't build otherwise on 2022)

* revert to use explicit type instead of var

Co-authored-by: Nathan Woulfe <nathan@nathanw.com.au>
Co-authored-by: Bjarke Berg <mail@bergmania.dk>
2022-12-06 08:23:54 +01:00
e992da7159 Fix concurrency issue in UmbracoMapper (#13524)
* Add logging to UmbracoMapper

* Add NullLogger to tests

Co-authored-by: Zeegaan <nge@umbraco.dk>
2022-12-05 12:25:55 +01:00
Elitsa MarinovskaandGitHub 4aa0378431 Changing the way we create the temp file for SQLite file (#13439) 2022-11-30 16:30:13 +01:00
Jan SkovgaardandGitHub 0d76ecbec8 Accessibility - Fix Packages - Modal - Empty buttons (#13114) 2022-11-30 15:55:26 +01:00
Andy ButlandandGitHub 34086386c7 Updated Forms dependency for JSON schema to the latest version. (#13505) 2022-11-30 13:46:37 +01:00
Andreas ZerbstandGitHub ccab65b12e V10/feature/fixing flaky acceptance test (#13473) 2022-11-30 12:41:16 +01:00
Niels Lyngsøandnikolajlauridsen f4c4c9008b do not set layout gaps (#13496) 2022-11-29 13:36:06 +01:00
Niels LyngsøandGitHub 877f52aec8 Make sure contexbar fits within the available space (#13467)
* Make sure contexbar fits within the available space

* Ensuring context bar moves above, no matter size of it.

* Fixing apperance of connection-fixers
2022-11-29 09:58:59 +01:00
Mole c9a97984f4 Ensure that all automatic relation types are updated (#13470) 2022-11-28 12:51:48 +01:00
c88ac85861 Add support for tags in block editors and nested content (#13412)
* feat: add tags extension points and remove hardcoded tags handling

* feat: allow tags editor in nested content and block editors

* Update src/Umbraco.Infrastructure/PropertyEditors/TagsPropertyEditor.cs

Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>

* Update src/Umbraco.Web.BackOffice/Controllers/ContentControllerBase.cs

Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>

Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>
2022-11-28 11:20:46 +01:00
Mole e366da8c83 V11: Fix ordering by published in list of content (#13474)
* Update sort statement to use published field for invariant content

* Order by published if invariant
2022-11-25 12:04:44 +01:00
Bjarne FyrstenborgandNikolaj 3a01176ae4 Delete references using custom relation types (#13389)
undefined
2022-11-23 15:48:03 +01:00
Nikolaj dbef11b62b Cherry pick #13404 to v10 2022-11-23 12:36:56 +01:00
Kenn JacobsenandGitHub 63fa6f392c Rollback improvements (#13452)
* Rollback improvements - hide draft version, allow rolling back to last published version

* UX improvements to rollback, revert some overly complex logic in favor of better UX

* Ensure title update when changing rollback version

* Clean up

* Fix rollback playwright text
2022-11-23 10:04:21 +01:00
Kenn JacobsenandGitHub bce29f44f8 Fix preview issue for new (empty) variants (#13455)
* Fix save and preview for new (unsaved) variants

* Rework & simplify
2022-11-23 08:34:39 +01:00
Niels LyngsøandGitHub f13a9d419d remove the hidding of catelouge appearance as its not located under advance (#13456) 2022-11-22 10:54:43 +01:00
niekvanderreestandnikolajlauridsen 4ea920825d Cherry pick #13373 to v10/dev 2022-11-22 09:23:04 +01:00
dependabot[bot]andJacob Overgaard bc7e9267d8 Bump engine.io and socket.io in /src/Umbraco.Web.UI.Client
Bumps [engine.io](https://github.com/socketio/engine.io) and [socket.io](https://github.com/socketio/socket.io). These dependencies needed to be updated together.

Updates `engine.io` from 6.1.3 to 6.2.1
- [Release notes](https://github.com/socketio/engine.io/releases)
- [Changelog](https://github.com/socketio/engine.io/blob/main/CHANGELOG.md)
- [Commits](https://github.com/socketio/engine.io/compare/6.1.3...6.2.1)

Updates `socket.io` from 4.4.1 to 4.5.3
- [Release notes](https://github.com/socketio/socket.io/releases)
- [Changelog](https://github.com/socketio/socket.io/blob/main/CHANGELOG.md)
- [Commits](https://github.com/socketio/socket.io/compare/4.4.1...4.5.3)

---
updated-dependencies:
- dependency-name: engine.io
  dependency-type: indirect
- dependency-name: socket.io
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-11-22 09:11:47 +01:00
Niels LyngsøandGitHub d2c8ecf9ab use custom prop for calculated width (#13451) 2022-11-21 20:08:12 +01:00
Niels LyngsøandGitHub 79b5484d23 Block Grid Editor translations and Area size keyboard navigation (#13450) 2022-11-21 20:07:18 +01:00
Niels LyngsøandGitHub a304d9b7b2 Display media trashed state on custom view for image demo block (#13448) 2022-11-21 16:23:07 +01:00
2a22cece7e block grid editor visual adjustments (#13446)
* make sure area border is on top of block views.

* rename class to avoid confusion

* change witch UI goes on top on hover

* Description informing all blocks are allowed when none is configured.

* add 'When empty'

* Sort mode

* ability to switch out property actions

* enter and exit sortmode from property actions

* gridsortblock

* rename block class to use sortblock

* Sort mode styling

* remove unused css selector

* fixing style for inline-creat button to appear above and not when hovering contextbar

* work on block grid inline editor

* use uui-button + enable installing demo blocks when its not the first dataType of this kind.

* improvements to inline editing POC

* update title of area config overlay editor

* reset columnSpan if no column span options is defined.

* Inline editing

* remove html comment

* remove code for transfer of stylesheets

* ability to hide label from directive

* inline editing using slots to render the umb-property in light dom

* remove property editor proxies when moving a block to a new area/block/context

* minor adjustments to custom views

* use individual slots for each area.

* Inline editing

* a little smaller rte min-height

* fire Custom focus/blur event for Block Grid Editor to catch for focus imitation

* disable inline editing prevalue field when custom view is set

* Fix scroll parent block into view

* initial work on sorter directive

* remove mediaBlock controller

* initial notes and structure

* further concept work

* remove consol log

* CSS for getting bigger areas

* removal of the forceLeft/forceRight code

* proven concept

* fix grid space detection. vertical/horizontal

* clean up and notes

* move into inner containers as well

* use last available index pr default

* boundary selector, for improved choise of dropping into an area

* hide last inline create button when dragging around

* remove console.log

* removal of forced placement in css

* default config and clean up

* notes

* bring back removed code

* show area ui when in dragging mode

* more specific selector

* drop allowance + clean up

* notes and clean up

* auto scroll

* turn --umb-block-grid--dragging-mode into conditional CSS Custom Property

* auto scroll

* refactoring

* fix condition mistake

* scope.config.resolveVerticalDirection

* wrap up simple setDragImage solution

* bring back vm.notifyVisualUpdate and clean up

* make draggableSelector optional, fallback to element

* implement umb-block-grid-sorter for Area PreValue editor

* remove sortableJS dependency

* remove sortableJs from dependencies

* wups, bring back the comma

* removed sortablejs from package-lock

* finished implementation of sorter for PreValue Block Areas

* fix for FireFox shadowDom issue, contains temprorary code.

* stop auto scroll

* make full thing dragable

* fix firefox issue (applying translateZ)

* comment

* make block fit in context columns

* revert element to where it came from if sync could not succeed + clean up

* ensure block does not push the amount of columns, this occourse when dragging item around.

* take horizontalPlaceAfter into account

* implement horizontalPlaceAfter in Areas Prevalue editor

* clean up dependencies

* Shift related el to first in row or last in row when there is no horizontal room

* clean up and correct calculation

* remove unused attribute

* revert to using el.getBoundingClientRect(), as the config.draggableSelector is not available for the placeholder item.

* bind model via dedicated binding to ensure it stay connected with the source model

* Update src/Umbraco.Web.UI.Client/src/views/propertyeditors/blockgrid/prevalue/umb-block-grid-area-editor.html

Co-authored-by: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com>

* fix eslint issues

* ensure missingColumnWidth is above 0

* Do not allow dragging something thats not found in the model.

* remove as this is not an error.

* update to Flexbox solution

* as the complex model does not change we can use single way binding

* Adjust columnSpan to context container, keep start columnSpan as the target for the calculation.

* make prevalue editor overlay medium size

* more white borders on UI

* move Catalogue appearance to Advanced

Co-authored-by: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com>
2022-11-21 16:22:49 +01:00
c64850572b Block Grid Editor - make prevalue overlay medium sized (#13443)
* make sure area border is on top of block views.

* rename class to avoid confusion

* change witch UI goes on top on hover

* Description informing all blocks are allowed when none is configured.

* add 'When empty'

* Sort mode

* ability to switch out property actions

* enter and exit sortmode from property actions

* gridsortblock

* rename block class to use sortblock

* Sort mode styling

* remove unused css selector

* fixing style for inline-creat button to appear above and not when hovering contextbar

* work on block grid inline editor

* use uui-button + enable installing demo blocks when its not the first dataType of this kind.

* improvements to inline editing POC

* update title of area config overlay editor

* reset columnSpan if no column span options is defined.

* Inline editing

* remove html comment

* remove code for transfer of stylesheets

* ability to hide label from directive

* inline editing using slots to render the umb-property in light dom

* remove property editor proxies when moving a block to a new area/block/context

* minor adjustments to custom views

* use individual slots for each area.

* Inline editing

* a little smaller rte min-height

* fire Custom focus/blur event for Block Grid Editor to catch for focus imitation

* disable inline editing prevalue field when custom view is set

* Fix scroll parent block into view

* initial work on sorter directive

* remove mediaBlock controller

* initial notes and structure

* further concept work

* remove consol log

* CSS for getting bigger areas

* removal of the forceLeft/forceRight code

* proven concept

* fix grid space detection. vertical/horizontal

* clean up and notes

* move into inner containers as well

* use last available index pr default

* boundary selector, for improved choise of dropping into an area

* hide last inline create button when dragging around

* remove console.log

* removal of forced placement in css

* default config and clean up

* notes

* bring back removed code

* show area ui when in dragging mode

* more specific selector

* drop allowance + clean up

* notes and clean up

* auto scroll

* turn --umb-block-grid--dragging-mode into conditional CSS Custom Property

* auto scroll

* refactoring

* fix condition mistake

* scope.config.resolveVerticalDirection

* wrap up simple setDragImage solution

* bring back vm.notifyVisualUpdate and clean up

* make draggableSelector optional, fallback to element

* implement umb-block-grid-sorter for Area PreValue editor

* remove sortableJS dependency

* remove sortableJs from dependencies

* wups, bring back the comma

* removed sortablejs from package-lock

* finished implementation of sorter for PreValue Block Areas

* fix for FireFox shadowDom issue, contains temprorary code.

* stop auto scroll

* make full thing dragable

* fix firefox issue (applying translateZ)

* comment

* make block fit in context columns

* revert element to where it came from if sync could not succeed + clean up

* ensure block does not push the amount of columns, this occourse when dragging item around.

* take horizontalPlaceAfter into account

* implement horizontalPlaceAfter in Areas Prevalue editor

* clean up dependencies

* Shift related el to first in row or last in row when there is no horizontal room

* clean up and correct calculation

* remove unused attribute

* revert to using el.getBoundingClientRect(), as the config.draggableSelector is not available for the placeholder item.

* bind model via dedicated binding to ensure it stay connected with the source model

* Update src/Umbraco.Web.UI.Client/src/views/propertyeditors/blockgrid/prevalue/umb-block-grid-area-editor.html

Co-authored-by: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com>

* fix eslint issues

* ensure missingColumnWidth is above 0

* Do not allow dragging something thats not found in the model.

* remove as this is not an error.

* update to Flexbox solution

* as the complex model does not change we can use single way binding

* Adjust columnSpan to context container, keep start columnSpan as the target for the calculation.

* make prevalue editor overlay medium size

Co-authored-by: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com>
2022-11-21 14:17:47 +01:00
b9d799b21d Block Grid Editor adjust while sorting (#13442)
* make sure area border is on top of block views.

* rename class to avoid confusion

* change witch UI goes on top on hover

* Description informing all blocks are allowed when none is configured.

* add 'When empty'

* Sort mode

* ability to switch out property actions

* enter and exit sortmode from property actions

* gridsortblock

* rename block class to use sortblock

* Sort mode styling

* remove unused css selector

* fixing style for inline-creat button to appear above and not when hovering contextbar

* work on block grid inline editor

* use uui-button + enable installing demo blocks when its not the first dataType of this kind.

* improvements to inline editing POC

* update title of area config overlay editor

* reset columnSpan if no column span options is defined.

* Inline editing

* remove html comment

* remove code for transfer of stylesheets

* ability to hide label from directive

* inline editing using slots to render the umb-property in light dom

* remove property editor proxies when moving a block to a new area/block/context

* minor adjustments to custom views

* use individual slots for each area.

* Inline editing

* a little smaller rte min-height

* fire Custom focus/blur event for Block Grid Editor to catch for focus imitation

* disable inline editing prevalue field when custom view is set

* Fix scroll parent block into view

* initial work on sorter directive

* remove mediaBlock controller

* initial notes and structure

* further concept work

* remove consol log

* CSS for getting bigger areas

* removal of the forceLeft/forceRight code

* proven concept

* fix grid space detection. vertical/horizontal

* clean up and notes

* move into inner containers as well

* use last available index pr default

* boundary selector, for improved choise of dropping into an area

* hide last inline create button when dragging around

* remove console.log

* removal of forced placement in css

* default config and clean up

* notes

* bring back removed code

* show area ui when in dragging mode

* more specific selector

* drop allowance + clean up

* notes and clean up

* auto scroll

* turn --umb-block-grid--dragging-mode into conditional CSS Custom Property

* auto scroll

* refactoring

* fix condition mistake

* scope.config.resolveVerticalDirection

* wrap up simple setDragImage solution

* bring back vm.notifyVisualUpdate and clean up

* make draggableSelector optional, fallback to element

* implement umb-block-grid-sorter for Area PreValue editor

* remove sortableJS dependency

* remove sortableJs from dependencies

* wups, bring back the comma

* removed sortablejs from package-lock

* finished implementation of sorter for PreValue Block Areas

* fix for FireFox shadowDom issue, contains temprorary code.

* stop auto scroll

* make full thing dragable

* fix firefox issue (applying translateZ)

* comment

* make block fit in context columns

* revert element to where it came from if sync could not succeed + clean up

* ensure block does not push the amount of columns, this occourse when dragging item around.

* take horizontalPlaceAfter into account

* implement horizontalPlaceAfter in Areas Prevalue editor

* clean up dependencies

* Shift related el to first in row or last in row when there is no horizontal room

* clean up and correct calculation

* remove unused attribute

* revert to using el.getBoundingClientRect(), as the config.draggableSelector is not available for the placeholder item.

* bind model via dedicated binding to ensure it stay connected with the source model

* Update src/Umbraco.Web.UI.Client/src/views/propertyeditors/blockgrid/prevalue/umb-block-grid-area-editor.html

Co-authored-by: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com>

* fix eslint issues

* ensure missingColumnWidth is above 0

* Do not allow dragging something thats not found in the model.

* remove as this is not an error.

* update to Flexbox solution

* as the complex model does not change we can use single way binding

* Adjust columnSpan to context container, keep start columnSpan as the target for the calculation.

* change let to const

* Revert "change let to const"

This reverts commit fe19f8c5ed.

Co-authored-by: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com>
2022-11-21 13:22:00 +01:00
b698e4754d Block Grid Editor sorting directive (#13391)
* make sure area border is on top of block views.

* rename class to avoid confusion

* change witch UI goes on top on hover

* Description informing all blocks are allowed when none is configured.

* add 'When empty'

* Sort mode

* ability to switch out property actions

* enter and exit sortmode from property actions

* gridsortblock

* rename block class to use sortblock

* Sort mode styling

* remove unused css selector

* fixing style for inline-creat button to appear above and not when hovering contextbar

* work on block grid inline editor

* use uui-button + enable installing demo blocks when its not the first dataType of this kind.

* improvements to inline editing POC

* update title of area config overlay editor

* reset columnSpan if no column span options is defined.

* Inline editing

* remove html comment

* remove code for transfer of stylesheets

* ability to hide label from directive

* inline editing using slots to render the umb-property in light dom

* remove property editor proxies when moving a block to a new area/block/context

* minor adjustments to custom views

* use individual slots for each area.

* Inline editing

* a little smaller rte min-height

* fire Custom focus/blur event for Block Grid Editor to catch for focus imitation

* disable inline editing prevalue field when custom view is set

* Fix scroll parent block into view

* initial work on sorter directive

* remove mediaBlock controller

* initial notes and structure

* further concept work

* remove consol log

* CSS for getting bigger areas

* removal of the forceLeft/forceRight code

* proven concept

* fix grid space detection. vertical/horizontal

* clean up and notes

* move into inner containers as well

* use last available index pr default

* boundary selector, for improved choise of dropping into an area

* hide last inline create button when dragging around

* remove console.log

* removal of forced placement in css

* default config and clean up

* notes

* bring back removed code

* show area ui when in dragging mode

* more specific selector

* drop allowance + clean up

* notes and clean up

* auto scroll

* turn --umb-block-grid--dragging-mode into conditional CSS Custom Property

* auto scroll

* refactoring

* fix condition mistake

* scope.config.resolveVerticalDirection

* wrap up simple setDragImage solution

* bring back vm.notifyVisualUpdate and clean up

* make draggableSelector optional, fallback to element

* implement umb-block-grid-sorter for Area PreValue editor

* remove sortableJS dependency

* remove sortableJs from dependencies

* wups, bring back the comma

* removed sortablejs from package-lock

* finished implementation of sorter for PreValue Block Areas

* fix for FireFox shadowDom issue, contains temprorary code.

* stop auto scroll

* make full thing dragable

* fix firefox issue (applying translateZ)

* comment

* make block fit in context columns

* revert element to where it came from if sync could not succeed + clean up

* ensure block does not push the amount of columns, this occourse when dragging item around.

* take horizontalPlaceAfter into account

* implement horizontalPlaceAfter in Areas Prevalue editor

* clean up dependencies

* Shift related el to first in row or last in row when there is no horizontal room

* clean up and correct calculation

* remove unused attribute

* revert to using el.getBoundingClientRect(), as the config.draggableSelector is not available for the placeholder item.

* bind model via dedicated binding to ensure it stay connected with the source model

* Update src/Umbraco.Web.UI.Client/src/views/propertyeditors/blockgrid/prevalue/umb-block-grid-area-editor.html

Co-authored-by: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com>

* fix eslint issues

* ensure missingColumnWidth is above 0

* Do not allow dragging something thats not found in the model.

* remove as this is not an error.

* update to Flexbox solution

* as the complex model does not change we can use single way binding

Co-authored-by: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com>
2022-11-21 10:41:57 +01:00
dependabot[bot]andJacob Overgaard c2140cc042 Bump minimatch from 3.0.4 to 3.1.2 in /src/Umbraco.Web.UI.Client
Bumps [minimatch](https://github.com/isaacs/minimatch) from 3.0.4 to 3.1.2.
- [Release notes](https://github.com/isaacs/minimatch/releases)
- [Commits](https://github.com/isaacs/minimatch/compare/v3.0.4...v3.1.2)

---
updated-dependencies:
- dependency-name: minimatch
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-11-17 15:20:46 +01:00
Jacob Overgaard 31f698e9b5 updated package-lock 2022-11-17 14:42:01 +01:00
dependabot[bot]andJacob Overgaard ac0101b601 Bump eventsource from 1.1.0 to 1.1.2 in /src/Umbraco.Web.UI.Client
Bumps [eventsource](https://github.com/EventSource/eventsource) from 1.1.0 to 1.1.2.
- [Release notes](https://github.com/EventSource/eventsource/releases)
- [Changelog](https://github.com/EventSource/eventsource/blob/master/HISTORY.md)
- [Commits](https://github.com/EventSource/eventsource/compare/v1.1.0...v1.1.2)

---
updated-dependencies:
- dependency-name: eventsource
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-11-17 14:18:14 +01:00
dependabot[bot]andJacob Overgaard 24c7fddc33 Bump minimist from 1.2.5 to 1.2.7 in /src/Umbraco.Web.UI.Client
Bumps [minimist](https://github.com/minimistjs/minimist) from 1.2.5 to 1.2.7.
- [Release notes](https://github.com/minimistjs/minimist/releases)
- [Changelog](https://github.com/minimistjs/minimist/blob/main/CHANGELOG.md)
- [Commits](https://github.com/minimistjs/minimist/compare/v1.2.5...v1.2.7)

---
updated-dependencies:
- dependency-name: minimist
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-11-17 14:18:10 +01:00
dependabot[bot]andJacob Overgaard 4eb37538d5 Bump async from 2.6.3 to 2.6.4 in /src/Umbraco.Web.UI.Client
Bumps [async](https://github.com/caolan/async) from 2.6.3 to 2.6.4.
- [Release notes](https://github.com/caolan/async/releases)
- [Changelog](https://github.com/caolan/async/blob/v2.6.4/CHANGELOG.md)
- [Commits](https://github.com/caolan/async/compare/v2.6.3...v2.6.4)

---
updated-dependencies:
- dependency-name: async
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-11-17 14:18:05 +01:00
Blake WattandJacob Overgaard 7c16fa8171 update block grid panel name (#13325)
Co-authored-by: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com>
2022-11-17 14:13:03 +01:00
dependabot[bot]andJacob Overgaard 4b83ca79df Bump socket.io-parser from 4.0.4 to 4.0.5 in /src/Umbraco.Web.UI.Client
Bumps [socket.io-parser](https://github.com/socketio/socket.io-parser) from 4.0.4 to 4.0.5.
- [Release notes](https://github.com/socketio/socket.io-parser/releases)
- [Changelog](https://github.com/socketio/socket.io-parser/blob/main/CHANGELOG.md)
- [Commits](https://github.com/socketio/socket.io-parser/compare/4.0.4...4.0.5)

---
updated-dependencies:
- dependency-name: socket.io-parser
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-11-17 14:12:57 +01:00
4aafbbf669 V10: merge v8 blobstorage file deletion fix (#13415)
* Implement fix from v8 https://github.com/umbraco/Umbraco-CMS/pull/11998

* Clean-up

Co-authored-by: Elitsa Marinovska <elm@umbraco.dk>
2022-11-17 11:17:41 +01:00
57ef0917f2 Feature: Media Picker drag and drop upload directly on property editor (#13393)
* prototype drag and drop upload

* Add upload image endpoint

* Add MediaPickerThreeController.cs

* Revert "Add upload image endpoint"

This reverts commit 4bb5865480.

* Update IIOHelper dependency

* show preview when uploading a new media item

* open uploaded media in media entry editor

* map data from uploaded media entry to support cropper

* add crop data to uploaded media item

* remove media library buttons for media entries not created in the media library

* Implement temp images save & add to media picker 3

* Implement ITemporaryImageService

* Remove save logic from MediaPicker3PropertyEditor

* Dont use a TempImageDto

* Add GetByAlias endpoint

* Add additonal xml doc

* Refactor to take array of aliases

* Add FromQuery attribute

* Formatting

* add resource to get media types by alias

* validate file size and file type based on server variables

* Update OpenApi.json
Add media picker three to BackOfficeServerVariables

* rename endpoint to upload media

* Use baseurl Method

* Dont upload in rte folder

* pass params correctly to end point

* queue files before uploading

* handle invalid files

* progress bar design adjustments

* only create data url for images

* disable edit and name buttons when uploading

* fix missing error messages for invalid files

* add temp location to media entry

* Add startNode to TemporaryImageService.cs

* Refactor get by alias

* Rename to GetAllFiltered

* use getAllFiltered method

* remove autoselect option

* fix missing alias when selecting media type

* fix file filter

* don't overwrite invalid entries from dropping new files

* add disallowed files to filter

* remove console.log

* move media uploader logic to reusable function

* fix missing tmp location

* attach media type alias to the mediaEntry

* support readonly mode

* show discard changes when files has been dropped

* add disabled prop to button group

* emit events when upload queue starts and ends

* pass node to media picker property editor

* add service to keep track of all uploads in progress

* add upload in progress to uploadTracker when the queue starts and ends

* disabled buttons when any upload is in progress

* return a subscription to align with eventsService

* Fix up cases where StartNodeId was null

* scope css

* Show filename in dialog for selecting media type

* reuse translation from media library dropzone

* Don't check for only images

* Remove composer

* Add mediaTypeAlias to TemporaryImageService

* Rename ITemporaryImageService to ITemporaryMediaService

* prefix client side only props with $ so we don't send unnecessary data to the server

* use prefixed dataURL in media entry editor

* render icon for non images

* fix auto select media type

Co-authored-by: Zeegaan <nge@umbraco.dk>
Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>
2022-11-17 11:16:01 +01:00
dff3d8a739 V10: AllowedUploadFiles appsetting not working (#13408)
* Add new Settings

* Use new settings instead of old ones

* Implement AllowedUploadedFiles value to be copied to AllowedUplayedFileExtensions

* Obsolete old settings

* Rename DisallowedUploadFileExtensions

* Implement same fix for DisallowedUploadFiles

* Use new settings for backoffice server variables

* Update the correct setting

Co-authored-by: Zeegaan <nge@umbraco.dk>
2022-11-17 09:43:57 +01:00
Niels LyngsøandGitHub 86561d2d2d Block Grid Editor: Removal of the forced placement feature (#13400)
* removal of the forceLeft/forceRight code

* removal of forced placement in css

* bring back removed code
2022-11-16 11:52:40 +01:00
b4115132cd Enable single block mode (#13216)
* Enable single block mode

* Fixes tests, and adds test for single block mode output type

* Update src/Umbraco.Infrastructure/PropertyEditors/ValueConverters/BlockListPropertyValueConverter.cs

Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>

* Update src/Umbraco.Infrastructure/PropertyEditors/ValueConverters/BlockListPropertyValueConverter.cs

Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>

* Fix breaking change

Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>
2022-11-16 10:02:06 +01:00
Andy ButlandandGitHub f9e5d6308f Updated references for Forms and Deploy in JSON schema project. (#13411) 2022-11-15 15:24:52 +01:00
Niels Lyngsø fe2cab0daa remove console log 2022-11-14 12:14:25 +01:00
Niels LyngsøandGitHub 47c0bf9884 Block Grid Editor Improvements (#13282) 2022-11-11 22:15:07 +01:00
Kenn JacobsenandGitHub b5842d6a7d Move block grid single area rendering to its own dedicated view (#13359) 2022-11-08 13:34:12 +01:00
Nikolaj GeisleandGitHub 2a952c7374 Add guard statement (#13340) 2022-11-02 13:09:55 +01:00
Mole ed52298099 Fix casing in fileSystemBasePath (#13306) 2022-11-01 08:42:48 +01:00
Bjarke BergandGitHub e0b76acde5 Updated Smidge (#13331) 2022-10-31 08:47:04 +01:00
7204c039ad Allow for configuration of additional languages to install and ensure one is set as default. (#13290)
* Allow for configuration of additional languages to install and ensure one is set as default.

* Amended install default language method to handle invalid ISO codes and ensure the first specified language is always made the default.

* Removed unnecessary using.

* Apply suggestions from code review

Co-authored-by: Ronald Barendse <ronald@barend.se>

* Clean up.

* Update src/Umbraco.Infrastructure/Migrations/Install/DatabaseDataCreator.cs

Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>

Co-authored-by: Ronald Barendse <ronald@barend.se>
Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>
2022-10-31 08:06:06 +01:00
nikolajlauridsen 851e5c6302 Merge branch 'release/10.3.2' into v10/dev
# Conflicts:
#	version.json
2022-10-27 14:27:31 +02:00
Sebastiaan JanssenandGitHub e4741b0c64 Unbreak breaking change in #13066 (#13288) 2022-10-25 14:18:50 +02:00
Sebastiaan Janssen e7baa03987 Merge branch 'v10/contrib' into v10/dev 2022-10-25 12:57:30 +02:00
272e922020 Parse lockId as invariant (#13284)
Co-authored-by: Zeegaan <nge@umbraco.dk>
2022-10-25 09:18:38 +02:00
13e7534b43 Remove timeouts (#13285)
Co-authored-by: Zeegaan <nge@umbraco.dk>
2022-10-24 14:59:56 +02:00
73bbff0a01 Fix Sqlite database locking issue (#13246)
* Add locking for creating scope

* Lock the repository instead

* Add scope in action instead of locking in service

* Fix up post-merge

Co-authored-by: Zeegaan <nge@umbraco.dk>
2022-10-24 13:45:11 +02:00
Daniël KnippersandJoe Glombek e2636fea2a Only attempt to find template when TemplateId is not null or default 2022-10-24 11:47:28 +01:00
facadac318 Add translation acceptance test (#13280)
* Add translation acceptance test

* Bump testhelpers version

Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>
2022-10-24 07:35:01 +02:00
georgebidandGitHub 66cea99807 V10/bugfix/add user error suggestion #67 (#13259) 2022-10-22 17:17:07 +02:00
Sebastiaan Janssen 0089446381 Merge branch 'v10/dev' into v10/contrib 2022-10-22 16:30:37 +02:00
Jari LarsenandGitHub 226faca53c Umbraco logo test (#13267) 2022-10-22 13:01:18 +02:00
Jannik AnkerandGitHub 3d3fbd34ca Fixes #12127 - sets z-index on block list actions element (#13179)
* Sets z-index on block list actions element

Should solve #12127 https://github.com/umbraco/Umbraco-CMS/issues/12127

* #12127 : introduces variable for block actions z-index
2022-10-21 14:51:34 +02:00
Poornima NayarandOwain Williams d0a58392c6 Left aligned message - "This index cannot be rebuilt because it has no assigned IIndexPopulator" 2022-10-21 10:26:35 +01:00
MoleandGitHub b6af5decea Add PrivateAssets="all" to mangement api project reference (#13249) 2022-10-20 15:19:13 +02:00
a696d70815 Add default BlockGrid partial views to disk (#13227)
* Add migration that adds BlockGrid files to disk

* Add partial views to disk when creating sample

* Refactor upgrade to use IPartialViewPopulator

* Add blockgrid default rendering partial views when creating a new project from template

* Remove views from static assets

Co-authored-by: Elitsa Marinovska <elm@umbraco.dk>
2022-10-19 14:13:56 +02:00
Andreas ZerbstandGitHub 071042fcb6 Merge pull request #13233 from umbraco/v10/cherry-pick/acceptance-test-stabilazation
V10: cherry pick acceptance test stabilazation from v11
2022-10-19 08:50:19 +02:00
Zeegaan 08982709b3 Revert "V11: fix failing acceptance tests (#13204)"
This reverts commit ea783bbc
2022-10-19 07:52:14 +02:00
Zeegaan cb9c165794 Add back macro locator 2022-10-19 07:51:24 +02:00
Zeegaan 61415b5c31 Add back the v10 locator that was updated in v11 2022-10-19 07:46:15 +02:00
ZeegaanandNikolaj Geisle 7ba9484705 Added proper save assert instead of checking on the route 2022-10-18 20:57:50 +02:00
Nikolaj Geisle 514497ffab Update tests/Umbraco.Tests.AcceptanceTest/tests/DefaultConfig/ModelsBuilder/modelsbuilder.spec.ts 2022-10-18 20:57:45 +02:00
Nikolaj Geisle 39f349fc99 Bumb playwright-testhelper version 2022-10-18 20:57:42 +02:00
Nikolaj Geisle ad67616f66 Reset maximum timeout to 30s 2022-10-18 20:57:41 +02:00
Nikolaj Geisle 8f70276cf7 Update maximum test time-out 2022-10-18 20:57:40 +02:00
Nikolaj Geisle e8456e36b2 Bumb testhelpers package 2022-10-18 20:57:40 +02:00
Nikolaj Geisle fff2b54203 Remove whitespace from response 2022-10-18 20:57:34 +02:00
Nikolaj Geisle 17de2ff98e Bumb testhelpers version 2022-10-18 20:57:34 +02:00
Nikolaj Geisle 01b24e238c Update test-helpers version 2022-10-18 20:57:33 +02:00
Nikolaj Geisle 477f4724c7 Dont remove whitespace 2022-10-18 20:57:33 +02:00
Nikolaj Geisle 3f07612306 Update playwright-testhelpers version 2022-10-18 20:57:32 +02:00
Nikolaj Geisle cf68d499ef Assert that the item is loaded before trying to click rollback 2022-10-18 20:57:29 +02:00
Nikolaj Geisle 84eecf5ee4 Close success notification 2022-10-18 20:57:25 +02:00
Nikolaj Geisle f8f9646e62 Add proper expect to download button 2022-10-18 20:57:25 +02:00
Nikolaj Geisle c071fc03ba Update testhelpers version 2022-10-18 20:57:24 +02:00
Nikolaj Geisle d5278ca9fe Dont commit playwright.config.ts 2022-10-18 20:57:24 +02:00
Nikolaj Geisle c3964c2183 Update tests to close success notifications 2022-10-18 20:57:23 +02:00
Nikolaj Geisle 58fb223a45 Close success notifications after they pop up 2022-10-18 20:57:22 +02:00
Nikolaj GeisleandZeegaan ea783bbc41 V11: fix failing acceptance tests (#13204)
* Fix macro in RTE test

* Update test-helper version

Co-authored-by: Zeegaan <nge@umbraco.dk>
2022-10-18 20:57:09 +02:00
MoleandGitHub 629cc631c6 V10.4: Re-enable block grid editor (#13231)
* Revert "Disable BlockGridEditor (#13229)"

This reverts commit 4e9aa8dac2.

* Re-do xml comments fix
2022-10-18 14:59:08 +02:00
nikolajlauridsen 75f628b5da Merge branch 'release/10.3' into v10/dev 2022-10-18 13:40:46 +02:00
Elitsa MarinovskaandGitHub 733f0b8e09 Collect new .xml language files from different sources (#13212)
* Collecting new language files from different sources

* Apply suggestions from review

* Adding TODO for merging the language files locations to one when packages are not concerned
2022-10-18 08:22:27 +02:00
Sebastiaan Janssen 44253b22db Merge branch 'v10/dev' into v10/contrib 2022-10-17 15:30:53 +02:00
41737a35d9 V10/bugfix/create simple package test (#13162)
* Fixed assert to hopefully find the package each time so it isnt flaky anymore

* Updated so it retries 5 times instead of 2

* Dont submit html-report

* Dont have output defined in npm run

* Copy over playwright trace.zip files before publishing

* Updated assert so it looks after the package in the table

* updated so we get the first fail as the trace file

* Bumped version for testhelpers

* Updated so the test checks if the package actually exists. Added a wait that checks if the created packages button is visible

* Updated package lock

* Fixed so it now calls the correct testhelper

Co-authored-by: Zeegaan <nge@umbraco.dk>
2022-10-13 14:49:48 +02:00
2fa61fe811 Add data-element to umb property so we can find it (#13199)
Co-authored-by: Zeegaan <nge@umbraco.dk>
2022-10-13 10:29:50 +02:00
Elitsa MarinovskaandGitHub cdc994dd8e Fix tags with CSV storage type (#13188)
* Fixing null check as default(NRT) is null => default(configuration?.Delimiter) is also null and we were counting on it being the same as default(char)

* Adding tests to check cases with multiple tags (or tag made of comma separated values)
2022-10-13 08:59:53 +02:00
MoleandGitHub 9f6d5e9543 Add missing ForceLeft and ForceRight (#13190) 2022-10-13 08:24:50 +02:00
MoleandGitHub 29ae87ec61 V10: Fix request accessor memory leak (#13152)
* Dispose OnChange event registration when disposing the notification handler

* Ensure that the ApplicationUrl is only initialized once

Since notifications handlers are transient,_hasAppUrl and _isInit defaults to false on every request causing it to always be called.

* Make notification handler and EnsureApplicationUrl internal
2022-10-13 08:17:02 +02:00
92df5d9501 Packages Modal - Further Fixes for Modal Trap (#13172)
* Fixes to focus trap within the modal

* Removing duplicate code

* Adding focus to previous element

* changed hardcoded color to existing less variable

Co-authored-by: Michael <michael@crossingpaths.be>
2022-10-13 01:02:23 +02:00
Jacob OvergaardandGitHub 4a412bb432 Fix for potential race condition in packages search (#13153)
* search on input allowing to wait for copy/paste etc

* invoke resourcePromise() with correct parameters

* return the xhrStatus allowing the caller to check if the request was aborted

* fix: send in canceler.promise to allow the timeout to work

* catch any errors and ignore aborts if they happen

* move the logic to handle cancellations outside Angulars $scope.$apply

* remove file accidentally committed
2022-10-12 12:39:11 +02:00
Nikolaj 3a08ab9b0b Re-add IsPackable to Umbraco.Tests.Integration 2022-10-12 10:29:46 +02:00
BatJanandMichael Latouche c29679fa14 Remove old unused legacy files 2022-10-12 03:51:44 +02:00
patrickdemooij9andGitHub 3802097a32 Use the actual save function for saving the copy (#13066)
* Use the actual save function for saving the copy

* PR feedback
2022-10-12 02:59:38 +02:00
4deceb43eb V10: 13099 fix validation error (#13170)
* Add validation error message to Viewpicker

* Add help-inline class to make validation-text red

Co-authored-by: Zeegaan <nge@umbraco.dk>
2022-10-11 15:57:01 +02:00
Andreas ZerbstandGitHub 0d290c1ab3 Updated: added more time to waitForTimeout so the pipelines have time to load (#13164) 2022-10-11 13:53:45 +02:00
51968f3fba Pass the node property to umb-property & umb-property-editor (#13151)
Co-authored-by: Zeegaan <nge@umbraco.dk>
2022-10-10 16:15:53 +02:00
Kenn JacobsenandGitHub 9897208838 Fix broken selectable state for list view items (#13148) 2022-10-10 12:58:50 +02:00
Ronald BarendseandGitHub 049ea6dca5 Publish E2E application logs (#13128)
* Publish E2E application logs

* Stop app after running E2E tests

* Update GenerateAppsettingsSchema task

* Enable console logging in Release mode

* Cleanup variables and enable logging in Linux docker

* Remove --yes from npx commands

* Set custom Umbraco settings (disable keep-alive, health checks, etc.)

* Update Docker image tags/versions

* Change PowerShell@2 task to pwsh and write results to artifact staging directory

* Ignore Playwright .env file
2022-10-10 09:09:59 +02:00
Bjarke Berg b5262d74eb Merge remote-tracking branch 'origin/release/10.3' into v10/dev 2022-10-07 10:03:11 +02:00
Anders BjernerandNathan Woulfe 461989a599 Fixed accessibility issues with notifiation close buttons 2022-10-06 09:40:16 +10:00
BatJanandNathan Woulfe 21571b54ef Fixes umbraco/Umbraco-CMS.Accessibility.Issues#60 2022-10-06 09:32:05 +10:00
nikolajlauridsen c741f2fc20 Merge branch 'release/10.3' into v10/dev 2022-10-05 18:19:02 +02:00
Nikolaj e90c9e416d Bump version 2022-10-05 14:25:15 +02:00
Sebastiaan Janssen b5f1ad5396 Merge branch 'v10/dev' into v10/contrib 2022-10-05 12:32:13 +02:00
Bjarne FyrstenborgandGitHub 43b964c6c0 Adjustment of telemetry data slider (#13092)
* Set specific width of container to avoid slider flickering when browser add scrollbar due the telemetry data description

* Round value to nearest integer when slider use smooth behaviour
2022-10-05 11:54:17 +02:00
31cb328c3b Use less memory when generating a GuidUdi (#13090)
* Use less memory when generating a GuidUdi

* PR feedback

Co-authored-by: Sebastiaan Janssen <sebastiaan@umbraco.com>
2022-10-04 01:49:59 +02:00
801 changed files with 35979 additions and 9469 deletions
+1 -1
View File
@@ -25,7 +25,7 @@ If you want to DIY, then you can [download Umbraco]((https://our.umbraco.com/dow
## Documentation
The documentation for Umbraco CMS can be found [on Our Umbraco](https://our.umbraco.com/documentation/). The source for the Umbraco docs is [open source as well](https://github.com/umbraco/UmbracoDocs) and we're happy to look at your documentation contributions.
The documentation for Umbraco CMS can be found [on Our Umbraco](https://docs.umbraco.com/). The source for the Umbraco docs is [open source as well](https://github.com/umbraco/UmbracoDocs) and we're happy to look at your documentation contributions.
## Join the Umbraco community
+2 -7
View File
@@ -11,15 +11,10 @@ jobs:
issues: write
pull-requests: write
steps:
- name: Install dependencies
run: |
npm install node-fetch@2
- name: Fetch random comment 🗣️ and add it to the PR
uses: actions/github-script@v6
with:
script: |
const fetch = require('node-fetch')
const response = await fetch('https://collaboratorsv2.euwest01.umbraco.io/umbraco/api/comments/PostComment', {
method: 'post',
body: JSON.stringify({
@@ -46,13 +41,13 @@ jobs:
});
} else {
console.log("Returned data not indicate success.");
if(response.status !== 200) {
console.log("Status code:", response.status)
}
console.log("Returned data:", data);
if(data === '') {
console.log("An empty response usually indicates that either no comment was found or the actor user was not eligible for getting an automated response (HQ users are not getting auto-responses).")
}
+1 -4
View File
@@ -90,10 +90,7 @@ preserve.belle
/src/Umbraco.Web.UI/appsettings.Local.json
# Tests
cypress.env.json
/tests/Umbraco.Tests.AcceptanceTest/cypress/screenshots/
/tests/Umbraco.Tests.AcceptanceTest/cypress/support/chainable.ts
/tests/Umbraco.Tests.AcceptanceTest/cypress/videos/
/tests/Umbraco.Tests.AcceptanceTest/.env
/tests/Umbraco.Tests.Integration.SqlCe/DatabaseContextTests.sdf
/tests/Umbraco.Tests.Integration.SqlCe/[Uu]mbraco/[Dd]ata/TEMP/
/tests/Umbraco.Tests.Integration/appsettings.Tests.Local.json
+1
View File
@@ -49,4 +49,5 @@
<PropertyGroup>
<GitVersionBaseDirectory>$(MSBuildThisFileDirectory)</GitVersionBaseDirectory>
</PropertyGroup>
</Project>
+167 -129
View File
@@ -21,9 +21,33 @@ parameters:
displayName: Upload API docs
type: boolean
default: false
- name: forceReleaseTestFilter
displayName: Force to use the release test filters
type: boolean
default: false
- name: integrationNonReleaseTestFilter
displayName: TestFilter used for non-release type builds
type: string
default: '--filter TestCategory!=LongRunning&TestCategory!=NonCritical'
- name: integrationReleaseTestFilter
displayName: TestFilter used for release type builds
type: string
default: ' '
- name: nonWindowsIntegrationNonReleaseTestFilter
displayName: TestFilter used for non-release type builds on non windows agents
type: string
default: '--filter TestCategory!=LongRunning&TestCategory!=NonCritical'
- name: nonWindowsIntegrationReleaseTestFilter
displayName: TestFilter used for release type builds on non windows agents
type: string
default: ' '
- name: isNightly
displayName: 'Is nightly build (used for MyGet feed)'
type: boolean
default: false
variables:
nodeVersion: 14.18.1
nodeVersion: 20
dotnetVersion: 6.x
dotnetIncludePreviewVersions: false
solution: umbraco.sln
@@ -49,6 +73,7 @@ stages:
steps:
- task: NodeTool@0
displayName: Use Node.js $(nodeVersion)
retryCountOnTaskFailure: 3
inputs:
versionSpec: $(nodeVersion)
- task: Cache@2
@@ -61,9 +86,9 @@ stages:
path: $(npm_config_cache)
- script: npm ci --no-fund --no-audit --prefer-offline
workingDirectory: src/Umbraco.Web.UI.Client
displayName: Run npm ci
displayName: Run npm ci (Backoffice)
- task: gulp@0
displayName: Run gulp build
displayName: Run gulp build (Backoffice)
inputs:
gulpFile: src/Umbraco.Web.UI.Client/gulpfile.js
targets: coreBuild
@@ -80,44 +105,12 @@ stages:
command: restore
projects: $(solution)
- task: DotNetCoreCLI@2
displayName: Run dotnet build
name: build
displayName: Run dotnet build and generate NuGet packages
inputs:
command: build
projects: $(solution)
arguments: '--configuration $(buildConfiguration) --no-restore -p:ContinuousIntegrationBuild=true'
- script: |
version="$(Build.BuildNumber)"
echo "varsion: $version"
major="$(echo $version | cut -d '.' -f 1)"
echo "major version: $major"
echo "##vso[task.setvariable variable=majorVersion;isOutput=true]$major"
displayName: Set major version
name: determineMajorVersion
- task: PowerShell@2
displayName: Prepare nupkg
inputs:
targetType: inline
script: |
$umbracoVersion = "$(Build.BuildNumber)" -replace "\+",".g"
$templatePaths = Get-ChildItem 'templates/**/.template.config/template.json'
foreach ($templatePath in $templatePaths) {
$a = Get-Content $templatePath -Raw | ConvertFrom-Json
if ($a.symbols -and $a.symbols.UmbracoVersion) {
$a.symbols.UmbracoVersion.defaultValue = $umbracoVersion
$a | ConvertTo-Json -Depth 32 | Set-Content $templatePath
}
}
dotnet pack $(solution) --configuration $(buildConfiguration) -p:BuildProjectReferences=false --output $(Build.ArtifactStagingDirectory)/nupkg
- script: |
sha="$(Build.SourceVersion)"
sha=${sha:0:7}
buildnumber="$(Build.BuildNumber)_$(Build.BuildId)_$sha"
echo "##vso[build.updatebuildnumber]$buildnumber"
displayName: Update build number
arguments: '--configuration $(buildConfiguration) --no-restore --property:ContinuousIntegrationBuild=true --property:GeneratePackageOnBuild=true --property:PackageOutputPath=$(Build.ArtifactStagingDirectory)/nupkg'
- task: PublishPipelineArtifact@1
displayName: Publish nupkg
inputs:
@@ -130,11 +123,11 @@ stages:
artifactName: build_output
- stage: Build_Docs
condition: and(succeeded(), or(startsWith(variables['Build.SourceBranch'], 'refs/heads/release/'), ${{parameters.buildApiDocs}}))
condition: and(succeeded(), or(eq(dependencies.Build.outputs['A.build.NBGV_PublicRelease'], 'True'), ${{parameters.buildApiDocs}}))
displayName: Prepare API Documentation
dependsOn: Build
variables:
umbracoMajorVersion: $[ stageDependencies.Build.A.outputs['determineMajorVersion.majorVersion'] ]
umbracoMajorVersion: $[ stageDependencies.Build.A.outputs['build.NBGV_VersionMajor'] ]
jobs:
# C# API Reference
- job:
@@ -147,7 +140,7 @@ stages:
inputs:
targetType: inline
script: |
choco install docfx --version=2.59.2 -y
choco install docfx --version=2.59.4 -y
if ($lastexitcode -ne 0){
throw ("Error installing DocFX")
}
@@ -188,9 +181,10 @@ stages:
vmImage: 'ubuntu-latest'
steps:
- task: NodeTool@0
displayName: Use Node.js 10.15.0
displayName: Use Node.js 10.15.x
retryCountOnTaskFailure: 3
inputs:
versionSpec: 10.15.0 # Won't work with higher versions
versionSpec: 10.15.x # Won't work with higher versions
- script: |
npm ci --no-fund --no-audit --prefer-offline
npx gulp docs
@@ -259,6 +253,8 @@ stages:
- stage: Integration
displayName: Integration Tests
dependsOn: Build
variables:
releaseTestFilter: eq(dependencies.Build.outputs['A.build.NBGV_PublicRelease'], 'True')
jobs:
# Integration Tests (SQLite)
- job:
@@ -286,12 +282,30 @@ stages:
performMultiLevelLookup: true
includePreviewVersions: $(dotnetIncludePreviewVersions)
- task: DotNetCoreCLI@2
displayName: Run dotnet test
displayName: Run dotnet test Windows
condition: eq(variables['Agent.OS'],'Windows_NT')
inputs:
command: test
projects: '**/*.Tests.Integration.csproj'
arguments: '--configuration $(buildConfiguration) --no-build'
testRunTitle: Integration Tests SQLite - $(Agent.OS)
${{ if or(variables.releaseTestFilter, parameters.forceReleaseTestFilter) }}:
arguments: '--configuration $(buildConfiguration) --no-build ${{parameters.integrationReleaseTestFilter}}'
${{ else }}:
arguments: '--configuration $(buildConfiguration) ${{parameters.integrationNonReleaseTestFilter}}'
env:
Tests__Database__DatabaseType: 'Sqlite'
Umbraco__CMS__Global__MainDomLock: 'FileSystemMainDomLock'
- task: DotNetCoreCLI@2
displayName: Run dotnet test Non Windows
condition: ne(variables['Agent.OS'],'Windows_NT')
inputs:
command: test
projects: '**/*.Tests.Integration.csproj'
testRunTitle: Integration Tests SQLite - $(Agent.OS)
${{ if or(variables.releaseTestFilter, parameters.forceReleaseTestFilter) }}:
arguments: '--configuration $(buildConfiguration) --no-build ${{parameters.nonWindowsIntegrationReleaseTestFilter}}'
${{ else }}:
arguments: '--configuration $(buildConfiguration) ${{parameters.nonWindowsIntegrationNonReleaseTestFilter}}'
env:
Tests__Database__DatabaseType: 'Sqlite'
Umbraco__CMS__Global__MainDomLock: 'FileSystemMainDomLock'
@@ -299,7 +313,7 @@ stages:
# Integration Tests (SQL Server)
- job:
timeoutInMinutes: 120
condition: or(startsWith(variables['Build.SourceBranch'], 'refs/heads/release/'), ${{parameters.sqlServerIntegrationTests}})
condition: or(eq(stageDependencies.Build.A.outputs['build.NBGV_PublicRelease'], 'True'), ${{parameters.sqlServerIntegrationTests}})
displayName: Integration Tests (SQL Server)
strategy:
matrix:
@@ -310,7 +324,7 @@ stages:
Linux:
vmImage: 'ubuntu-latest'
testDb: SqlServer
connectionString: 'Server=localhost,1433;User Id=sa;Password=$(SA_PASSWORD);'
connectionString: 'Server=localhost,1433;User Id=sa;Password=$(SA_PASSWORD);TrustServerCertificate=true'
pool:
vmImage: $(vmImage)
variables:
@@ -321,6 +335,11 @@ stages:
inputs:
artifact: build_output
path: $(Build.SourcesDirectory)
- task: UseDotNet@2
displayName: Use .NET $(dotnetVersion)
inputs:
version: $(dotnetVersion)
includePreviewVersions: $(dotnetIncludePreviewVersions)
- powershell: sqllocaldb start mssqllocaldb
displayName: Start localdb (Windows only)
condition: and(succeeded(), eq(variables['Agent.OS'], 'Windows_NT'))
@@ -328,12 +347,31 @@ stages:
displayName: Start SQL Server (Linux only)
condition: and(succeeded(), eq(variables['Agent.OS'], 'Linux'))
- task: DotNetCoreCLI@2
displayName: Run dotnet test
displayName: Run dotnet test Windows
condition: eq(variables['Agent.OS'],'Windows_NT')
inputs:
command: test
projects: '**/*.Tests.Integration.csproj'
arguments: '--configuration $(buildConfiguration) --no-build'
testRunTitle: Integration Tests SQL Server - $(Agent.OS)
${{ if or(variables.releaseTestFilter, parameters.forceReleaseTestFilter) }}:
arguments: '--configuration $(buildConfiguration) --no-build ${{parameters.integrationReleaseTestFilter}}'
${{ else }}:
arguments: '--configuration $(buildConfiguration) --no-build ${{parameters.integrationNonReleaseTestFilter}}'
env:
Tests__Database__DatabaseType: $(testDb)
Tests__Database__SQLServerMasterConnectionString: $(connectionString)
Umbraco__CMS__Global__MainDomLock: 'SqlMainDomLock'
- task: DotNetCoreCLI@2
displayName: Run dotnet test NonWindows
condition: ne(variables['Agent.OS'],'Windows_NT')
inputs:
command: test
projects: '**/*.Tests.Integration.csproj'
testRunTitle: Integration Tests SQL Server - $(Agent.OS)
${{ if or(variables.releaseTestFilter, parameters.forceReleaseTestFilter) }}:
arguments: '--configuration $(buildConfiguration) --no-build ${{parameters.nonWindowsIntegrationReleaseTestFilter}}'
${{ else }}:
arguments: '--configuration $(buildConfiguration) --no-build ${{parameters.nonWindowsIntegrationNonReleaseTestFilter}}'
env:
Tests__Database__DatabaseType: $(testDb)
Tests__Database__SQLServerMasterConnectionString: $(connectionString)
@@ -349,24 +387,10 @@ stages:
- job:
displayName: E2E Tests
variables:
- name: Umbraco__CMS__Unattended__InstallUnattended # Windows only
value: true
- name: Umbraco__CMS__Unattended__UnattendedUserName # Windows only
value: Playwright Test
- name: Umbraco__CMS__Unattended__UnattendedUserEmail # Windows only
value: playwright@umbraco.com
- name: Umbraco__CMS__Unattended__UnattendedUserPassword # Windows only
value: UmbracoAcceptance123!
- name: Umbraco__CMS__Global__InstallMissingDatabase # Windows only
value: true
- name: UmbracoDatabaseServer # Windows only
value: (LocalDB)\MSSQLLocalDB
- name: UmbracoDatabaseName # Windows only
value: Playwright
- name: ConnectionStrings__umbracoDbDSN # Windows only
value: Server=$(UmbracoDatabaseServer);Database=$(UmbracoDatabaseName);Integrated Security=true;
- name: PLAYWRIGHT_BASE_URL
value: https://localhost:8443
Umbraco__CMS__Unattended__UnattendedUserName: Playwright Test
Umbraco__CMS__Unattended__UnattendedUserPassword: UmbracoAcceptance123!
Umbraco__CMS__Unattended__UnattendedUserEmail: playwright@umbraco.com
ASPNETCORE_URLS: https://localhost:8443
strategy:
matrix:
Linux:
@@ -375,6 +399,21 @@ stages:
dockerImageName: umbraco-linux
Windows:
vmImage: 'windows-latest'
DOTNET_GENERATE_ASPNET_CERTIFICATE: true # Automatically generate HTTPS development certificate on Windows
# Enable console logging in Release mode
Serilog__WriteTo__0__Name: Async
Serilog__WriteTo__0__Args__configure__0__Name: Console
# Set unattended install settings
Umbraco__CMS__Unattended__InstallUnattended: true
Umbraco__CMS__Global__InstallMissingDatabase: true
UmbracoDatabaseServer: (LocalDB)\MSSQLLocalDB
UmbracoDatabaseName: AcceptanceTestDB
ConnectionStrings__umbracoDbDSN: Server=$(UmbracoDatabaseServer);Database=$(UmbracoDatabaseName);Integrated Security=true;
# Custom Umbraco settings
Umbraco__CMS__Global__VersionCheckPeriod: 0
Umbraco__CMS__Global__UseHttps: true
Umbraco__CMS__HealthChecks__Notification__Enabled: false
Umbraco__CMS__KeepAlive__DisableKeepAliveTask: true
pool:
vmImage: $(vmImage)
steps:
@@ -385,6 +424,7 @@ stages:
path: $(Build.SourcesDirectory)/tests/Umbraco.Tests.AcceptanceTest/misc/nupkg
- task: NodeTool@0
displayName: Use Node.js $(nodeVersion)
retryCountOnTaskFailure: 3
inputs:
versionSpec: $(nodeVersion)
- task: Cache@2
@@ -395,22 +435,19 @@ stages:
"npm_e2e" | "$(Agent.OS)"
"npm_e2e"
path: $(npm_config_cache)
- task: PowerShell@2
- pwsh: |
New-Item -Path "." -Name ".env" -ItemType "file" -Value "UMBRACO_USER_LOGIN=$(Umbraco__CMS__Unattended__UnattendedUserEmail)
UMBRACO_USER_PASSWORD=$(Umbraco__CMS__Unattended__UnattendedUserPassword)
URL=$(ASPNETCORE_URLS)"
displayName: Generate .env
inputs:
targetType: inline
workingDirectory: $(Build.SourcesDirectory)/tests/Umbraco.Tests.AcceptanceTest/
script: |
New-Item -Path "." -Name ".env" -ItemType "file" -Value "UMBRACO_USER_LOGIN=$(Umbraco__CMS__Unattended__UnattendedUserEmail)
UMBRACO_USER_PASSWORD=$(Umbraco__CMS__Unattended__UnattendedUserPassword)
URL=$(PLAYWRIGHT_BASE_URL)"
workingDirectory: $(Build.SourcesDirectory)/tests/Umbraco.Tests.AcceptanceTest/
- script: npm ci --no-fund --no-audit --prefer-offline
workingDirectory: $(Build.SourcesDirectory)/tests/Umbraco.Tests.AcceptanceTest/
displayName: Run npm ci
- powershell: sqllocaldb start mssqllocaldb
- pwsh: sqllocaldb start mssqllocaldb
displayName: Start localdb (Windows only)
condition: and(succeeded(), eq(variables['Agent.OS'], 'Windows_NT'))
- powershell: Invoke-Sqlcmd -Query "CREATE DATABASE $env:UmbracoDatabaseName" -ServerInstance $env:UmbracoDatabaseServer
- pwsh: Invoke-Sqlcmd -Query "CREATE DATABASE $env:UmbracoDatabaseName" -ServerInstance $env:UmbracoDatabaseServer
displayName: Create database (Windows only)
condition: and(succeeded(), eq(variables['Agent.OS'], 'Windows_NT'))
- task: UseDotNet@2
@@ -419,56 +456,50 @@ stages:
version: $(dotnetVersion)
performMultiLevelLookup: true
includePreviewVersions: $(dotnetIncludePreviewVersions)
# Linux containers smooth
- task: PowerShell@2
- pwsh: |
$sha = 'g$(Build.SourceVersion)'.substring(0, 8)
docker build -t $(dockerImageName):$sha -f $(dockerfile) .
mkdir -p $(Build.ArtifactStagingDirectory)/docker-images
docker save -o $(Build.ArtifactStagingDirectory)/docker-images/$(dockerImageName).$sha.tar $(dockerImageName):$sha
dotnet dev-certs https -ep ${HOME}/.aspnet/https/aspnetapp.pfx -p $(Umbraco__CMS__Unattended__UnattendedUserPassword)
docker run --name $(dockerImageName) -dp 8080:5000 -dp 8443:5001 -e UMBRACO__CMS__GLOBAL__ID=$(UMBRACO__CMS__GLOBAL__ID) -e ASPNETCORE_Kestrel__Certificates__Default__Password="$(Umbraco__CMS__Unattended__UnattendedUserPassword)" -e ASPNETCORE_Kestrel__Certificates__Default__Path=/https/aspnetapp.pfx -v ${HOME}/.aspnet/https:/https/ $(dockerImageName):$sha
docker ps
condition: and(succeeded(), eq(variables['Agent.OS'], 'Linux'))
displayName: Build & run container (Linux only)
inputs:
workingDirectory: tests/Umbraco.Tests.AcceptanceTest/misc
targetType: inline
script: |
$sha = 'g$(Build.SourceVersion)'.substring(0, 8)
docker build -t $(dockerImageName):$sha -f $(dockerfile) .
mkdir -p $(Build.ArtifactStagingDirectory)/docker-images
docker save -o $(Build.ArtifactStagingDirectory)/docker-images/$(dockerImageName).$sha.tar $(dockerImageName):$sha
dotnet dev-certs https -ep ${HOME}/.aspnet/https/aspnetapp.pfx -p UmbracoAcceptance123!
docker run --name $(dockerImageName) -dp 8080:5000 -dp 8443:5001 -e UMBRACO__CMS__GLOBAL__ID=$(UMBRACO__CMS__GLOBAL__ID) -e ASPNETCORE_Kestrel__Certificates__Default__Password="UmbracoAcceptance123!" -e ASPNETCORE_Kestrel__Certificates__Default__Path=/https/aspnetapp.pfx -v ${HOME}/.aspnet/https:/https/ $(dockerImageName):$sha
docker ps
# Urls matching docker setup.
- task: PowerShell@2
displayName: Build and run container (Linux only)
workingDirectory: tests/Umbraco.Tests.AcceptanceTest/misc
- pwsh: |
dotnet new --install ./nupkg/Umbraco.Templates.*.nupkg
dotnet new umbraco --name AcceptanceTestProject --no-restore --output .
dotnet restore --configfile ./nuget.config
dotnet build --configuration $(buildConfiguration) --no-restore
dotnet dev-certs https
$process = Start-Process -FilePath "dotnet" -ArgumentList "run --configuration $(buildConfiguration) --no-build --no-launch-profile 2>&1" -PassThru -RedirectStandardOutput $(Build.ArtifactStagingDirectory)/playwright.log
Write-Host "##vso[task.setvariable variable=AcceptanceTestProcessId]$($process.Id)"
condition: and(succeeded(), eq(variables['Agent.OS'], 'Windows_NT'))
displayName: Build & run app (Windows only)
inputs:
workingDirectory: tests/Umbraco.Tests.AcceptanceTest/misc
targetType: inline
script: |
dotnet new --install ./nupkg/Umbraco.Templates.*.nupkg
dotnet new umbraco --name Playwright --no-restore --output .
dotnet restore --configfile ./nuget.config
dotnet build --configuration $(buildConfiguration) --no-restore
dotnet dev-certs https
Start-Process -FilePath "dotnet" -ArgumentList "run --configuration $(buildConfiguration) --no-build --no-launch-profile --urls $(PLAYWRIGHT_BASE_URL)"
- task: PowerShell@2
displayName: Build and run app (Windows only)
workingDirectory: tests/Umbraco.Tests.AcceptanceTest/misc
- pwsh: npx wait-on -v --interval 1000 --timeout 120000 $(ASPNETCORE_URLS)
displayName: Wait for app
inputs:
targetType: inline
workingDirectory: tests/Umbraco.Tests.AcceptanceTest
script: |
npm i -g wait-on
wait-on -v --interval 1000 --timeout 120000 $(PLAYWRIGHT_BASE_URL)
- task: PowerShell@2
workingDirectory: tests/Umbraco.Tests.AcceptanceTest
- pwsh: npx playwright install --with-deps
displayName: Install Playwright
inputs:
targetType: inline
workingDirectory: tests/Umbraco.Tests.AcceptanceTest
script: npx playwright install
- task: PowerShell@2
workingDirectory: tests/Umbraco.Tests.AcceptanceTest
- pwsh: npm run test --ignore-certificate-errors
displayName: Run Playwright (Desktop)
continueOnError: true
inputs:
targetType: inline
workingDirectory: tests/Umbraco.Tests.AcceptanceTest
script: 'npm run test --ignore-certificate-errors'
workingDirectory: tests/Umbraco.Tests.AcceptanceTest
env:
CI: true
CommitId: $(Build.SourceVersion)
AgentOs: $(Agent.OS)
- pwsh: |
docker logs $(dockerImageName) > $(Build.ArtifactStagingDirectory)/playwright.log 2>&1
docker stop $(dockerImageName)
condition: eq(variables['Agent.OS'], 'Linux')
displayName: Stop app (Linux only)
- pwsh: Stop-Process $env:AcceptanceTestProcessId
condition: eq(variables['Agent.OS'], 'Windows_NT')
displayName: Stop app (Windows only)
- task: PowerShell@2
displayName: Check if artifacts folder exists
inputs:
@@ -483,12 +514,13 @@ stages:
sourceFolder: $(Build.SourcesDirectory)/tests/Umbraco.Tests.AcceptanceTest/results/
targetFolder: $(Build.ArtifactStagingDirectory)/playwright
- task: PublishPipelineArtifact@1
displayName: "Publish test artifacts"
condition: eq(variables.resultFolderExists, 'True')
condition: always()
displayName: Publish test artifacts
inputs:
targetPath: $(Build.ArtifactStagingDirectory)
artifact: 'E2E artifacts - $(Agent.OS) - Attempt #$(System.JobAttempt)'
###############################################
## Release
###############################################
@@ -498,9 +530,11 @@ stages:
- Unit
- Integration
# - E2E # TODO: Enable when stable.
condition: and(succeeded(), or(startsWith(variables['Build.SourceBranch'], 'refs/heads/release/'), ${{parameters.myGetDeploy}}))
condition: and(succeeded(), or(eq(dependencies.Build.outputs['A.build.NBGV_PublicRelease'], 'True'), ${{parameters.myGetDeploy}}))
jobs:
- job:
pool:
vmImage: "windows-latest" # NuGetCommand@2 is no longer supported on Ubuntu 24.04 so we'll use windows until an alternative is available.
displayName: Push to pre-release feed
steps:
- checkout: none
@@ -515,16 +549,20 @@ stages:
command: 'push'
packagesToPush: $(Build.ArtifactStagingDirectory)/**/*.nupkg
nuGetFeedType: 'external'
publishFeedCredentials: 'MyGet - Pre-releases'
${{ if eq(parameters.isNightly, true) }}:
publishFeedCredentials: 'MyGet - Umbraco Nightly'
${{ else }}:
publishFeedCredentials: 'MyGet - Pre-releases'
- stage: Deploy_NuGet
displayName: NuGet release
dependsOn:
- Deploy_MyGet
- Build_Docs
condition: and(succeeded(), or(startsWith(variables['Build.SourceBranch'], 'refs/heads/release/'), ${{parameters.nuGetDeploy}}))
condition: and(succeeded(), or(eq(dependencies.Build.outputs['A.build.NBGV_PublicRelease'], 'True'), ${{parameters.nuGetDeploy}}))
jobs:
- job:
pool:
vmImage: "windows-latest" # NuGetCommand@2 is no longer supported on Ubuntu 24.04 so we'll use windows until an alternative is available.
displayName: Push to NuGet
steps:
- checkout: none
@@ -545,12 +583,12 @@ stages:
pool:
vmImage: 'windows-latest' # Apparently AzureFileCopy is windows only :(
variables:
umbracoMajorVersion: $[ stageDependencies.Build.A.outputs['determineMajorVersion.majorVersion'] ]
umbracoMajorVersion: $[ stageDependencies.Build.A.outputs['build.NBGV_VersionMajor'] ]
displayName: Upload API Documention
dependsOn:
- Build
- Deploy_NuGet
condition: and(succeeded(), or(startsWith(variables['Build.SourceBranch'], 'refs/heads/release/'), ${{parameters.uploadApiDocs}}))
condition: and(succeeded(), or(eq(dependencies.Build.outputs['A.build.NBGV_PublicRelease'], 'True'), ${{parameters.uploadApiDocs}}))
jobs:
- job:
displayName: Upload C# Docs
+35
View File
@@ -0,0 +1,35 @@
name: Nightly_$(TeamProject)_$(Build.DefinitionName)_$(SourceBranchName)_$(Date:yyyyMMdd)$(Rev:.r)
pr: none
trigger: none
schedules:
- cron: '0 0 * * *'
displayName: Daily midnight build
branches:
include:
- v10/dev
- v12/dev
- v13/dev
- v14/dev
steps:
- checkout: none
- task: TriggerBuild@4
inputs:
definitionIsInCurrentTeamProject: true
buildDefinition: '301'
queueBuildForUserThatTriggeredBuild: true
ignoreSslCertificateErrors: false
useSameSourceVersion: false
useCustomSourceVersion: false
useSameBranch: true
waitForQueuedBuildsToFinish: false
storeInEnvironmentVariable: false
templateParameters: 'sqlServerIntegrationTests: true, forceReleaseTestFilter: true, myGetDeploy: true, isNightly: true'
authenticationMethod: 'OAuth Token'
enableBuildInQueueCondition: false
dependentOnSuccessfulBuildCondition: false
dependentOnFailedBuildCondition: false
checkbuildsoncurrentbranch: false
failTaskIfConditionsAreNotFulfilled: false
+6
View File
@@ -0,0 +1,6 @@
{
"sdk": {
"version": "6.0.300",
"rollForward": "latestFeature"
}
}
+67
View File
@@ -0,0 +1,67 @@
<?xml version="1.0" encoding="utf-8"?>
<Project>
<PropertyGroup>
<ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>
<NoWarn>NU1507</NoWarn>
</PropertyGroup>
<ItemGroup>
<PackageVersion Include="Dazinator.Extensions.FileProviders" Version="2.0.0" />
<PackageVersion Include="Examine" Version="3.0.1" />
<PackageVersion Include="Examine.Core" Version="3.0.1" />
<PackageVersion Include="HtmlAgilityPack" Version="1.11.54" />
<PackageVersion Include="IPNetwork2" Version="2.6.618" />
<PackageVersion Include="K4os.Compression.LZ4" Version="1.3.6" />
<PackageVersion Include="MailKit" Version="3.2.0" />
<PackageVersion Include="Markdown" Version="2.2.1" />
<PackageVersion Include="MessagePack" Version="2.5.187" />
<PackageVersion Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="6.0.24" />
<PackageVersion Include="Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation" Version="6.0.24" />
<PackageVersion Include="Microsoft.Data.Sqlite" Version="6.0.24" />
<PackageVersion Include="Microsoft.CSharp" Version="4.7.0" />
<PackageVersion Include="Microsoft.Extensions.FileProviders.Embedded" Version="6.0.24" />
<PackageVersion Include="Microsoft.Extensions.FileProviders.Physical" Version="6.0.0" />
<PackageVersion Include="Microsoft.Extensions.Hosting.Abstractions" Version="6.0.0" />
<PackageVersion Include="Microsoft.Extensions.Identity.Core" Version="6.0.24" />
<PackageVersion Include="Microsoft.Extensions.Logging" Version="6.0.0" />
<PackageVersion Include="Microsoft.Extensions.Options" Version="6.0.0" />
<PackageVersion Include="Microsoft.Extensions.Options.ConfigurationExtensions" Version="6.0.0" />
<PackageVersion Include="Microsoft.Extensions.Options.DataAnnotations" Version="6.0.0" />
<PackageVersion Include="Microsoft.Extensions.Configuration.Abstractions" Version="6.0.0" />
<PackageVersion Include="Microsoft.Extensions.Configuration.Json" Version="6.0.0" />
<PackageVersion Include="Microsoft.Extensions.DependencyInjection" Version="6.0.1" />
<PackageVersion Include="Microsoft.Extensions.Http" Version="6.0.0" />
<PackageVersion Include="Microsoft.Extensions.Identity.Stores" Version="6.0.24" />
<PackageVersion Include="MiniProfiler.AspNetCore.Mvc" Version="4.2.22" />
<PackageVersion Include="MiniProfiler.Shared" Version="4.2.22" />
<PackageVersion Include="ncrontab" Version="3.3.3" />
<PackageVersion Include="Newtonsoft.Json" Version="13.0.3" />
<PackageVersion Include="NPoco.SqlServer" Version="5.3.2" />
<PackageVersion Include="Serilog" Version="2.12.0" />
<PackageVersion Include="Serilog.AspNetCore" Version="5.0.0" />
<PackageVersion Include="Serilog.Enrichers.Process" Version="2.0.2" />
<PackageVersion Include="Serilog.Enrichers.Thread" Version="3.1.0" />
<PackageVersion Include="Serilog.Expressions" Version="3.4.1" />
<PackageVersion Include="Serilog.Extensions.Hosting" Version="4.2.0" />
<PackageVersion Include="Serilog.Formatting.Compact" Version="1.1.0" />
<PackageVersion Include="Serilog.Formatting.Compact.Reader" Version="1.0.5" />
<PackageVersion Include="Serilog.Settings.Configuration" Version="3.4.0" />
<PackageVersion Include="Serilog.Sinks.Async" Version="1.5.0" />
<PackageVersion Include="Serilog.Sinks.File" Version="5.0.0" />
<PackageVersion Include="Serilog.Sinks.Map" Version="1.0.2" />
<PackageVersion Include="SixLabors.ImageSharp" Version="2.1.10" />
<PackageVersion Include="SixLabors.ImageSharp.Web" Version="2.0.2" />
<PackageVersion Include="Smidge.InMemory" Version="4.3.0" />
<PackageVersion Include="Smidge.Nuglify" Version="4.2.1" />
<PackageVersion Include="System.IO.FileSystem.AccessControl" Version="5.0.0" />
<PackageVersion Include="System.Security.Cryptography.Pkcs" Version="6.0.4" />
<PackageVersion Include="System.Threading.Tasks.Dataflow" Version="6.0.0" />
<PackageVersion Include="System.ComponentModel.Annotations" Version="5.0.0" />
<PackageVersion Include="System.Reflection.Emit.Lightweight" Version="4.7.0" />
<PackageVersion Include="System.Runtime.Caching" Version="6.0.0" />
<PackageVersion Include="Umbraco.CSharpTest.Net.Collections" Version="14.906.1403.1085" />
<!-- Add dependencies that we force an update to, even that we do not use them explicitly and they seems to be taken from the framework instead of from Nuget -->
<PackageVersion Include="System.Net.Http" Version="4.3.4" />
<PackageVersion Include="System.Security.Cryptography.Xml" Version="6.0.1" />
<PackageVersion Include="System.Text.RegularExpressions" Version="4.3.1" />
</ItemGroup>
</Project>
+18 -1
View File
@@ -51,6 +51,7 @@ namespace JsonSchema
public ImagingSettings? Imaging { get; set; }
public IndexCreatorSettings? Examine { get; set; }
public IndexingSettings? Indexing { get; set; }
public KeepAliveSettings? KeepAlive { get; set; }
@@ -88,9 +89,25 @@ namespace JsonSchema
public HelpPageSettings? HelpPage { get; set; }
public InstallDefaultDataSettings? DefaultDataCreation { get; set; }
public InstallDefaultData? InstallDefaultData { get; set; }
public DataTypesSettings? DataTypes { get; set; }
public MarketplaceSettings? Marketplace { get; set; }
}
/// <summary>
/// Configurations for the Umbraco CMS InstallDefaultData configuration.
/// </summary>
public class InstallDefaultData
{
public InstallDefaultDataSettings? Languages { get; set; }
public InstallDefaultDataSettings? DataTypes { get; set; }
public InstallDefaultDataSettings? MediaTypes { get; set; }
public InstallDefaultDataSettings? MemberTypes { get; set; }
}
/// <summary>
+4 -3
View File
@@ -3,16 +3,17 @@
<OutputType>Exe</OutputType>
<IsPackable>false</IsPackable>
<EnablePackageValidation>false</EnablePackageValidation>
<ManagePackageVersionsCentrally>false</ManagePackageVersionsCentrally>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="CommandLineParser" Version="2.9.1" />
<PackageReference Include="NJsonSchema" Version="10.7.2" />
<PackageReference Include="NJsonSchema" Version="10.9.0" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Umbraco.Core\Umbraco.Core.csproj" />
<PackageReference Include="Umbraco.Deploy.Core" Version="10.1.0" />
<PackageReference Include="Umbraco.Forms.Core" Version="10.1.0" />
<PackageReference Include="Umbraco.Deploy.Core" Version="10.4.0" />
<PackageReference Include="Umbraco.Forms.Core" Version="10.5.4" />
</ItemGroup>
</Project>
@@ -4,6 +4,7 @@
<Description>Contains the presentation layer for the Umbraco CMS Management API.</Description>
<IsPackable>false</IsPackable>
<EnablePackageValidation>false</EnablePackageValidation>
<ManagePackageVersionsCentrally>false</ManagePackageVersionsCentrally>
</PropertyGroup>
<ItemGroup>
@@ -12,7 +13,7 @@
<PackageReference Include="Microsoft.AspNetCore.Mvc.Versioning.ApiExplorer" Version="5.0.0" />
<PackageReference Include="NSwag.AspNetCore" Version="13.16.1" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Umbraco.Infrastructure\Umbraco.Infrastructure.csproj" />
<ProjectReference Include="..\Umbraco.New.Cms.Core\Umbraco.New.Cms.Core.csproj" />
@@ -20,7 +21,7 @@
<ProjectReference Include="..\Umbraco.New.Cms.Web.Common\Umbraco.New.Cms.Web.Common.csproj" />
<ProjectReference Include="..\Umbraco.Web.Common\Umbraco.Web.Common.csproj" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="OpenApi.json" />
</ItemGroup>
@@ -1,12 +1,12 @@
namespace Umbraco.Cms.Persistence.SqlServer;
/// <summary>
/// Constants related to SQLite.
/// Constants related to SQL Server.
/// </summary>
public static class Constants
{
/// <summary>
/// SQLite provider name.
/// SQL Server provider name.
/// </summary>
public const string ProviderName = "Microsoft.Data.SqlClient";
}
@@ -1,4 +1,5 @@
using System.Runtime.Serialization;
using Microsoft.Data.SqlClient;
using Umbraco.Cms.Core.Install.Models;
using Umbraco.Cms.Infrastructure.Persistence;
using Umbraco.Extensions;
@@ -50,6 +51,25 @@ public class SqlAzureDatabaseProviderMetadata : IDatabaseProviderMetadata
/// <inheritdoc />
public bool ForceCreateDatabase => false;
/// <inheritdoc />
public bool CanRecognizeConnectionString(string? connectionString)
{
if (connectionString is null)
{
return false;
}
try
{
var builder = new SqlConnectionStringBuilder(connectionString);
return string.IsNullOrEmpty(builder.AttachDBFilename) && builder.DataSource.Contains("database.windows.net");
}
catch (ArgumentException)
{
return false;
}
}
/// <inheritdoc />
public string GenerateConnectionString(DatabaseModel databaseModel)
{
@@ -51,6 +51,27 @@ public class SqlLocalDbDatabaseProviderMetadata : IDatabaseProviderMetadata
/// <inheritdoc />
public bool ForceCreateDatabase => true;
/// <inheritdoc />
public bool CanRecognizeConnectionString(string? connectionString)
{
if (connectionString is null)
{
return false;
}
try
{
var builder = new SqlConnectionStringBuilder(connectionString);
return !string.IsNullOrEmpty(builder.AttachDBFilename);
}
catch (ArgumentException)
{
return false;
}
}
/// <inheritdoc />
public string GenerateConnectionString(DatabaseModel databaseModel)
{
@@ -1,6 +1,9 @@
using System.Data.Common;
using System.Runtime.Serialization;
using Microsoft.Data.SqlClient;
using Umbraco.Cms.Core.Install.Models;
using Umbraco.Cms.Infrastructure.Persistence;
using Umbraco.Extensions;
namespace Umbraco.Cms.Persistence.SqlServer.Services;
@@ -49,6 +52,26 @@ public class SqlServerDatabaseProviderMetadata : IDatabaseProviderMetadata
/// <inheritdoc />
public bool ForceCreateDatabase => false;
/// <inheritdoc />
public bool CanRecognizeConnectionString(string? connectionString)
{
if (connectionString is null)
{
return false;
}
try
{
var builder = new SqlConnectionStringBuilder(connectionString);
return string.IsNullOrEmpty(builder.AttachDBFilename);
}
catch (ArgumentException)
{
return false;
}
}
/// <inheritdoc />
public string GenerateConnectionString(DatabaseModel databaseModel) =>
databaseModel.IntegratedAuth
@@ -134,9 +134,10 @@ public class SqlServerDistributedLockingMechanism : IDistributedLockingMechanism
const string query = "SELECT value FROM umbracoLock WITH (REPEATABLEREAD) WHERE id=@id";
db.Execute("SET LOCK_TIMEOUT " + _timeout.TotalMilliseconds + ";");
var lockTimeoutQuery = $"SET LOCK_TIMEOUT {_timeout.TotalMilliseconds}";
var i = db.ExecuteScalar<int?>(query, new { id = LockId });
// execute the lock timeout query and the actual query in a single server roundtrip
var i = db.ExecuteScalar<int?>($"{lockTimeoutQuery};{query}", new { id = LockId });
if (i == null)
{
@@ -169,9 +170,10 @@ public class SqlServerDistributedLockingMechanism : IDistributedLockingMechanism
const string query =
@"UPDATE umbracoLock WITH (REPEATABLEREAD) SET value = (CASE WHEN (value=1) THEN -1 ELSE 1 END) WHERE id=@id";
db.Execute("SET LOCK_TIMEOUT " + _timeout.TotalMilliseconds + ";");
var lockTimeoutQuery = $"SET LOCK_TIMEOUT {_timeout.TotalMilliseconds}";
var i = db.Execute(query, new { id = LockId });
// execute the lock timeout query and the actual query in a single server roundtrip
var i = db.Execute($"{lockTimeoutQuery};{query}", new { id = LockId });
if (i == 0)
{
@@ -0,0 +1,11 @@
using Umbraco.Cms.Core.Mapping;
using Umbraco.Cms.Infrastructure.Persistence;
namespace Umbraco.Cms.Persistence.SqlServer.Services;
public class SqlServerSpecificMapperFactory : IProviderSpecificMapperFactory
{
public string ProviderName => Constants.ProviderName;
public NPocoMapperCollection Mappers => new(() => new[] { new UmbracoDefaultMapper() });
}
@@ -272,6 +272,13 @@ where tbl.[name]=@0 and col.[name]=@1;",
return !constraintName.IsNullOrWhiteSpace();
}
public override bool DoesPrimaryKeyExist(IDatabase db, string tableName, string primaryKeyName)
{
IEnumerable<SqlPrimaryKey>? keys = db.Fetch<SqlPrimaryKey>($"select * from sysobjects where xtype='pk' and parent_obj in (select id from sysobjects where name='{tableName}')")
.Where(x => x.Name == primaryKeyName);
return keys.FirstOrDefault() is not null;
}
public override bool DoesTableExist(IDatabase db, string tableName)
{
var result =
@@ -453,4 +460,9 @@ _sqlInspector ??= new SqlInspectionUtilities();
}
#endregion
private class SqlPrimaryKey
{
public string Name { get; set; } = null!;
}
}
@@ -22,6 +22,8 @@ public static class UmbracoBuilderExtensions
/// </summary>
public static IUmbracoBuilder AddUmbracoSqlServerSupport(this IUmbracoBuilder builder)
{
builder.Services.TryAddEnumerable(ServiceDescriptor
.Singleton<IProviderSpecificMapperFactory, SqlServerSpecificMapperFactory>());
builder.Services.TryAddEnumerable(ServiceDescriptor.Singleton<ISqlSyntaxProvider, SqlServerSyntaxProvider>());
builder.Services.TryAddEnumerable(ServiceDescriptor
.Singleton<IBulkSqlInsertProvider, SqlServerBulkSqlInsertProvider>());
@@ -1,3 +1,4 @@
using System.Globalization;
using NPoco;
namespace Umbraco.Cms.Persistence.Sqlite.Mappers;
@@ -28,6 +29,24 @@ public class SqlitePocoGuidMapper : DefaultMapper
};
}
if (destType == typeof(decimal))
{
return value =>
{
var result = Convert.ToDecimal(value, CultureInfo.InvariantCulture);
return result;
};
}
if (destType == typeof(decimal?))
{
return value =>
{
var result = Convert.ToDecimal(value, CultureInfo.InvariantCulture);
return result;
};
}
return base.GetFromDbConverter(destType, sourceType);
}
}
@@ -69,7 +69,9 @@ public class SqliteDatabaseCreator : IDatabaseCreator
* always initializing in this way and it probably helps for non azure scenarios also (anytime persisting on a cifs mount for example).
*/
var tempFile = Path.GetTempFileName();
// Create a random file name using cryptographically strong random number generator (RNGCryptoServiceProvider)
var tempFile = Path.Combine(Path.GetTempPath(), Path.GetRandomFileName());
var tempConnectionString = new SqliteConnectionStringBuilder { DataSource = tempFile, Pooling = false };
using (var connection = new SqliteConnection(tempConnectionString.ConnectionString))
@@ -56,6 +56,26 @@ public class SqliteDatabaseProviderMetadata : IDatabaseProviderMetadata
/// </remarks>
public bool ForceCreateDatabase => true;
/// <inheritdoc />
public bool CanRecognizeConnectionString(string? connectionString)
{
if (connectionString is null)
{
return false;
}
try
{
var builder = new SqliteConnectionStringBuilder(connectionString);
return !string.IsNullOrEmpty(builder.DataSource);
}
catch (ArgumentException)
{
return false;
}
}
/// <inheritdoc />
public string GenerateConnectionString(DatabaseModel databaseModel)
{
@@ -154,7 +154,7 @@ public class SqliteDistributedLockingMechanism : IDistributedLockingMechanism
try
{
var i = command.ExecuteNonQuery();
var i = db.ExecuteNonQuery(command);
if (i == 0)
{
@@ -174,6 +174,14 @@ public class SqliteSyntaxProvider : SqlSyntaxProviderBase<SqliteSyntaxProvider>
return false;
}
public override bool DoesPrimaryKeyExist(IDatabase db, string tableName, string primaryKeyName)
{
IEnumerable<string> items = db.Fetch<string>($"select sql from sqlite_master where type = 'table' and name = '{tableName}'")
.Where(x => x.Contains($"CONSTRAINT {primaryKeyName} PRIMARY KEY"));
return items.Any();
}
public override string GetFieldNameForUpdate<TDto>(Expression<Func<TDto, object?>> fieldSelector, string? tableAlias = null)
{
var field = ExpressionHelper.FindProperty(fieldSelector).Item1 as PropertyInfo;
@@ -326,7 +334,7 @@ public class SqliteSyntaxProvider : SqlSyntaxProviderBase<SqliteSyntaxProvider>
{
IEnumerable<string> tables = GetTablesInSchema(db);
db.OpenSharedConnection();
db.BeginTransaction();
foreach (var table in tables)
{
DbCommand? cmd = db.CreateCommand(db.Connection, CommandType.Text, $"PRAGMA table_info({table})");
@@ -341,6 +349,8 @@ public class SqliteSyntaxProvider : SqlSyntaxProviderBase<SqliteSyntaxProvider>
yield return new ColumnInfo(table, columnName, ordinal, notNull, type);
}
}
db.CompleteTransaction();
}
/// <inheritdoc />
@@ -5,7 +5,7 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Data.Sqlite" Version="6.0.5" />
<PackageReference Include="Microsoft.Data.Sqlite" />
</ItemGroup>
<ItemGroup>
@@ -35,7 +35,7 @@
<div ng-switch-when="ysod">
<h1>A server error occurred</h1>
<p>This is most likely due to an error during application startup</p>
<iframe id="ysod"></iframe>
<iframe id="ysod" title="Error details"></iframe>
</div>
<div ng-switch-default>
<div ng-include="installer.current.view"></div>
@@ -0,0 +1,69 @@
@using Microsoft.Extensions.Options
@using Umbraco.Cms.Core.Configuration.Models
@using Umbraco.Cms.Core.Hosting
@using Umbraco.Cms.Core.Routing
@using Umbraco.Extensions
@inject IHostingEnvironment hostingEnvironment
@inject IOptions<GlobalSettings> globalSettings
@{
var backOfficePath = globalSettings.Value.GetBackOfficePath(hostingEnvironment);
}
<!doctype html>
<html class="no-js" lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<title>Website is Under Maintainance</title>
<link rel="stylesheet" href="@WebPath.Combine(backOfficePath.TrimStart("~"), "/assets/css/nonodes.style.min.css")" />
<style type="text/css">
body {
color:initial;
}
section {
background: none;
}
section a, section a:focus, section a:visited {
color:initial;
border-color:currentColor;
}
</style>
</head>
<body>
<section>
<article>
<div>
<h1>Website is Under Maintenance</h1>
<div class="cta"></div>
<div class="row">
<div class="col">
<h2>This page can be replaced</h2>
<p>
Custom error handling might make your site look more on-brand and minimize the impact of errors on user experience - for example, a custom 404 with some helpful links (or a search function) could bring some value to the site.
</p>
<a href="https://umbra.co/custom-error-pages" target="_blank" rel="noopener">Implementing custom error pages &rarr;</a>
</div>
<div class="col">
<h2>Finish the maintenance</h2>
<p>If you are an administrator, you finish the maintanance by going to backoffice.</p>
<a href="@backOfficePath">Handle the upgrade &rarr;</a>
</div>
</div>
</div>
</article>
</section>
</body>
</html>
@@ -1,11 +1,4 @@
<style>
:host {
position: relative;
border-radius: 3px;
height: 100%;/* Add this to fill the cell fully */
box-sizing: border-box;
}
button {
position: relative;
@@ -33,5 +26,4 @@
<button type="button" ng-click="block.edit()" ng-focus="block.focus">
<h1 style="margin: 0 20px;">{{block.data.headline}}</h1>
</button>
<slot name="area-container" part="area-container"></slot>
</button>
@@ -1,12 +1,7 @@
<style>
:host {
position: relative;
border-radius: 3px;
height: 100%;/* Add this to fill the cell fully */
min-height: 160px;
box-sizing: border-box;
//border: 1px solid #BBBABF;
}
button > * {
@@ -31,7 +26,7 @@
overflow:hidden;
}
button:hover {
color: #2152A3;// TODO: Set right colors:
color: #2152A3;
}
img {
object-fit: cover;
@@ -67,24 +62,26 @@
bottom: 0;
right: 0;
opacity: var(--umb-block-grid__block--show-ui, 0);
opacity: var(--umb-block-grid--block-ui-opacity, 0);
transition: opacity 120ms;
}
/*
:host(:focus-within) .file-name,
:host(:hover) .file-name {
.is-trashed {
background-color: #d42054 !important;
color:white !important;
}
.is-trashed .file-name {
opacity: 1;
}
*/
</style>
<script>
<!-- TODO: what can we do? -->
</script>
<button ng-controller="Umbraco.PropertyEditors.BlockEditor.MediaBlockEditor as bc" type="button" ng-click="block.edit()" ng-focus="block.focus">
<img ng-if="bc.isImage || bc.fileExtension === 'svg'" ng-src="{{bc.imageSource}}" alt="{{bc.mediaName}}" />
<umb-icon ng-if="!bc.isImage && bc.fileExtension !== 'svg'" icon="{{bc.icon}} color-black" class="icon"></umb-icon>
<span ng-if="bc.mediaName" class="file-name">{{bc.mediaName}}</span>
</button>
<slot name="area-container" part="area-container"></slot>
<button type="button" ng-click="block.edit()" ng-focus="block.focus" ng-class="{'is-trashed': mediaItem.trashed}">
{{mediaItem = (block.data.image[0].mediaKey | mediaItemResolver); ""}}
<img ng-if="mediaItem !== null && (mediaItem.mediaLink.indexOf('jpg') !== -1 || mediaItem.mediaLink.indexOf('png') !== -1 || mediaItem.mediaLink.indexOf('webp') !== -1 || mediaItem.mediaLink.indexOf('gif') !== -1) && !mediaItem.trashed" ng-src="{{mediaItem.mediaLink}}" alt="{{mediaItem.name}}" />
<umb-icon ng-if="mediaItem !== null && mediaItem.mediaLink.indexOf('jpg') === -1 && mediaItem.mediaLink.indexOf('png') === -1 && mediaItem.mediaLink.indexOf('webp') === -1 && mediaItem.mediaLink.indexOf('gif') === -1 || mediaItem.trashed" icon="{{mediaItem.contentType.icon}}" class="icon"></umb-icon>
<span ng-if="mediaItem !== null && mediaItem.name" class="file-name">
<span ng-if="mediaItem.trashed"><localize key="mediaPicker_trashed">Trashed</localize>:</span>
{{mediaItem.name}}
</span>
</button>
@@ -1,13 +1,5 @@
<style>
:host {
position: relative;
border-radius: 3px;
height: 100%;/* Add this to fill the cell fully */
box-sizing: border-box;
//border: 1px solid #BBBABF;
}
.text {
position: relative;
display: block;
@@ -30,5 +22,4 @@
</style>
<div class="text" ng-click="block.edit()" ng-focus="block.focus" ng-bind-html="block.data.richText" style="margin: 0 20px;">
</div>
<slot name="area-container" part="area-container"></slot>
</div>
@@ -1,50 +1,3 @@
<style>
:host {
position: relative;
border-radius: 3px;
height: 100%;/* Add this to fill the cell fully */
box-sizing: border-box;
//border: 1px solid #BBBABF;
}
/*
button {
display: flex;
align-items: center;
justify-content: center;
cursor: pointer;
color: black;
background-color: white;
text-align: left;
user-select: none;
border: none;
opacity: 0;
transition: border-color 120ms, background-color 120ms, opacity 120ms;
position: absolute;
z-index: 2;
min-height: 20px;
top:0;
left:0;
padding: 2px 6px;
}
button:hover {
color: #2152A3;// TODO: Set right colors:
background-color: #F9F9FA;
}
:host(:focus-within) button,
:host(:hover) button {
opacity: 1;
}
*/
</style>
<section ng-style="{'background-color': block.data.backgroundColor}">
<!--
<button type="button" ng-click="block.edit()" ng-focus="block.focus">
<span class="file-name">{{block.label}}</span>
</button>
-->
<slot name="area-container" part="area-container"></slot>
<umb-block-grid-render-area-slots></umb-block-grid-render-area-slots>
</section>
+2 -1
View File
@@ -4,6 +4,7 @@
<Description>Installs Umbraco CMS with all default dependencies in your ASP.NET Core project.</Description>
<IncludeBuildOutput>false</IncludeBuildOutput>
<IncludeSymbols>false</IncludeSymbols>
<ManagePackageVersionsCentrally>false</ManagePackageVersionsCentrally>
</PropertyGroup>
<ItemGroup>
@@ -26,6 +27,6 @@
</PropertyGroup>
<Target Name="GenerateAppsettingsSchema" BeforeTargets="Build" Condition="!Exists('$(JsonSchemaPath)')">
<Message Text="Generating appsettings-schema.json because it doesn't exist" Importance="high" />
<Exec WorkingDirectory="$(JsonSchemaProjectPath)" Command="dotnet run -c Release -o &quot;$(JsonSchemaPath)&quot;" />
<Exec WorkingDirectory="$(JsonSchemaProjectPath)" Command="dotnet run --configuration Release -- --outputFile &quot;$(JsonSchemaPath)&quot;" />
</Target>
</Project>
@@ -8,17 +8,17 @@ namespace Umbraco.Cms.Core.Actions;
/// </summary>
public class ActionAssignDomain : IAction
{
/// <summary>
/// The unique action letter
/// </summary>
/// <inheritdoc cref="IAction.ActionLetter" />
public const char ActionLetter = 'I';
/// <inheritdoc />
/// <inheritdoc cref="IAction.ActionAlias" />
public const string ActionAlias = "assigndomain";
/// <inheritdoc/>
public char Letter => ActionLetter;
/// <inheritdoc />
// This is all lower-case because of case sensitive filesystems, see issue: https://github.com/umbraco/Umbraco-CMS/issues/11670
public string Alias => "assigndomain";
/// <inheritdoc/>
public string Alias => ActionAlias;
/// <inheritdoc />
public string Category => Constants.Conventions.PermissionCategories.AdministrationCategory;
+8 -6
View File
@@ -16,14 +16,18 @@ namespace Umbraco.Cms.Core.Actions;
/// </remarks>
public class ActionBrowse : IAction
{
/// <summary>
/// The unique action letter
/// </summary>
/// <inheritdoc cref="IAction.ActionLetter" />
public const char ActionLetter = 'F';
/// <inheritdoc />
/// <inheritdoc cref="IAction.ActionAlias" />
public const string ActionAlias = "browse";
/// <inheritdoc/>
public char Letter => ActionLetter;
/// <inheritdoc/>
public string Alias => ActionAlias;
/// <inheritdoc />
public bool ShowInNotifier => false;
@@ -33,8 +37,6 @@ public class ActionBrowse : IAction
/// <inheritdoc />
public string Icon => string.Empty;
/// <inheritdoc />
public string Alias => "browse";
/// <inheritdoc />
public string Category => Constants.Conventions.PermissionCategories.ContentCategory;
+8 -7
View File
@@ -1,4 +1,4 @@
// Copyright (c) Umbraco.
// Copyright (c) Umbraco.
// See LICENSE for more details.
namespace Umbraco.Cms.Core.Actions;
@@ -8,16 +8,17 @@ namespace Umbraco.Cms.Core.Actions;
/// </summary>
public class ActionCopy : IAction
{
/// <summary>
/// The unique action letter
/// </summary>
/// <inheritdoc cref="IAction.ActionLetter" />
public const char ActionLetter = 'O';
/// <inheritdoc />
/// <inheritdoc cref="IAction.ActionAlias" />
public const string ActionAlias = "copy";
/// <inheritdoc/>
public char Letter => ActionLetter;
/// <inheritdoc />
public string Alias => "copy";
/// <inheritdoc/>
public string Alias => ActionAlias;
/// <inheritdoc />
public string Category => Constants.Conventions.PermissionCategories.StructureCategory;
@@ -8,8 +8,17 @@ namespace Umbraco.Cms.Core.Actions;
/// </summary>
public class ActionCreateBlueprintFromContent : IAction
{
/// <inheritdoc />
public char Letter => 'ï';
/// <inheritdoc cref="IAction.ActionLetter"/>
public const char ActionLetter = 'ï';
/// <inheritdoc cref="IAction.ActionAlias" />
public const string ActionAlias = "createblueprint";
/// <inheritdoc/>
public char Letter => ActionLetter;
/// <inheritdoc/>
public string Alias => ActionAlias;
/// <inheritdoc />
public bool ShowInNotifier => false;
@@ -20,9 +29,6 @@ public class ActionCreateBlueprintFromContent : IAction
/// <inheritdoc />
public string Icon => Constants.Icons.Blueprint;
/// <inheritdoc />
public string Alias => "createblueprint";
/// <inheritdoc />
public string Category => Constants.Conventions.PermissionCategories.ContentCategory;
}
+5 -9
View File
@@ -1,4 +1,4 @@
// Copyright (c) Umbraco.
// Copyright (c) Umbraco.
// See LICENSE for more details.
namespace Umbraco.Cms.Core.Actions;
@@ -8,16 +8,12 @@ namespace Umbraco.Cms.Core.Actions;
/// </summary>
public class ActionDelete : IAction
{
/// <summary>
/// The unique action alias
/// </summary>
public const string ActionAlias = "delete";
/// <summary>
/// The unique action letter
/// </summary>
/// <inheritdoc cref="IAction.ActionLetter"/>
public const char ActionLetter = 'D';
/// <inheritdoc cref="IAction.ActionAlias"/>
public const string ActionAlias = "delete";
/// <inheritdoc/>
public char Letter => ActionLetter;
+9 -8
View File
@@ -1,23 +1,24 @@
// Copyright (c) Umbraco.
// Copyright (c) Umbraco.
// See LICENSE for more details.
namespace Umbraco.Cms.Core.Actions;
/// <summary>
/// This action is invoked upon creation of a document, media, member
/// This action is invoked upon creation of a document, media, member.
/// </summary>
public class ActionMove : IAction
{
/// <summary>
/// The unique action letter
/// </summary>
/// <inheritdoc cref="IAction.ActionLetter"/>
public const char ActionLetter = 'M';
/// <inheritdoc />
/// <inheritdoc cref="IAction.ActionAlias"/>
public const string ActionAlias = "move";
/// <inheritdoc/>
public char Letter => ActionLetter;
/// <inheritdoc />
public string Alias => "move";
/// <inheritdoc/>
public string Alias => ActionAlias;
/// <inheritdoc />
public string Category => Constants.Conventions.PermissionCategories.StructureCategory;
+8 -12
View File
@@ -1,27 +1,23 @@
// Copyright (c) Umbraco.
// Copyright (c) Umbraco.
// See LICENSE for more details.
namespace Umbraco.Cms.Core.Actions;
/// <summary>
/// This action is invoked upon creation of a document
/// This action is invoked upon creation of a document.
/// </summary>
public class ActionNew : IAction
{
/// <summary>
/// The unique action alias
/// </summary>
public const string ActionAlias = "create";
/// <summary>
/// The unique action letter
/// </summary>
/// <inheritdoc cref="IAction.ActionLetter"/>
public const char ActionLetter = 'C';
/// <inheritdoc />
/// <inheritdoc cref="IAction.ActionAlias"/>
public const string ActionAlias = "create";
/// <inheritdoc/>
public char Letter => ActionLetter;
/// <inheritdoc />
/// <inheritdoc/>
public string Alias => ActionAlias;
/// <inheritdoc />
+13 -7
View File
@@ -1,15 +1,24 @@
// Copyright (c) Umbraco.
// Copyright (c) Umbraco.
// See LICENSE for more details.
namespace Umbraco.Cms.Core.Actions;
/// <summary>
/// This action is invoked upon modifying the notification of a content
/// This action is invoked upon modifying the notification of a content.
/// </summary>
public class ActionNotify : IAction
{
/// <inheritdoc />
public char Letter => 'N';
/// <inheritdoc cref="IAction.ActionLetter"/>
public const char ActionLetter = 'N';
/// <inheritdoc cref="IAction.ActionAlias"/>
public const string ActionAlias = "notify";
/// <inheritdoc/>
public char Letter => ActionLetter;
/// <inheritdoc/>
public string Alias => ActionAlias;
/// <inheritdoc />
public bool ShowInNotifier => false;
@@ -20,9 +29,6 @@ public class ActionNotify : IAction
/// <inheritdoc />
public string Icon => "icon-megaphone";
/// <inheritdoc />
public string Alias => "notify";
/// <inheritdoc />
public string Category => Constants.Conventions.PermissionCategories.ContentCategory;
}
+9 -8
View File
@@ -1,23 +1,24 @@
// Copyright (c) Umbraco.
// Copyright (c) Umbraco.
// See LICENSE for more details.
namespace Umbraco.Cms.Core.Actions;
/// <summary>
/// This action is invoked when a document is protected or unprotected
/// This action is invoked when a document is protected or unprotected.
/// </summary>
public class ActionProtect : IAction
{
/// <summary>
/// The unique action letter
/// </summary>
/// <inheritdoc cref="IAction.ActionLetter"/>
public const char ActionLetter = 'P';
/// <inheritdoc />
/// <inheritdoc cref="IAction.ActionAlias"/>
public const string ActionAlias = "protect";
/// <inheritdoc/>
public char Letter => ActionLetter;
/// <inheritdoc />
public string Alias => "protect";
/// <inheritdoc/>
public string Alias => ActionAlias;
/// <inheritdoc />
public string Category => Constants.Conventions.PermissionCategories.AdministrationCategory;
+8 -7
View File
@@ -4,20 +4,21 @@
namespace Umbraco.Cms.Core.Actions;
/// <summary>
/// This action is invoked when a document is being published
/// This action is invoked when a document is being published.
/// </summary>
public class ActionPublish : IAction
{
/// <summary>
/// The unique action letter
/// </summary>
/// <inheritdoc cref="IAction.ActionLetter"/>
public const char ActionLetter = 'U';
/// <inheritdoc />
/// <inheritdoc cref="IAction.ActionAlias"/>
public const string ActionAlias = "publish";
/// <inheritdoc/>
public char Letter => ActionLetter;
/// <inheritdoc />
public string Alias => "publish";
/// <inheritdoc/>
public string Alias => ActionAlias;
/// <inheritdoc />
public string Category => Constants.Conventions.PermissionCategories.ContentCategory;
+9 -8
View File
@@ -1,22 +1,23 @@
// Copyright (c) Umbraco.
// Copyright (c) Umbraco.
// See LICENSE for more details.
namespace Umbraco.Cms.Core.Actions;
/// <summary>
/// This action is invoked when the content/media item is to be restored from the recycle bin
/// This action is invoked when the content/media item is to be restored from the recycle bin.
/// </summary>
public class ActionRestore : IAction
{
/// <summary>
/// The unique action alias
/// </summary>
/// <inheritdoc cref="IAction.ActionLetter"/>
public const char ActionLetter = 'V';
/// <inheritdoc cref="IAction.ActionAlias"/>
public const string ActionAlias = "restore";
/// <inheritdoc />
public char Letter => 'V';
/// <inheritdoc/>
public char Letter => ActionLetter;
/// <inheritdoc />
/// <inheritdoc/>
public string Alias => ActionAlias;
/// <inheritdoc />
+9 -8
View File
@@ -1,23 +1,24 @@
// Copyright (c) Umbraco.
// Copyright (c) Umbraco.
// See LICENSE for more details.
namespace Umbraco.Cms.Core.Actions;
/// <summary>
/// This action is invoked when rights are changed on a document
/// This action is invoked when rights are changed on a document.
/// </summary>
public class ActionRights : IAction
{
/// <summary>
/// The unique action letter
/// </summary>
/// <inheritdoc cref="IAction.ActionLetter"/>
public const char ActionLetter = 'R';
/// <inheritdoc />
/// <inheritdoc cref="IAction.ActionAlias"/>
public const string ActionAlias = "rights";
/// <inheritdoc/>
public char Letter => ActionLetter;
/// <inheritdoc />
public string Alias => "rights";
/// <inheritdoc/>
public string Alias => ActionAlias;
/// <inheritdoc />
public string Category => Constants.Conventions.PermissionCategories.ContentCategory;
+9 -8
View File
@@ -1,23 +1,24 @@
// Copyright (c) Umbraco.
// Copyright (c) Umbraco.
// See LICENSE for more details.
namespace Umbraco.Cms.Core.Actions;
/// <summary>
/// This action is invoked when copying a document is being rolled back
/// This action is invoked when copying a document is being rolled back.
/// </summary>
public class ActionRollback : IAction
{
/// <summary>
/// The unique action letter
/// </summary>
/// <inheritdoc cref="IAction.ActionLetter"/>
public const char ActionLetter = 'K';
/// <inheritdoc />
/// <inheritdoc cref="IAction.ActionAlias"/>
public const string ActionAlias = "rollback";
/// <inheritdoc/>
public char Letter => ActionLetter;
/// <inheritdoc />
public string Alias => "rollback";
/// <inheritdoc/>
public string Alias => ActionAlias;
/// <inheritdoc />
public string Category => Constants.Conventions.PermissionCategories.AdministrationCategory;
+9 -8
View File
@@ -1,23 +1,24 @@
// Copyright (c) Umbraco.
// Copyright (c) Umbraco.
// See LICENSE for more details.
namespace Umbraco.Cms.Core.Actions;
/// <summary>
/// This action is invoked when children to a document, media, member is being sorted
/// This action is invoked when children to a document, media, member is being sorted.
/// </summary>
public class ActionSort : IAction
{
/// <summary>
/// The unique action letter
/// </summary>
/// <inheritdoc cref="IAction.ActionLetter"/>
public const char ActionLetter = 'S';
/// <inheritdoc />
/// <inheritdoc cref="IAction.ActionAlias"/>
public const string ActionAlias = "sort";
/// <inheritdoc/>
public char Letter => ActionLetter;
/// <inheritdoc />
public string Alias => "sort";
/// <inheritdoc/>
public string Alias => ActionAlias;
/// <inheritdoc />
public string Category => Constants.Conventions.PermissionCategories.StructureCategory;
+9 -8
View File
@@ -1,23 +1,24 @@
// Copyright (c) Umbraco.
// Copyright (c) Umbraco.
// See LICENSE for more details.
namespace Umbraco.Cms.Core.Actions;
/// <summary>
/// This action is invoked when children to a document is being sent to published (by an editor without publishrights)
/// This action is invoked when children to a document is being sent to published (by an editor without publishrights).
/// </summary>
public class ActionToPublish : IAction
{
/// <summary>
/// The unique action letter
/// </summary>
/// <inheritdoc cref="IAction.ActionLetter"/>
public const char ActionLetter = 'H';
/// <inheritdoc />
/// <inheritdoc cref="IAction.ActionAlias"/>
public const string ActionAlias = "sendtopublish";
/// <inheritdoc/>
public char Letter => ActionLetter;
/// <inheritdoc />
public string Alias => "sendtopublish";
/// <inheritdoc/>
public string Alias => ActionAlias;
/// <inheritdoc />
public string Category => Constants.Conventions.PermissionCategories.ContentCategory;
+9 -8
View File
@@ -1,23 +1,24 @@
// Copyright (c) Umbraco.
// Copyright (c) Umbraco.
// See LICENSE for more details.
namespace Umbraco.Cms.Core.Actions;
/// <summary>
/// This action is invoked when a document is being unpublished
/// This action is invoked when a document is being unpublished.
/// </summary>
public class ActionUnpublish : IAction
{
/// <summary>
/// The unique action letter
/// </summary>
/// <inheritdoc cref="IAction.ActionLetter"/>
public const char ActionLetter = 'Z';
/// <inheritdoc />
/// <inheritdoc cref="IAction.ActionAlias"/>
public const string ActionAlias = "unpublish";
/// <inheritdoc/>
public char Letter => ActionLetter;
/// <inheritdoc />
public string Alias => "unpublish";
/// <inheritdoc/>
public string Alias => ActionAlias;
/// <inheritdoc />
public string Category => Constants.Conventions.PermissionCategories.ContentCategory;
+9 -8
View File
@@ -1,23 +1,24 @@
// Copyright (c) Umbraco.
// Copyright (c) Umbraco.
// See LICENSE for more details.
namespace Umbraco.Cms.Core.Actions;
/// <summary>
/// This action is invoked when copying a document or media
/// This action is invoked when copying a document or media.
/// </summary>
public class ActionUpdate : IAction
{
/// <summary>
/// The unique action letter
/// </summary>
/// <inheritdoc cref="IAction.ActionLetter"/>
public const char ActionLetter = 'A';
/// <inheritdoc />
/// <inheritdoc cref="IAction.ActionAlias"/>
public const string ActionAlias = "update";
/// <inheritdoc/>
public char Letter => ActionLetter;
/// <inheritdoc />
public string Alias => "update";
/// <inheritdoc/>
public string Alias => ActionAlias;
/// <inheritdoc />
public string Category => Constants.Conventions.PermissionCategories.ContentCategory;
+9 -2
View File
@@ -13,8 +13,14 @@ namespace Umbraco.Cms.Core.Actions;
/// </remarks>
public interface IAction : IDiscoverable
{
/// <inheritdoc cref="Letter"/>
const char ActionLetter = default;
/// <inheritdoc cref="Alias"/>
const string ActionAlias = default;
/// <summary>
/// Gets the letter used to assign a permission (must be unique)
/// Gets the letter used to assign a permission (must be unique).
/// </summary>
char Letter { get; }
@@ -34,7 +40,8 @@ public interface IAction : IDiscoverable
string Icon { get; }
/// <summary>
/// Gets the alias for this action (must be unique)
/// Gets the alias for this action (must be unique).
/// This is all lower-case because of case sensitive filesystems, see issue: https://github.com/umbraco/Umbraco-CMS/issues/11670.
/// </summary>
string Alias { get; }
@@ -84,8 +84,8 @@ public sealed class ContentCacheRefresher : PayloadCacheRefresherBase<ContentCac
isolatedCache.ClearOfType<IContent>((k, v) => v.Path?.Contains(pathid) ?? false);
}
// if the item is being completely removed, we need to refresh the domains cache if any domain was assigned to the content
if (payload.ChangeTypes.HasTypesAny(TreeChangeTypes.Remove))
// if the item is not a blueprint and is being completely removed, we need to refresh the domains cache if any domain was assigned to the content
if (payload.Blueprint is false && payload.ChangeTypes.HasTypesAny(TreeChangeTypes.Remove))
{
idsRemoved.Add(payload.Id);
}
@@ -120,7 +120,11 @@ public sealed class ContentCacheRefresher : PayloadCacheRefresherBase<ContentCac
// should rename it, and then, this is only for Deploy, and then, ???
// if (Suspendable.PageCacheRefresher.CanUpdateDocumentCache)
// ...
NotifyPublishedSnapshotService(_publishedSnapshotService, AppCaches, payloads);
if (payloads.Any(x => x.Blueprint is false))
{
// Only notify if the payload contains actual (non-blueprint) contents
NotifyPublishedSnapshotService(_publishedSnapshotService, AppCaches, payloads);
}
base.Refresh(payloads);
}
@@ -157,8 +161,13 @@ public sealed class ContentCacheRefresher : PayloadCacheRefresherBase<ContentCac
}
}
// TODO (V14): Change into a record
public class JsonPayload
{
public JsonPayload()
{ }
[Obsolete("Use the default constructor and property initializers.")]
public JsonPayload(int id, Guid? key, TreeChangeTypes changeTypes)
{
Id = id;
@@ -166,11 +175,13 @@ public sealed class ContentCacheRefresher : PayloadCacheRefresherBase<ContentCac
ChangeTypes = changeTypes;
}
public int Id { get; }
public int Id { get; init; }
public Guid? Key { get; }
public Guid? Key { get; init; }
public TreeChangeTypes ChangeTypes { get; }
public TreeChangeTypes ChangeTypes { get; init; }
public bool Blueprint { get; init; }
}
#endregion
@@ -88,10 +88,6 @@ public sealed class DataTypeCacheRefresher : PayloadCacheRefresherBase<DataTypeC
}
}
// TODO: not sure I like these?
TagsValueConverter.ClearCaches();
SliderValueConverter.ClearCaches();
// refresh the models and cache
_publishedModelFactory.WithSafeLiveFactoryReset(() =>
_publishedSnapshotService.Notify(payloads));
@@ -134,8 +134,14 @@ public sealed class LanguageCacheRefresher : PayloadCacheRefresherBase<LanguageC
ContentCacheRefresher.RefreshContentTypes(AppCaches); // we need to evict all IContent items
// now refresh all nucache
ContentCacheRefresher.JsonPayload[] clearContentPayload =
new[] { new ContentCacheRefresher.JsonPayload(0, null, TreeChangeTypes.RefreshAll) };
ContentCacheRefresher.JsonPayload[] clearContentPayload = new[]
{
new ContentCacheRefresher.JsonPayload()
{
ChangeTypes = TreeChangeTypes.RefreshAll
}
};
ContentCacheRefresher.NotifyPublishedSnapshotService(_publishedSnapshotService, AppCaches, clearContentPayload);
}
+31 -8
View File
@@ -9,6 +9,9 @@ namespace Umbraco.Cms.Core.Cache;
/// </summary>
public class ObjectCacheAppCache : IAppPolicyCache, IDisposable
{
private static readonly TimeSpan _readLockTimeout = TimeSpan.FromSeconds(5);
private static readonly TimeSpan _writeLockTimeout = TimeSpan.FromSeconds(5);
private readonly ReaderWriterLockSlim _locker = new(LockRecursionPolicy.SupportsRecursion);
private bool _disposedValue;
@@ -33,7 +36,10 @@ public class ObjectCacheAppCache : IAppPolicyCache, IDisposable
Lazy<object?>? result;
try
{
_locker.EnterReadLock();
if (_locker.TryEnterReadLock(_readLockTimeout) is false)
{
throw new TimeoutException("Timeout exceeded to the memory cache when getting item");
}
result = MemoryCache.Get(key) as Lazy<object?>; // null if key not found
}
finally
@@ -195,7 +201,10 @@ public class ObjectCacheAppCache : IAppPolicyCache, IDisposable
{
try
{
_locker.EnterWriteLock();
if (_locker.TryEnterWriteLock(_writeLockTimeout) is false)
{
throw new TimeoutException("Timeout exceeded to the memory cache when clearing item");
}
if (MemoryCache[key] == null)
{
return;
@@ -223,8 +232,10 @@ public class ObjectCacheAppCache : IAppPolicyCache, IDisposable
var isInterface = type.IsInterface;
try
{
_locker.EnterWriteLock();
if (_locker.TryEnterWriteLock(_writeLockTimeout) is false)
{
throw new TimeoutException("Timeout exceeded to the memory cache when clearing by type");
}
// ToArray required to remove
foreach (var key in MemoryCache
.Where(x =>
@@ -259,7 +270,10 @@ public class ObjectCacheAppCache : IAppPolicyCache, IDisposable
{
try
{
_locker.EnterWriteLock();
if (_locker.TryEnterWriteLock(_writeLockTimeout) is false)
{
throw new TimeoutException("Timeout exceeded to the memory cache when clearing by generic type");
}
Type typeOfT = typeof(T);
var isInterface = typeOfT.IsInterface;
@@ -296,7 +310,10 @@ public class ObjectCacheAppCache : IAppPolicyCache, IDisposable
{
try
{
_locker.EnterWriteLock();
if (_locker.TryEnterWriteLock(_writeLockTimeout) is false)
{
throw new TimeoutException("Timeout exceeded to the memory cache when clearing generic type with predicate");
}
Type typeOfT = typeof(T);
var isInterface = typeOfT.IsInterface;
@@ -338,7 +355,10 @@ public class ObjectCacheAppCache : IAppPolicyCache, IDisposable
{
try
{
_locker.EnterWriteLock();
if (_locker.TryEnterWriteLock(_writeLockTimeout) is false)
{
throw new TimeoutException("Timeout exceeded to the memory cache when clearing with prefix");
}
// ToArray required to remove
foreach (var key in MemoryCache
@@ -365,7 +385,10 @@ public class ObjectCacheAppCache : IAppPolicyCache, IDisposable
try
{
_locker.EnterWriteLock();
if (_locker.TryEnterWriteLock(_writeLockTimeout) is false)
{
throw new TimeoutException("Timeout exceeded to the memory cach when clearing by regex");
}
// ToArray required to remove
foreach (var key in MemoryCache
@@ -3,30 +3,26 @@ using System.Collections;
namespace Umbraco.Cms.Core.Composing;
/// <summary>
/// Provides a base class for builder collections.
/// Provides a base class for builder collections.
/// </summary>
/// <typeparam name="TItem">The type of the items.</typeparam>
public abstract class BuilderCollectionBase<TItem> : IBuilderCollection<TItem>
{
private readonly LazyReadOnlyCollection<TItem> _items;
/// Initializes a new instance of the
/// <see cref="BuilderCollectionBase{TItem}" />
/// with items.
/// <summary>
/// Initializes a new instance of the <see cref="BuilderCollectionBase{TItem}" /> with items.
/// </summary>
/// <param name="items">The items.</param>
public BuilderCollectionBase(Func<IEnumerable<TItem>> items) => _items = new LazyReadOnlyCollection<TItem>(items);
public BuilderCollectionBase(Func<IEnumerable<TItem>> items)
=> _items = new LazyReadOnlyCollection<TItem>(items);
/// <inheritdoc />
public int Count => _items.Count;
/// <summary>
/// Gets an enumerator.
/// </summary>
/// <inheritdoc />
public IEnumerator<TItem> GetEnumerator() => _items.GetEnumerator();
/// <summary>
/// Gets an enumerator.
/// </summary>
/// <inheritdoc />
IEnumerator IEnumerable.GetEnumerator() => GetEnumerator();
}
@@ -1,13 +1,16 @@
namespace Umbraco.Cms.Core.Composing;
/// <summary>
/// Represents a builder collection, ie an immutable enumeration of items.
/// Represents a builder collection, ie an immutable enumeration of items.
/// </summary>
/// <typeparam name="TItem">The type of the items.</typeparam>
public interface IBuilderCollection<out TItem> : IEnumerable<TItem>
{
/// <summary>
/// Gets the number of items in the collection.
/// Gets the number of items in the collection.
/// </summary>
/// <value>
/// The count.
/// </value>
int Count { get; }
}
+10 -1
View File
@@ -21,7 +21,7 @@ public class TypeFinder : ITypeFinder
/// its an exact name match
/// NOTE this means that "foo." will NOT exclude "foo.dll" but only "foo.*.dll"
/// </remarks>
internal static readonly string[] KnownAssemblyExclusionFilter =
internal static string[] KnownAssemblyExclusionFilter =
{
"mscorlib,", "netstandard,", "System,", "Antlr3.", "AutoMapper,", "AutoMapper.", "Autofac,", // DI
"Autofac.", "AzureDirectory,", "Castle.", // DI, tests
@@ -49,11 +49,20 @@ public class TypeFinder : ITypeFinder
private string[]? _assembliesAcceptingLoadExceptions;
private volatile HashSet<Assembly>? _localFilteredAssemblyCache;
[Obsolete("Please use the constructor taking all parameters. This constructor will be removed in V14.")]
public TypeFinder(ILogger<TypeFinder> logger, IAssemblyProvider assemblyProvider, ITypeFinderConfig? typeFinderConfig = null)
: this(logger, assemblyProvider, null, typeFinderConfig)
{ }
public TypeFinder(ILogger<TypeFinder> logger, IAssemblyProvider assemblyProvider, string[]? additionalExlusionAssemblies, ITypeFinderConfig? typeFinderConfig = null)
{
_logger = logger ?? throw new ArgumentNullException(nameof(logger));
_assemblyProvider = assemblyProvider;
_typeFinderConfig = typeFinderConfig;
if (additionalExlusionAssemblies is not null)
{
KnownAssemblyExclusionFilter = KnownAssemblyExclusionFilter.Union(additionalExlusionAssemblies).ToArray();
}
}
/// <inheritdoc />
@@ -10,9 +10,9 @@ public static class ContentSettingsExtensions
/// Allow upload if extension is whitelisted OR if there is no whitelist and extension is NOT blacklisted.
/// </summary>
public static bool IsFileAllowedForUpload(this ContentSettings contentSettings, string extension) =>
contentSettings.AllowedUploadFiles.Any(x => x.InvariantEquals(extension)) ||
(contentSettings.AllowedUploadFiles.Any() == false &&
contentSettings.DisallowedUploadFiles.Any(x => x.InvariantEquals(extension)) == false);
contentSettings.AllowedUploadedFileExtensions.Any(x => x.InvariantEquals(extension)) ||
(contentSettings.AllowedUploadedFileExtensions.Any() == false &&
contentSettings.DisallowedUploadedFileExtensions.Any(x => x.InvariantEquals(extension)) == false);
/// <summary>
/// Gets the auto-fill configuration for a specified property alias.
@@ -7,7 +7,8 @@ namespace Umbraco.Cms.Core.Configuration.Models;
/// Typed configuration options for active directory settings.
/// </summary>
[UmbracoOptions(Constants.Configuration.ConfigActiveDirectory)]
[Obsolete("This is not used anymore. Will be removed in Umbraco 12")]public class ActiveDirectorySettings
[Obsolete("This is not used anymore. Will be removed in Umbraco 12")]
public class ActiveDirectorySettings
{
/// <summary>
/// Gets or sets a value for the Active Directory domain.
@@ -196,11 +196,13 @@ public class ContentSettings
/// Gets or sets a value for the collection of file extensions that are disallowed for upload.
/// </summary>
[DefaultValue(StaticDisallowedUploadFiles)]
[Obsolete("Please use DisAllowedUploadedFileExtensions instead, scheduled for removal in V13")]
public IEnumerable<string> DisallowedUploadFiles { get; set; } = StaticDisallowedUploadFiles.Split(',');
/// <summary>
/// Gets or sets a value for the collection of file extensions that are allowed for upload.
/// </summary>
[Obsolete("Please use AllowedUploadedFileExtensions instead, scheduled for removal in V13")]
public IEnumerable<string> AllowedUploadFiles { get; set; } = Array.Empty<string>();
/// <summary>
@@ -249,4 +251,20 @@ public class ContentSettings
/// </summary>
[DefaultValue(StaticAllowEditInvariantFromNonDefault)]
public bool AllowEditInvariantFromNonDefault { get; set; } = StaticAllowEditInvariantFromNonDefault;
/// <summary>
/// Gets or sets a value for the collection of file extensions that are allowed for upload.
/// </summary>
public string[] AllowedUploadedFileExtensions { get; set; } = Array.Empty<string>();
/// <summary>
/// Gets or sets a value for the collection of file extensions that are disallowed for upload.
/// </summary>
[DefaultValue(StaticDisallowedUploadFiles)]
public string[] DisallowedUploadedFileExtensions { get; set; } = StaticDisallowedUploadFiles.Split(',');
/// <summary>
/// Gets or sets the allowed external host for media. If empty only relative paths are allowed.
/// </summary>
public string[] AllowedMediaHosts { get; set; } = Array.Empty<string>();
}
@@ -33,6 +33,7 @@ public class GlobalSettings
internal const bool StaticSanitizeTinyMce = false;
internal const int StaticMainDomReleaseSignalPollingInterval = 2000;
private const bool StaticForceCombineUrlPathLeftToRight = true;
private const bool StaticShowMaintenancePageWhenInUpgradeState = true;
/// <summary>
/// Gets or sets a value for the reserved URLs (must end with a comma).
@@ -252,4 +253,7 @@ public class GlobalSettings
/// </example>
[DefaultValue(StaticForceCombineUrlPathLeftToRight)]
public bool ForceCombineUrlPathLeftToRight { get; set; } = StaticForceCombineUrlPathLeftToRight;
[DefaultValue(StaticShowMaintenancePageWhenInUpgradeState)]
public bool ShowMaintenancePageWhenInUpgradeState { get; set; } = StaticShowMaintenancePageWhenInUpgradeState;
}
@@ -39,6 +39,6 @@ public class HealthChecksNotificationSettings
/// <summary>
/// Gets or sets a value for the collection of health checks that are disabled for notifications.
/// </summary>
public IEnumerable<DisabledHealthCheckSettings> DisabledChecks { get; set; } =
Enumerable.Empty<DisabledHealthCheckSettings>();
public List<DisabledHealthCheckSettings> DisabledChecks { get; set; } =
new List<DisabledHealthCheckSettings>();
}
@@ -12,8 +12,8 @@ public class HealthChecksSettings
/// <summary>
/// Gets or sets a value for the collection of healthchecks that are disabled.
/// </summary>
public IEnumerable<DisabledHealthCheckSettings> DisabledChecks { get; set; } =
Enumerable.Empty<DisabledHealthCheckSettings>();
public List<DisabledHealthCheckSettings> DisabledChecks { get; set; } =
new List<DisabledHealthCheckSettings>();
/// <summary>
/// Gets or sets a value for the healthcheck notification settings.
@@ -0,0 +1,18 @@
using System.ComponentModel;
namespace Umbraco.Cms.Core.Configuration.Models;
/// <summary>
/// Typed configuration options for index creator settings.
/// </summary>
[UmbracoOptions(Constants.Configuration.ConfigIndexing)]
public class IndexingSettings
{
private const bool StaticExplicitlyIndexEachNestedProperty = true;
/// <summary>
/// Gets or sets a value for whether each nested property should have it's own indexed value. Requires a rebuild of indexes when changed.
/// </summary>
[DefaultValue(StaticExplicitlyIndexEachNestedProperty)]
public bool ExplicitlyIndexEachNestedProperty { get; set; } = StaticExplicitlyIndexEachNestedProperty;
}
@@ -0,0 +1,16 @@
// Copyright (c) Umbraco.
// See LICENSE for more details.
namespace Umbraco.Cms.Core.Configuration.Models;
/// <summary>
/// Configuration options for the Marketplace.
/// </summary>
[UmbracoOptions(Constants.Configuration.ConfigMarketplace)]
public class MarketplaceSettings
{
/// <summary>
/// Gets or sets the additional parameters that are sent to the Marketplace.
/// </summary>
public Dictionary<string, string> AdditionalParameters { get; set; } = new ();
}
@@ -14,6 +14,7 @@ public class NuCacheSettings
internal const string StaticNuCacheSerializerType = "MessagePack";
internal const int StaticSqlPageSize = 1000;
internal const int StaticKitBatchSize = 1;
internal const bool StaticUsePagedSqlQuery = true;
/// <summary>
/// Gets or sets a value defining the BTree block size.
@@ -40,4 +41,7 @@ public class NuCacheSettings
public int KitBatchSize { get; set; } = StaticKitBatchSize;
public bool UnPublishedContentCompression { get; set; } = false;
[DefaultValue(StaticUsePagedSqlQuery)]
public bool UsePagedSqlQuery { get; set; } = true;
}
@@ -116,18 +116,18 @@ public class RichTextEditorSettings
new Dictionary<string, string> { ["entity_encoding"] = "raw" };
/// <summary>
/// HTML RichText Editor TinyMCE Commands
/// HTML RichText Editor TinyMCE Commands.
/// </summary>
/// WB-TODO Custom Array of objects
public RichTextEditorCommand[] Commands { get; set; } = Default_commands;
/// <summary>
/// HTML RichText Editor TinyMCE Plugins
/// HTML RichText Editor TinyMCE Plugins.
/// </summary>
public string[] Plugins { get; set; } = Default_plugins;
/// <summary>
/// HTML RichText Editor TinyMCE Custom Config
/// HTML RichText Editor TinyMCE Custom Config.
/// </summary>
/// WB-TODO Custom Dictionary
public IDictionary<string, string> CustomConfig { get; set; } = Default_custom_config;
@@ -138,7 +138,7 @@ public class RichTextEditorSettings
public string ValidElements { get; set; } = StaticValidElements;
/// <summary>
/// Invalid HTML elements for RichText Editor
/// Invalid HTML elements for RichText Editor.
/// </summary>
[DefaultValue(StaticInvalidElements)]
public string InvalidElements { get; set; } = StaticInvalidElements;
@@ -2,6 +2,7 @@
// See LICENSE for more details.
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
namespace Umbraco.Cms.Core.Configuration.Models;
@@ -22,6 +23,11 @@ public class SecuritySettings
internal const string StaticAllowedUserNameCharacters =
"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-._@+\\";
internal const int StaticMemberDefaultLockoutTimeInMinutes = 30 * 24 * 60;
internal const int StaticUserDefaultLockoutTimeInMinutes = 30 * 24 * 60;
private const long StaticUserDefaultFailedLoginDurationInMilliseconds = 1000;
private const long StaticUserMinimumFailedLoginDurationInMilliseconds = 250;
/// <summary>
/// Gets or sets a value indicating whether to keep the user logged in.
/// </summary>
@@ -65,12 +71,14 @@ public class SecuritySettings
/// <summary>
/// Gets or sets a value for the user password settings.
/// </summary>
public UserPasswordConfigurationSettings? UserPassword { get; set; }
[Obsolete("This no longer works. You can now inject this by using IOptions<UserPasswordConfigurationSettings> instead, scheduled for removal in v13")]
public UserPasswordConfigurationSettings? UserPassword { get; set; } = new();
/// <summary>
/// Gets or sets a value for the member password settings.
/// </summary>
public MemberPasswordConfigurationSettings? MemberPassword { get; set; }
[Obsolete("This no longer works. You can now inject this by using IOptions<MemberPasswordConfigurationSettings> instead, scheduled for removal in v13")]
public MemberPasswordConfigurationSettings? MemberPassword { get; set; } = new();
/// <summary>
/// Gets or sets a value indicating whether to bypass the two factor requirement in Umbraco when using external login
@@ -86,10 +94,44 @@ public class SecuritySettings
[DefaultValue(StaticUserBypassTwoFactorForExternalLogins)]
public bool UserBypassTwoFactorForExternalLogins { get; set; } = StaticUserBypassTwoFactorForExternalLogins;
/// <summary>
/// Gets or sets a value for how long (in minutes) a member is locked out when a lockout occurs.
/// </summary>
[DefaultValue(StaticMemberDefaultLockoutTimeInMinutes)]
public int MemberDefaultLockoutTimeInMinutes { get; set; } = StaticMemberDefaultLockoutTimeInMinutes;
/// <summary>
/// Gets or sets a value for how long (in minutes) a user is locked out when a lockout occurs.
/// </summary>
[DefaultValue(StaticUserDefaultLockoutTimeInMinutes)]
public int UserDefaultLockoutTimeInMinutes { get; set; } = StaticUserDefaultLockoutTimeInMinutes;
/// <summary>
/// Gets or sets a value indicating whether to allow editing invariant properties from a non-default language variation.
/// </summary>
[Obsolete("Use ContentSettings.AllowEditFromInvariant instead")]
[DefaultValue(StaticAllowEditInvariantFromNonDefault)]
public bool AllowEditInvariantFromNonDefault { get; set; } = StaticAllowEditInvariantFromNonDefault;
/// <summary>
/// Gets or sets the default duration (in milliseconds) of failed login attempts.
/// </summary>
/// <value>
/// The default duration (in milliseconds) of failed login attempts.
/// </value>
/// <remarks>
/// The user login endpoint ensures that failed login attempts take at least as long as the average successful login.
/// However, if no successful logins have occurred, this value is used as the default duration.
/// </remarks>
[DefaultValue(StaticUserDefaultFailedLoginDurationInMilliseconds)]
public long UserDefaultFailedLoginDurationInMilliseconds { get; set; } = StaticUserDefaultFailedLoginDurationInMilliseconds;
/// <summary>
/// Gets or sets the minimum duration (in milliseconds) of failed login attempts.
/// </summary>
/// <value>
/// The minimum duration (in milliseconds) of failed login attempts.
/// </value>
[DefaultValue(StaticUserMinimumFailedLoginDurationInMilliseconds)]
public long UserMinimumFailedLoginDurationInMilliseconds { get; set; } = StaticUserMinimumFailedLoginDurationInMilliseconds;
}
@@ -22,4 +22,9 @@ public class TypeFinderSettings
/// scanning for plugins based on different root referenced assemblies you can add the assembly name to this list.
/// </summary>
public IEnumerable<string>? AdditionalEntryAssemblies { get; set; }
/// <summary>
/// Gets or sets a value for the assemblies that will be excluded from scanning.
/// </summary>
public string[] AdditionalAssemblyExclusionEntries { get; set; } = Array.Empty<string>();
}
@@ -19,7 +19,7 @@ public class UmbracoPluginSettings
".css", // styles
".js", // scripts
".jpg", ".jpeg", ".gif", ".png", ".svg", // images
".eot", ".ttf", ".woff", // fonts
".eot", ".ttf", ".woff", ".woff2", // fonts
".xml", ".json", ".config", // configurations
".lic", // license
".map", // js map files
@@ -27,6 +27,7 @@ public static partial class Constants
public const string ConfigHostingDebug = ConfigHostingPrefix + "Debug";
public const string ConfigCustomErrorsMode = ConfigCustomErrorsPrefix + "Mode";
public const string ConfigActiveDirectory = ConfigPrefix + "ActiveDirectory";
public const string ConfigMarketplace = ConfigPrefix + "Marketplace";
public const string ConfigLegacyPasswordMigration = ConfigPrefix + "LegacyPasswordMigration";
public const string ConfigContent = ConfigPrefix + "Content";
public const string ConfigCoreDebug = ConfigCorePrefix + "Debug";
@@ -37,6 +38,7 @@ public static partial class Constants
public const string ConfigHosting = ConfigPrefix + "Hosting";
public const string ConfigImaging = ConfigPrefix + "Imaging";
public const string ConfigExamine = ConfigPrefix + "Examine";
public const string ConfigIndexing = ConfigPrefix + "Indexing";
public const string ConfigKeepAlive = ConfigPrefix + "KeepAlive";
public const string ConfigLogging = ConfigPrefix + "Logging";
public const string ConfigMemberPassword = ConfigPrefix + "Security:MemberPassword";
+7 -2
View File
@@ -338,7 +338,7 @@ public static partial class Constants
public const string RelateParentMediaFolderOnDeleteAlias = "relateParentMediaFolderOnDelete";
/// <summary>
/// Returns the types of relations that are automatically tracked
/// Returns the types of relations that are automatically tracked.
/// </summary>
/// <remarks>
/// Developers should not manually use these relation types since they will all be cleared whenever an entity
@@ -346,7 +346,12 @@ public static partial class Constants
/// </remarks>
public static string[] AutomaticRelationTypes { get; } = { RelatedMediaAlias, RelatedDocumentAlias };
// TODO: return a list of built in types so we can use that to prevent deletion in the uI
// TODO: return a list of built in types so we can use that to prevent deletion in the UI
}
public static class Udi
{
public const string Prefix = "umb://";
}
}
}
+12
View File
@@ -0,0 +1,12 @@
namespace Umbraco.Cms.Core;
public static partial class Constants
{
/// <summary>
/// Defines the constants used for the Umbraco Marketplace.
/// </summary>
public static class Marketplace
{
public const string Url = "https://marketplace.umbraco.com";
}
}
@@ -5,6 +5,7 @@ public static partial class Constants
/// <summary>
/// Defines the constants used for the Umbraco package repository
/// </summary>
[Obsolete("This is no longer used and will be removed in Umbraco 13")]
public static class PackageRepository
{
public const string RestApiBaseUrl = "https://our.umbraco.com/webapi/packages/v1";
@@ -1,4 +1,3 @@
using System.ComponentModel;
using Umbraco.Cms.Core.PropertyEditors;
namespace Umbraco.Cms.Core;
@@ -44,7 +43,6 @@ public static partial class Constants
/// <summary>
/// Block Grid.
/// </summary>
[EditorBrowsable(EditorBrowsableState.Never)] // TODO: Remove this for V11/V10.4
public const string BlockGrid = "Umbraco.BlockGrid";
/// <summary>
@@ -10,6 +10,7 @@ public static partial class Constants
public const string GetVersion = "Umbraco.Core.VersionableRepository.GetVersion";
public const string GetVersions = "Umbraco.Core.VersionableRepository.GetVersions";
public const string EnsureUniqueNodeName = "Umbraco.Core.VersionableRepository.EnsureUniqueNodeName";
public const string SortOrderExists = "Umbraco.Core.VersionableRepository.SortOrderExists";
public const string GetSortOrder = "Umbraco.Core.VersionableRepository.GetSortOrder";
public const string GetParentNode = "Umbraco.Core.VersionableRepository.GetParentNode";
public const string GetReservedId = "Umbraco.Core.VersionableRepository.GetReservedId";
+1
View File
@@ -28,5 +28,6 @@ public static partial class Constants
public static string IsDebug = "IsDebug";
public static string DatabaseProvider = "DatabaseProvider";
public static string CurrentServerRole = "CurrentServerRole";
public static string BackofficeExternalLoginProviderCount = "BackofficeExternalLoginProviderCount";
}
}
@@ -4,7 +4,7 @@ public class AnalyticsDashboard : IDashboard
{
public string Alias => "settingsAnalytics";
public string[] Sections => new[] { "settings" };
public string[] Sections => new[] { Constants.Applications.Settings };
public string View => "views/dashboard/settings/analytics.html";
@@ -7,7 +7,7 @@ public class ContentDashboard : IDashboard
{
public string Alias => "contentIntro";
public string[] Sections => new[] { "content" };
public string[] Sections => new[] { Constants.Applications.Content };
public string View => "views/dashboard/default/startupdashboardintro.html";
@@ -7,7 +7,7 @@ public class ExamineDashboard : IDashboard
{
public string Alias => "settingsExamine";
public string[] Sections => new[] { "settings" };
public string[] Sections => new[] { Constants.Applications.Settings };
public string View => "views/dashboard/settings/examinemanagement.html";
@@ -7,7 +7,7 @@ public class HealthCheckDashboard : IDashboard
{
public string Alias => "settingsHealthCheck";
public string[] Sections => new[] { "settings" };
public string[] Sections => new[] { Constants.Applications.Settings };
public string View => "views/dashboard/settings/healthcheck.html";
@@ -7,7 +7,7 @@ public class MediaDashboard : IDashboard
{
public string Alias => "mediaFolderBrowser";
public string[] Sections => new[] { "media" };
public string[] Sections => new[] { Constants.Applications.Media };
public string View => "views/dashboard/media/mediafolderbrowser.html";
@@ -7,7 +7,7 @@ public class MembersDashboard : IDashboard
{
public string Alias => "memberIntro";
public string[] Sections => new[] { "member" };
public string[] Sections => new[] { Constants.Applications.Members };
public string View => "views/dashboard/members/membersdashboardvideos.html";
@@ -7,7 +7,7 @@ public class ModelsBuilderDashboard : IDashboard
{
public string Alias => "settingsModelsBuilder";
public string[] Sections => new[] { "settings" };
public string[] Sections => new[] {Constants.Applications.Settings };
public string View => "views/dashboard/settings/modelsbuildermanagement.html";
@@ -7,7 +7,7 @@ public class ProfilerDashboard : IDashboard
{
public string Alias => "settingsProfiler";
public string[] Sections => new[] { "settings" };
public string[] Sections => new[] { Constants.Applications.Settings };
public string View => "views/dashboard/settings/profiler.html";
@@ -7,7 +7,7 @@ public class PublishedStatusDashboard : IDashboard
{
public string Alias => "settingsPublishedStatus";
public string[] Sections => new[] { "settings" };
public string[] Sections => new[] { Constants.Applications.Settings };
public string View => "views/dashboard/settings/publishedstatus.html";
@@ -7,7 +7,7 @@ public class RedirectUrlDashboard : IDashboard
{
public string Alias => "contentRedirectManager";
public string[] Sections => new[] { "content" };
public string[] Sections => new[] { Constants.Applications.Content };
public string View => "views/dashboard/content/redirecturls.html";
@@ -7,7 +7,7 @@ public class SettingsDashboard : IDashboard
{
public string Alias => "settingsWelcome";
public string[] Sections => new[] { "settings" };
public string[] Sections => new[] { Constants.Applications.Settings };
public string View => "views/dashboard/settings/settingsdashboardintro.html";
@@ -1,5 +1,6 @@
using Umbraco.Cms.Core.Composing;
using Umbraco.Cms.Core.Dashboards;
using Umbraco.Cms.Core.Manifest;
using Umbraco.Cms.Core.Media;
using Umbraco.Cms.Core.Models.ContentEditing;
using Umbraco.Cms.Core.Routing;
@@ -60,6 +61,18 @@ public static partial class UmbracoBuilderExtensions
return builder;
}
/// <summary>
/// Register a manifest filter
/// </summary>
/// <typeparam name="T">The type of the manifest filter.</typeparam>
/// <param name="builder">The Builder.</param>
public static IUmbracoBuilder AddManifestFilter<T>(this IUmbracoBuilder builder)
where T : class, IManifestFilter
{
builder.ManifestFilters().Append<T>();
return builder;
}
/// <summary>
/// Register a media url provider.
/// </summary>
@@ -50,6 +50,8 @@ public static partial class UmbracoBuilderExtensions
builder
.AddUmbracoOptions<ModelsBuilderSettings>()
.AddUmbracoOptions<ActiveDirectorySettings>()
.AddUmbracoOptions<IndexCreatorSettings>()
.AddUmbracoOptions<MarketplaceSettings>()
.AddUmbracoOptions<ContentSettings>()
.AddUmbracoOptions<CoreDebugSettings>()
.AddUmbracoOptions<ExceptionFilterSettings>()
@@ -63,7 +65,7 @@ public static partial class UmbracoBuilderExtensions
.AddUmbracoOptions<HealthChecksSettings>()
.AddUmbracoOptions<HostingSettings>()
.AddUmbracoOptions<ImagingSettings>()
.AddUmbracoOptions<IndexCreatorSettings>()
.AddUmbracoOptions<IndexingSettings>()
.AddUmbracoOptions<KeepAliveSettings>()
.AddUmbracoOptions<LoggingSettings>()
.AddUmbracoOptions<MemberPasswordConfigurationSettings>()
@@ -119,6 +121,32 @@ public static partial class UmbracoBuilderExtensions
}
});
// TODO: Remove this in V13
// This is to avoid a breaking change in ContentSettings, if the old AllowedFileUploads has a value, and the new
// AllowedFileUploadExtensions does not, copy the value over, if the new has a value, use that instead.
builder.Services.Configure<ContentSettings>(settings =>
{
// We have to use Config.GetSection().Get<string[]>, as the GetSection.GetValue<string[]> simply cannot retrieve a string array
var allowedUploadedFileExtensionsValue = builder.Config.GetSection($"{Constants.Configuration.ConfigContent}:{nameof(ContentSettings.AllowedUploadedFileExtensions)}").Get<string[]>();
var allowedUploadFilesValue = builder.Config.GetSection($"{Constants.Configuration.ConfigContent}:{nameof(ContentSettings.AllowedUploadFiles)}").Get<string[]>();
if (allowedUploadedFileExtensionsValue is null && allowedUploadFilesValue is not null)
{
settings.AllowedUploadedFileExtensions = allowedUploadFilesValue;
}
});
// TODO: Remove this in V13
builder.Services.Configure<ContentSettings>(settings =>
{
var disallowedUploadedFileExtensionsValue = builder.Config.GetSection($"{Constants.Configuration.ConfigContent}:{nameof(ContentSettings.DisallowedUploadedFileExtensions)}").Get<string[]>();
var disallowedUploadFilesValue = builder.Config.GetSection($"{Constants.Configuration.ConfigContent}:{nameof(ContentSettings.DisallowedUploadFiles)}").Get<string[]>();
if (disallowedUploadedFileExtensionsValue is null && disallowedUploadFilesValue is not null)
{
settings.DisallowedUploadedFileExtensions = disallowedUploadFilesValue;
}
});
return builder;
}
}
@@ -318,14 +318,19 @@ namespace Umbraco.Cms.Core.DependencyInjection
Services.AddSingleton<ConflictingPackageData>();
Services.AddSingleton<CompiledPackageXmlParser>();
// Register a noop IHtmlSanitizer to be replaced
// Register a noop IHtmlSanitizer & IMarkdownSanitizer to be replaced
Services.AddUnique<IHtmlSanitizer, NoopHtmlSanitizer>();
Services.AddUnique<IMarkdownSanitizer, NoopMarkdownSanitizer>();
Services.AddUnique<IPropertyTypeUsageService, PropertyTypeUsageService>();
Services.AddUnique<IDataTypeUsageService, DataTypeUsageService>();
Services.AddUnique<ICultureImpactFactory>(provider => new CultureImpactFactory(provider.GetRequiredService<IOptionsMonitor<ContentSettings>>()));
Services.AddUnique<IDictionaryService, DictionaryService>();
Services.AddUnique<ITemporaryMediaService, TemporaryMediaService>();
// Register filestream security analyzers
Services.AddUnique<IFileStreamSecurityValidator,FileStreamSecurityValidator>();
}
}
}
@@ -0,0 +1,10 @@
@using Umbraco.Extensions
@inherits Umbraco.Cms.Web.Common.Views.UmbracoViewPage<Umbraco.Cms.Core.Models.Blocks.BlockGridArea>
<div class="umb-block-grid__area"
data-area-col-span="@Model.ColumnSpan"
data-area-row-span="@Model.RowSpan"
data-area-alias="@Model.Alias"
style="--umb-block-grid--grid-columns: @Model.ColumnSpan;--umb-block-grid--area-column-span: @Model.ColumnSpan; --umb-block-grid--area-row-span: @Model.RowSpan;">
@await Html.GetBlockGridItemsHtmlAsync(Model)
</div>
@@ -8,12 +8,6 @@
style="--umb-block-grid--area-grid-columns: @(Model.AreaGridColumns?.ToString() ?? Model.GridColumns?.ToString() ?? "12");">
@foreach (var area in Model.Areas)
{
<div class="umb-block-grid__area"
data-area-col-span="@area.ColumnSpan"
data-area-row-span="@area.RowSpan"
data-area-alias="@area.Alias"
style="--umb-block-grid--grid-columns: @area.ColumnSpan;--umb-block-grid--area-column-span: @area.ColumnSpan; --umb-block-grid--area-row-span: @area.RowSpan;">
@await Html.GetBlockGridItemsHtmlAsync(area)
</div>
@await Html.GetBlockGridItemAreaHtmlAsync(area)
}
</div>
@@ -7,8 +7,6 @@
<div class="umb-block-grid__layout-container">
@foreach (var item in Model)
{
bool attrForceLeft = item.ForceLeft;
bool attrForceRight = item.ForceRight;
<div
class="umb-block-grid__layout-item"
data-content-element-type-alias="@item.Content.ContentType.Alias"
@@ -16,8 +14,6 @@
data-element-udi="@item.ContentUdi"
data-col-span="@item.ColumnSpan"
data-row-span="@item.RowSpan"
@(attrForceLeft ? "data-force-left" : null)
@(attrForceRight ? "data-force-right" : null)
style=" --umb-block-grid--item-column-span: @item.ColumnSpan; --umb-block-grid--item-row-span: @item.RowSpan; ">
@{
var partialViewName = "blockgrid/Components/" + item.Content.ContentType.Alias;
File diff suppressed because it is too large Load Diff

Some files were not shown because too many files have changed in this diff Show More