Deleting media via services results in a published MediaDeletedNotification
via scope.Notifications, these are fired on Scope.Complete() and picked up
by the registered handlers.
* Add TelemetryService
Currently it only allows you to get a list of the name of all the installed packages
* Create model class for package telemetry
And move the telemetry report data out of ReportSiteTask
* Add version as an option in package manifest
* Use TelemetryService to generate telemetry data
Instead of doing it directly in the ReportSiteTask
* Seal TelemetryService
This should not be overwritten
* Add option for package creators to opt out
* Add global setting to restrict package telemetry
* Add TelemetryService unit tests
* Add ManifestParser tests for new properties
* Clean
* Update src/Umbraco.Core/Telemetry/TelemetryService.cs
Co-authored-by: Bjarke Berg <mail@bergmania.dk>
* Create interface for telemetry service
* Use IOptionsMonitor instead of IOptions
However I chose to use CurrentValue since according to microsoft: "Some file systems, such as Docker containers and network shares, may not reliably send change notifications.", additionally TelemetryService only runs once pr. day, so it shouldn't be too much of an issue that it doesn't cache the result.
* Use is false instead of negation
It's a bit more readable
* Track restrict package telemetry value
* Save RestrictPackageTelemetry in report data
Not packages, since it'll be the same for all packages
* Fix TelemetryService unit tests
* Clean
* Update src/Umbraco.Core/Telemetry/ITelemetryService.cs
Co-authored-by: Bjarke Berg <mail@bergmania.dk>
* Remove RestrictPackageTelemetry
Co-authored-by: Bjarke Berg <mail@bergmania.dk>
* Adding ILogLevelLoader to get Serilog level values (global one and umbraco) and the corresponding dependencies
* Obsoleting old methods
* Fix tests
* Front-end changes
* Changes requested in a review
* https://github.com/umbraco/Umbraco-CMS/issues/11366
Fallback to try login using super legacy HMACSHA1 even when the algorithm is stated as being HMACSHA256. The issue is that v8 saves HMACSHA256 on the user, but when configured to use legacy encoding it actually uses HMACSHA1
* Support migration of members with:
UseLegacyEncoding+Clear
UseLegacyEncoding+Encrypted (Requires machine key)
UseLegacyEncoding+Hashed
* Fixes unit tests
* Avoid exceptions + unit tests
* Save unknown algorithm if we dont know it, instead of persisting a wrong algorithm.
* Added setting to enable clear text password rehashes.
* Removed support for migration of clear text passwords
* Fixed unit test
* cherry-pick 13a51d32 (V8 History cleanup import/export)
Support import/export for doc type history cleanup policy (#11660)
* Support import/export for doc type history cleanup policy
* Support unset/null history cleanup value
* Resolve issue when api endpoints called without cleanup policy.
noop isn't good enough as map fails for response.
* null conditional vs null coalesce assignment
* Don't overwrite existing policy if omitted in import XML
* Update history cleanup warning and translations
* Change history cleanup alert to infomational styling
* Remove margin around history cleanup config
Co-authored-by: Ronald Barendse <ronald@barend.se>
# Conflicts:
# src/Umbraco.Core/Models/IContentType.cs
# src/Umbraco.Core/Packaging/PackageDataInstallation.cs
# src/Umbraco.Infrastructure/Persistence/Repositories/Implement/ContentTypeRepository.cs
# src/Umbraco.Infrastructure/Services/Implement/EntityXmlSerializer.cs
# src/Umbraco.Tests/Packaging/PackageDataInstallationTests.cs
# src/Umbraco.Tests/Services/Importing/ImportResources.Designer.cs
# src/Umbraco.Tests/Umbraco.Tests.csproj
# src/Umbraco.Web.UI/umbraco/config/lang/en.xml
# src/Umbraco.Web.UI/umbraco/config/lang/en_us.xml
# src/Umbraco.Web/Models/Mapping/ContentTypeMapDefinition.cs
# tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/Importing/ImportResources.resx
# tests/Umbraco.Tests.UnitTests/Umbraco.Core/Services/Importing/SingleDocType-WithCleanupPolicy.xml
* Remove namespace aliases
* Update IContentTypeWithHistoryCleanup documentation
Co-authored-by: Ronald Barendse <ronald@barend.se>
* Added EntityController.GetUrlsByIds support for int & guid + update MNTP
Fixes issue with MNTP (for 8.18) in a partial view macro - GH #11631
Renamed GetUrlsByUdis to match, don't do this in v9 as it would be
breaking there, instead mark it obsolete.
TODO: v9 ensure integration test coverage, more painful here as no
WebApplicationFactory.
* Added partial test coverage for GetUrlsByIds.
This doesn't actually work in the backoffice because of GH #11448
So lets fix that next.
* Failing test demonstrating #11448
* Fix for #11448 getByIds doesn't work as expected.
ParameterSwapControllerActionSelectorAttribute - cached body survived between requests.
* Expand on sync vs async comment for future confused souls.
* Might aswell cache parsed json vs string for performance
* Make ParameterSwapControllerActionSelector remarks more accurate.
* Share deserialized request body between action constraint and model binder
* Be more defensive with RequestBodyAsJObject HttpContext item
Only store if deserialize success.
Don't assume key being present means can cast as JObject.
* Nest constant a little deeper.
* Final defensive tweak
* Changed targetFramework in nuspec file & project files + updated NuGet dependencies
* Updated .net version in pipelines
* Updated .net version in templates
* Update more dependencies
* Fixed ambiguous call to DistinctBy() - part of Umbraco.Extensions and System.Linq
* Disabling the Razor source generators in .NET 6 due to error: "Cannot find the fallback endpoint specified by route values..."
* Fixed unit tests
Co-authored-by: Bjarke Berg <mail@bergmania.dk>
* ContentVersion cleanup backoffice UI (#11637)
* init rollback ui prototype
* add busy state to button, deselect version, add pagination status
* add localisation
* style current version
* disable rollback button when nothing is selected
* stop click event
* Endpoints for paginated content versions.
Light on tests, tight on time.
* Endpoints to "pin" content versions
* camel case json output.
Not sure why json formatter not set for controller, bit risky to add it now
* wire up paging
* wire up pin/unpin
* rename getPagedRollbackVersions to getPagedContentVersions
* prevent selection of current version and current draft
* add current draft and current version to UI
* remove pointer if the row is not selectable
* Improve warning for globally disabled cleanup feature.
* Fix current loses prevent cleanup state on publish.
* Added umbracoLog audit entries for "pin" / "unpin"
* Match v9 defaults for keepVersions settings
* Fix - losing preventCleanup on save current with content changes
* update pin/unpin button labels
* fix pagination bug
* add missing "
* always send culture when a doc type can vary
Co-authored-by: Mads Rasmussen <madsr@hey.com>
# Conflicts:
# src/Umbraco.Core/ContentEditing/ContentVersionMetaViewModel.cs
# src/Umbraco.Core/Models/HistoricContentVersionMeta.cs
# src/Umbraco.Infrastructure/Services/Implement/ContentService.cs
# src/Umbraco.Tests/Persistence/Repositories/DocumentVersionRepository_Tests_Integration.cs
# src/Umbraco.Tests/Services/ContentVersionCleanupService_Tests_UnitTests.cs
# src/Umbraco.Web.BackOffice/Controllers/ContentController.cs
# src/Umbraco.Web.UI.Client/src/common/resources/content.resource.js
# src/Umbraco.Web.UI/config/umbracoSettings.Release.config
# src/Umbraco.Web.UI/umbraco/config/lang/en.xml
# src/Umbraco.Web.UI/umbraco/config/lang/en_us.xml
# src/Umbraco.Web/Umbraco.Web.csproj
* Added tests
* Misc - missed translation update
* Bugfix - DocumentVersionRepository.Get should not join culture variation
* Bugfix - Missing write lock
* Removed unnecessary view model
* Misc - kill some warnings
* Misc - Kill some more warnings
* Fixed cypress rollback test
* Bugfix - Policy returns items to delete not items to keep.
Switch to inverse behavior.
# Conflicts:
# src/Umbraco.Tests/Services/DefaultContentVersionCleanupPolicy_Tests_UnitTests.cs
Co-authored-by: Paul Johnson <pmj@umbraco.com>
* Added failing test to demonstrate issue with large raw_ fields.
* Switched to StoredField to avoid indexing error for immense fields.
StringField indexes all the content as a single token and has a max
length of 32766.
StoredField does not analyze/index the field but enables retrieval with
luceneSearcher.Doc(docId)
Closes GH #11487
* Added failing test to demonstrate issue with large raw_ fields.
* Switched to StoredField to avoid indexing error for immense fields.
StringField indexes all the content as a single token and has a max
length of 32766.
StoredField does not analyze/index the field but enables retrieval with
luceneSearcher.Doc(docId)
Closes GH #11487
* downgraded cypress, updated package
* Fixed language test
* Fix language test
* Fixed routing tests to wait for popup
* Publish test artifacts
* Added better element to wait on
* Fix routing tests for linux
* Fix language tests on linux
* Stablize tabs tests
* Implement waiting for inner tree like in content tests
* Assert that we are in settings section so we dont click an element that doesnt exist
* Fixed rollback by not doing cy.reload()
* Fix language test with correct wait
* Stabilize dataTypes by moving API Call, and stabilize systemInformation.ts test by waiting for success notification
* Fix dataTypes, tabs and template tests
* Update node to newer version in package-lock.json and fix template test
* Implemented cy.wait to test if it is because we are too fast
* Added comments
* Bigger wait
* Try another wait instead of magic numbers
Co-authored-by: Nikolaj Geisle <niko737@edu.ucl.dk>
* downgraded cypress, updated package
* Fixed language test
* Fix language test
* Fixed routing tests to wait for popup
* Publish test artifacts
* Added better element to wait on
* Fix routing tests for linux
* Fix language tests on linux
* Stablize tabs tests
* Implement waiting for inner tree like in content tests
* Assert that we are in settings section so we dont click an element that doesnt exist
* Fixed rollback by not doing cy.reload()
* Fix language test with correct wait
* Stabilize dataTypes by moving API Call, and stabilize systemInformation.ts test by waiting for success notification
* Fix dataTypes, tabs and template tests
* Update node to newer version in package-lock.json and fix template test
* Implemented cy.wait to test if it is because we are too fast
* Added comments
* Bigger wait
* Try another wait instead of magic numbers
Co-authored-by: Nikolaj Geisle <niko737@edu.ucl.dk>
* add create language test
* add create language test
* fix bug, move test to new folder and add type definitions
* update to use culture command
Co-authored-by: Jesper <jmh@umbraco.dk>
* Added unit tests for ContentVersionService
* Clean up
* Fixed tests after using ConfigureMembers = true
* Fixed tests after using ConfigureMembers = true
* fixed flaky macro test and updated cypress version
* fixed flaky macro test and updated cypress version
* Update package.json
* Fixed failing tabs test
* Amend magic numbers with actual wait
* Update tests/Umbraco.Tests.AcceptanceTest/cypress/integration/Content/content.ts
* Updated UI to click on button instead of icon
* Make macro test click bottom to ensure we're not clicking on icon
Co-authored-by: Nikolaj Geisle <niko737@edu.ucl.dk>
(cherry picked from commit 34be464cf8)
# Conflicts:
# tests/Umbraco.Tests.AcceptanceTest/cypress/integration/Tabs/tabs.ts
* fixed flaky macro test and updated cypress version
* fixed flaky macro test and updated cypress version
* Update package.json
* Updated cypress to 8.6 and fixed failing script test
* Updated cypress to 8.6 and fixed failing script test
* Update package-lock.json
* Fixed Scripts and stylesheet tests with proper waits instead of magic numbers
* Updated to newest version of cypress and fixed template test
* Remove duplicate click
* Revert version to 8.4.1
* changed template
Co-authored-by: Nikolaj Geisle <niko737@edu.ucl.dk>
(cherry picked from commit e9ae567617)
# Conflicts:
# src/Umbraco.Tests.AcceptanceTest/package.json
# tests/Umbraco.Tests.AcceptanceTest/package-lock.json