* 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>
* Ensure path starts with forward slash in all cases
* Fix path in preview when getting by route
* Reintroduce path.length check
* Revert previous changes
* Add support for property value fallbacks in the delivery API
* Add dedicated tests for the IDeliveryApiPropertyValueConverter interface
* Rewrite for less impact and more streamlined with Razor output
* Clean up DistributedCache and add additional checks
* Add IEnumerable overloads to DistributedCacheExtensions
* Update handlers to use new IEnumerable overloads
* Move DistributedCacheExtensions to Core
* Restructure cache refreshers into folders
* Add IDistributedCacheNotificationHandler
* Rewrite DistributedCacheBinder into seperate IDistributedCacheNotificationHandler implementations
* Obsolete DistributedCacheBinder and use new IDistributedCacheHandler implementations
* Clean up ServerMessengerBase
* Ensure cache refreshers only process distinct values
* Add support for publishing multiple notifications and filter on handler type
* Suppress compatibility issues
* Remove DistributedCacheBinder and suppress compatibility issues
* Add ScopedNotificationPublisher<TNotificationHandler>
* Improve notification type lookup/enumeration
* Ensure INotificationAsyncHandler handles multiple notitications sequentially
* Minimize cache instruction JSON
* Chunk notifications by type to keep publish order
* Only serialize required RefreshInstruction properties
* Adding query params documentation
* Adding headers
* Rename file
* Added a few more descriptions and changed a few as well
---------
Co-authored-by: kjac <kja@umbraco.dk>
* 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
* Support draft-only content in the Delivery API query
* Allow outputting "entirely unpublished" content
* Make the preview path explicit to avoid clashing endpoints
* Handle trailing slash setting for preview URLs
* Update src/Umbraco.Infrastructure/Examine/DeliveryApiContentIndexValueSetBuilder.cs
Co-authored-by: Elitsa Marinovska <21998037+elit0451@users.noreply.github.com>
* Remove superfluous (and incorrect) unpublished route handling
* Make sure preview output includes routes for unpublished cultures
* Ensure that published content with unpublished ancestors are available in preview
* Fix route start item when previewing published content with unpublished parent
---------
Co-authored-by: Elitsa Marinovska <21998037+elit0451@users.noreply.github.com>
* Add VersionAssemblyName to package manifest
* Fix/improve nullability
* Ensure package version from manifest is set when package migration exists
* Set versionAssemblyName in umbracopackage template
* Use Assembly.Load instead of ITypeFinder
* Use AssemblyLoadContext to get asesmbly by name
* Add PackageId to package manifest
* Show ID on installed packages overview
* Fallback to package ID to get assembly version
* Include package ID in telemetry data
* Set id in umbracopackage template
* Add PackageId to PackageMigrationPlan
* Get version from package migration assembly
* Hide unknown package version
* Always use package name from manifest
* Use IPackagingService to return package telemety data
* Set versionAssemblyName in umbracopackage-rcl template
* Set id in umbracopackage-rcl template
* Add VersionAssemblyName to package manifest
* Fix/improve nullability
* Ensure package version from manifest is set when package migration exists
* Set versionAssemblyName in umbracopackage template
* Use Assembly.Load instead of ITypeFinder
* Use AssemblyLoadContext to get asesmbly by name
* Get version from package migration assembly
* Hide unknown package version
* Set versionAssemblyName in umbracopackage-rcl template
* Adding support for contains filters
* Making a dedicated name filter and making changes to the sort indexer
* Fixed the merge from release/12.0
* Make the "name" filter support OR for comma separated filter values
---------
Co-authored-by: kjac <kja@umbraco.dk>
* add .nvmrc to instruct NVM of preferred version
* update azure-pipelines.yml with node 18.16
* update "engines" section of package.json with preferred node.js 18.16
* update lockfiles in accordance with node 18 (lockfileVersion: 3)
* 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>
* Append start item to RTE markup
* Split the Examine specifics from API query service (#14257)
* Split the Examine specifics from API query service to a provider based model
* Review changes: Use paged model as provider return value + add logging
* Fix version
* Revert incidentally changed version number by targeting wrong branch
* Fix wrongly changed version number --- it's RC2 now
---------
Co-authored-by: Nikolaj <nikolajlauridsen@protonmail.ch>
* Add Data directory as constants
* Use new constants instead of internal ones
* Replace data directory in connection string if its there
* Update src/Umbraco.Cms.Persistence.EFCore/Extensions/UmbracoEFCoreServiceCollectionExtensions.cs
---------
Co-authored-by: Zeegaan <nge@umbraco.dk>
Co-authored-by: Mole <nikolajlauridsen@protonmail.ch>
* Re-added the postmigration from the migration context
* Minor cleanup
* Add executed migration contexts to the result object
---------
Co-authored-by: Nikolaj <nikolajlauridsen@protonmail.ch>
* The attribute we asserted on has been changed which failed our test. The test is updated to match with the correct url
* Updated so we use encodeURI instead of replacing the values in the path
* Remove test.only
* Try quick fix for test
* Fixed failing test so it now locates the correct class. Updated the locators aswell
---------
Co-authored-by: Nikolaj <nikolajlauridsen@protonmail.ch>
* Rename Umbraco.Cms.Imaging.ImageSharp.V2 to Umbraco.Cms.Imaging.ImageSharp2
* Rename Umbraco.Cms.Imaging.ImageSharp to Umbraco.Cms.Imaging.ImageSharp3
* Rename Umbraco.Cms.Imaging.ImageSharp3 back to Umbraco.Cms.Imaging.ImageSharp
* Update to ImageSharp 2.1.0 and ImageSharp.Web 2.0.0-alpha.0.23
* Rename CachedNameLength to CacheHashLength and add CacheFolderDepth setting
* Replace PhysicalFileSystemProvider with WebRootImageProvider
* Support EXIF-orientation in image dimention extractor
* Remove virtual methods on FileProviderImageProvider
* Simplify FileInfoImageResolver
* Update to SixLabors.ImageSharp.Web 2.0.0-alpha.0.25 and remove custom providers
* Make CropWebProcessor EXIF orientation-aware
* Improve width/height sanitization
* Also use 'v' as cache buster value
* Add WebP to supported image file types
* Update to SixLabors.ImageSharp.Web 2.0.0-alpha.0.27 and fix test
* Fix rounding error and add test cases
* Update to newest and stable releases
* Move ImageSharpImageUrlGenerator to Umbraco.Web.Common
* Use IConfigureOptions to configure ImageSharp options
* Implement IEquatable on ImageUrlGenerationOptions classes
* Fix empty/null values in image URL generation and corresponding tests
* Use IsSupportedImageFormat extension method
* Remove unneeded reflection
* Add HMACSecretKey setting and add token when generating image URLs
* Ensure backoffice image URLs are generated by the server (and include a correct HMAC token)
* Abstract HMAC generation to IImageUrlTokenGenerator
* Change cache buster value to 'v' and use hexadecimal timestamp
* Update comments
* Fix backoffice thumbnail URL generation
* Update grid media thumbnail URL generation
* Remove breaking changes
* Strip unknown commands from image URL token
* Remove HMAC whitelisting possibility (not supported by ImageSharp)
* Update to SixLabors.ImageSharp 2.1.3
* Add comment to internal constructor
* Fix to support absolute image URLs
* Update to SixLabors.ImageSharp.Web 2.0.3-alpha.0.3
* Remove IImageUrlTokenGenerator and use ImageSharpRequestAuthorizationUtilities
* Move NuGet feed to config file
* Update to ImageSharp v3
* Move all routing tokens (incl. API versioning) to Cms.Web.Common, so the site can start without adding the delivery API in Startup
* Fixed merge
* Fix backwards compat
* Handle culture variance and add more options for indexing fields
* Workaround for missing DB on install
* Add a document per language to the delivery API content index
* Filters and Selectors must be able to match multiple values (as OR)
* A few review changes
* Change TODO for a note
* Workaround for lazily resolved field value types in Examine
* Make removal tracking more granular to cover both single and all culture deletion
---------
Co-authored-by: Elitsa <elm@umbraco.dk>
* check for completed transitions before accessing target state
* upgrader should be happy with initial and final state being the same value - only an empty final state should throw
* refactor
* reduce complexity
* Don't check for successfull
* Add test that runs migration twice
---------
Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>
* Make implementations sealed and internal if possible
* Remove usings
* Making some models sealed as well
* Making more models sealed
* Last model changes
* Un-seal ApiContentResponse
---------
Co-authored-by: kjac <kja@umbraco.dk>
* Fix default sort for the query endpoint
* Revert changes in PathSortIndexer
* If no sort query option is provided, keep the index sorting as default
* Delete path sort and path sort indexer
---------
Co-authored-by: kjac <kja@umbraco.dk>
* updates @babel/* to 7.21.4
* update @microsoft/signalr to 7.0.5
* update @umbraco-ui/uui to 1.2.1
* update ace editor to 1.18.0
* update all build dependencies to latest version
* update jquery to 3.6.4
* update spectrum-colorpicker2 to 2.0.10
* Add icon for "styles" alias (style select)
* update tinymce to 6.4.2
Read more here: https://www.tiny.cloud/docs/tinymce/6/6.4.1-release-notes/
* updates @babel/* to 7.21.4
* update @microsoft/signalr to 7.0.5
* update @umbraco-ui/uui to 1.2.1
* update ace editor to 1.18.0
* update all build dependencies to latest version
* update jquery to 3.6.4
* update spectrum-colorpicker2 to 2.0.10
* Add icon for "styles" alias (style select)
* update tinymce to 6.4.2
Read more here: https://www.tiny.cloud/docs/tinymce/6/6.4.1-release-notes/
* updates @babel/* to 7.21.4
* update @microsoft/signalr to 7.0.5
* update @umbraco-ui/uui to 1.2.1
* update ace editor to 1.18.0
* update all build dependencies to latest version
* update jquery to 3.6.4
* update spectrum-colorpicker2 to 2.0.10
* Add icon for "styles" alias (style select)
* update tinymce to 6.4.2
Read more here: https://www.tiny.cloud/docs/tinymce/6/6.4.1-release-notes/
* Add member system fields to ListView
* Small fix
* Add sort options for new systemfield for members.
---------
Co-authored-by: Lucas Bach Bisgaard <lom@novicell.dk>
* Update the delivery API content index at un/publish
* Make the query service use "itemId" instead of "id" when extracting GUIDs + only fetch that single field rather than all fields
* Simplify the code a little
* Making AncestorsSelectorIndexer sealed
---------
Co-authored-by: Elitsa <elm@umbraco.dk>
* Taking into account the start item when no "fetch" selector is present
* Fix spacing
* Get rid of extra DefaultSelect method
* Remove comment for default selector
* Apply default sorting directly in HandleSorting()
* Get rid of nesting conditional logic
* Filter out disallowed content types from the delivery api content index
* Added .
* Allow children of disallowed content types in the index
---------
Co-authored-by: Elitsa <elm@umbraco.dk>
* Make delivery API indexers and handlers public (sealed) so they can be overridden by custom ones
* Making the rest of the indexers public (sealed)
---------
Co-authored-by: Elitsa <elm@umbraco.dk>
* Introduce content index handlers for the Delivery API
* Do not add protected content to the index
* Re-introduce public collection builder extensions
* Add backwards compatible constructor to ConfigureIndexOptions
* Fix edge case for published children of unpublished parents
* Reduce number of hardcoded field names
* Fixed copy/paste comment
* Fix field definition type for date
* Do not add trashed items to the content index
* Don't expose protected content through the item endpoints
* Removing ReSharper comment
---------
Co-authored-by: Elitsa <elm@umbraco.dk>
* Add the core parts of the headless PoC
* Add Content API project (WIP - loads of TODOs and dupes that need to be fixed!)
* Rename the content API project and namespaces
* Fixed bad merge
* Rename everything "Headless" to "ContentApi" or "Api"
* Refactor Content + Media: Key => Id, Name not nullable
* Make Content API property return value types independent of datatype configuration
* Clean up refactorings
* First stab at an expansion strategy using content picker as example implementation
* Use named JSON options for content API serialization
* Proper inclusion and registration of the content API
* Introduce API media builder
* Make MNTP return API content/media depending on configuration (instead of links) and support output expansion
* Content API: Get by controllers (#13740)
* Adding ContentApiControllerBase
* Adding get by id and url controllers
* Change route of get all test controller
* Rename to ContentApiController
* Refactoring
* Removing test controller
* Content API: Add start-node header value to deal with url collisions (#13746)
* Use start-node header value to deal with url collisions
* Cleanup
* Rename "url" param to "path"
* Adding a start node service to get the start-node header value
* Trim '/' from both beginning and end
* Content API: Support Accept-Language header (#13831)
* Move the content API JSON type resolver to an appropriate namespace
* Add localization based on Accept-Language header
* Content API: Output expansion (#13848)
* Implement request based output expansion strategy + expansion output cache at property level
* Slighty leaner implementation for default output expansion strategy
* Clarify the code a bit
* Fix bad merge
* Encapsulate content API dependencies in the DI
* Support multi-site and multi-culture routing + a little rename/refactor (#13882)
* Support multi-site and multi-culture routing + a little rename/refactor
* Make the by route controller handle root nodes
* Rename Url to Path in API content output
* Add a few comments for magic route creation
* Rename services from "Default" to "Noop"
* Ensure that Umbraco can boot without adding "AddContentApi()" to ConfigureServices
* Moved incorrectly placed media builder
* Fix API routes (#13915)
* Fix multi URL picker value converter trying to access disposed objects in edge cases
* Delivery API: Content routing and structure (#13984)
* Introduce content route instead of content path, rename and rework start item (previously start node) handling
* Strip out start node path in generated route path
* Make the start-item header take precedence over the request domain
* Conditionally enabling the delivery API + add protection and preview support + refactor all services to be singletons + ensure no-op implementations for all required services (#13992)
* Include umbraco properties (width, height, ...) in the Media Properties collection (#14023)
* Move umbraco properties (width, height, ...) to the Properties collection of the API Media model
* Don't output the umbracoFile property of media items
* Add content type deny list (#14025)
* Create a deny list of content types and utilize it for output generation
* Add unit tests
* Dedicated property cache level for Content API (#14027)
* Support redirect tracking (#14033)
* Create a deny list of content types and utilize it for output generation
* Add unit tests
* Handle redirect tracking in the content API
* Include start item routing info for redirects
* Add cultures and their routes to the API output (#14038)
* Create a deny list of content types and utilize it for output generation
* Add unit tests
* Handle redirect tracking in the content API
* Include start item routing info for redirects
* Add culture routes to root output (for HREFLANG support)
* Rename redirect service method to better match its purpose
* Review changes
* Delivery API: Query controller (#14041)
* Initial commit
* Custom ContentAPIFieldDefinitionCollection
* Make index IUmbracoContentIndex
* Add querying for children by parent id (key)
* Add missing interface
* Adding querying endpoint
* Test code
* Compose unpublishedValueSet, so that you get the correct data in the ContentAPI index
* Renaming
* Fix ancestorKeys index values
* Adding IApiQueryExtensionService to be able to query the ContentAPI index in a generic way
* Fix IApiQueryService and clean up QueryContentApiController using it
* Support querying for path
* Fix content API indexing
* Fix default sorting
* Implement concrete QueryOption implementations
* Introduce new ExecuteQuery that uses the Core OptionHandlers
* Implement ExecuteQuery
* Change ExecuteQuery signature and implementation
* Implement demo sorting and fetching
* Add query option handlers and collection builder for them
* Cleanup
* Revert "Conditionally enabling the delivery API + add protection and preview support + refactor all services to be singletons + ensure no-op implementations for all required services (#13992)"
This reverts commit 78e1f748e5.
* Revert "Delivery API: Content routing and structure (#13984)"
This reverts commit a0292ae535.
* Revert "Fix multi URL picker value converter trying to access disposed objects in edge cases"
This reverts commit 6b7c37a5bf.
* Revert "Conditionally enabling the delivery API + add protection and preview support + refactor all services to be singletons + ensure no-op implementations for all required services (#13992)"
This reverts commit 78e1f748e5.
* Revert "Delivery API: Content routing and structure (#13984)"
This reverts commit a0292ae535.
* Revert "Fix multi URL picker value converter trying to access disposed objects in edge cases"
This reverts commit 6b7c37a5bf.
* Fix multi URL picker value converter trying to access disposed objects in edge cases
* Delivery API: Content routing and structure (#13984)
* Introduce content route instead of content path, rename and rework start item (previously start node) handling
* Strip out start node path in generated route path
* Make the start-item header take precedence over the request domain
* Conditionally enabling the delivery API + add protection and preview support + refactor all services to be singletons + ensure no-op implementations for all required services (#13992)
* Test commit
* Refactored interfaces for the query handlers and for the selectors (that will handle the value of the fetch query option)
* Implemented a base class for the query options
* Refactored the names of the selectors and made use of the base class
* Refactored the ApiQueryService
* Refactored the QueryContentApiController.cs
* Conditionally enabling the delivery API + add protection and preview support + refactor all services to be singletons + ensure no-op implementations for all required services (#13992)
* Fixing merge gone wrong
* Fix multi URL picker value converter trying to access disposed objects in edge cases
* Delivery API: Content routing and structure (#13984)
* Introduce content route instead of content path, rename and rework start item (previously start node) handling
* Strip out start node path in generated route path
* Make the start-item header take precedence over the request domain
* Conditionally enabling the delivery API + add protection and preview support + refactor all services to be singletons + ensure no-op implementations for all required services (#13992)
* Make fetching work with the new setup
* Moving files to dedicated folders
* Removing ? for array
* Rename selector query method
* Implement FilterHandler and some filters
* Implement SortHandler and sort some sorts
* Refactoring
* Adding more fields to index due to querying
* Appending filtering and sorting queries
* Implementing a new ISelectorHandler without Examine types
* Re-implementing the collection to have a dedicated one for the selectors
* Implementing a new IFilterHandler without Examine types & refactoring the filters implementing it
* Adding a new collection dedicated to filters
* Renaming the old collection
* Implementing a new ISortHandler without Examine types & refactoring the sorts implementing it
* Adding a new collection for the sorts & adding all collections to UmbracoBuilder.Collections
* Refactoring the service to use the new collections and types
* Refactoring the fields in ContentApiFieldDefinitionCollection
* Remove nullability in Handlers
* Don't return null for selector
* Add TODO for having the filters support negation
* Changing the SortType to FieldType with our custom types on the SortOption
* Fix AncestorsSelector
* Fix ApiQueryService
* Documentation
* Fix Swagger docs
* Refactor the QueryContentApiController
* Adding handling for the IApiContentResponse in the JsonTypeResolver
* Refactor the service to use a safe fallback value in Examine queries
* Adding Noop for the IApiQueryService
* Cleanup
* Remove comment
* Fix name field for indexing
* Don't inherit QueryOptionBase in filters
* Fix casing for API index constant + swap FIXME with TODO
* Add TODO for handling missing fetch with start-item header
* Rename query handler parameters to not leak source (i.e. query string)
---------
Co-authored-by: kjac <kja@umbraco.dk>
Co-authored-by: Elitsa <>
Co-authored-by: Zeegaan <nge@umbraco.dk>
* Delivery API: Adding pagination to query endpoint (#14083)
* Adding pagination to query endpoint
* Optimize the paging using Examine directly
* Fix comment
* Remove skip/take code duplication
---------
Co-authored-by: kjac <kja@umbraco.dk>
* Add missing CompatibilitySuppressions.xml
* Make Delivery API packable
* Make Api.Common packable
* Renamed extension method and namespace so it is discoverable
* Untangle ApiVersion configuration into api.common, so delivery api do not require the management api to boot.
* configure options in management api
* RTE output as JSON for Content API (#14067)
* Conditionally serve RTE output as JSON instead of HTML
* Fixed merge
* Rename to Delivery API (#14119)
* Rename ContentApi to DeliveryApi
* Rename delivery API index implementation
* Update comments from "Content API" to "Delivery API"
* Rename project from Content to Delivery
* Add dedicated controller base for content delivery API
* Rename delivery API content index to include "content" specifically
* Fix compat suppressions
---------
Co-authored-by: kjac <kja@umbraco.dk>
Co-authored-by: Elitsa Marinovska <21998037+elit0451@users.noreply.github.com>
Co-authored-by: Zeegaan <nge@umbraco.dk>
* New Backoffice: Refactor migrations to allow for unscoped migrations (#13654)
* Remove PostMigrations
These should be replaced with Notification usage
* Remove outer scope from Upgrader
* Remove unececary null check
* Add marker base class for migrations
* Enable scopeless migrations
* Remove unnecessary state check
The final state of the migration is no longer necessarily the final state of the plan.
* Extend ExecutedMigrationPlan
* Ensure that MigrationPlanExecutor.Execute always returns a result.
* Always save final state, regardless of errors
* Remove obsolete Execute
* Add Umbraco specific migration notification
* Publish notification after umbraco migration
* Throw the exception that failed a migration after publishing notification
* Handle notification publishing in DatabaseBuilder
* Fix tests
* Remember to complete scope
* Clean up MigrationPlanExecutor
* Run each package migration in a separate scope
* Add PartialMigrationsTests
* Add unhappy path test
* Fix bug shown by test
* Move PartialMigrationsTests into the correct folder
* Comment out refresh cache in data type migration
Need to add this back again as a notification handler or something.
* Start working on a notification test
* Allow migrations to request a cache rebuild
* Set RebuildCache from MigrateDataTypeConfigurations
* Clean MigrationPlanExecutor
* Add comment explaining the need to partial migration success
* Fix tests
* Allow overriding DefinePlan of UmbracoPlan
This is needed to test the DatabaseBuilder
* Fix notification test
* Don't throw exception to be immediately re-caught
* Assert that scopes notification are always published
* Ensure that scopes are created when requested
* Make test classes internal.
It doesn't really matter, but this way it doesn't show up in intellisense
* Add notification handler for clearing cookies
* Add CompatibilitySuppressions
* Rename Execute to ExecutePlan
We have to do this to be able to obsolete :(
* Update CompatibilitySuppressions
* Update src/Umbraco.Infrastructure/Migrations/MigrationPlanExecutor.cs
Co-authored-by: Bjarke Berg <mail@bergmania.dk>
Co-authored-by: Bjarke Berg <mail@bergmania.dk>
* generate compatability suppresion file
---------
Co-authored-by: Mole <nikolajlauridsen@protonmail.ch>
Co-authored-by: Bjarke Berg <mail@bergmania.dk>
Co-authored-by: Zeegaan <nge@umbraco.dk>
* Update default UmbracoVersion template value using MSBuild target
* Fix target order when using pack --no-build
* Use JsonPathUpdateValue MSBuild task to update default UmbracoVersion template value
* Update UmbracoVersion in Umbraco Package RCL
* 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.
* 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>
* 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>
* 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>
* Improve ImageSharpImageUrlGenerationTests
Removed a few "stale" tests that look to have been from code of old.
Add tests for all ImageUrlGenerationOptions.
Add some edge case tests to make the tests more sensitive.
Reduce scope for certain tests so the test is more focused on one thing rather than multiple
* Amending a mis-spelt variable.
---------
Co-authored-by: georgebid <91198628+georgebid@users.noreply.github.com>
* small wording change for Element Type description
* updated language files IRT Element Types
* replacing a duplicate Block List with Block Grid
---------
Co-authored-by: Rheannon <ral@umbraco.dk>
* Updated the maximum Node version supported
Building the current version of the back office is only supported on Node v16 and earlier so have updated the docs to reflect that.
* Updated the .Net and VS requirements
For v11 you now need to be running .Net 7 and VS 2022 so have updated the docs to reflect that.
* Apply suggestions from code review
Co-authored-by: Jason Elkin <jasonelkin86@gmail.com>
---------
Co-authored-by: Sebastiaan Janssen <sebastiaan@umbraco.com>
Co-authored-by: Jason Elkin <jasonelkin86@gmail.com>
* 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
* 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>
* Add IsNullOrWhiteSpace Extension method
IsNullOrWhiteSpace extension method for IHtmlEncodedString
* Move extension method
* Add a UnitTest for the IsNullOrWhiteSpace extension method
* Update unit test
* Moved deleteAllMedia to afterEach, the reason for that is that we delete all the media in each test.
* Added additional timeout and a WaitForTimeout(), the reason for the WaitForTimeout is because it can take a second for the modelsbuilder to update the view.
* Added more timeout for the isSuccessNotificationVisible. Updated the helper ensureNameNotExists so they actually delete the partialViews
* Updated the locators for deleting the UK language. Added an expect for checking if the UK language is visible in the UI
* Updated the position where the dragAndDrop drops to
* Changed the trace so we only save the trace on the first retry, it saves a lot of time when the tests are running, since we dont need to save the trace and then delete the trace after each successful test
* Updated locators. Added an expect so the test waits until the / is visible in the URL before going further into the test
* Changed back to retain on failure on the pipelines, the reason for that is if a test only fails once, then we wont see what the actual error was in the test when looking on the pipeline.
* Added an expect so we wait until the page is loaded for packages
* Updated the dragAndDrop so they hopefully work.
* Changed values for dragAndDrop
* Updated the dragAndDrop values
* Bumped playwright version
* Added tests for testing if the rendering is working as intended for the block grid editor
* Added Layout stylesheets for testing
* We are now using the page.toHaveScreenshot() which checks if the test looks the same as the pngs.
* Updated the toHaveScreenShot so they now take in a shorter name for the pngs
* Updated the page.goto so they new go the to baseUrl based on the umbracoConfig
* Added additional pngs for the Linux tests
* Updated the pngs for linux yet again
* 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.
* Added test for the advanced section under the block grid editor in content
* Bumped versions
* Added fixture template and customView
* Updated naming of tests
* Added test for testing the area of the blockGridDataType
* Bumped version of playwright, builders and the helpers
* Added additional test timeout
* Added additional timeout since some test can be slow and timeout
* Added additional mediaLibrary to the path
* Changed so we now use slow which increases the test timeout by three times
* Changed to slow instead of setting timeout
- Custom Macro Parameter with true as default value can be created for those prefering that in their project
Co-authored-by: Jo Mehmet Sollihagen <jomehmet@solsol.no>
* Removed path so we can generate templates
* Remove old proj ref to core from cs proj (#13870)
Co-authored-by: Zeegaan <nge@umbraco.dk>
---------
Co-authored-by: Andreas Zerbst <andr317c@live.dk>
Co-authored-by: Bjarke Berg <mail@bergmania.dk>
Co-authored-by: Zeegaan <nge@umbraco.dk>
Changed internal to public for ContentPickerValueConverter, which was the only property value converter defined as `internal`
Fixes issue umbraco#13858
* Add sort order to IDomain, UmbracoDomain and DomainDto
* Add migration to create domain sort order column
* Add Sort method to domain service
* Set sort order when persisting new domain and order results
* Add multiple and block style support to umb-button-group
* Allow sorting domains in back-office, improve UI and rewrite PostSaveLanguageAndDomains for correctly sorting domains
* Ensure routing and cache keeps the domain sort order
* Update test to assert correct domain order
* Move migration to target 11.3 and cleanup plan
* Fix formatting/styling and make SelectDomains private
Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>
---------
Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>
* update ace-builds from 1.14.0 to 1.15.0
* update eslint from 8.32.0 to 8.33.0
* update jsdom from 21.0.0 to 21.1.0
* update nouislider from 15.6.1 to 15.7.0
* 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>
* let the server determine the type rather than assuming it is an image
this is especially useful for SVGs that would otherwise be uploaded as images instead of the more appropriate Vector Graphics default type
* do not start processing of the queue if a dialog is shown
return early if the dialog is shown (if _requestChooseMediaTypeDialog() does not immediately return false) because that means the user will pick the media type
* clean up of the scope for performance
remove 'handleFile' since it is not being used and make the other callbacks one-way bound since we are not changing them
* add jsdoc to improve understanding of the dropzone directive
* 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>
* Added tests for the BlockGridEditorDataType
* Bumped versions
* Split the file into two, so we now have a file with the Blocks and one with the Configuration of the datatype
* Changed function variables to class variables.
Changed tests to use the ConstantHelpers
Changed naming
* Fixes#13715 issue with simple logviewer searches
* Update Logviewer test - to ensure MessageLike and simple equivalent returns same result count to help catch
* Add improved log message when in memory compilation fails.
* Move LogCompilationFailure into its own method
And hopefully make codescene happeh
* Reduce nesting
* Replace null check with linq
* 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
* remove the onSetup for the macro button since we want to always be able to interact with the macro button (either insert or edit)
* let the onAction method find the currently selected macro by asking the active editor for its selection instead of relying on the NodeChanged event
* build(deps-dev): update development dependencies
* update the Umbraco UI library to 1.1.0
* update ace editor to 1.14.0
* update diff to 5.1.0
* update jquery to 3.6.3
* update tinymce to 6.3.1
* update underscore to 1.13.6
* update @microsoft/signalr to 7.0.2
* Obsolete chings changed in v13
* Fix tests
* Obsolete Execute and add ExecutePlan with default implementation.
This just calls the old implementation and creates an ExecutedMigrationPlan from the result
In V13 this has its own implementation.
* Mention notification in obsolete message
* Changing nullability
* Obsolete DeleteSavedSearch since the query param is not used
* Fix a bit more referenced
* Add default implementation for the new overload of DeleteSavedSearch
* Ensure border is set so it doesn't jump on selection
* Allow to hide color from icon picker
* Use CSS grid instead to fill icons and with minimum width
* Remove odd flex size
* Set minimum to 60px instead
This is required for consumers that intend to use WithCustomMiddleware instead of WithMiddleware, as otherwise they are forced to re-implement this code
* fix for #13623 by hiding Member Edit Action Menu on Infinite editing for consistency
* added missing attribute to umb-editor-header for Member editing
* 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>
* 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>
* Adding health check controllers - getAll & getGroupByName
* Adding HealthCheckGroup mapper
* Adding viewModels
* Adding a factory for building a health check group with result view model
* Registering the mapper and factory
* Updating OpenApi.json
* Remove unnecessary checks - we instantiate the target before calling the Map()
* Adding ProducesResponseType for GetAll()
* Fixing usings
* Making checks required for a health check group
* Adding OK() around result to be explicit
* Adding default values to skip and take
* Adding Umbraco.Code comments
* Removing ? from HealthCheckGroupWithResultViewModel return type
* Move the grouping creation to the factory
* Adding Actions[] for each health check + mapping
* Defaulting ValueRequired to false
* Refactoring routes - from health-check to health-check-group
* Move to HealthCheckGroup folder
* Fix OpenApi.json
* Changing class name and making Key of HealthCheckActionViewModel non-nullable
* Fixing namespace
* Migrating ExecuteAction endpoint
* Add execute-action endpoint to OpenApi.json
* Use Task.FromResult() around the action result
* Fixing namespaces and swagger group name
* Fixing naming of the key in the health check action
* Fix tag names in OpenApi.json
* Add status endpoint
* Refactor GetStatus to use a factory for the viewmodel
* Move controllers to correct namespace
* Add response type to GetStatus
* Create query endpoint
* Create GetAll endpoint
* Add by key
* Add delete by key
* Rename enabled controller
* Add SetEnabled endpoint
* Update OpenApi.json
* Replace query endpoint with a optional filter parameter
* Use enum to enabled and disable url tracking
* Update OpenApi.json
* Add bad request response type to GetAll endpoint
* Created a common library for the APIs and moved stuff that is required for the new content API. Also moved the versioned backoffice API route handling to the management API where it belongs.
* Remove test auth attribute from Media
* Bump version
* Add PrivateAssets="all" to mangement api project reference (#13249)
* Bump version
* Use the actual save function for saving the copy (#13066)
* Use the actual save function for saving the copy
* PR feedback
(cherry picked from commit 3802097a32)
* Unbreak breaking change in #13066 (#13288)
(cherry picked from commit e4741b0c64)
* Bump version to 10.3.2
* Parse lockId as invariant (#13284)
Co-authored-by: Zeegaan <nge@umbraco.dk>
(cherry picked from commit 272e922020)
* 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>
* Updated Smidge (#13331)
* Fix casing in fileSystemBasePath (#13306)
* Add guard statement (#13340)
* Move block grid single area rendering to its own dedicated view (#13359)
* Block Grid Editor Improvements (#13282)
* remove console log
* Updated references for Forms and Deploy in JSON schema project. (#13411)
* 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>
* 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
* 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>
* 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>
* 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>
* 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>
* update block grid panel name (#13325)
Co-authored-by: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com>
* 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>
* 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>
* 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>
* updated package-lock
* 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>
* 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>
* 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>
* 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>
* 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>
* Display media trashed state on custom view for image demo block (#13448)
* Block Grid Editor translations and Area size keyboard navigation (#13450)
* use custom prop for calculated width (#13451)
* 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>
* Cherry pick #13373 to v10/dev
* remove the hidding of catelouge appearance as its not located under advance (#13456)
* Fix preview issue for new (empty) variants (#13455)
* Fix save and preview for new (unsaved) variants
* Rework & simplify
* 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
* Cherry pick #13404 to v10
* Delete references using custom relation types (#13389)
undefined
* 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
* 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>
* Ensure that all automatic relation types are updated (#13470)
* 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
* do not set layout gaps (#13496)
* V10/feature/fixing flaky acceptance test (#13473)
* Updated Forms dependency for JSON schema to the latest version. (#13505)
* Accessibility - Fix Packages - Modal - Empty buttons (#13114)
* Changing the way we create the temp file for SQLite file (#13439)
* Fix concurrency issue in UmbracoMapper (#13524)
* Add logging to UmbracoMapper
* Add NullLogger to tests
Co-authored-by: Zeegaan <nge@umbraco.dk>
* 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>
* 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>
* 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>
* Rollback project imports
* Remove duplicated lines in translations
Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: Zeegaan <nge@umbraco.dk>
Co-authored-by: Nikolaj <nikolajlauridsen@protonmail.ch>
Co-authored-by: patrickdemooij9 <patrickdemooij98@hotmail.com>
Co-authored-by: Sebastiaan Janssen <sebastiaan@umbraco.com>
Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>
Co-authored-by: Andy Butland <abutland73@gmail.com>
Co-authored-by: Ronald Barendse <ronald@barend.se>
Co-authored-by: Kenn Jacobsen <kja@umbraco.dk>
Co-authored-by: Niels Lyngsø <nsl@umbraco.dk>
Co-authored-by: Niels Lyngsø <niels.lyngso@gmail.com>
Co-authored-by: Søren Kottal <sk@ecreo.dk>
Co-authored-by: Zeegaan <nge@umbraco.dk>
Co-authored-by: Mads Rasmussen <madsr@hey.com>
Co-authored-by: Elitsa Marinovska <elm@umbraco.dk>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Blake Watt <bkclerke@users.noreply.github.com>
Co-authored-by: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com>
Co-authored-by: niekvanderreest <niekvanderreest@hotmail.com>
Co-authored-by: Bjarne Fyrstenborg <bjarne_fyrstenborg@hotmail.com>
Co-authored-by: Rasmus John Pedersen <mail@rjp.dk>
Co-authored-by: Andreas Zerbst <73799582+andr317c@users.noreply.github.com>
Co-authored-by: Jan Skovgaard <1932158+BatJan@users.noreply.github.com>
Co-authored-by: Elitsa Marinovska <21998037+elit0451@users.noreply.github.com>
Co-authored-by: Jonny Muir <jonnymoo@hotmail.com>
Co-authored-by: Nathan Woulfe <nathan@nathanw.com.au>
Co-authored-by: Justin Neville <67802060+justin-nevitech@users.noreply.github.com>
* 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>
* 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>
* 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
* 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>
* 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>
* update marketplace url to its final, live url
* Added various Block Grid translations (EN & NL) (#13488)
* Added various translations
* Added another translation
* Change request
* Revert breaking changes adding IContextCache to deploy connectors (#13489)
* Remove breaking changes in Deploy connector interfaces
* Add extension methods for calling the new interface methods in a backwards-compatible way
* Create and pack empty file to add TFM dependency (#13475)
* Change login image to new SVG. (#13493)
* Only add global usings when ImplicitUsings is enabled (#13491)
* bump to rc6
* V11: Allow changing logging directory from configuration (#13485)
* Allow changing logging directory from configuration
* Clean up
* Missing return statement
* Apply suggestions from code review
Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>
* Update src/Umbraco.Core/Constants-SystemDirectories.cs
Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>
Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>
* Move login.svg file
* 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
* 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
* do not set layout gaps (#13496)
* Nuget updates (#13478)
* Updated nuget packages
* Remove npoco update
Co-authored-by: nikolajlauridsen <nikolajlauridsen@protonmail.ch>
* Nuget updates (#13478)
* Updated nuget packages
* Remove npoco update
Co-authored-by: nikolajlauridsen <nikolajlauridsen@protonmail.ch>
* Bump version to final
* V11/cherry pick flaky test (#13506)
* V10/feature/fixing flaky acceptance test (#13473)
* Bumped version
* Handle external authentication providers (#13487)
Co-authored-by: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com>
Co-authored-by: Corné Hoskam <choskam@hotmail.com>
Co-authored-by: Ronald Barendse <ronald@barend.se>
Co-authored-by: Niels Lyngsø <nsl@umbraco.dk>
Co-authored-by: Bjarke Berg <mail@bergmania.dk>
Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>
Co-authored-by: nikolajlauridsen <nikolajlauridsen@protonmail.ch>
Co-authored-by: Andreas Zerbst <73799582+andr317c@users.noreply.github.com>
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.
* 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
* Make sure contexbar fits within the available space
* Ensuring context bar moves above, no matter size of it.
* Fixing apperance of connection-fixers
* 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>
* 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>
* 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>
* 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>
* 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>
* 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>
* 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>
* remove typo of double PagedViewModel in response
* add providerProperties with custom formatter
* use a more descriptive variable name
* use a more descriptive variable name for property types
* generate new schema
Co-authored-by: Zeegaan <nge@umbraco.dk>
* 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>
* 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>
* update json-models-builders
* Add reporting to all before each loops
* Add commitId to env for pipelines
* Test reports correctly
* Bumb testhelper version
* Update playwright-testhelpers version
* Bumb playwright test-helper version
* Bumb playwright-testhelpers version
* Add AgentOs to yaml env
* Bumb playwright-testhelper version
* Try different AgentOS
* Revert "Try different AgentOS"
This reverts commit fc90620aef.
* Revert logo test
* Add missing semicolons
* Update package-lock.json
* Add reports to Blocklist tests
Co-authored-by: Zeegaan <nge@umbraco.dk>
* Set higher z-index for TinyMCE overlays as they were set below that of our property editor overlays
Fixes#13414
* replace !important with more specificity
* Set higher z-index for TinyMCE overlays as they were set below that of our property editor overlays
Fixes#13414
* replace !important with more specificity
* add a custom operationId generator to swagger operations based on the name of the action
* mark 'total' and 'items' as required in all paged models seeing as they should be there always non-nullable
* fix action typo collect -> rebuild to avoid duplicates
* fix operations for server status + version
* add factory to format custom operation ids
* Revert "fix operations for server status + version"
This reverts commit 066a59e1c2.
* Throw exception if no relative path and remove template placeholders completely
* Revert "Throw exception if no relative path and remove template placeholders completely"
This reverts commit 40af0721d6.
* Move source generated regex statements to its own file (#13410)
Co-authored-by: Mole <nikolajlauridsen@protonmail.ch>
* combine 'inline' and 'distraction-free' modes with the quickbars plugin
* remove 'distraction-free' and map to 'inline'
* remove container overrides for 'distraction-free'
* combine 'inline' and 'distraction-free' modes with the quickbars plugin
* remove 'distraction-free' and map to 'inline'
* remove container overrides for 'distraction-free'
@Zeegaan We have a use case where we need to set a value in the AdditionalData dictionary in a NotificationHandler, but as it can be null, it requires reflection to make sure that is not the case. As such, it would be nice if the following change could be implemented to ensure it is never null.
* Allow simultaneous uploads
Upload files in batches for faster uploading
* Fix concurrency issue
Many requests to add files coming at the same time can cause duplicate folders to be created.
In some cases, SQL exceptions can throw, and cause the application to hang.
Add Semaphore to process files on a single thread.
* Replace Semaphore with a Scope Provider
As suggested in the PR comments, replaced Semaphore with ICoreScopeProvider
* Revert "Replace Semaphore with a Scope Provider"
This reverts commit 228e1010c6.
* Add comment to make configurable
Out of scope of the PR, but this should be configurable in appsettings
* Apply PR 13345
Apply PR 13345 to resolve "freezing" issue caused by unhandled errors
* Account for currently processing items
If you drag files into the dropzone whilst other files are uploading then the "total" count is incorrect.
* Created test for block list editor
* Added a couple of test for the block list editor
* Changed parts of builder
* Split the test into two files instead of one
* Updated and added test for blockListEditor
* Updated version
* Fixed so it now targets the correct selector
* Removed unnecessary login in the afterEach
* Fixed up the test so they are now using constants and the correct helpers
* Bumped version
* Updated the package-lock
* Added local function to battle code reuse!
* Updated the path of the image for the test 'can edit a block list editor'
* Placed an expect before the button so it waits to click the button till it's visible
* Yet another fix for the imagePath and a missing "
@Zeegaan We have a use case where we need to set a value in the AdditionalData dictionary in a NotificationHandler, but as it can be null, it requires reflection to make sure that is not the case. As such, it would be nice if the following change could be implemented to ensure it is never null.
* New backoffice: Cleanup management API routes (#13296)
* Rename ModelsBuilderDashboard folder to ModelsBuilder
* Fix modelsbuilder paths and related naming
* Rename analytics route to telemetry
* Fix controller bases - routes and tags
* Fix items route
* Fix more controllerbase routes
* Fix route
* Fix OpenApi file
* Merging DictionaryItem and Dictionary
* Fix TrackedReferences naming
* Update OpenApi file
* Rename Analytics* related types to Telemetry*
* New Backoffice: Return AnalyticsLevelViewModel from Telemetry/ (#13298)
* Return TelemetryLevelViewModel instead of TelemetryLevel
* Fix schema
* Change telemetry/current to telemetry/level
(cherry picked from commit f2b8494c669cbbf04b623753abbf1be211973aa9)
* Add contants for tree and recycle-bin subpaths
(cherry picked from commit 4449f56bc00832ea6d357a3854b454791c80e0e2)
Co-authored-by: Mole <nikolajlauridsen@protonmail.ch>
* OpenId Connect authentication for new management API (#13318)
* First attempt at OpenIddict
* Making headway and more TODOs
* Redo current policies for multiple schemas + clean up auth controller
* Fix bad merge
* Clean up some more test code
* Fix spacing
* Include AddAuthentication() in OpenIddict addition
* A little more clean-up
* Move application creation to its own implementation + prepare for middleware to handle valid callback URL
* Enable refresh token flow
* Fix bad merge from v11/dev
* Support auth for Swagger and Postman in non-production environments + use default login screen for back-office logins
* Add workaround to client side login handling so the OAuth return URL is not corrupted before redirection
* Add temporary configuration handling for new backoffice
* Restructure the code somewhat, move singular responsibility from management API project
* Add recurring task for cleaning up old tokens in the DB
* Fix bad merge + make auth controller align with the new management API structure
* Explicitly handle the new management API path as a backoffice path (NOTE: this is potentially behaviorally breaking!)
* Redo handle the new management API requests as backoffice requests, this time in a non-breaking way
* Add/update TODOs
* Revert duplication of current auth policies for OpenIddict (as it breaks everything for V11 without the new management APIs) and introduce a dedicated PoC policy setup for OpenIddict.
* Fix failing unit tests
* Update src/Umbraco.Cms.ManagementApi/Security/BackOfficeApplicationManager.cs
Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>
* Update src/Umbraco.Cms.ManagementApi/Security/BackOfficeApplicationManager.cs
Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>
* Update src/Umbraco.Cms.ManagementApi/Security/BackOfficeApplicationManager.cs
Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>
* Update src/Umbraco.Core/Routing/UmbracoRequestPaths.cs
Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>
* Use Swashbuckle instead of NSwag (#13350)
* First attempt at OpenIddict
* Making headway and more TODOs
* Redo current policies for multiple schemas + clean up auth controller
* Fix bad merge
* Clean up some more test code
* Fix spacing
* Include AddAuthentication() in OpenIddict addition
* A little more clean-up
* Move application creation to its own implementation + prepare for middleware to handle valid callback URL
* Enable refresh token flow
* Fix bad merge from v11/dev
* Support auth for Swagger and Postman in non-production environments + use default login screen for back-office logins
* Add workaround to client side login handling so the OAuth return URL is not corrupted before redirection
* Add temporary configuration handling for new backoffice
* Restructure the code somewhat, move singular responsibility from management API project
* Add recurring task for cleaning up old tokens in the DB
* Fix bad merge + make auth controller align with the new management API structure
* Explicitly handle the new management API path as a backoffice path (NOTE: this is potentially behaviorally breaking!)
* Redo handle the new management API requests as backoffice requests, this time in a non-breaking way
* Add/update TODOs
* Replace NSwag with Swashbuckle and clean up unnecessary client secret workaround
* Revert duplication of current auth policies for OpenIddict (as it breaks everything for V11 without the new management APIs) and introduce a dedicated PoC policy setup for OpenIddict.
* Fix failing unit tests
* A little niceness + export new OpenApi.json and fix path in contract unit test
* Redo after merge with v11/dev + filter out unwanted mime types
* Remove CreatedResult and NotFoundObjectResult where possible
* Custom schema IDs - no more "ViewModel" postfix and make generic lists look less clunky too
* A little more explanation for generic schema ID generation
* Force Swashbuckle to use enum string names
* Update OpenApi.json to match new enum string values
* Add clarifying comment about weird looking construct
Co-authored-by: Elitsa Marinovska <21998037+elit0451@users.noreply.github.com>
Co-authored-by: Kenn Jacobsen <kja@umbraco.dk>
Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>
* Update UnPublishedContentPropertyCacheCompressionOptions to also accept Nvarchar
* Update DTOs to use nvarchar(max)
* Add Migration
* Simplify migration a bit
* Refactor column migration for reuse
* Add remaning column migrations
* Support non-nullable column
* Make it idempotent
* Skip SQLite
* Revert "Update UnPublishedContentPropertyCacheCompressionOptions to also accept Nvarchar"
This reverts commit d432d165de.
* Obsolete NTEXT
* Ignore case when checking column type
* Bump version
* Add IContextCache to deploy connectors (#13287)
* Add IContextCache and implementations
* Update connector interfaces to use IContextCache
* Minor cleanup
* Move DeployContextCache prefix to constant
* Move default implementations to obsolete methods
* Remove DeployContextCache and DictionaryCache
Co-authored-by: Andy Butland <abutland73@gmail.com>
* Add IContextCache to deploy connectors (#13287)
* Add IContextCache and implementations
* Update connector interfaces to use IContextCache
* Minor cleanup
* Move DeployContextCache prefix to constant
* Move default implementations to obsolete methods
* Remove DeployContextCache and DictionaryCache
Co-authored-by: Andy Butland <abutland73@gmail.com>
* Parse lockId as invariant (#13284)
Co-authored-by: Zeegaan <nge@umbraco.dk>
* 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>
* Bump version to next minor
* Fix for UseExceptionHandler no longer working since v10.3 RC (#13218)
* Fix for UseExceptionHandler no longer working since v10.3 RC
* Update the management api path to match the new one
Co-authored-by: Nikolaj <nikolajlauridsen@protonmail.ch>
* New backoffice: Cleanup management API routes (#13296)
* Rename ModelsBuilderDashboard folder to ModelsBuilder
* Fix modelsbuilder paths and related naming
* Rename analytics route to telemetry
* Fix controller bases - routes and tags
* Fix items route
* Fix more controllerbase routes
* Fix route
* Fix OpenApi file
* Merging DictionaryItem and Dictionary
* Fix TrackedReferences naming
* Update OpenApi file
* Rename Analytics* related types to Telemetry*
* New Backoffice: Return AnalyticsLevelViewModel from Telemetry/ (#13298)
* Return TelemetryLevelViewModel instead of TelemetryLevel
* Fix schema
* Change telemetry/current to telemetry/level
(cherry picked from commit f2b8494c669cbbf04b623753abbf1be211973aa9)
* Add contants for tree and recycle-bin subpaths
(cherry picked from commit 4449f56bc00832ea6d357a3854b454791c80e0e2)
Co-authored-by: Mole <nikolajlauridsen@protonmail.ch>
* Updated Smidge, Npoco and MailKit (#13310)
* Updated Smidge, Npoco and MailKit
* Added missing command (after breaking interface in npoco)
* OpenId Connect authentication for new management API (#13318)
* First attempt at OpenIddict
* Making headway and more TODOs
* Redo current policies for multiple schemas + clean up auth controller
* Fix bad merge
* Clean up some more test code
* Fix spacing
* Include AddAuthentication() in OpenIddict addition
* A little more clean-up
* Move application creation to its own implementation + prepare for middleware to handle valid callback URL
* Enable refresh token flow
* Fix bad merge from v11/dev
* Support auth for Swagger and Postman in non-production environments + use default login screen for back-office logins
* Add workaround to client side login handling so the OAuth return URL is not corrupted before redirection
* Add temporary configuration handling for new backoffice
* Restructure the code somewhat, move singular responsibility from management API project
* Add recurring task for cleaning up old tokens in the DB
* Fix bad merge + make auth controller align with the new management API structure
* Explicitly handle the new management API path as a backoffice path (NOTE: this is potentially behaviorally breaking!)
* Redo handle the new management API requests as backoffice requests, this time in a non-breaking way
* Add/update TODOs
* Revert duplication of current auth policies for OpenIddict (as it breaks everything for V11 without the new management APIs) and introduce a dedicated PoC policy setup for OpenIddict.
* Fix failing unit tests
* Update src/Umbraco.Cms.ManagementApi/Security/BackOfficeApplicationManager.cs
Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>
* Update src/Umbraco.Cms.ManagementApi/Security/BackOfficeApplicationManager.cs
Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>
* Update src/Umbraco.Cms.ManagementApi/Security/BackOfficeApplicationManager.cs
Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>
* Update src/Umbraco.Core/Routing/UmbracoRequestPaths.cs
Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>
* V11: Using IFileProvider to access assets added from packages (#13141)
* Creating a FileProviderFactory for getting the package.manifest and grid.editors.config.js files through a file provider
* Collecting the package.manifest-s from different sources
* Searching different sources for grid.editors.config.js
* Using an IFileProvider to collect all tours
* Refactoring IconService.cs
* Typo
* Optimizations when looping through the file system
* Moving WebRootFileProviderFactory to Umbraco.Web.Common proj
* Removes double registering
* pluginLangFileSources includes the localPluginFileSources
* Comments
* Remove linq from foreach
* Change workflow for grid.editors.config.js so we check first physical file, then RCL, then Embedded
* Clean up
* Check if config dir exists
* Discover nested package.manifest files
* Fix IFileInfo.PhysicalPath check
* Revert 712810e1fd as that way files in content root are preferred over those in web root
* Adding comments
* Refactoring
* Remove PhysicalPath check
* Fix registration of WebRootFileProviderFactory
* Use Swashbuckle instead of NSwag (#13350)
* First attempt at OpenIddict
* Making headway and more TODOs
* Redo current policies for multiple schemas + clean up auth controller
* Fix bad merge
* Clean up some more test code
* Fix spacing
* Include AddAuthentication() in OpenIddict addition
* A little more clean-up
* Move application creation to its own implementation + prepare for middleware to handle valid callback URL
* Enable refresh token flow
* Fix bad merge from v11/dev
* Support auth for Swagger and Postman in non-production environments + use default login screen for back-office logins
* Add workaround to client side login handling so the OAuth return URL is not corrupted before redirection
* Add temporary configuration handling for new backoffice
* Restructure the code somewhat, move singular responsibility from management API project
* Add recurring task for cleaning up old tokens in the DB
* Fix bad merge + make auth controller align with the new management API structure
* Explicitly handle the new management API path as a backoffice path (NOTE: this is potentially behaviorally breaking!)
* Redo handle the new management API requests as backoffice requests, this time in a non-breaking way
* Add/update TODOs
* Replace NSwag with Swashbuckle and clean up unnecessary client secret workaround
* Revert duplication of current auth policies for OpenIddict (as it breaks everything for V11 without the new management APIs) and introduce a dedicated PoC policy setup for OpenIddict.
* Fix failing unit tests
* A little niceness + export new OpenApi.json and fix path in contract unit test
* Redo after merge with v11/dev + filter out unwanted mime types
* Remove CreatedResult and NotFoundObjectResult where possible
* Custom schema IDs - no more "ViewModel" postfix and make generic lists look less clunky too
* A little more explanation for generic schema ID generation
* Force Swashbuckle to use enum string names
* Update OpenApi.json to match new enum string values
* Add clarifying comment about weird looking construct
* add workflow to schema (#13349)
* add workflow to schema
* add licenses to CMSDefinition - intentionally only adding to schema, not registered as options
Co-authored-by: Nikolaj <nikolajlauridsen@protonmail.ch>
Co-authored-by: Ronald Barendse <ronald@barend.se>
Co-authored-by: Andy Butland <abutland73@gmail.com>
Co-authored-by: Zeegaan <nge@umbraco.dk>
Co-authored-by: Justin Neville <67802060+justin-nevitech@users.noreply.github.com>
Co-authored-by: Elitsa Marinovska <21998037+elit0451@users.noreply.github.com>
Co-authored-by: Bjarke Berg <mail@bergmania.dk>
Co-authored-by: Kenn Jacobsen <kja@umbraco.dk>
Co-authored-by: Nathan Woulfe <nathan@nathanw.com.au>
* First attempt at OpenIddict
* Making headway and more TODOs
* Redo current policies for multiple schemas + clean up auth controller
* Fix bad merge
* Clean up some more test code
* Fix spacing
* Include AddAuthentication() in OpenIddict addition
* A little more clean-up
* Move application creation to its own implementation + prepare for middleware to handle valid callback URL
* Enable refresh token flow
* Fix bad merge from v11/dev
* Support auth for Swagger and Postman in non-production environments + use default login screen for back-office logins
* Add workaround to client side login handling so the OAuth return URL is not corrupted before redirection
* Add temporary configuration handling for new backoffice
* Restructure the code somewhat, move singular responsibility from management API project
* Add recurring task for cleaning up old tokens in the DB
* Fix bad merge + make auth controller align with the new management API structure
* Explicitly handle the new management API path as a backoffice path (NOTE: this is potentially behaviorally breaking!)
* Redo handle the new management API requests as backoffice requests, this time in a non-breaking way
* Add/update TODOs
* Replace NSwag with Swashbuckle and clean up unnecessary client secret workaround
* Revert duplication of current auth policies for OpenIddict (as it breaks everything for V11 without the new management APIs) and introduce a dedicated PoC policy setup for OpenIddict.
* Fix failing unit tests
* A little niceness + export new OpenApi.json and fix path in contract unit test
* Redo after merge with v11/dev + filter out unwanted mime types
* Remove CreatedResult and NotFoundObjectResult where possible
* Custom schema IDs - no more "ViewModel" postfix and make generic lists look less clunky too
* A little more explanation for generic schema ID generation
* Force Swashbuckle to use enum string names
* Update OpenApi.json to match new enum string values
* Add clarifying comment about weird looking construct
* Creating a FileProviderFactory for getting the package.manifest and grid.editors.config.js files through a file provider
* Collecting the package.manifest-s from different sources
* Searching different sources for grid.editors.config.js
* Using an IFileProvider to collect all tours
* Refactoring IconService.cs
* Typo
* Optimizations when looping through the file system
* Moving WebRootFileProviderFactory to Umbraco.Web.Common proj
* Removes double registering
* pluginLangFileSources includes the localPluginFileSources
* Comments
* Remove linq from foreach
* Change workflow for grid.editors.config.js so we check first physical file, then RCL, then Embedded
* Clean up
* Check if config dir exists
* Discover nested package.manifest files
* Fix IFileInfo.PhysicalPath check
* Revert 712810e1fd as that way files in content root are preferred over those in web root
* Adding comments
* Refactoring
* Remove PhysicalPath check
* Fix registration of WebRootFileProviderFactory
* Creating a FileProviderFactory for getting the package.manifest and grid.editors.config.js files through a file provider
* Collecting the package.manifest-s from different sources
* Searching different sources for grid.editors.config.js
* Using an IFileProvider to collect all tours
* Refactoring IconService.cs
* Typo
* Optimizations when looping through the file system
* Moving WebRootFileProviderFactory to Umbraco.Web.Common proj
* Removes double registering
* pluginLangFileSources includes the localPluginFileSources
* Comments
* Remove linq from foreach
* Change workflow for grid.editors.config.js so we check first physical file, then RCL, then Embedded
* Clean up
* Check if config dir exists
* Discover nested package.manifest files
* Fix IFileInfo.PhysicalPath check
* Revert 712810e1fd as that way files in content root are preferred over those in web root
* Adding comments
* Refactoring
* Remove PhysicalPath check
* Fix registration of WebRootFileProviderFactory
* First attempt at OpenIddict
* Making headway and more TODOs
* Redo current policies for multiple schemas + clean up auth controller
* Fix bad merge
* Clean up some more test code
* Fix spacing
* Include AddAuthentication() in OpenIddict addition
* A little more clean-up
* Move application creation to its own implementation + prepare for middleware to handle valid callback URL
* Enable refresh token flow
* Fix bad merge from v11/dev
* Support auth for Swagger and Postman in non-production environments + use default login screen for back-office logins
* Add workaround to client side login handling so the OAuth return URL is not corrupted before redirection
* Add temporary configuration handling for new backoffice
* Restructure the code somewhat, move singular responsibility from management API project
* Add recurring task for cleaning up old tokens in the DB
* Fix bad merge + make auth controller align with the new management API structure
* Explicitly handle the new management API path as a backoffice path (NOTE: this is potentially behaviorally breaking!)
* Redo handle the new management API requests as backoffice requests, this time in a non-breaking way
* Add/update TODOs
* Revert duplication of current auth policies for OpenIddict (as it breaks everything for V11 without the new management APIs) and introduce a dedicated PoC policy setup for OpenIddict.
* Fix failing unit tests
* Update src/Umbraco.Cms.ManagementApi/Security/BackOfficeApplicationManager.cs
Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>
* Update src/Umbraco.Cms.ManagementApi/Security/BackOfficeApplicationManager.cs
Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>
* Update src/Umbraco.Cms.ManagementApi/Security/BackOfficeApplicationManager.cs
Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>
* Update src/Umbraco.Core/Routing/UmbracoRequestPaths.cs
Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>
* Fix for UseExceptionHandler no longer working since v10.3 RC
* Update the management api path to match the new one
Co-authored-by: Nikolaj <nikolajlauridsen@protonmail.ch>
* Fix for UseExceptionHandler no longer working since v10.3 RC
* Update the management api path to match the new one
Co-authored-by: Nikolaj <nikolajlauridsen@protonmail.ch>
* 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>
* Add IContextCache and implementations
* Update connector interfaces to use IContextCache
* Minor cleanup
* Move DeployContextCache prefix to constant
* Move default implementations to obsolete methods
* Remove DeployContextCache and DictionaryCache
Co-authored-by: Andy Butland <abutland73@gmail.com>
* Add IContextCache and implementations
* Update connector interfaces to use IContextCache
* Minor cleanup
* Move DeployContextCache prefix to constant
* Move default implementations to obsolete methods
* Remove DeployContextCache and DictionaryCache
Co-authored-by: Andy Butland <abutland73@gmail.com>
* Constant replacing string
SaveNode const created to replace string for saveNew action
* Hardcoded string for content replaced for const
* Const created for default alias
* Refactoring dupe constants
* Using constanthelper to refactor further
* Dupe consts for strings amalgamated
Cleaning up the few strings I have missed and duplicate constants with different name
Co-authored-by: emma burstow <emaburst@gmail.com>
* Additional info for running individual tests
* Ignore playwright test results from git
* Update README.md
These changes belong in a different PR #13274
* Change management api base path to /umbraco/management/api/
* Update OpenApi schema
* Fixing some more paths
Co-authored-by: Elitsa Marinovska <elm@umbraco.dk>
* Ensure Name and Children can never return null.
* Name should be empty not null
* Ensure Name and Children type queries never return null
Co-authored-by: Sebastiaan Janssen <sebastiaan@umbraco.com>
* Fix broken selectable state for list view items (#13148)
* Add sync rendering extensions for block grid and async ones for block list (#13168)
* Re-add IsPackable to Umbraco.Tests.Integration
* 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
* 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
(cherry picked from commit 4a412bb432)
* 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
* Add missing ForceLeft and ForceRight (#13190)
* 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
* Add missing ForceLeft and ForceRight (#13190)
* Pass the node property to umb-property & umb-property-editor (#13151)
Co-authored-by: Zeegaan <nge@umbraco.dk>
* 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>
* move clear:both; to the flexbox example (#13194)
* remove pointer-events from Image, to make drag n' drop work on firefox. (#13193)
* area permission min-max inputs width increase (#13195)
* 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)
* 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)
* Add documentation for default block grid partial views in the rendering extension methods (#13184)
* Add data-element to umb property so we can find it (#13199)
Co-authored-by: Zeegaan <nge@umbraco.dk>
* Add data-element to umb property so we can find it (#13199)
Co-authored-by: Zeegaan <nge@umbraco.dk>
* 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>
* Merge BjarneF fix into 10.3 (#13220)
Co-authored-by: Bjarne Fyrstenborg <bjarne_fyrstenborg@hotmail.com>
* make Area fit within block row (#13221)
* 10.3.0-RC: Change grid area input to number + change generic label (#13203)
Co-authored-by: Bjarne Fyrstenborg <bjarne_fyrstenborg@hotmail.com>
* move below center, to make room (#13222)
* highlight areas in dragging-mode for modern browsers (#13224)
* 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
* 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
* Resync editors if content model changed (#13230)
* Disable BlockGridEditor (#13229)
* Disable BlockGridEditor
* Fix typeloader test
* Update src/Umbraco.Core/Models/Blocks/BlockGridItem.cs
Co-authored-by: Kenn Jacobsen <kja@umbraco.dk>
* Apply suggestions from code review
Co-authored-by: Kenn Jacobsen <kja@umbraco.dk>
Co-authored-by: Kenn Jacobsen <kja@umbraco.dk>
* V10.4: Re-enable block grid editor (#13231)
* Revert "Disable BlockGridEditor (#13229)"
This reverts commit 4e9aa8dac2.
* Re-do xml comments fix
* Fix nullable reference error
* Fix acceptance test package.json and package-lock.json
* Re-add wait-on
Co-authored-by: Kenn Jacobsen <kja@umbraco.dk>
Co-authored-by: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com>
Co-authored-by: Zeegaan <nge@umbraco.dk>
Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>
Co-authored-by: Niels Lyngsø <niels.lyngso@gmail.com>
Co-authored-by: Elitsa Marinovska <21998037+elit0451@users.noreply.github.com>
Co-authored-by: Andreas Zerbst <73799582+andr317c@users.noreply.github.com>
Co-authored-by: Bjarne Fyrstenborg <bjarne_fyrstenborg@hotmail.com>
Co-authored-by: Matt Darby <matt@darby.digital>
* Add null check
* 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
* 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
* Add missing ForceLeft and ForceRight (#13190)
* 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)
* Add data-element to umb property so we can find it (#13199)
Co-authored-by: Zeegaan <nge@umbraco.dk>
* 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>
* Update src/Umbraco.Core/PropertyEditors/DataValueEditor.cs
Co-authored-by: Elitsa Marinovska <21998037+elit0451@users.noreply.github.com>
Co-authored-by: Zeegaan <nge@umbraco.dk>
Co-authored-by: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com>
Co-authored-by: Mole <nikolajlauridsen@protonmail.ch>
Co-authored-by: Elitsa Marinovska <21998037+elit0451@users.noreply.github.com>
Co-authored-by: Andreas Zerbst <73799582+andr317c@users.noreply.github.com>
Co-authored-by: Elitsa Marinovska <elm@umbraco.dk>
* Make Examine API more REST-ish
* Undo bad renaming
* Move search endpoint under "searchers" route
* Update schema to match new API definition
* Update OpenAPI schema after merge
* Remove "examine" prefixes and change API route from "examine" to "search"
* Update OpenAPI json schema
* 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
* 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
* Add missing ForceLeft and ForceRight (#13190)
* 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)
* Add data-element to umb property so we can find it (#13199)
Co-authored-by: Zeegaan <nge@umbraco.dk>
* 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>
Co-authored-by: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com>
Co-authored-by: Mole <nikolajlauridsen@protonmail.ch>
Co-authored-by: Elitsa Marinovska <21998037+elit0451@users.noreply.github.com>
Co-authored-by: Zeegaan <nge@umbraco.dk>
Co-authored-by: Andreas Zerbst <73799582+andr317c@users.noreply.github.com>
* 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
* 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
* Add missing ForceLeft and ForceRight (#13190)
* 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)
* Add data-element to umb property so we can find it (#13199)
Co-authored-by: Zeegaan <nge@umbraco.dk>
Co-authored-by: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com>
Co-authored-by: Mole <nikolajlauridsen@protonmail.ch>
Co-authored-by: Elitsa Marinovska <21998037+elit0451@users.noreply.github.com>
Co-authored-by: Zeegaan <nge@umbraco.dk>
* POC of a solution that works
* Add razor reference manager
* Ensure the compilation options are correct
* Move InMemory classes to its own namespace
These are all internal, so it should be fine.
* Throw proper exceptions when compilation fails
* Add CheckSumValidator
* Clear the ViewCompiler cache when models changed
This means we no longer need the RefreshingRazorViewEngine \o/
* Remove unused constructor injection
* Make UmbracoAssemblyLoadContext non internal
* Add WIP
* Clear the RazorViewEngine cache when generating new models
This uses reflection, which isn't super nice, however, the alternative is to clone'n'own the entire RazorViewEngine, which is arguably worse
* Fix circular dependency
* Remove ModelsChanged event
This is no longer necessary
* Fix precompiled views path
We need to normalize these paths to ensure they matches with the keys in _precompiledViews
* Clean
* Fix content tests
* Add logging
* Update the comment in UmbracoBuilderDependencyInjectionExtensions to reflect changes
* Remove RefreshingRazorViewEngine as its no longer needed
* Remove unused ViewEngine hack from DI
* Fix langversion
This is required since dotnet 7 is still in preview
* Add modelsbuilder tests
* Add more tests
* fixed comment
Co-authored-by: Bjarke Berg <mail@bergmania.dk>
* New backoffice/add system text json configuration attribute (#12998)
* Add SystemTextJsonConfigurationAttribute
* Fix up formatting
* Rename classes for clearer purpose
Co-authored-by: Zeegaan <nge@umbraco.dk>
* UmbracoPath should no longer be configurable (#13032)
* UmbracoPath should no longer be configurable
* Remove UmbracoPath configuration from all tests
* Only contain style instead of full layout (#13033)
* Only contain style instead of full layout (#13033)
* Fix CodeQL duplicate "permissions" node and reformat
* add an extra check to ensure the pips exist before adding a class to them
* improve pip classList add/remove with no intermediary variable
* Only contain style instead of full layout (#13033)
* Ensure consistent margin on headings in tree root (#12992)
* Ensure consistent margin on headings in tree root (#12992)
(cherry picked from commit 88bfef9e0d)
* Bump version to 10.2.1
* Translate "User permissions for languages" feature to dutch (#12971)
* Translate 'sectionsHelp' to Dutch
* Translate 'selectLanguages' to Dutch
* Transkate 'allowAccessToAllLanguages' to Dutch
* Translate "User permissions for languages" feature to español (#12975)
* Translate 'selectLanguages' to Español
* Translate 'languagesHelp' to español
* Translate 'allowAccessToAllLanguages' to spanish
* Updated project references for Forms and Deploy in the JsonSchema project. (#13047)
* Updated project references for Forms and Deploy in the JsonSchema project. (#13047)
* UmbracoPath has been removed from the official schema store, remove temporary workaround from our schema generator as well (#13043)
* add an extra check to ensure the pips exist before adding a class to them
* improve pip classList add/remove with no intermediary variable
* pass in parameters needed to member service (#13020)
* Missing methods from IMemberService (#13022)
* Add back methods to interface
* Add default implementations to avoid breaking changes
Co-authored-by: Zeegaan <nge@umbraco.dk>
* New endpoint for web profiling dashboard (#13038)
* Endpoint for web profiling dashboard
* Add profiling API contract
* New Backoffice: Published cache controller (#13034)
* Add published cache controller (endpoints for the Published Status dashboard)
* Update OpenAPI contract for published cache endpoints
* Fix OpenApi spec
Co-authored-by: Zeegaan <nge@umbraco.dk>
* Bug fix for datepicker with offset time (#12847)
* https://github.com/umbraco/Umbraco-CMS/issues/12844
* remove "X" from ng-attr
Doing the test I killed the ng-if attr. But forgot it was there doing the commit
Co-authored-by: Lucas Bach Bisgaard <lom@novicell.dk>
* Make sure swagger tags and operations are sorted alphabetically (#13055)
* Add spellcheck false to password inputs (#13059)
* Add null check for variants in Grid Layout (#13060)
This fixes a regression from 10.2.0 where the `variants` property was removed.
* Add null check for variants in Grid Layout (#13060)
This fixes a regression from 10.2.0 where the `variants` property was removed.
* Fixes#12972 for validating legacy member passwords (#12973)
* Fixes#12972 for validating legacy member passwords
* Removed unused variable
* removed unused variable
* Fix issue toggling boolean between true/false after Save without refreshing
* New backoffice: examine management controller (#12981)
* Add ExamineManagementControllerBase
* Add ExamineIndexModelFactory
* Add IndexesExamineManagementController
* Add proper attributes
* Implement ExamineIndexViewModel.cs
* formatting
* Add comment about it working in .NET 7
* Add SearchersExamineManagementController.cs
* Update comments about why it might throw errors
* Add SearchResultViewModel
* Add SearchExamineManagementController
* Add ExamineSearcherValidationService
* Rename ExamineSearcherValidationService.cs to ExamineSearcherFinderService.cs
* Rename interface aswell
* Add SearchExamineManagementController
* Refactor ExamineSearcherFinderService
* Add HasIndexRebuiltExamineManagementController.cs
* Fix up formatting
* Async actions
* Add RebuildIndexExamineManagementController.cs
* Rename IExamineIndexModelFactory to IExamineIndexViewModelFactory
* Refactor HasIndexRebuilt endpoint to Index endpoint
* Remove unused usings
* Fix up DetailsExplanation
* Create dedicated SearchersViewModel
* Rename action
* Rename RebuildIndex to Rebuild
* Dont have changes in ExamineIndexModel
* Make values strongly typed instead of generic lists of strings
* Rename to non-plural
* Rename to non-plural
* Rename controller
* Introduce ITemporaryIndexingService
* Introduce ITemporaryIndexingService
* Add SearcherName to view model
* Move to new ExamineManagementControllerBase.cs
* Refactor ExamineManagerService
* Use init instead of setters
* Make properties explicitly on models
* Add DI
* Apply suggestions from code review
Co-authored-by: Kenn Jacobsen <kja@umbraco.dk>
* Rename to IndexExamineManagementController
* Return ViewModel instead of exception
* Make view models non-nullable
* Add examine management extension point
* Rename to IndexingRebuilderService
* Move rebuild logic to service
* Fix up usages in IIndexingRebuilderService
* Fix up DI
* Fix OpenApi contract
* Implement CanRebuild on IIndexingRebuilderService.cs
Co-authored-by: Zeegaan <nge@umbraco.dk>
Co-authored-by: Kenn Jacobsen <kja@umbraco.dk>
* Update build script
* Add BuildProjectReferences=false to dotnet pack
* Internalize Umbraco.Cms.ManagementApi references
* Make Searchers endpoint return ActionResult (#13068)
* New backoffice - trees design (#12963)
* Refactor: Add default versioned back office route attribute
* Tree controller bases and first draft implementations for document, media and doctype
* Move tree item view models to appropriate location
* Fix missing parent
* Refactor user entity access for testability
* A bit of clean-up + handle user start nodes for items endpoint
* Implement foldersOnly for folder tree
* Items endpoint for document type tree
* Strongly typed action results
* Content + media recycle bin
* Correct return type for swagger
* Member type tree
* Rename user start node handling to make a little more sense
* Revert to faked admin start nodes in document tree
* Media type tree
* Data type tree
* Relation type tree
* Remove unused dependency from member type tree
* Correct documentation for member type tree endpoint response types
* Use icon constants
* Add templates tree
* Member group tree
* Document blueprint tree
* Partial views, scripts and stylesheets trees
* Static files tree
* Clarify "folders only" state
* Comments and improved readability
* Rename TreeControllerBase and TreeItemViewModel
* Move recycle bin controller base to its own namespace
* Moved tree base controllers to their own namespace
* Common base class for tree view models
* Remove ProblemDetails response type declaration from all actions
* Add OpenApiTag
* Various review comments
* Dictionary item tree
* Renamed all tree controllers to follow action/feature naming convention
* Handle client culture state for document tree
* Support "ignore user start nodes" for content and media + refactor how tree states work to make things more explicit
* Fix or postpone a few TODOs
* Make entity service able to paginate trashed children
* Handle sorting explicitly
* Re-apply VersionedApiBackOfficeRoute to install and upgrade controllers after merge
* Use PagedViewModel instead of PagedResult for all trees
* Explain the usage of UmbracoObjectTypes.Unknown
* Introduce and apply GetMany pattern for dictionary items
* Add a note about relation type caching
* Fix broken test build + add unit tests for new localization service methods
* Use new management API controller base
* Entity repository should build document entities for document blueprints when getting paged entities (same as it does when getting specific entities)
* Use Media type for Media recycle bin
Co-authored-by: Mole <nikolajlauridsen@protonmail.ch>
* Move shared relation service to concrete implementations
* Use inclusive language
* Add 401 response type documentation to applicable trees
* Refactor entity load for folder tree controller base + ensure that folders are only included in the first result page
* Add (in-memory) pagination to dictionary tree
* Make file system controller honor paging parameters
* Support pagination in relation type tree
* Clarify method name a bit for detecting tree root path requests
* Update Open API schema to match new trees
* Move from page number and page size to skip/take (with temporary workaround for lack of property skip/take pagination in current DB implementation)
* Update OpenAPI schema to match skip/take
* Update OpenAPI schema
* Don't return paginated view models from "items" endpoints
* Update OpenApi schema
Co-authored-by: Mole <nikolajlauridsen@protonmail.ch>
* Use pattern matching to check if items is not `JArray`
* Bump Smidge up to v4.1.1
* Removing X-XSS-Protection healthcheck
* Redirect to a return URL if one is present on the querystring when logging into the back office
* Fix issue 13023 - Cannot read properties of undefined (reading 'allowedActions')
* Implement playwright acceptance tests instead of cypress (#13069)
* fix up dependencies in package.json
* Change configs to playwright
* update types
* remove cypress
* add playwright
* Fix up imports
* Move up test files
* Fix up scripts
* Update user import
* Remove allowEditInvariantFromNonDefault=True.spec.ts
* Update docker container
* Run playwright on pipelines
* Install playwright
* change urls
* change to run playwright
* Update reporter
* create .env file when installing
* update pipelines
* Remove @in yml
* Update Yaml script to use New-Item
* Pipe object to Value
* Update yaml to use "" not {}
* Update localhost to proper port
* Push package-lock.json
* include dotenv in package.json
* Add back umbraco.config.ts
* Dont change launchSettings.json
* Fix up pipelines
* Change working directory
* Add logging
* Actually name the file
* Remove .env from path
* Add working directory
* Add working directory to script
* check env content
* Update more working dir
* Try making newline in YAML
* add quotes
* Try multiline infront of script
* Move top statement
* use https
* Update to localhost 44331
* ignore https in config
* Change linux to https
* add timeouts for tests
* Fix up url for linux
* Update docker to use port 44331 -> 5000
* increase timeout
* Update yaml
* Remove Cypress references and fix URL/port mapping
* Update umbraco-linux.docker
* Generate ASP.NET HTTPS development certificate
* Enable HTTPS development certificate in Docker
* Dont run failing tests
* Update HTTPS development certificate generation
* Copy nuget.config to correct location in Docker file
* do not run flaky test
* update outputdir
* Remove flaky tests
* Update to dot reporter
* Update to json-models-builders package
* Check if results folder exists
* Remove logging
* Use bash to find folder
* Dont use junit to report
* only publish if folder exists
* Add 5 retries for CI
* search correct folder
* Remove unused json file
* Use line reporter
* Remove umbraco.config.ts
* Remove more flaky test
* Add waits so we dont bombard SQLite
* Add page as parameter
* add page as parameter
* Remove flaky macro test
Co-authored-by: Zeegaan <nge@umbraco.dk>
Co-authored-by: Ronald Barendse <ronald@barend.se>
* Fix comment of view property in `ConfigurationFieldAttribute` (#13077)
* Fix comment of view property in `ConfigurationFieldAttribute`
* Update description of key property as well
* Use char instead of string for DetectJson (#13019)
* Use char instead of string for DetectJson
* Use faster method
* Change DetectIsJon method
* Update acceptance test readme & scripts (#13078)
* Update readme to reflect the change to playwright
* Update test scripts
* update README
* update pipelines to run new script
* update package.json scripts
* dont include demo test in package.json
* Add creation of blueprint test
* Implement create test script
Co-authored-by: Zeegaan <nge@umbraco.dk>
* Refactor event handler away from keyup to ng-change
* Don't use legacy icon for action delete
* Added nullability attribute to IsNullOrWhitespace
* Fixes umbraco/Umbraco-CMS.Accessibility.Issues #63 and #61
* Revert "Removing X-XSS-Protection healthcheck" (#13096)
This reverts commit 696475ebf2.
Co-authored-by: Zeegaan <nge@umbraco.dk>
* New backoffice: New Api controllers (#12983)
* Create migrate Language controller to Umbraco.Cms:ManagementApi
* Add proper language mapping
* Update mapping to handle if language name is null
* Uncomment code
* Add new language view model
* Add LanguageViewModelMapping
* Add mapper registration
* Fix up AddMappers extension method
* Implement mapping IEnumerable of languages
* Change action signatures to ViewModel instead of model
* Seperate logic from controller into service
* Move LanguageService.cs
* Register service
* Fix up mapping
* Add null check to mapping instead of controller
* Map to ILanguage instead of implementation
* Fix up null check
* Implement ProblemDetailsBuilder.cs
* Rename duplicate method
* Use builder in actions
* Implement new Paged models
* Create language controller base
* Use pagedModel for GetAllLanguages
* Create GetAllLanguagesPaged method
* Split language controller into single APIs
* Fix up controllers with API versions
* Map Total property
* Fix up route and naming for GetLanguageController.cs
* Fix up naming for language controllers
* New folder structure
* Add culture controllers
* Map CultureInfos to paged CultureViewModel
* Remove wierd include in csproj
* Refactor controller to return pagedViewModel instead of dictionary
* Fix up mapping to map single and enumerable
* Register mapping
* Add apiversion to controller
* Add inheritdoc
* Create DictionaryControllerBase.cs
* Add delete controller
* Only use HttpDelete for deletes
* Check also if language exists in service
* Split Save action into Create & Update actions
* Update Http attributes on Create and update controllers
* Proper routing for delete controller
* Add api version
* Make action async
* Implement CreateDictionaryController
* Create DictionaryViewModel.cs
* Use viewmodel instead of values
* Create get by int DictionaryController
* Add view models
* Rename controller
* Rename DictionaryViewModel to DictionaryItemViewModel
* use created instead of ID
* Apply DataContract/Datamember to view model
* change to guid instead of Guid
* Use proper responses instead of return models when creating/updating
* Implement new IDictionaryService
* Implement new MoveController
* Use new service in mapper
* Remove unused method
* Add DictionaryViewModelMapDefinition
* Create MoveOrCopyViewModel
* Proper Http action
* Create UpdateDictionary controller
* Map IDictionaryItem to DictionaryViewModel
* Add JsonPatching
* Add UpdateDictionaryController.cs
* Map DictionaryTranslationsDisplays properly
* ParentId should be nullable
* Add new DictionaryTranslationViewModel.cs
* Remove translationViewModel
* Add Id and Key to DictionaryTranslationDisplay.cs
* Implement IDictionaryFactory.cs
* Create DictionaryViewModels and do not use IEntity
* Map to new view models instead of displays
* Register the factiories in the service container
* Remove newtonsoft
* Add serializing to and from PatchDocs
* Use JsonPatchViewModel instead of object type
* Add JsonPatch.Net to csproj
* Implement JsonPatchService.cs
* Register JsonPatchService
* Make model non-nullable
* Update controllers to use new attributes
* Rename MoveViewModel.cs
* Remove NameIsDirty as that is legacy from how we used to handle updating
* Add GetAllDictionaryController
* Add todo to DictionaryControllerBase
* Add ExportDictionaryController
* Add ImportDictionaryController
* Remove unused umbraco mapper
* Add upload dictionary controller
* Create Dictionary import view models
* Update UploadDictionaryController with view models
* Remove unused using
* Implement pagedviewmodel for GetAllDictionaryController.cs
* Add dictionary overview viewmodels
* Add mapping for DictionaryOverViewModel
* Update Dictionary controller to use new viewmodel
* Fix up attributes for UploadDictionaryController
* Make actions async
* Make controller bases abstract
* Fix after merge
* New backoffice: Analytics controller (#12957)
* Add AnalyticsControllerBase
* Add AnalyticsViewModel
* Add GetAnalyticsController
* Update ViewModel to use System.Text.Json
* Add SetAnalyticsController
* Add AnalyticsLevelViewModel
* Add GetAllAnalyticsController
* Add viewmodel factory
* Register factory for DI
* Use factory for creation of ViewModel
* Fix up AnalyticsLevelViewModel.cs
* Use analyticsLevelViewModel
* Add Enum validation to controller
* Add OpenApi attributes
* Add routing to GetAllAnalyticsController
* Rename IPagedViewModelFactory
* use new renamed PagedViewModelFactory
* Make actions async
* Make controller base abstract
* Fix up after merge
Co-authored-by: Zeegaan <nge@umbraco.dk>
* New backoffice: Help controller (#12958)
* Add HelpControllerBase
* Add HelpPageViewModel
* Add GetHelpController
* Add viewmodel factory
* Register factory for DI
* Use PagedViewModelFactory for controller
* Update baseurl to be nullable
* Rename IPagedViewModelFactory
* Use new renamed IPagedViewModelFactory
* Dont use httpclient as field
Co-authored-by: Zeegaan <nge@umbraco.dk>
* New backoffice: Relation controller (#12961)
* Add relation controller base
* Add commen about auth
* Add GetRelationController
* Use mapping to viewmodel
* Add RelationViewModel
* Add RelationViewModelsMapDefinition.cs
* Add viewmodel factory
* Register factory for DI
* Rename IPagedViewModelFactory
* Add RelationViewModelFactory
* Remove unused service
* Add GetByChildRelationController
* Add relationViewModelFactory to DI
* Add MappingBuilderExtensions
* Add relationViewModelsMapDefinition to DI
* Use PagedViewModel for child relations
* Add CreateMultiple
* Update GetRelationController to use factory instead of direct mapping
* Update GetByChildRelationController to use relationViewModelFactory
* Fix up after merge
Co-authored-by: Zeegaan <nge@umbraco.dk>
* New backoffice: Tracked references controller (#12966)
* Add TrackedReferencesControllerBase.cs
* Add GetTrackedReferencesController
* Add relation model
* Add ITrackedReferencesRepository.cs
* Rename relation to RelationModel
* Add RelationMapDefinition.cs
* Add TrackedReferencesSkipTakeRepository
* Rename RelationModelMapDefinition
* Add new services to DI
* Rename RelationModel to RelationItemModel
* Implement TrackedReferencesSkipTakeService
* Formatting
* Add RelationItemViewModel.cs
* Add mapdefition
* Update TrackedReferencesController to use new PagedViewModel
* Add service to DI
* imlement proper routing
* Add async to GetTrackedReferencesController.cs
* Rename action to get
* Add DescendantTrackedReferencesController
* make filterMustBeIsDependency nullable
* Use count instead of capacity
* Rename controller
* Add MultipleTrackedReferencesController.cs
* Refactor TrackedReferencesService to not return pagedViewModel
* Remove TODO untill consensus on convention
* Formatting
* Delete old duplicate controller
* Fix up naming
* Fix up naming and fixed todo
* Fix up mapdefinition registrations
* Rename controllers
* Fix naming
* Fix nullable tree
* Fix up relation controller & action names
* Fix naming
* Fix up multiple to not be post
* Apply suggestions from code review
Co-authored-by: Mole <nikolajlauridsen@protonmail.ch>
* Remove [ApiVersion] from each individual controller and added to base instead
* Added missing semi-colon
* Update all "non-async async" endpoints to return Task.FromResult
* Fixed up LanguageViewModels namespace
* Return proper status code
* Update xml documentation
* Rename GetAllCultureController
* Change return type attribute to proper Model
* Change return type attribute to correct model
* Add clarifying comment
* Change return type attribute to proper model
* Rename ById to by key
* Update DictionaryOverviewViewModel to use Key instead of ID
* Implement factory method to create viewModel instead of using services in mapper
* Fix up DictionaryItemViewModel to use Parent GUID instead of ID
* Update return type attribute to correct model
* Update key to actual GUID instead of string
* Update route to not include "delete"
* Remove redundant IActionResult specification
* Update responseType attribute to correct models
* Update OpenApiTag for DictionaryControllerBase
* Update ResponseType attribute to correct models
* update variable name to not be "XD"
* Update ResponseType attribute to correct model
* Update route to not include "update" as it is redundant
* Update produces responsetype attributes to correct models
* Use IJsonSerializer abstraction instead of JsonConvert directly
* Remove unused field
* Change ResponseType attribute to correct model
* change TrackedReferencesSkipTakeService to return pagedModels directly
* Remove duplicate DI
* change to better variable names
* Move RelationItemModel to core
* Remove empty folder
* Remove ITrackedReferencesSkipTakeService and add it to TrackedReferencesService
* remove TrackedReferencesSkipTakeRepository and add to TrackedReferencesRepository.cs
* Fix up TrackedReferencesService to not use SkipTake repository
* Remove AddRepositories from ManagementApiComposer
* Transition to ManagementApiBaseController
* Fixes ResponseType attribute to correct model
* Add loading files to service instead of having logic in controller
* Add todo comment
* Fix up routing for delete language
* Use problem details builder
* Add SystemTextJsonSerializer
* Add SystemTextJsonSerializer
* Remove unused usings
* Remove obsolete MoveDictionaryController
* Remove CreateDate and UpdateDate from DictionaryViewModel
* Change response type to correct model
* Remove PagedViewModelFactory.cs
* Add obsolete message
* Fix installer view models
A setter is required for the modelbinder to be able to do its work
* Update src/Umbraco.Cms.ManagementApi/Controllers/Analytics/SetAnalyticsController.cs
Co-authored-by: Mole <nikolajlauridsen@protonmail.ch>
* Update ResponseType to correct Model
* Update comment
* Add FileUploadService
* Add DictionaryFactory.cs to handle creation of viewmodel
* Remove unused DI
* Rename actions & controllers to reflect eachother
* Update OpenApi.json
* Add dictionary to openapi
* Update in proper alphabetical order
* Add trackedReferences to openapi
* Fix open api doc
Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>
Co-authored-by: Zeegaan <nge@umbraco.dk>
* Backport project cleanup from #12907
* Remove empty Directory.Build.props
* Fix GenerateAppsettingsSchema target
* Re-add empty Directory.Build.props to prevent inheritance
* Re-add missing JsonPatch.Net dependency
* Fix merge issues (redundant TargetFramework property and appsettings-schema.json generation)
* Fix and improve OpenAPI test assertion
Co-authored-by: Sebastiaan Janssen <sebastiaan@umbraco.com>
Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>
Co-authored-by: Zeegaan <nge@umbraco.dk>
Co-authored-by: Kenn Jacobsen <kja@umbraco.dk>
Co-authored-by: Mads Rasmussen <madsr@hey.com>
Co-authored-by: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com>
Co-authored-by: Bjarne Fyrstenborg <bjarne_fyrstenborg@hotmail.com>
Co-authored-by: Erik-Jan Westendorp <erikjanwestendorp@outlook.com>
Co-authored-by: Andy Butland <abutland73@gmail.com>
Co-authored-by: Sean <29239704+Bakersbakebread@users.noreply.github.com>
Co-authored-by: Lucas Bach Bisgaard <rammi@rammi.dk>
Co-authored-by: Lucas Bach Bisgaard <lom@novicell.dk>
Co-authored-by: Mole <nikolajlauridsen@protonmail.ch>
Co-authored-by: Busra Sengul <aysebusrasengul@gmail.com>
Co-authored-by: Justin Neville <justin@nevitech.co.uk>
Co-authored-by: Jeavon Leopold <jeavon@crumpled-dog.com>
Co-authored-by: Austin Gilbert <AGilbert@rbaconsulting.com>
Co-authored-by: patrickdemooij9 <patrickdemooij98@hotmail.com>
Co-authored-by: bakersbakebread <hello@seanthorne.co.uk>
Co-authored-by: Karl Butler <kbutler@carbonsix.digital>
* update 'tinymce' from v4 to v6
* add/remove plugin & file changes
* remove unsupported plugins
* update changes to tinymce api
* bump tinymce to 6.2.0
* reinstate fastdev task
* update rte prevalues
* fix styling of tinymce inline mode
* document new files
* update builtin allowed elements, plugins and styles
* update upload_image_handler to new format
* set correct startup plugins and config
* remove old config for "Paste from Word" which is no longer supported
* update naming in default toolbar
* replace fire() with dispatch()
* support resizing of other elements besides objects, e.g. tables
* replace fire() with dispatch()
* change classes for fullscreen styling
* handle special parsing of AngularJS json response
* remove deprecated tinymce options
* use EditorOptions API to get settings
* send in correct toolbar config
* update icons to use tinymce's new icon pack
* remove unused functions
* configure custom styles
* update docs
* add initial toolbars to grid rte
* change htmlId selector to support html id's with numbers
* remove pintoolbar as it is not compatible with tiny 6
* register custom option maxImageSize through the OptionsManager
* remove custom option
* Revert "register custom option maxImageSize through the OptionsManager"
This reverts commit 342354d6cd.
* register custom option maxImageSize and fetch through EditorOptions
* add rounding to forced image size
* remove fullscreen plugin as it is not available in prod build anyway and it does not work
* update API for uploadImages() function
* update string extensions IsFullPath to support more filepaths with new built-in Path.IsPathFullyQualified
* resolve TODO to switch to Path.IsPathFullyQualified supported from .NET Standard 2.1
* ensure that files are copied from the TEMP folder in the web root
* add dragstart event to drag-events series
* optimise isMediaPickerEnabled function with newer array function 'includes'
* add TEMP folder to gitignore (fx fileuploads)
* update selector for "Insert Macro" button in rte test
* remove old documentation
* Use content root instead of web root for uploaded images
* test IsFullPath without tricky UNC paths that are not useful
Co-authored-by: Bjarke Berg <mail@bergmania.dk>
@@ -72,7 +72,7 @@ When the page eventually loads in your web browser, you can follow the installer
In order to build the Umbraco source code locally with Visual Studio, first make sure you have the following installed.
* [Visual Studio 2019 v16.8+ with .NET 6.0.2+](https://visualstudio.microsoft.com/vs/) ([the community edition is free](https://www.visualstudio.com/thank-you-downloading-visual-studio/?sku=Community&rel=15) for you to use to contribute to Open Source projects)
* [Visual Studio 2022 v17+ with .NET 7+](https://visualstudio.microsoft.com/vs/) ([the community edition is free](https://www.visualstudio.com/thank-you-downloading-visual-studio/?sku=Community&rel=15) for you to use to contribute to Open Source projects)
@@ -99,111 +99,33 @@ When the page eventually loads in your web browser, you can follow the installer
Did you read ["Are you sure"](#are-you-sure)?
### Quick!
Do note that this is only required if you want to test out your custom changes in a separate site (not the one in the Umbraco.Web.UI), if you just want to test your changes you can run the included test site using: `dotnet run` from `src/Umbraco.Web.UI/`
To build Umbraco, fire up PowerShell and move to Umbraco's repository root (the directory that contains `src`, `build`, `LICENSE.md`...). There, trigger the build with the following command:
You may want to build a set of NuGet packages with your changes, this can be done using the dotnet pack command.
build/build.ps1
First enter the root of the project in a command line environment, and then use the following command to build the NuGet packages:
If you only see a build.bat-file, you're probably on the wrong branch. If you switch to the correct branch (v8/contrib) the file will appear and you can build it.
`dotnet pack -c Release -o Build.Out`
You might run into [Powershell quirks](#powershell-quirks).
This will restore and build the project using the release configuration, and put all the outputted files in a folder called `Build.Out`
If it runs without errors; Hooray! Now you can continue with [the next step](CONTRIBUTING.md#how-do-i-begin) and open the solution and build it.
You can then add these as a local NuGet feed using the following command:
`dotnet nuget add source <Path to Build.Out folder> -n MyLocalFeed`
### Build Infrastructure
The Umbraco Build infrastructure relies on a PowerShell object. The object can be retrieved with:
$ubuild = build/build.ps1 -get
The object exposes various properties and methods that can be used to fine-grain build Umbraco. Some, but not all, of them are detailed below.
#### Properties
The object exposes the following properties:
*`SolutionRoot`: the absolute path to the solution root
*`VisualStudio`: a Visual Studio object (see below)
*`NuGet`: the absolute path to the NuGet executable
*`Zip`: the absolute path to the 7Zip executable
*`VsWhere`: the absolute path to the VsWhere executable
*`NodePath`: the absolute path to the Node install
*`NpmPath`: the absolute path to the Npm install
The Visual Studio object is `null` when Visual Studio has not been detected (eg on VSTS). When not null, the object exposes the following properties:
*`Path`: Visual Studio installation path (eg some place under `Program Files`)
*`Major`: Visual Studio major version (eg `15` for VS 2017)
*`Minor`: Visual Studio minor version
*`MsBuild`: the absolute path to the MsBuild executable
#### GetUmbracoVersion
Gets an object representing the current Umbraco version. Example:
$v = $ubuild.GetUmbracoVersion()
Write-Host $v.Semver
The object exposes the following properties:
*`Semver`: the semver object representing the version
*`Release`: the main part of the version (eg `7.6.33`)
*`Comment`: the pre release part of the version (eg `alpha02`)
*`Build`: the build number part of the version (eg `1234`)
#### SetUmbracoVersion
Modifies Umbraco files with the new version.
>This entirely replaces the legacy `UmbracoVersion.txt` file. Do *not* edit version infos in files.
The version must be a valid semver version. It can include a *pre release* part (eg `alpha02`) and/or a *build number* (eg `1234`). Examples:
$ubuild.SetUmbracoVersion("7.6.33")
$ubuild.SetUmbracoVersion("7.6.33-alpha.2")
$ubuild.SetUmbracoVersion("7.6.33+1234")
$ubuild.SetUmbracoVersion("7.6.33-beta.5+5678")
#### Build
Builds Umbraco. Temporary files are generated in `build.tmp` while the actual artifacts (zip files, NuGet packages...) are produced in `build.out`. Example:
$ubuild.Build()
Some log files, such as MsBuild logs, are produced in `build.tmp` too. The `build` directory should remain clean during a build.
**Note: web.config**
Building Umbraco requires a clean `web.config` file in the `Umbraco.Web.UI` project. If a `web.config` file already exists, the `pre-build` task (see below) will save it as `web.config.temp-build` and replace it with a clean copy of `web.Template.config`. The original file is replaced once it is safe to do so, by the `pre-packages` task.
#### Build-UmbracoDocs
Builds umbraco documentation. Temporary files are generated in `build.tmp` while the actual artifacts (docs...) are produced in `build.out`. Example:
Build-UmbracoDocs
Some log files, such as MsBuild logs, are produced in `build.tmp` too. The `build` directory should remain clean during a build.
#### Verify-NuGet
Verifies that projects all require the same version of their dependencies, and that NuSpec files require versions that are consistent with projects. Example:
Verify-NuGet
This will add a local nuget feed with the name "MyLocalFeed" and you'll now be able to use your custom built NuGet packages.
### Cleaning up
Once the solution has been used to run a site, one may want to "reset" the solution in order to run a fresh new site again.
At the very minimum, you want
The easiest way to do this by deleting the following files and folders:
* src/Umbraco.Web.UI/appsettings.json
* src/Umbraco.Web.UI/umbraco/Data
git clean -Xdf src/Umbraco.Web.UI/App_Data
rm src/Umbraco.Web.UI/web.config
You only have to remove the connection strings from the appsettings, but removing the data folder ensures that the sqlite database gets deleted too.
Then, a simple 'Rebuild All' in Visual Studio will recreate a fresh `web.config` but should be quite fast (since it does not really need to rebuild anything).
The `clean` Git command force (`-f`) removes (`-X`, note the capital X) all files and directories (`-d`) that are ignored by Git.
Next time you run a build the `appsettings.json` file will be re-created in its default state.
This will leave media files and views around, but in most cases, it will be enough.
@@ -219,65 +141,12 @@ For git documentation see:
## Azure DevOps
Umbraco uses Azure DevOps for continuous integration, nightly builds and release builds. The Umbraco CMS project on DevOps [is available for anonymous users](https://umbraco.visualstudio.com/Umbraco%20Cms).
Umbraco uses Azure DevOps for continuous integration, nightly builds and release builds. The Umbraco CMS project on DevOps [is available for anonymous users](https://umbraco.visualstudio.com/Umbraco%20Cms)..
DevOps uses the `Build-Umbraco` command several times, each time passing a different *target* parameter. The supported targets are:
*`pre-build`: prepares the build
*`compile-belle`: compiles Belle
*`compile-umbraco`: compiles Umbraco
*`pre-tests`: prepares the tests
*`compile-tests`: compiles the tests
*`pre-packages`: prepares the packages
*`pkg-zip`: creates the zip files
*`pre-nuget`: prepares NuGet packages
*`pkg-nuget`: creates NuGet packages
All these targets are executed when `Build-Umbraco` is invoked without a parameter (or with the `all` parameter). On VSTS, compilations (of Umbraco and tests) are performed by dedicated DevOps tasks. Similarly, creating the NuGet packages is also performed by dedicated DevOps tasks.
Finally, the produced artifacts are published in two containers that can be downloaded from DevOps: `zips` contains the zip files while `nuget` contains the NuGet packages.
>During a DevOps build, some environment `UMBRACO_*` variables are exported by the `pre-build` target and can be reused in other targets *and* in DevOps tasks. The `UMBRACO_TMP` environment variable is used in `Umbraco.Tests` to disable some tests that have issues with DevOps at the moment.
The produced artifacts are published in a container that can be downloaded from DevOps called "nupkg" which contains all the NuGet packages that got built.
## Quirks
### PowerShell Quirks
There is a good chance that running `build.ps1` ends up in error, with messages such as
>The file ...\build.ps1 is not digitally signed. You cannot run this script on the current system. For more information about running scripts and setting execution policy, see about_Execution_Policies.
PowerShell has *Execution Policies* that may prevent the script from running. You can check the current policies with:
PS> Get-ExecutionPolicy -List
Scope ExecutionPolicy
----- ---------------
MachinePolicy Undefined
UserPolicy Undefined
Process Undefined
CurrentUser Undefined
LocalMachine RemoteSigned
Policies can be `Restricted`, `AllSigned`, `RemoteSigned`, `Unrestricted` and `Bypass`. Scopes can be `MachinePolicy`, `UserPolicy`, `Process`, `CurrentUser`, `LocalMachine`. You need the current policy to be `RemoteSigned`—as long as it is `Undefined`, the script cannot run. You can change the current user policy with:
And *then* the script should run. It *might* however still complain about executing scripts, with messages such as:
>Security warning - Run only scripts that you trust. While scripts from the internet can be useful, this script can potentially harm your computer. If you trust this script, use the Unblock-File cmdlet to allow the script to run without this warning message. Do you want to run ...\build.ps1?
[D] Do not run [R] Run once [S] Suspend [?] Help (default is "D"):
This is usually caused by the scripts being *blocked*. And that usually happens when the source code has been downloaded as a Zip file. When Windows downloads Zip files, they are marked as *blocked* (technically, they have a Zone.Identifier alternate data stream, with a value of "3" to indicate that they were downloaded from the Internet). And when such a Zip file is un-zipped, each and every single file is also marked as blocked.
The best solution is to unblock the Zip file before un-zipping: right-click the files, open *Properties*, and there should be a *Unblock* checkbox at the bottom of the dialog. If, however, the Zip file has already been un-zipped, it is possible to recursively unblock all files from PowerShell with:
PS> Get-ChildItem -Recurse *.* | Unblock-File
### Git Quirks
Git might have issues dealing with long file paths during build. You may want/need to enable `core.longpaths` support (see [this page](https://github.com/msysgit/msysgit/wiki/Git-cannot-create-a-file-or-directory-with-a-long-path) for details).
@@ -103,7 +103,7 @@ Great question! The short version goes like this:
1.**Switch to the correct branch**
Switch to the `v10/contrib` branch
Switch to the `contrib` branch
1.**Build**
@@ -111,7 +111,7 @@ Great question! The short version goes like this:
1.**Branch**
Create a new branch now and name it after the issue you're fixing, we usually follow the format: `temp-12345`. This means it's a temporary branch for the particular issue you're working on, in this case issue number `12345`. Don't commit to `v10/contrib`, create a new branch first.
Create a new branch now and name it after the issue you're fixing, we usually follow the format: `temp-12345`. This means it's a temporary branch for the particular issue you're working on, in this case issue number `12345`. Don't commit to `contrib`, create a new branch first.
1.**Change**
@@ -121,7 +121,7 @@ Great question! The short version goes like this:
Done? Yay! 🎉
Remember to commit to your new `temp` branch, and don't commit to `v10/contrib`. Then you can push the changes up to your fork on GitHub.
Remember to commit to your new `temp` branch, and don't commit to `contrib`. Then you can push the changes up to your fork on GitHub.
#### Keeping your Umbraco fork in sync with the main repository
@@ -138,10 +138,10 @@ Then when you want to get the changes from the main repository:
```
git fetch upstream
git rebase upstream/v10/contrib
git rebase upstream/contrib
```
In this command we're syncing with the `v10/contrib` branch, but you can of course choose another one if needed.
In this command we're syncing with the `contrib` branch, but you can of course choose another one if needed.
[More information on how this works can be found on the thoughtbot blog.][sync fork ext]
@@ -169,7 +169,7 @@ We recommend you to [sync with our repository][sync fork] before you submit your
GitHub will have picked up on the new branch you've pushed and will offer to create a Pull Request. Click that green button and away you go.

We like to use [git flow][git flow] as much as possible, but don't worry if you are not familiar with it. The most important thing you need to know is that when you fork the Umbraco repository, the default branch is set to something, usually `v10/contrib`. If you are working on v9, this is the branch you should be targeting.
We like to use [git flow][git flow] as much as possible, but don't worry if you are not familiar with it. The most important thing you need to know is that when you fork the Umbraco repository, the default branch is set to `contrib`. This is the branch you should be targeting.
Please note: we are no longer accepting features for v8 and below but will continue to merge security fixes as and when they arise.
@@ -208,11 +208,13 @@ There will be times that we really like your proposed changes and we’ll finish
The Core Contributors team consists of one member of Umbraco HQ, [Sebastiaan][Sebastiaan], who gets assistance from the following community members who have committed to volunteering their free time:
- [Nathan Woulfe][Nathan Woulfe]
- [Joe Glombek][Joe Glombek]
- [Laura Weatherhead][Laura Weatherhead]
- [Busra Sengul][Busra Sengul]
- [Emma Garland][Emma Garland]
- [George Bidder][George Bidder]
- [Jason Elkin][Jason Elkin]
- [Laura Neto][Laura Neto]
- [Michael Latouche][Michael Latouche]
- [Owain Williams][Owain Williams]
- [Sebastiaan][Sebastiaan]
These wonderful people aim to provide you with a reply to your PR, review and test out your changes and on occasions, they might ask more questions. If they are happy with your work, they'll let Umbraco HQ know by approving the PR. HQ will have final sign-off and will check the work again before it is merged.
@@ -227,12 +229,14 @@ These wonderful people aim to provide you with a reply to your PR, review and te
Umbraco is the friendliest, most flexible and fastest growing ASP.NET CMS, and used by more than 500,000 websites worldwide. Our mission is to help you deliver delightful digital experiences by making Umbraco friendly, simpler and social.
@@ -31,7 +31,8 @@ The documentation for Umbraco CMS can be found [on Our Umbraco](https://docs.umb
Our friendly community is available 24/7 at the community hub, we call ["Our Umbraco"](https://our.umbraco.com/). Our Umbraco features forums for questions and answers, documentation, downloadable plugins for Umbraco, and a rich collection of community resources.
Besides "Our", we all support each other also via Twitter: [Umbraco HQ](https://twitter.com/umbraco), [Release Updates](https://twitter.com/umbracoproject), [#umbraco](https://twitter.com/hashtag/umbraco)
Besides "Our", we all support each other in our [Community Discord Server](https://discord.gg/umbraco) and on Twitter: [Umbraco HQ](https://twitter.com/umbraco), [Release Updates](https://twitter.com/umbracoproject), [#umbraco](https://twitter.com/hashtag/umbraco)
Umbraco source code can be edited inside the browser with VSCode and CodeSpaces.
This development environment comes with all the tools you need to build Umbraco source code.
## Debugging and Running
From VSCode browse to the Run and Debug section and then click the green button. This will build the Umbraco source code and attach a debugger and launch the site.
## Default Umbraco credentials
Username: test@umbraco.com
Password: password1234
## Test Email Server
A SMTP4Dev instance for testing email is available on port 5000.
## SQLite Database
The SQLite extension is preinstalled and allows you to open, query, edit the data inside the Umbraco SQLite database for ease of use.
- name:Fetch random comment 🗣️ and add it to the PR
uses:actions/github-script@v6
with:
@@ -41,13 +44,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).")
<!-- 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 -->
Description=$"You can find out more about the {DeliveryApiConfiguration.ApiTitle} in [the documentation]({DeliveryApiConfiguration.ApiDocumentationArticleLink})."
=>$"{description}. Refer to [the documentation]({DeliveryApiConfiguration.ApiDocumentationArticleLink}#query-parameters) for more details on this.";
privatestringPaginationDescription(boolskip)=>$"Specifies the number of found content items to {(skip ? "skip" : "take")}. Use this to control pagination of the response.";
:thrownewArgumentException($"Invalid item type. This method can only be used with item type {nameof(PublishedItemType.Content)}, got: {content.ItemType}");
BaseLuceneSearchersearcher=index.SearcherasBaseLuceneSearcher??thrownewInvalidOperationException($"Index searcher must be of type {nameof(BaseLuceneSearcher)}.");
thrownewInvalidOperationException($"Could not obtain an {nameof(IRequestStartItemProvider)} instance");
}
returnrequestStartItemProvider.GetStartItem();
}
}
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.