From 4bea40dfb4f91d8deb200927efe5988acf837c77 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 6 Dec 2023 12:18:18 +0000 Subject: [PATCH 01/15] Bump vite from 4.5.0 to 4.5.1 in /src/Umbraco.Web.UI.Login Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 4.5.0 to 4.5.1. - [Release notes](https://github.com/vitejs/vite/releases) - [Changelog](https://github.com/vitejs/vite/blob/v4.5.1/packages/vite/CHANGELOG.md) - [Commits](https://github.com/vitejs/vite/commits/v4.5.1/packages/vite) --- updated-dependencies: - dependency-name: vite dependency-type: direct:development ... Signed-off-by: dependabot[bot] --- src/Umbraco.Web.UI.Login/package-lock.json | 8 ++++---- src/Umbraco.Web.UI.Login/package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/Umbraco.Web.UI.Login/package-lock.json b/src/Umbraco.Web.UI.Login/package-lock.json index d7c296dd28..33fb905898 100644 --- a/src/Umbraco.Web.UI.Login/package-lock.json +++ b/src/Umbraco.Web.UI.Login/package-lock.json @@ -14,7 +14,7 @@ }, "devDependencies": { "typescript": "^5.2.2", - "vite": "^4.5.0" + "vite": "^4.5.1" }, "engines": { "node": ">=20.8", @@ -2555,9 +2555,9 @@ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" }, "node_modules/vite": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/vite/-/vite-4.5.0.tgz", - "integrity": "sha512-ulr8rNLA6rkyFAlVWw2q5YJ91v098AFQ2R0PRFwPzREXOUJQPtFUG0t+/ZikhaOCDqFoDhN6/v8Sq0o4araFAw==", + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/vite/-/vite-4.5.1.tgz", + "integrity": "sha512-AXXFaAJ8yebyqzoNB9fu2pHoo/nWX+xZlaRwoeYUxEqBO+Zj4msE5G+BhGBll9lYEKv9Hfks52PAF2X7qDYXQA==", "dev": true, "dependencies": { "esbuild": "^0.18.10", diff --git a/src/Umbraco.Web.UI.Login/package.json b/src/Umbraco.Web.UI.Login/package.json index 57c7793b75..b3295d6827 100644 --- a/src/Umbraco.Web.UI.Login/package.json +++ b/src/Umbraco.Web.UI.Login/package.json @@ -21,7 +21,7 @@ }, "devDependencies": { "typescript": "^5.2.2", - "vite": "^4.5.0" + "vite": "^4.5.1" }, "msw": { "workerDirectory": "public" From b97564ba3a366c430dec1a339f3415e63e572f0a Mon Sep 17 00:00:00 2001 From: Bjarne Fyrstenborg Date: Mon, 4 Dec 2023 11:59:02 +0100 Subject: [PATCH 02/15] Fix console errors in content type editor with single block mode --- .../blocklist/umbBlockListPropertyEditor.component.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/blocklist/umbBlockListPropertyEditor.component.js b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/blocklist/umbBlockListPropertyEditor.component.js index c08b93fc72..4ebb3ea2a9 100644 --- a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/blocklist/umbBlockListPropertyEditor.component.js +++ b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/blocklist/umbBlockListPropertyEditor.component.js @@ -256,7 +256,7 @@ updateClipboard(true); - if (vm.singleBlockMode && vm.layout.length == 0) { + if (vm.singleBlockMode && vm.layout.length == 0 && vm.availableBlockTypes?.length > 0) { var wasAdded = false; var blockType = vm.availableBlockTypes[0]; @@ -306,12 +306,13 @@ */ function ensureCultureData(content) { - if (!content) return; + if (!content || !vm.umbVariantContent) return; if (vm.umbVariantContent.editor.content.language) { // set the scaffolded content's language to the language of the current editor content.language = vm.umbVariantContent.editor.content.language; } + // currently we only ever deal with invariant content for blocks so there's only one content.variants[0].tabs.forEach(tab => { tab.properties.forEach(prop => { From 87b8023f2c413a0af229ab15b5541a8bcb4ed00e Mon Sep 17 00:00:00 2001 From: Bjarne Fyrstenborg Date: Thu, 7 Dec 2023 18:51:28 +0100 Subject: [PATCH 03/15] Fix typo in dictionary (#15380) --- .../common/directives/components/forms/umbcheckbox.directive.js | 2 +- .../directives/components/forms/umbradiobutton.directive.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/common/directives/components/forms/umbcheckbox.directive.js b/src/Umbraco.Web.UI.Client/src/common/directives/components/forms/umbcheckbox.directive.js index cafc8a9275..85bccbfbae 100644 --- a/src/Umbraco.Web.UI.Client/src/common/directives/components/forms/umbcheckbox.directive.js +++ b/src/Umbraco.Web.UI.Client/src/common/directives/components/forms/umbcheckbox.directive.js @@ -26,7 +26,7 @@ @param {string} value Set the value of the checkbox. @param {string} name Set the name of the checkbox. @param {string} text Set the text for the checkbox label. -@param {string} labelKey Set a dictinary/localization string for the checkbox label +@param {string} labelKey Set a dictionary/localization string for the checkbox label @param {string} serverValidationField Set the val-server-field of the checkbox. @param {boolean} disabled Set the checkbox to be disabled. @param {boolean} required Set the checkbox to be required. diff --git a/src/Umbraco.Web.UI.Client/src/common/directives/components/forms/umbradiobutton.directive.js b/src/Umbraco.Web.UI.Client/src/common/directives/components/forms/umbradiobutton.directive.js index a9d11b2b47..086aae6f42 100644 --- a/src/Umbraco.Web.UI.Client/src/common/directives/components/forms/umbradiobutton.directive.js +++ b/src/Umbraco.Web.UI.Client/src/common/directives/components/forms/umbradiobutton.directive.js @@ -26,7 +26,7 @@ @param {string} value Set the value of the radiobutton. @param {string} name Set the name of the radiobutton. @param {string} text Set the text for the radiobutton label. -@param {string} labelKey Set a dictinary/localization string for the checkbox label. +@param {string} labelKey Set a dictionary/localization string for the checkbox label. @param {string} serverValidationField Set the val-server-field of the radiobutton. @param {boolean} disabled Set the radiobutton to be disabled. @param {boolean} required Set the radiobutton to be required. From 67c8f098a083d69a8482e16131ccd26b62b2a52b Mon Sep 17 00:00:00 2001 From: Sebastiaan Janssen Date: Fri, 8 Dec 2023 12:42:29 +0100 Subject: [PATCH 04/15] Add login screen to the readme --- .github/BUILD.md | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/.github/BUILD.md b/.github/BUILD.md index ee0584528a..4f2523624a 100644 --- a/.github/BUILD.md +++ b/.github/BUILD.md @@ -40,18 +40,22 @@ You can also run the tasks manually on the command line: ``` cd src\Umbraco.Web.UI.Client -npm install +npm i npm run dev ``` -or +If you just want to build the UI Client to `Umbraco.Web.UI` then instead of running `dev`, you can do: `npm run build`. + +The login screen is a different frontend build, for that one you can run it as follows: ``` -cd src\Umbraco.Web.UI.Client -npm install -gulp dev +cd src\Umbraco.Web.UI.Login +npm i +npm run dev ``` +If you just want to build the Login screen to `Umbraco.Web.UI` then instead of running `dev`, you can do: `npm run build`. + **The initial Gulp build might take a long time - don't worry, this will be faster on subsequent runs.** You might run into [Gulp quirks](#gulp-quirks). From a36c7beabf2ca42b6d63fb154d8debd21c9eee0d Mon Sep 17 00:00:00 2001 From: Shannon Deminick Date: Tue, 2 Jan 2024 08:20:53 -0700 Subject: [PATCH 05/15] Decouple Lucene from Content Delivery API (#15493) * Decouples Lucene from the Content Delivery API * oops removes other refs --- .../UmbracoBuilderExtensions.cs | 2 ++ .../Services/ApiContentQueryProvider.cs | 5 ++-- .../QueryBuilders/ApiContentQueryFactory.cs | 26 +++++++++++++++++++ .../ApiContentQuerySelectorBuilder.cs | 17 +++++------- .../QueryBuilders/IApiContentQueryFactory.cs | 18 +++++++++++++ 5 files changed, 55 insertions(+), 13 deletions(-) create mode 100644 src/Umbraco.Cms.Api.Delivery/Services/QueryBuilders/ApiContentQueryFactory.cs create mode 100644 src/Umbraco.Cms.Api.Delivery/Services/QueryBuilders/IApiContentQueryFactory.cs diff --git a/src/Umbraco.Cms.Api.Delivery/DependencyInjection/UmbracoBuilderExtensions.cs b/src/Umbraco.Cms.Api.Delivery/DependencyInjection/UmbracoBuilderExtensions.cs index 9f56f591ce..5ecc856f3b 100644 --- a/src/Umbraco.Cms.Api.Delivery/DependencyInjection/UmbracoBuilderExtensions.cs +++ b/src/Umbraco.Cms.Api.Delivery/DependencyInjection/UmbracoBuilderExtensions.cs @@ -15,6 +15,7 @@ using Umbraco.Cms.Api.Delivery.Rendering; using Umbraco.Cms.Api.Delivery.Routing; using Umbraco.Cms.Api.Delivery.Security; using Umbraco.Cms.Api.Delivery.Services; +using Umbraco.Cms.Api.Delivery.Services.QueryBuilders; using Umbraco.Cms.Core; using Umbraco.Cms.Core.Configuration.Models; using Umbraco.Cms.Core.DeliveryApi; @@ -55,6 +56,7 @@ public static class UmbracoBuilderExtensions builder.Services.AddSingleton(); builder.Services.AddSingleton(); builder.Services.AddSingleton(); + builder.Services.AddSingleton(); builder.Services.AddSingleton(); builder.Services.AddTransient(); builder.Services.AddTransient(); diff --git a/src/Umbraco.Cms.Api.Delivery/Services/ApiContentQueryProvider.cs b/src/Umbraco.Cms.Api.Delivery/Services/ApiContentQueryProvider.cs index 5b191b5262..cafb27ad71 100644 --- a/src/Umbraco.Cms.Api.Delivery/Services/ApiContentQueryProvider.cs +++ b/src/Umbraco.Cms.Api.Delivery/Services/ApiContentQueryProvider.cs @@ -1,4 +1,4 @@ -using Examine; +using Examine; using Examine.Search; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; @@ -27,6 +27,7 @@ internal sealed class ApiContentQueryProvider : IApiContentQueryProvider public ApiContentQueryProvider( IExamineManager examineManager, ContentIndexHandlerCollection indexHandlers, + IApiContentQueryFactory apiContentQueryFactory, IOptions deliveryApiSettings, ILogger logger) { @@ -41,7 +42,7 @@ internal sealed class ApiContentQueryProvider : IApiContentQueryProvider // for the time being we're going to keep these as internal implementation details. // perhaps later on it will make sense to expose them through the DI. - _selectorBuilder = new ApiContentQuerySelectorBuilder(deliveryApiSettings.Value); + _selectorBuilder = new ApiContentQuerySelectorBuilder(deliveryApiSettings.Value, apiContentQueryFactory); _filterBuilder = new ApiContentQueryFilterBuilder(fieldTypes, _logger); _sortBuilder = new ApiContentQuerySortBuilder(fieldTypes, _logger); diff --git a/src/Umbraco.Cms.Api.Delivery/Services/QueryBuilders/ApiContentQueryFactory.cs b/src/Umbraco.Cms.Api.Delivery/Services/QueryBuilders/ApiContentQueryFactory.cs new file mode 100644 index 0000000000..6add9861ab --- /dev/null +++ b/src/Umbraco.Cms.Api.Delivery/Services/QueryBuilders/ApiContentQueryFactory.cs @@ -0,0 +1,26 @@ +using Examine; +using Examine.Lucene.Providers; +using Examine.Lucene.Search; +using Examine.Search; +using Umbraco.Cms.Infrastructure.Examine; + +namespace Umbraco.Cms.Api.Delivery.Services.QueryBuilders +{ + internal sealed class ApiContentQueryFactory : IApiContentQueryFactory + { + /// + public IQuery CreateApiContentQuery(IIndex index) + { + // Needed for enabling leading wildcards searches + BaseLuceneSearcher searcher = index.Searcher as BaseLuceneSearcher ?? throw new InvalidOperationException($"Index searcher must be of type {nameof(BaseLuceneSearcher)}."); + + IQuery query = searcher.CreateQuery( + IndexTypes.Content, + BooleanOperation.And, + searcher.LuceneAnalyzer, + new LuceneSearchOptions { AllowLeadingWildcard = true }); + + return query; + } + } +} diff --git a/src/Umbraco.Cms.Api.Delivery/Services/QueryBuilders/ApiContentQuerySelectorBuilder.cs b/src/Umbraco.Cms.Api.Delivery/Services/QueryBuilders/ApiContentQuerySelectorBuilder.cs index c39f6f3f51..3d3c1ba225 100644 --- a/src/Umbraco.Cms.Api.Delivery/Services/QueryBuilders/ApiContentQuerySelectorBuilder.cs +++ b/src/Umbraco.Cms.Api.Delivery/Services/QueryBuilders/ApiContentQuerySelectorBuilder.cs @@ -1,6 +1,4 @@ using Examine; -using Examine.Lucene.Providers; -using Examine.Lucene.Search; using Examine.Search; using Umbraco.Cms.Core.Configuration.Models; using Umbraco.Cms.Core.DeliveryApi; @@ -13,11 +11,15 @@ namespace Umbraco.Cms.Api.Delivery.Services.QueryBuilders; internal sealed class ApiContentQuerySelectorBuilder { private readonly DeliveryApiSettings _deliveryApiSettings; + private readonly IApiContentQueryFactory _queryFactory; private readonly string _fallbackGuidValue; - public ApiContentQuerySelectorBuilder(DeliveryApiSettings deliveryApiSettings) + public ApiContentQuerySelectorBuilder( + DeliveryApiSettings deliveryApiSettings, + IApiContentQueryFactory queryFactory) { _deliveryApiSettings = deliveryApiSettings; + _queryFactory = queryFactory; // A fallback value is needed for Examine queries in case we don't have a value - we can't pass null or empty string // It is set to a random guid since this would be highly unlikely to yield any results @@ -26,14 +28,7 @@ internal sealed class ApiContentQuerySelectorBuilder public IBooleanOperation Build(SelectorOption selectorOption, IIndex index, string culture, ProtectedAccess protectedAccess, bool preview) { - // Needed for enabling leading wildcards searches - BaseLuceneSearcher searcher = index.Searcher as BaseLuceneSearcher ?? throw new InvalidOperationException($"Index searcher must be of type {nameof(BaseLuceneSearcher)}."); - - IQuery query = searcher.CreateQuery( - IndexTypes.Content, - BooleanOperation.And, - searcher.LuceneAnalyzer, - new LuceneSearchOptions { AllowLeadingWildcard = true }); + IQuery query = _queryFactory.CreateApiContentQuery(index); IBooleanOperation selectorOperation = selectorOption.Values.Length == 1 ? query.Field(selectorOption.FieldName, selectorOption.Values.First()) diff --git a/src/Umbraco.Cms.Api.Delivery/Services/QueryBuilders/IApiContentQueryFactory.cs b/src/Umbraco.Cms.Api.Delivery/Services/QueryBuilders/IApiContentQueryFactory.cs new file mode 100644 index 0000000000..3ff51afed8 --- /dev/null +++ b/src/Umbraco.Cms.Api.Delivery/Services/QueryBuilders/IApiContentQueryFactory.cs @@ -0,0 +1,18 @@ +using Examine; +using Examine.Search; + +namespace Umbraco.Cms.Api.Delivery.Services.QueryBuilders +{ + /// + /// Used to create an instance for content items for the content delivery api. + /// + public interface IApiContentQueryFactory + { + /// + /// Creates an for content items for the content delivery api. + /// + /// The . + /// An instance. + IQuery CreateApiContentQuery(IIndex index); + } +} From 99119a506f38894a4d7d398fd3b53a6477b018a2 Mon Sep 17 00:00:00 2001 From: Andy Butland Date: Wed, 3 Jan 2024 10:50:58 +0100 Subject: [PATCH 06/15] Ensured removal of any auto-relations from custom relation types used in nested property values, to ensure there will be no duplicate error when the relations are saved. (#15447) --- .../Implement/ContentRepositoryBase.cs | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/ContentRepositoryBase.cs b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/ContentRepositoryBase.cs index de247a6120..4f6aa228d0 100644 --- a/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/ContentRepositoryBase.cs +++ b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/ContentRepositoryBase.cs @@ -1087,10 +1087,20 @@ namespace Umbraco.Cms.Infrastructure.Persistence.Repositories.Implement var trackedRelations = new List(); trackedRelations.AddRange(_dataValueReferenceFactories.GetAllReferences(entity.Properties, PropertyEditors)); - var relationTypeAliases = GetAutomaticRelationTypesAliases(entity.Properties, PropertyEditors).ToArray(); + var relationTypeAliases = GetAutomaticRelationTypesAliases(entity.Properties, PropertyEditors).ToList(); + + // At this point we potentially have a problem (see for example: https://github.com/umbraco/Umbraco.Forms.Issues/issues/1129). + // If we have a custom relation type (i.e. not document or media) and use of this within a block grid/list property editor, + // we'll get an error when saving the relations. + // It happens because the block grid doesn't expose the automatic relation type aliases for all of it's nested properties, and + // as such relationTypeAliases does not contain the custom relation type alias. + // Auto-relations of that type are then then not deleted, and we get duplicate error on insert. + // To resolve we can look at the relations we are going to be saving, and if they include any relation type aliases we haven't + // already identified, we'll add them in, so they will also be removed along with the other auto-relations. + relationTypeAliases.AddRange(trackedRelations.Select(x => x.RelationTypeAlias).Distinct().Except(relationTypeAliases)); // First delete all auto-relations for this entity - RelationRepository.DeleteByParent(entity.Id, relationTypeAliases); + RelationRepository.DeleteByParent(entity.Id, relationTypeAliases.ToArray()); if (trackedRelations.Count == 0) { From 6c725dbd6787232785971c7a37a01dd50797c51a Mon Sep 17 00:00:00 2001 From: Erik-Jan Westendorp Date: Wed, 20 Dec 2023 14:00:03 +0100 Subject: [PATCH 07/15] Fix aliases --- .../Webhooks/Events/Content/ContentDeletedWebhookEvent.cs | 2 +- .../Webhooks/Events/Content/ContentUnpublishedWebhookEvent.cs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Umbraco.Core/Webhooks/Events/Content/ContentDeletedWebhookEvent.cs b/src/Umbraco.Core/Webhooks/Events/Content/ContentDeletedWebhookEvent.cs index 00e9f3cf72..b820ac11d5 100644 --- a/src/Umbraco.Core/Webhooks/Events/Content/ContentDeletedWebhookEvent.cs +++ b/src/Umbraco.Core/Webhooks/Events/Content/ContentDeletedWebhookEvent.cs @@ -23,7 +23,7 @@ public class ContentDeletedWebhookEvent : WebhookEventContentBase Constants.WebhookEvents.Aliases.ContentUnpublish; + public override string Alias => Constants.WebhookEvents.Aliases.ContentDelete; protected override IEnumerable GetEntitiesFromNotification(ContentDeletedNotification notification) => notification.DeletedEntities; diff --git a/src/Umbraco.Core/Webhooks/Events/Content/ContentUnpublishedWebhookEvent.cs b/src/Umbraco.Core/Webhooks/Events/Content/ContentUnpublishedWebhookEvent.cs index d9d38feff9..07416458b0 100644 --- a/src/Umbraco.Core/Webhooks/Events/Content/ContentUnpublishedWebhookEvent.cs +++ b/src/Umbraco.Core/Webhooks/Events/Content/ContentUnpublishedWebhookEvent.cs @@ -23,7 +23,7 @@ public class ContentUnpublishedWebhookEvent : WebhookEventContentBase Constants.WebhookEvents.Aliases.ContentDelete; + public override string Alias => Constants.WebhookEvents.Aliases.ContentUnpublish; protected override IEnumerable GetEntitiesFromNotification(ContentUnpublishedNotification notification) => notification.UnpublishedEntities; From 425023f83be238c4acf120d36e7675c8a1a2d48e Mon Sep 17 00:00:00 2001 From: Bjarne Fyrstenborg Date: Fri, 5 Jan 2024 16:23:57 +0100 Subject: [PATCH 08/15] Ensure datepicker input is cleared (#15338) --- .../datepicker/datepicker.controller.js | 16 ++++++++- .../datepicker/datepicker.html | 36 +++++++------------ 2 files changed, 28 insertions(+), 24 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/datepicker/datepicker.controller.js b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/datepicker/datepicker.controller.js index 87a43adbcc..e210e94aa1 100644 --- a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/datepicker/datepicker.controller.js +++ b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/datepicker/datepicker.controller.js @@ -1,5 +1,10 @@ function dateTimePickerController($scope, angularHelper, dateHelper, validationMessageService) { + const vm = this; + + vm.clearDatePicker = clearDatePicker; + vm.inputChanged = inputChanged; + let flatPickr = null; function onInit() { @@ -71,10 +76,19 @@ function dateTimePickerController($scope, angularHelper, dateHelper, validationM }); } + function clearDatePicker(event) { + + event.preventDefault(); + event.stopPropagation(); + + $scope.clearDate(); + } + $scope.clearDate = function () { $scope.hasDatetimePickerValue = false; if ($scope.model) { $scope.model.datetimePickerValue = null; + $scope.model.datetimePickerInputValue = null; $scope.model.value = null; } if ($scope.datePickerForm && $scope.datePickerForm.datepicker) { @@ -92,7 +106,7 @@ function dateTimePickerController($scope, angularHelper, dateHelper, validationM setDatePickerVal(); }; - $scope.inputChanged = function () { + function inputChanged() { if ($scope.model.datetimePickerValue === "" && $scope.hasDatetimePickerValue) { // $scope.hasDatetimePickerValue indicates that we had a value before the input was changed, // but now the input is empty. diff --git a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/datepicker/datepicker.html b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/datepicker/datepicker.html index de68de960a..8f291b9a06 100644 --- a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/datepicker/datepicker.html +++ b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/datepicker/datepicker.html @@ -1,34 +1,29 @@ -
+
+
+ on-change="datePickerChange(dateStr)">
+ ng-readonly="readonly" /> + icon="icon-{{ datePickerConfig.noCalendar ? 'time' : 'calendar' }}"> +
@@ -45,8 +40,7 @@
+ show-validation-on-submit>

{{mandatoryMessage}}

{{datePickerForm.datepicker.errorMsg}} @@ -58,18 +52,14 @@

+ class="muted"> This translates to the following time on the server: - {{serverTime}}
+ {{serverTime}}
- What does this mean? + What does this mean?

From cceabf88cd276144858f6cc02084cb65750544ca Mon Sep 17 00:00:00 2001 From: alevak09 <73195407+alevak09@users.noreply.github.com> Date: Fri, 5 Jan 2024 17:24:54 +0100 Subject: [PATCH 09/15] Update hr.xml (#15413) Update croatian translation language file --- .../EmbeddedResources/Lang/hr.xml | 312 +++++++++++------- 1 file changed, 200 insertions(+), 112 deletions(-) diff --git a/src/Umbraco.Core/EmbeddedResources/Lang/hr.xml b/src/Umbraco.Core/EmbeddedResources/Lang/hr.xml index 920d0be232..7a5f3225b3 100644 --- a/src/Umbraco.Core/EmbeddedResources/Lang/hr.xml +++ b/src/Umbraco.Core/EmbeddedResources/Lang/hr.xml @@ -8,7 +8,7 @@ Kultura i imena hostova Audit zapis Pregledaj čvor - Promijeni Tip Dokumenta + Promijeni Vrstu Dokumenta Kopiraj Kreiraj Izvezi @@ -19,8 +19,8 @@ Uredi postavke Isprazni koš za smeće Omogući - Izvezi Tip Dokumenta - Uvezi Tip Dokumenta + Izvezi Vrstu Dokumenta + Uvezi Vrstu Dokumenta Uvezi Paket Uređivanje na stranici Izlaz @@ -66,7 +66,7 @@ Dopustite pristup za dodjelu kulture i imena hostova Dopustite pristup za pregled dnevnika povijesti čvora Dopustite pristup za pregled čvora - Dopustite pristup za promjenu Tipa Dokumenta za čvor + Dopustite pristup za promjenu Vrste Dokumenta za čvor Dopustite pristup za kopiranje čvora Dopustite pristup za kreiranje čvora Dopustite pristup za brisanje čvora @@ -215,7 +215,7 @@ Ažurirao Kreirano Datum i vrijeme kreiranja ovog dokumenta - Tip dokumenta + Vrsta dokumenta Uređivanje Ukloni na Ova stavka je promijenjena nakon objavljivanja @@ -225,11 +225,11 @@ Nema stavki za prikaz na listi. Nije dodan sadržaj Nijedan član nije dodan - Tip medija + Vrsta medija Link do medijske stavke Grupa članova Uloga - Tip člana + Vrsta člana Nisu napravljene nikakve promjene Nije odabran datum Naslov stranice @@ -248,7 +248,7 @@ %0% i sve stavke sadržaja ispod i time čineći njihov sadržaj javno dostupnim.]]> - + Objavi na Poništi objavu na Obriši datum @@ -261,7 +261,7 @@ Naslov (opcionalno) Alternativni tekst (opcionalno) Natpis (opcionalno) - Tip + Vrsta Poništi objavu Neobjavljeno Nije kreirano @@ -283,17 +283,17 @@ Sadržaj. Jeste li sigurni da želite obrisati sve stavke? - Za ovo svojstvo nisu konfigurirani tipovi sadržaja. - Dodajte tip elementa - Odaberi tip elementa + Za ovo svojstvo nisu konfigurirane vrste sadržaja. + Dodajte vrstu elementa + Odaberite vrstu elementa Odaberite grupu čija svojstva trebaju biti prikazana. Ako je ostavljeno prazno, - koristit će se prva grupa na tipu elementa. + koristit će se prva grupa na vrsti elementa. Unesite angular izraz za procjenu svake stavke za njeno ime. Koristi za prikaz indeksa stavke - Odabrani tip elementa ne sadrži nijednu podržanu grupu (ovaj uređivač ne podržava kartice, promijenite ih u grupe ili koristite uređivač liste blokova). + Odabrana vrsta elementa ne sadrži nijednu podržanu grupu (ovaj uređivač ne podržava kartice, promijenite ih u grupe ili koristite uređivač liste blokova). Dodajte još jedan okvir za tekst Uklonite ovaj okvir za tekst Korijen Sadržaja @@ -336,7 +336,7 @@ Kliknite za prijenos ili kliknite ovdje kako bi odaberali datoteke - Nije moguće učitati ovu datoteku, jer nema odobreni tip datoteke + Nije moguće učitati ovu datoteku, jer nema odobrenu vrstu datoteke Nije moguće učitati ovu datoteku, format medija sa nastavkom '%0%' nije dozvoljen Nije moguće učitati ovu datoteku, jer nema važeći naziv datoteke Maksimalna veličina datoteke je @@ -352,16 +352,16 @@ Dvostruka provjera autentičnosti - Kopiranje tipa sadržaja nije uspjelo - Premještanje tipa sadržaja nije uspjelo + Kopiranje vrste sadržaja nije uspjelo + Premještanje vrste sadržaja nije uspjelo - Kopiranje tipa medija nije uspjelo - Premještanje tipa medija nije uspjelo + Kopiranje vrste medija nije uspjelo + Premještanje vrste medija nije uspjelo Automatski odabir - Kopiranje tipa člana nije uspjelo + Kopiranje vrste člana nije uspjelo Gdje želite kreirati novi %0% @@ -370,30 +370,30 @@ Unesite naziv mape Odaberite vrstu i naslov - Dokument Tip unutar sekcije Postavke, uređivanjem Dozvoljeni tipovi podređenih čvorova unutar Dozvole.]]> + Vrste Dokumenta unutar sekcije Postavke, uređivanjem Dozvoljene vrste podređenih čvorova unutar Dozvole.]]> - Dokument Tip unutar sekcije Postavke.]]> + Vrste Dokumenata unutar sekcije Postavke.]]> Odabrana stranica u stablu sadržaja ne dozvoljava kreiranje nijedne stranice ispod. - Uredi dozvole za ovaj tip dokumenta - Kreiraj novi tip dokumenta + Uredi dozvole za ovu vrstu dokumenta + Kreiraj novu vrstu dokumenta - Dokument Tip unutar sekcije Postavke, izmjenom Dozvoli kao root opcije unutar Dozvole.]]> + Vrste Dokumenta unutar sekcije Postavke, izmjenom Dozvoli kao root opcije unutar Dozvole.]]> - Media Tip unutar sekcije Postavke, uređivanjem Dozvoljeni tipovi podređenih čvorova unutar Dozvole.]]> + Vrste Medija unutar sekcije Postavke, uređivanjem Dozvoljene vrste podređenih čvorova unutar Dozvole.]]> Odabrani medij u stablu ne dopušta bilo koji drugi medij kreiran ispod njega. - Uredi dozvole za ovaj tip medija - Tip dokumenta bez predloška - Tip dokumenta sa predloškom + Uredi dozvole za ovu vrstu medija + Vrsta dokumenta bez predloška + Vrsta dokumenta sa predloškom Definiranje podataka za stranicu sadržaja koja se može kreirati u stablu sadržaja i direktno je dostupana preko URL-a. - Tip dokumenta + Vrsta dokumenta Definiranje podataka za komponentu sadržaja koju mogu kreirati urednici u stablu sadržaja i može biti izabrana na drugim stranicama, ali nema direktan URL. - Tip elementa + Vrsta elementa Definiranje sheme za ponavljajući skup svojstava, na primjer, u 'Bloku Uređivaču svojstava Lista' ili 'Ugniježđeni sadržaj'. @@ -402,11 +402,11 @@ više drugih vrsta dokumenata. Na primjer, skup 'Common Page Settings'. Mapa - Koristi se za organiziranje tipova dokumenata, sastava i tipova elemenata kreiranih u ovome + Koristi se za organiziranje vrste dokumenata, sastava i vrste elemenata kreiranih u ovome Stablo vrste dokumenta. Nova mapa - Novi tip podatka + Nova vrsta podatka Nova JavaScript datoteka Novi prazan djelomični prikaz Novi djelomični prikaz za makro @@ -478,6 +478,7 @@ Uredi stavku iz rječnika Uredi jezik Uredite odabrane medije + Uredi webhook Umetni lokalnu vezu Umetni znak Umetni grafički naslov @@ -531,17 +532,17 @@ Link do medija Odaberi početni čvor sadržaja Odaberi medije - Odaberi tip medija + Odaberi vrstu medija Odaberi ikonu Odaberi stavku Odaberi vezu Odaberi makro Odaberi sadržaj - Odaberi tip sadržaja + Odaberi vrstu sadržaja Odaberi početni čvor medija Odaberi člana Odaberi grupu članova - Odaberi tip članova + Odaberi vrstu članova Odaberi čvor Odaberi jezike Odaberi sekcije @@ -645,7 +646,7 @@ Kreirajte prilagođeni prikaz liste Ukloni prilagođeni prikaz liste - Tip sadržaja, tip medija ili tip člana s ovim aliasom već postoji + Vrsta sadržaja, medija ili člana s ovim aliasom već postoji Preimenovano @@ -654,7 +655,7 @@ Dodajte vrijednost - Tip baze podataka + Vrsta baze podataka Uređivač svojstva GUID Uređivač svojstva Gumbi @@ -689,7 +690,7 @@ Primljena greška sa servera - Administrator je zabranio navedeni tip datoteke + Administrator je zabranio navedenu vrstu datoteke NAPOMENA! Iako je CodeMirror omogućen konfiguracijom, on je onemogućen u Internet Explorer-u jer nije dovoljno stabilan. @@ -697,7 +698,7 @@ Postoji problem sa pristupom za čitanje/pisanje određenoj datoteci ili mapi Greška pri učitavanju skripte parcijalnog prikaza (datoteka: %0%) Unesite naslov - Molimo odaberite tip + Molimo odaberite vrstu Napravit ćete sliku veću od originalne veličine. Jeste li sigurni da želite nastaviti? @@ -833,8 +834,8 @@ Status Potvrdi Uspjeh - Tip - Ime tipa + Vrsta + Ime vrste Upišite za pretragu... ispod Gore @@ -845,7 +846,7 @@ Korisnik Korisničko ime Vrijednost - Pogled + Prikaz Dobrodošli... Širina Da @@ -879,7 +880,7 @@ Dodaj predložak Dodajte podređeni čvor Dodaj dijete - Uredite tip podataka + Uredite vrstu podataka Krećite se po odjeljcima Prečice Prikaži prečice @@ -996,7 +997,7 @@ Želim početi s jednostavnom web-stranicom - "Runway" je jednostavna web stranica koja nudi neke osnovne tipove dokumenata i predloške. Instalacijski čarobnjak može postaviti Runway za vas automatski, + "Runway" je jednostavna web stranica koja nudi neke osnovne vrste dokumenata i predloške. Instalacijski čarobnjak može postaviti Runway za vas automatski, ali ga možete lako urediti, proširiti ili ukloniti. Nije potrebno i možete savršeno koristiti Umbraco i bez njega. Kako god, Runway nudi laku osnovu zasnovanu na najboljim praksama za početak brže nego ikad. Ako se odlučite za instalaciju Runway, opcionalo možete odabrati osnovne građevne blokove tzv. Runway Modules da poboljšate svoje Runway stranice. @@ -1049,7 +1050,7 @@ Da bi upravljali svojom web lokacijom, jednostavno otvorite Umbraco backoffice i Dobrodošli Dobrodošli Prijavite se u nastavku - Prijav sa + Prijava sa Isteklo je vrijeme sesije © 2001 - %0%
Umbraco.com

]]>
@@ -1166,7 +1167,7 @@ Da bi upravljali svojom web lokacijom, jednostavno otvorite Umbraco backoffice i Odaberite gdje dokument %0% treba premjestiti ispod je odabrano kao korijen vašeg novog sadržaja, kliknite na 'Uredu' ispod. Još nije odabran čvor, molimo odaberite čvor na gornjoj listi prije nego kliknete na 'Uredu' - Trenutni čvor nije dozvoljen pod odabranim čvorom zbog njegovog tipa + Trenutni čvor nije dozvoljen pod odabranim čvorom zbog njegove vrste Trenutni čvor se ne može premjestiti na jednu od njegovih podstranica niti roditelj i odredište mogu biti isti Trenutni čvor ne može postojati u korijenu Radnja nije dozvoljena jer nemate dovoljna dopuštenja za 1 ili više djece @@ -1399,10 +1400,47 @@ Da bi upravljali svojom web lokacijom, jednostavno otvorite Umbraco backoffice i Niste konfigurirali nijednu odobrenu boju - Možete odabrati samo stavke tipa: %0% + Možete odabrati samo stavke vrste: %0% Odabrali ste stavku sadržaja koja je trenutno obrisana ili je u košu za smeće Odabrali ste stavke sadržaja koje su trenutno obrisane ili su u košu za smeće + Odredite korijen + Odaberite čvor korijena + Odredite korijen preko XPath + Odredite Dinamički Korijen + Početni čvor + XPath Upit + + Dinamički korijenski upit + Odabir podrijetla + Definirajte podrijetlo za svoj dinamički korijenski upit + Korijen + Korijenski čvor ove sesije uređivanja + Roditelj + Čvor izvora u ovoj sesiji uređivanja + Trenutni + Čvor sadržaja koji je izvor za ovu sesiju uređivanja + Web stranica + Pronađi najbliži čvor s imenom računala (hostname) + Specifični čvor + Odaberite određeni čvor kao podrijetlo za ovaj upit + Dodaj korak upitu + Definirajte sljedeći korak svog dinamičkog korijenskog upita + Najbliži predak ili sam + Upitajte najbližeg pretka ili samog sebe koji odgovara jednom od konfiguriranih vrsta + Najudaljeniji predak ili sam + Upitajte najudaljenijeg pretka ili samog sebe koji odgovara jednom od konfiguriranih vrsta + Najbliži potomak ili sam + Upitajte najbližeg potomka ili samog sebe koji odgovara jednom od konfiguriranih vrsta + Najudaljeniji potomak ili sam + Upitajte najudaljenijeg potomka ili samog sebe koji odgovara jednom od konfiguriranih vrsta + Prilagođeno + Upitajte pomoću prilagođenog koraka upita + Dodaj korak upitu + Koji odgovara vrstama: + Nema podudaranja sadržaja + Konfiguracija ove osobine ne odgovara nijednom sadržaju. Stvorite nedostajući sadržaj ili se obratite administratoru kako biste prilagodili postavke dinamičkog korijena za ovu osobinu. + Izbrisana stavka Odabrali ste medijsku stavku koja je trenutno obrisana ili je u košu za smeće @@ -1446,11 +1484,11 @@ Da bi upravljali svojom web lokacijom, jednostavno otvorite Umbraco backoffice i Dokument je vraćen Odaberite verziju koju želite usporediti sa trenutnom verzijom Ovo prikazuje odabranu verziju kao HTML, ako želite vidjeti razliku između dvije - verzije u isto vrijeme, koristite pogled diff + verzije u isto vrijeme, koristite prikaz diff Vratite se na Odaberite verziju - Pogled + Prikaz Uredite datoteku skripte @@ -1487,15 +1525,15 @@ Da bi upravljali svojom web lokacijom, jednostavno otvorite Umbraco backoffice i gumb "Uvezi" (na sljedećem ekranu će se tražiti da potvrdite) Naslov nove kartice - Tip čvora - Tip + Vrsta čvora + Vrsta Stilovi Skripte Kartica Naslov kartice Kartice - Glavni tip sadržaja je omogućen - Ovaj tip sadržaja koristi + Glavna vrsta sadržaja je omogućena + Ova vrsta sadržaja koristi Nema definiranih svojstava na ovoj kartici. Kliknite na vezu "dodaj novu nekretninu" na vrh za kreiranje novog svojstva. @@ -1522,18 +1560,18 @@ Da bi upravljali svojom web lokacijom, jednostavno otvorite Umbraco backoffice i Ova datoteka se učitava kao dio fasckile, ali kreiranje nove mape ovdje nije dozvoljeno Kreiranje nove mape ovdje nije dozvoljeno Objavljivanje je otkazao dodatak treće strane - Tip svojstva već postoji - Tip svojstva kreiran - Tip podatka: %1%]]> - Tip svojstva obrisan - Tip dokumenta spremljen + Vrsta svojstva već postoji + Vrsta svojstva kreirana + Vrsta podatka: %1%]]> + Vrsta svojstva obrisana + Vrsta dokumenta spremljena Kartica kreirana Kartica je obrisana Kartica sa id-em: %0% je obrisana Stilovi nisu spremljeni Stilovi spremljeni Stilovi spremljeni bez ikakvih grešaka - Tip podatka spremljen + Vrsta podatka spremljena Stavka riječnika je spremljena Objavljivanje nije uspjelo jer nadređena stranica nije objavljena Sadržaj objavljen @@ -1552,7 +1590,7 @@ Da bi upravljali svojom web lokacijom, jednostavno otvorite Umbraco backoffice i Predložak spremljen Greška pri spremanju korisnika (provjerite log zapis) Korisnik spremljen - Tip korisnika spremljen + Vrsta korisnika spremljena Grupa korisnika spremljena Kulture i imena hostova su spremljeni Greška pri spremanju kultura i imena hostova @@ -1561,8 +1599,8 @@ Da bi upravljali svojom web lokacijom, jednostavno otvorite Umbraco backoffice i Datoteke spremljene Datoteka spremljena bez ikakvih grešaka Jezik spremljen - Tip medija spremljen - Tip člana spremljen + Vrsta medija spremljena + Vrsta člana spremljena Grupa članova spremljena Druga grupa članova sa istim imenom već postoji Predložak nije spremljen @@ -1589,8 +1627,8 @@ Da bi upravljali svojom web lokacijom, jednostavno otvorite Umbraco backoffice i Korisnik %0% je obrisan Pozovi korisnika Pozivnica je ponovo poslana na %0% - Tip dokumenta je izvezen u datoteku - Došlo je do greške prilikom izvoza tipa dokumenta + Vrsta dokumenta je izvezena u datoteku + Došlo je do greške prilikom izvoza vrste dokumenta Stavke iz riječnika su izvezene u datoteku Došlo je do greške prilikom izvoza stavki rječnika Sljedeće stavke iz rječnika su uvezene! @@ -1600,6 +1638,7 @@ Da bi upravljali svojom web lokacijom, jednostavno otvorite Umbraco backoffice i Nijedna domena nije konfigurirana za %0%, molimo kontaktirajte administratora Vaše sistemske informacije su uspješno kopirane u međuspremnik Nije moguće kopirati vaše sistemske informacije u međuspremnik + Webhook spremljen Dodaj stil @@ -1673,7 +1712,7 @@ Da bi upravljali svojom web lokacijom, jednostavno otvorite Umbraco backoffice i stavaka vraćeno, u Želim sav sadržaj - sadržaj tipa "%0%" + sadržaj vrste "%0%" sa moje web stranice gdje @@ -1704,7 +1743,7 @@ Da bi upravljali svojom web lokacijom, jednostavno otvorite Umbraco backoffice i Slika Makro - Odaberite tip sadržaja + Odaberite vrstu sadržaja Odaberite izgled Dodaj redak Dodaj sadržaj @@ -1771,19 +1810,19 @@ Da bi upravljali svojom web lokacijom, jednostavno otvorite Umbraco backoffice i Odaberite koje predloške urednici mogu koristiti na sadržaju ove vrste Dozvoli kao korijen - Dozvolite urednicima da kreiraju sadržaj ovog tipa u korijenu stabla sadržaja. + Dozvolite urednicima da kreiraju sadržaj ove vrste u korijenu stabla sadržaja. - Dozvoljeni tipovi podređenih čvorova - Dozvolite da se sadržaj navedenih tipova kreira ispod sadržaja ovog tipa. + Dozvoljene vrste podređenih čvorova + Dozvolite da se sadržaj navedenih vrsta kreira ispod sadržaja ove vrste. Odaberite podređeni čvor Naslijediti kartice i svojstva iz postojeće vrste dokumenta. Nove kartice bit će dodane trenutnoj vrsti dokumenta ili spojene ako postoji kartica s identičnim imenom. - Ovaj tip sadržaja se koristi u kompoziciji i stoga se ne može sam sastaviti. + Ova vrsta sadržaja se koristi u kompoziciji i stoga se ne može sam sastaviti. - Nema dostupnih tipova sadržaja za upotrebu kao kompozicija. - Uklanjanje kompozicije će obrisati sve povezane podatke o svojstvu. Jednom kada spremite tip dokumenta, nema povratka. + Nema dostupnih vrsta sadržaja za upotrebu kao kompozicija. + Uklanjanje kompozicije će obrisati sve povezane podatke o svojstvu. Jednom kada spremite vrstu dokumenta, nema povratka. Napravi novi Koristite postojeće @@ -1795,16 +1834,16 @@ Da bi upravljali svojom web lokacijom, jednostavno otvorite Umbraco backoffice i Odaberite mapu za premještanje Odaberite mapu za kopiranje do u strukturi stabla ispod - Svi tipovi dokumenata + Sve vrste dokumenata Svi dokumenti Sve medijske stavke - korištenje ovog tipa dokumenta bit će trajno izbrisano, potvrdite da želite obrisati ove također. + korištenje ove vrste dokumenta bit će trajno izbrisano, potvrdite da želite obrisati ove također. korištenje ove vrste medija će biti trajno izbrisano, potvrdite da želite obrisati ove također. korištenje ove vrste člana će biti trajno izbrisano, potvrdite da želite obrisati ove također i svi dokumenti koji koriste ovu vrstu i sve medijske stavke koje koriste ovu vrstu - i svi članovi koji koriste ovaj tip + i svi članovi koji koriste ovu vrstu Član može uređivati Dozvolite da ovu vrijednost svojstva da uređuje član na svojoj stranici profila @@ -1818,7 +1857,7 @@ Da bi upravljali svojom web lokacijom, jednostavno otvorite Umbraco backoffice i kartica nema redoslijed sortiranja Gdje se koristi ovaj sastav? Ovaj sastav se trenutno koristi u sastavu sljedećih - tipa sadržaja: + vrsta sadržaja: Dozvoli varijacije Dozvolite varirati u zavisnosti od kulture @@ -1830,20 +1869,19 @@ Da bi upravljali svojom web lokacijom, jednostavno otvorite Umbraco backoffice i Dozvolite urednicima da kreiraju segmente ovog sadržaja. Dozvolite varijaciju po kulturi Dozvoli segmentaciju - Tip elementa - Je li tip elementa - Tip elementa je namijenjen za korištenje na primjer u ugniježđenom sadržaju, a ne u stablu. + Vrsta elementa + Da li je vrste elementa + Vrsta elementa je namijenjena za korištenje na primjer u ugniježenom sadržaju, a ne u stablu. - Tip dokumenta se ne može promijeniti u tip elementa nakon što je naviknut + Vrsta dokumenta se ne može promijeniti u vrstu elementa nakon što je naviknut kreirati jednu ili više stavki sadržaja. - Ovo nije primjenjivo za tip elementa + Ovo nije primjenjivo za vrstu elementa Napravili ste promjene on ovom svojstvu. Jeste li sigurni da ih želite odbaciti? Izgled Oznaka iznad (puna širina) Uklanjate podređeni čvor - Uklanjanje podređenog čvora ograničit će opcije urednika da kreiraju drugačiji sadržaj - tipovi ispod čvora. + Uklanjanje podređenog čvora ograničit će opcije urednika da kreiraju drugačiju vrstu sadržaj ispod čvora. korištenjem ovog uređivača bit će ažurirane nove postavke. Brisanje povijesti @@ -1853,6 +1891,24 @@ Da bi upravljali svojom web lokacijom, jednostavno otvorite Umbraco backoffice i Spriječi čišćenje Omogući čišćenje BILJEŠKA! Čišćenje povijesnih verzija sadržaja onemogućeno je globalno. Ove postavke neće stupiti na snagu prije nego što se omogući.]]> + Promjena vrste podatka sa spremljenim vrijednostima je onemogućena. Da bi omogućili promjenu, možete promijeniti Umbraco:CMS:DataTypes:CanBeChanged postavku u appsettings.json. + + + Kreiraj webhook + Dodaj webhook zaglavlje + Dodaj Vrstu Dokumenta + Dodaj Vrstu Medija + Kreiraj zaglavlje + Isporuke + Nijedno webhook zaglavlje nije dodano + Nema pronađenih događaja. + Omogućeno + Događanja + Događaj + Url + Vrste + Webhook key + Broj pokušaja Dodaj jezik @@ -1958,7 +2014,7 @@ Da bi upravljali svojom web lokacijom, jednostavno otvorite Umbraco backoffice i Pretraživač predmemorije Koš za smeće Kreirani paketi - Tipovi podataka + Vrste podataka Riječnik Instalirani paketi Instaliraj skin @@ -1966,17 +2022,17 @@ Da bi upravljali svojom web lokacijom, jednostavno otvorite Umbraco backoffice i Jezici Instaliraj lokalni paket Makroi - Tipovi medija + Vrste medija Članovi Grupe članova Uloge članova - Tipovi članova - Tipovi dokumenata - Tipovi relacija + Vrste članova + Vrste dokumenata + Vrste relacija Paketi Paketi - Parcijalni pogledi - Parcijalni pregledi makro datoteka + Parcijalni prikazi + Parcijalni prikazi makro datoteka Instaliraj iz repozitorija Instaliraj Runway Runway moduli @@ -1989,6 +2045,7 @@ Da bi upravljali svojom web lokacijom, jednostavno otvorite Umbraco backoffice i Postavke Predložak Treća strana + Webhooks Postoji nova verzija @@ -2019,7 +2076,7 @@ Da bi upravljali svojom web lokacijom, jednostavno otvorite Umbraco backoffice i Polje kratkog opisa Onemogući korisnika - Tip dokumenta + Vrsta dokumenta Urednik Obavezno - unesite email adresu za ovog korisnika Polje izvoda @@ -2065,6 +2122,7 @@ Da bi upravljali svojom web lokacijom, jednostavno otvorite Umbraco backoffice i Profil Pretražite svu djecu Ograničite jezike kojima korisnici imaju pristup za uređivanje + Dozvoljen pristup svim jezicima Dodajte odjeljke da korisnicima omogućite pristup Odaberite grupe korisnika Nije odabran početni čvor @@ -2393,7 +2451,7 @@ Da bi upravljali svojom web lokacijom, jednostavno otvorite Umbraco backoffice i Komentar Naziv Nema relacija za ovu vrstu odnosa - Tip relacije + Vrsta relacije Relacije Je zavisan Da @@ -2408,7 +2466,8 @@ Da bi upravljali svojom web lokacijom, jednostavno otvorite Umbraco backoffice i Status stranice Generator modela Provjera zdravlja - Profilisanje + Podaci telemetrije + Profiliranje Početak rada Instaliraj Umbraco Forms @@ -2436,10 +2495,10 @@ Da bi upravljali svojom web lokacijom, jednostavno otvorite Umbraco backoffice i Trenutni jezik Prebaci jezik na Kreirajte novi folder - Parcijalni pogled + Parcijalni prikaz Makro za pracijalni prikaz Član - Tip podatka + Vrsta podatka Pretražite kontrolnu ploču za preusmjeravanje Pretražite odjeljak korisničke grupe Pretražite odjeljak korisnika @@ -2467,11 +2526,11 @@ Da bi upravljali svojom web lokacijom, jednostavno otvorite Umbraco backoffice i Reference - Ovaj tip podataka nema reference. + Ova vrsta podataka nema reference. Ova stavka nema reference. - Koristi se u tipovima dokumenata - Koristi se u tipovima medija - Koristi se u tipovima članova + Koristi se u vrstama dokumenata + Koristi se u vrstama medija + Koristi se u vrstama članova Koristi Stavke u upotrebi Potomci u upotrebi @@ -2622,9 +2681,9 @@ Da bi upravljali svojom web lokacijom, jednostavno otvorite Umbraco backoffice i Za početak - Počni ovdje + Krenite ovdje Ovaj odjeljak sadrži blokove za izgradnju vaše Umbraco stranice. Slijedite dolje - veze da saznate više o radu sa stavkama u odjeljku Postavke + navedene veze linkova kako biste saznali više o radu sa stavkama u odjeljku Postavke Saznajte više @@ -2665,12 +2724,12 @@ Da bi upravljali svojom web lokacijom, jednostavno otvorite Umbraco backoffice i - Odaberite tip elementa - Priložite postavke na tip elementa + Odaberite vrstu elementa + Priložite postavke na vrstu elementa Odaberite prikaz Odaberite stil Odaberite sličicu - Kreirajte novi tip elementa + Kreirajte novu vrstu elementa Prilagođeni stil Dodaj stil Izgled bloka @@ -2702,7 +2761,7 @@ Da bi upravljali svojom web lokacijom, jednostavno otvorite Umbraco backoffice i više neće biti dostupan i bit će prikazan kao nepodržani sadržaj. - Ne može se uređivati jer tip elementa ne postoji. + Ne može se uređivati jer vrsta elementa ne postoji. Sličica Dodaj sličicu Kreiraj prazno @@ -2717,7 +2776,7 @@ Da bi upravljali svojom web lokacijom, jednostavno otvorite Umbraco backoffice i Odbaciti kreiranje? Greška! - Tip elementa ovog bloka više ne postoji + Vrsta elementa ovog bloka više ne postoji Dodaj sadržaj Dodaj %0% Svojstvo '%0%' koristi uređivač '%1%' koji nije podržan u blokovima. @@ -2727,9 +2786,9 @@ Da bi upravljali svojom web lokacijom, jednostavno otvorite Umbraco backoffice i %0% mora biti prisutan barem %2% puta.]]> %0% mora biti maksimalno prisutan %3% puta.]]> Broj blokova - Dozvolite samo određene tipove blokova + Dozvolite samo određene vrste blokova Dozvoljene vrste blokova - Definirajte tipove blokova koji su dozvoljeni u ovom području i opcionalo koliko svakog tipa treba biti prisutan. + Definirajte vrste blokova koji su dozvoljeni u ovom području i opcionalo koliko svake vrste treba biti prisutno. Jeste li sigurni da želite obrisati ovo područje? Svi blokovi koji su trenutno kreirani unutar ovog područja bit će obrisani. Opcije rasporeda @@ -2744,7 +2803,7 @@ Da bi upravljali svojom web lokacijom, jednostavno otvorite Umbraco backoffice i Učinite ovaj blok dostupnim u korijenu izgleda. Dozvolite u područjima Učinite ovaj blok dostupnim prema zadanim postavkama unutar područja drugih blokova (osim ako za ova područja nisu postavljene eksplicitne dozvole). - Prema zadanim postavkama, svi tipovi blokova su dozvoljeni u području. Koristite ovu opciju da dozvolite samo odabrane tipove. + Prema zadanim postavkama, sve vrste blokova su dozvoljeni u području. Koristite ovu opciju da dozvolite samo odabrane vrste. Područja Mrežne kolone za područja Definirajte koliko će stupaca biti dostupno za područja. Ako nije definiran, koristit će se broj kolona definiranih za cijeli izgled. @@ -2785,9 +2844,9 @@ Da bi upravljali svojom web lokacijom, jednostavno otvorite Umbraco backoffice i Što su predlošci sadržaja? Predlošci sadržaja su unaprijed definirani sadržaj koji se može odabrati prilikom kreiranja novog - sadržaj čvora. + čvora sadržaja. - Kako da kreiram predložak sadržaja? + Kako kreirati predložak sadržaja? Postoje dva načina za kreiranje predloška sadržaja:

@@ -2831,4 +2890,33 @@ Da bi upravljali svojom web lokacijom, jednostavno otvorite Umbraco backoffice i stavka vraćena stavke vraćene + + Suglasnost za prikupljanje telemetrijskih podataka + Telemetrijska razina spremljena! + + želimo prikupljati podatke o sustavu i uporabi iz vaše instalacije. +
Zbirni podaci bit će redovito dijeljeni, kao i saznanja dobivena iz tih metrika. +
Nadamo se da ćete nam pomoći prikupiti neke vrijedne podatke. +
+
NEĆEMO prikupljati osobne podatke poput sadržaja, koda, informacija o korisnicima, a svi podaci bit će potpuno anonimni. + ]]> +
+ Poslat ćemo samo anonimni ID web-mjesta kako bismo znali da web-mjesto postoji. + Poslat ćemo anonimni ID web-mjesta, verziju Umbraco-a i instalirane pakete. + + +
  • Anonimni ID web-mjesta, verziju Umbraco-a i instalirane pakete.
  • +
  • Broj: korijenskih čvorova, čvorova sadržaja, makroa, medija, vrsta dokumenata, predložaka, jezika, domena, korisničkih grupa, korisnika, članova, vanjskih pružatelja prijave u Backoffice-u i uređivača svojstava u upotrebi.
  • +
  • Informacije o sustavu: web poslužitelj, operativni sustav poslužitelja, okvir poslužitelja, jezik operativnog sustava poslužitelja i pružatelj baze podataka.
  • +
  • Postavke konfiguracije: način Modelsbuilder-a, postoji li prilagođena putanja Umbraco-a, ASP okolina, je li omogućen dostavni API, dopušta li javni pristup i je li u načinu rada za otklanjanje pogrešaka.
  • + + Moguće je da ćemo u budućnosti promijeniti podatke koje šaljemo na Detaljnoj razini. Ako se to dogodi, bit će navedeno iznad. +
    Odabirom "Detaljno" pristajete na prikupljanje trenutnih i budućih anonimiziranih informacija.
    + ]]> +
    + From 77861ae55b42c2ef8af1df331ba9551263ae19c3 Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Mon, 8 Jan 2024 08:58:57 +0100 Subject: [PATCH 10/15] V13: Load TinyMCE premium plugins through tiny.cloud (#15367) * add tinymce cloud api key to configuration * forward apikey through proxied config object after retrieving it from the server * load the plugins.min.js file from tiny.cloud if cloud api key is set * bump tinymce from 6.7.3 to 6.8.1 * disable premium promotion and make plugins unique * make sure tinymce local assets are loaded before trying to load the plugins.js from cloud and before configuring tinymce --- .../Models/RichTextEditorSettings.cs | 5 ++++ .../RichTextEditorConfiguration.cs | 3 ++ .../RichTextPreValueController.cs | 3 +- src/Umbraco.Web.UI.Client/package-lock.json | 8 ++--- src/Umbraco.Web.UI.Client/package.json | 2 +- .../src/common/services/tinymce.service.js | 4 ++- .../propertyeditors/rte/rte.component.js | 30 ++++++++++++++----- 7 files changed, 41 insertions(+), 14 deletions(-) diff --git a/src/Umbraco.Core/Configuration/Models/RichTextEditorSettings.cs b/src/Umbraco.Core/Configuration/Models/RichTextEditorSettings.cs index fce3b36373..e48e90c0e6 100644 --- a/src/Umbraco.Core/Configuration/Models/RichTextEditorSettings.cs +++ b/src/Umbraco.Core/Configuration/Models/RichTextEditorSettings.cs @@ -146,6 +146,11 @@ public class RichTextEditorSettings [DefaultValue(StaticInvalidElements)] public string InvalidElements { get; set; } = StaticInvalidElements; + /// + /// Cloud API Key for TinyMCE. This is required to use TinyMCE premium plugins. + /// + public string? CloudApiKey { get; set; } + public class RichTextEditorCommand { [Required] diff --git a/src/Umbraco.Core/Models/ContentEditing/RichTextEditorConfiguration.cs b/src/Umbraco.Core/Models/ContentEditing/RichTextEditorConfiguration.cs index c621aa8c59..b0e858136b 100644 --- a/src/Umbraco.Core/Models/ContentEditing/RichTextEditorConfiguration.cs +++ b/src/Umbraco.Core/Models/ContentEditing/RichTextEditorConfiguration.cs @@ -19,4 +19,7 @@ public class RichTextEditorConfiguration [DataMember(Name = "customConfig")] public IDictionary? CustomConfig { get; set; } + + [DataMember(Name = "cloudApiKey")] + public string? CloudApiKey { get; set; } } diff --git a/src/Umbraco.Web.BackOffice/PropertyEditors/RichTextPreValueController.cs b/src/Umbraco.Web.BackOffice/PropertyEditors/RichTextPreValueController.cs index 602914fe43..f075199882 100644 --- a/src/Umbraco.Web.BackOffice/PropertyEditors/RichTextPreValueController.cs +++ b/src/Umbraco.Web.BackOffice/PropertyEditors/RichTextPreValueController.cs @@ -30,7 +30,8 @@ public class RichTextPreValueController : UmbracoAuthorizedJsonController new RichTextEditorCommand { Alias = x.Alias, Mode = x.Mode, Name = x.Name }), ValidElements = settings.ValidElements, InvalidElements = settings.InvalidElements, - CustomConfig = settings.CustomConfig + CustomConfig = settings.CustomConfig, + CloudApiKey = settings.CloudApiKey, }; return config; diff --git a/src/Umbraco.Web.UI.Client/package-lock.json b/src/Umbraco.Web.UI.Client/package-lock.json index ad30a030a1..16fbf7611f 100644 --- a/src/Umbraco.Web.UI.Client/package-lock.json +++ b/src/Umbraco.Web.UI.Client/package-lock.json @@ -39,7 +39,7 @@ "ng-file-upload": "12.2.13", "nouislider": "15.7.1", "spectrum-colorpicker2": "2.0.10", - "tinymce": "6.7.3", + "tinymce": "6.8.1", "typeahead.js": "0.11.1", "underscore": "1.13.6", "wicg-inert": "3.1.2" @@ -16606,9 +16606,9 @@ "integrity": "sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==" }, "node_modules/tinymce": { - "version": "6.7.3", - "resolved": "https://registry.npmjs.org/tinymce/-/tinymce-6.7.3.tgz", - "integrity": "sha512-J7WmYIi/gt1RvZ6Ap2oQiUjzAoiS9pfV+d4GnKuZuPu8agmlAEAInNmMvMjfCNBzHv4JnZXY7qlHUAI0IuYQVA==" + "version": "6.8.1", + "resolved": "https://registry.npmjs.org/tinymce/-/tinymce-6.8.1.tgz", + "integrity": "sha512-WYPvMXIjBrXM/oBiqGCbT2a8ptiO3TWXm/xxPWDCl8SxRKMW7Rfp0Lk190E9fXmX6uh9lJMRCnmKHzvryz0ftA==" }, "node_modules/to-absolute-glob": { "version": "2.0.2", diff --git a/src/Umbraco.Web.UI.Client/package.json b/src/Umbraco.Web.UI.Client/package.json index 3d3dc9da15..f23a0ab750 100644 --- a/src/Umbraco.Web.UI.Client/package.json +++ b/src/Umbraco.Web.UI.Client/package.json @@ -51,7 +51,7 @@ "ng-file-upload": "12.2.13", "nouislider": "15.7.1", "spectrum-colorpicker2": "2.0.10", - "tinymce": "6.7.3", + "tinymce": "6.8.1", "typeahead.js": "0.11.1", "underscore": "1.13.6", "wicg-inert": "3.1.2" diff --git a/src/Umbraco.Web.UI.Client/src/common/services/tinymce.service.js b/src/Umbraco.Web.UI.Client/src/common/services/tinymce.service.js index 7767e3c17b..e7c86c0303 100644 --- a/src/Umbraco.Web.UI.Client/src/common/services/tinymce.service.js +++ b/src/Umbraco.Web.UI.Client/src/common/services/tinymce.service.js @@ -387,8 +387,10 @@ function tinyMceService($rootScope, $q, imageHelper, $locale, $http, $timeout, s //create a baseline Config to extend upon var config = { + cloudApiKey: tinyMceConfig.cloudApiKey, + promotion: false, inline: modeInline, - plugins: plugins, + plugins: [...new Set(plugins)], custom_elements: 'umb-rte-block,~umb-rte-block-inline', valid_elements: tinyMceConfig.validElements, invalid_elements: tinyMceConfig.inValidElements, diff --git a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/rte/rte.component.js b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/rte/rte.component.js index 4fe1beeb85..2bb5b6c3a0 100644 --- a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/rte/rte.component.js +++ b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/rte/rte.component.js @@ -177,24 +177,40 @@ vm.containerHeight = "auto"; vm.containerOverflow = "inherit"; - var promises = [blockModelObjectLoading]; + const assetPromises = [blockModelObjectLoading]; //queue file loading tinyMceAssets.forEach(function (tinyJsAsset) { - promises.push(assetsService.loadJs(tinyJsAsset, $scope)); + assetPromises.push(assetsService.loadJs(tinyJsAsset, $scope)); }); - promises.push(tinyMceService.getTinyMceEditorConfig({ + const tinyMceConfigDeferred = $q.defer(); + + //wait for assets to load before proceeding + $q.all(assetPromises).then(function () { + + tinyMceService.getTinyMceEditorConfig({ htmlId: vm.textAreaHtmlId, stylesheets: editorConfig.stylesheets, toolbar: editorConfig.toolbar, mode: editorConfig.mode - })); + }) + .then(function (tinyMceConfig) { + // Load the plugins.min.js file from the TinyMCE Cloud if a Cloud Api Key is specified + if (tinyMceConfig.cloudApiKey) { + return assetsService.loadJs(`https://cdn.tiny.cloud/1/${tinyMceConfig.cloudApiKey}/tinymce/${tinymce.majorVersion}.${tinymce.minorVersion}/plugins.min.js`) + .then(() => tinyMceConfig); + } - //wait for queue to end - $q.all(promises).then(function (result) { + return tinyMceConfig; + }) + .then(function (tinyMceConfig) { + tinyMceConfigDeferred.resolve(tinyMceConfig); + }); + }); - var standardConfig = result[promises.length - 1]; + //wait for config to be ready after assets have loaded + tinyMceConfigDeferred.promise.then(function (standardConfig) { if (height !== null) { standardConfig.plugins.splice(standardConfig.plugins.indexOf("autoresize"), 1); From 06fdf8d3dcc6976bc77060c84de61434a99e5526 Mon Sep 17 00:00:00 2001 From: JesmoDev <26099018+JesmoDev@users.noreply.github.com> Date: Mon, 8 Jan 2024 21:41:37 +1300 Subject: [PATCH 11/15] use opacity instead of hardcoded color (#15534) --- .../src/components/external-login-provider.element.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Login/src/components/external-login-provider.element.ts b/src/Umbraco.Web.UI.Login/src/components/external-login-provider.element.ts index a577bbbb0d..e6cbd9746d 100644 --- a/src/Umbraco.Web.UI.Login/src/components/external-login-provider.element.ts +++ b/src/Umbraco.Web.UI.Login/src/components/external-login-provider.element.ts @@ -203,7 +203,7 @@ export class UmbExternalLoginProviderElement extends LitElement { } #defaultView uui-icon { - color: #00000080; + opacity: 0.85; padding-right: 2px; } From 040495f359f8577197c6281dd0afb84b9e7debdc Mon Sep 17 00:00:00 2001 From: Aleksander Date: Thu, 4 Aug 2022 14:29:20 +0200 Subject: [PATCH 12/15] Pass cache level to properties when creating published content in nucache (cherry picked from commit d9d2b66e8580bc0cbdd42739a92cf9df16b4e96e) # Conflicts: # src/Umbraco.Web/PublishedCache/NuCache/PublishedContent.cs --- src/Umbraco.PublishedCache.NuCache/PublishedContent.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.PublishedCache.NuCache/PublishedContent.cs b/src/Umbraco.PublishedCache.NuCache/PublishedContent.cs index 3544ab35bc..f84df0644d 100644 --- a/src/Umbraco.PublishedCache.NuCache/PublishedContent.cs +++ b/src/Umbraco.PublishedCache.NuCache/PublishedContent.cs @@ -56,7 +56,7 @@ internal class PublishedContent : PublishedContentBase // add one property per property type - this is required, for the indexing to work // if contentData supplies pdatas, use them, else use null contentData.Properties.TryGetValue(propertyType.Alias, out PropertyData[]? pdatas); // else will be null - properties[i++] = new Property(propertyType, this, pdatas, _publishedSnapshotAccessor); + properties[i++] = new Property(propertyType, this, pdatas, _publishedSnapshotAccessor, propertyType.CacheLevel); } PropertiesArray = properties; From 704aebed0cb72e2b19836cfae114f6921f94005f Mon Sep 17 00:00:00 2001 From: Markus Johansson Date: Thu, 28 Dec 2023 15:19:27 +0100 Subject: [PATCH 13/15] Fixes #15512 to allow curly braces in anchors --- .../src/common/services/tinymce.service.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI.Client/src/common/services/tinymce.service.js b/src/Umbraco.Web.UI.Client/src/common/services/tinymce.service.js index 7767e3c17b..7ca37d9c13 100644 --- a/src/Umbraco.Web.UI.Client/src/common/services/tinymce.service.js +++ b/src/Umbraco.Web.UI.Client/src/common/services/tinymce.service.js @@ -1184,7 +1184,7 @@ function tinyMceService($rootScope, $q, imageHelper, $locale, $http, $timeout, s if (currentTarget.url.indexOf("localLink:") > 0) { // if the current link has an anchor, it needs to be considered when getting the udi/id // if an anchor exists, reduce the substring max by its length plus two to offset the removed prefix and trailing curly brace - var linkId = currentTarget.url.substring(currentTarget.url.indexOf(":") + 1, currentTarget.url.lastIndexOf("}")); + var linkId = currentTarget.url.substring(currentTarget.url.indexOf(":") + 1, currentTarget.url.indexOf("}")); //we need to check if this is an INT or a UDI var parsedIntId = parseInt(linkId, 10); From e8eec901d1f3a61ec5694ae9aff0725075131d8f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 9 Jan 2024 08:00:41 +0000 Subject: [PATCH 14/15] Bump follow-redirects in /tests/Umbraco.Tests.AcceptanceTest Bumps [follow-redirects](https://github.com/follow-redirects/follow-redirects) from 1.15.3 to 1.15.4. - [Release notes](https://github.com/follow-redirects/follow-redirects/releases) - [Commits](https://github.com/follow-redirects/follow-redirects/compare/v1.15.3...v1.15.4) --- updated-dependencies: - dependency-name: follow-redirects dependency-type: indirect ... Signed-off-by: dependabot[bot] --- tests/Umbraco.Tests.AcceptanceTest/package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/Umbraco.Tests.AcceptanceTest/package-lock.json b/tests/Umbraco.Tests.AcceptanceTest/package-lock.json index 02c46ac329..38d70d4bef 100644 --- a/tests/Umbraco.Tests.AcceptanceTest/package-lock.json +++ b/tests/Umbraco.Tests.AcceptanceTest/package-lock.json @@ -366,9 +366,9 @@ } }, "node_modules/follow-redirects": { - "version": "1.15.3", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.3.tgz", - "integrity": "sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==", + "version": "1.15.4", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.4.tgz", + "integrity": "sha512-Cr4D/5wlrb0z9dgERpUL3LrmPKVDsETIJhaCMeDfuFYcqa5bldGV6wBsAN6X/vxlXQtFBMrXdXxdL8CbDTGniw==", "dev": true, "funding": [ { From 2e61d6449ae8e0c837dafa1e93ac950eda36c4f2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 9 Jan 2024 08:00:43 +0000 Subject: [PATCH 15/15] Bump follow-redirects in /src/Umbraco.Web.UI.Client Bumps [follow-redirects](https://github.com/follow-redirects/follow-redirects) from 1.14.9 to 1.15.4. - [Release notes](https://github.com/follow-redirects/follow-redirects/releases) - [Commits](https://github.com/follow-redirects/follow-redirects/compare/v1.14.9...v1.15.4) --- updated-dependencies: - dependency-name: follow-redirects dependency-type: indirect ... Signed-off-by: dependabot[bot] --- src/Umbraco.Web.UI.Client/package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/package-lock.json b/src/Umbraco.Web.UI.Client/package-lock.json index 16fbf7611f..19f0e602af 100644 --- a/src/Umbraco.Web.UI.Client/package-lock.json +++ b/src/Umbraco.Web.UI.Client/package-lock.json @@ -7944,9 +7944,9 @@ } }, "node_modules/follow-redirects": { - "version": "1.14.9", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.9.tgz", - "integrity": "sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w==", + "version": "1.15.4", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.4.tgz", + "integrity": "sha512-Cr4D/5wlrb0z9dgERpUL3LrmPKVDsETIJhaCMeDfuFYcqa5bldGV6wBsAN6X/vxlXQtFBMrXdXxdL8CbDTGniw==", "dev": true, "funding": [ {