* Remove skip
* Added tests for creating and updating content
* Removed skip because the issue is fixed
* Updated assertion steps for the update document user permission
* Bumped version
* Added release tag
---------
Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>
* Started implementing new LongRunningOperationService and adjusting tasks to use this service
This service will manage operations that require status to be synced between servers (load balanced setup).
* Missing migration to add new lock. Other simplifications.
* Add job to cleanup the LongRunningOperations entries
* Add new DatabaseCacheRebuilder.RebuildAsync method
This is both async and returns an attempt, which will fail if a rebuild operation is already running.
* Missing LongRunningOperation database table creation on clean install
* Store expire date in the long running operation. Better handling of non-background operations.
Storing an expiration date allows setting different expiration times depending on the type of operation, and whether it is running in the background or not.
* Added integration tests for LongRunningOperationRepository
* Added unit tests for LongRunningOperationService
* Add type as a parameter to more repository calls. Distinguish between expiration and deletion in `LongRunningOperationRepository.CleanOperations`.
* Fix failing unit test
* Fixed `PerformPublishBranchAsync` result not being deserialized correctly
* Remove unnecessary DatabaseCacheRebuildResult value
* Add status to `LongRunningOperationService.GetResult` attempt to inform on why a result could not be retrieved
* General improvements
* Missing rename
* Improve the handling of long running operations that are not in background and stale operations
* Fix failing unit tests
* Fixed small mismatch between interface and implementation
* Use a fire and forget task instead of the background queue
* Apply suggestions from code review
Co-authored-by: Andy Butland <abutland73@gmail.com>
* Make sure exceptions are caught when running in the background
* Alignment with other repositories (async + pagination)
* Additional fixes
* Add Async suffix to service methods
* Missing adjustment
* Moved hardcoded settings to IOptions
* Fix issue in SQL Server where 0 is not accepted as requested number of rows
* Fix issue in SQL Server where query provided to count cannot contain orderby
* Additional SQL Server fixes
---------
Co-authored-by: Andy Butland <abutland73@gmail.com>
* Reloads the template tree when creating a document type with a template.
* Housekeeping: separating/sorting import types
---------
Co-authored-by: leekelleher <leekelleher@gmail.com>
* fix: Prevent Repository Details Manager making requests for empty arrays
Fixes#19604
* Reworked to pass the `uniques` through to the `#requestNewDetails()` method
The unique values are included as a closure,
persisting after the `#init` promise is resolved.
Rather than call `getUniques()` to get an async'd value.
* Updated with Copilot suggestions
https://github.com/umbraco/Umbraco-CMS/pull/19731#discussion_r2221512463
* Add defensive coding to the member application initializer (#19760)
* Moved _isInitialized to after the initialization
---------
Co-authored-by: kjac <kja@umbraco.dk>
* Return 404 on delivery API requests for segments that are invalid or not created.
* Handled case with no segmented properties.
* Let the property decide if it has a value or not
---------
Co-authored-by: kjac <kja@umbraco.dk>
Fix issue template is shrunk when enable inline editing mode in collection list view in block list field
Co-authored-by: Lan Nguyen Thuy <lnt@umbraco.dk>
* Add a backing field for EditorUIAlias and track changes when its set.
* Add previously failing unit test to verify fix.
* Aligned backing field casing with property name.
---------
Co-authored-by: Andy Butland <abutland73@gmail.com>
* Added tests for creating content using document blueprint
* Updated tests due to api helper for document blueprint changes
* Bumped version
* Make all Blueprint tests runs in the pipeline
* Reverted npm command
* Updated tests for adding a thumbnail to a block grid
* Added tests for adding a block thumbnail
* Make tests run in the pipeline
* Reverted npm command
* Add support for programmatic creation of property types providing the data type key (#19720)
* Add support for programmatic creation of property types providing the data type key.
* Add integration tests
---------
Co-authored-by: kjac <kja@umbraco.dk>
* Don't use Lazy
---------
Co-authored-by: Andy Butland <abutland73@gmail.com>
* Populate name for content and media on URL picker if title is left empty.
* Display URL for manually entered URLs.
* Updates from code review.
* Reverted `elementName` constant
* Sorted imports
* Small code tidy-ups
* Added logic to render the `url` as the `name` fallback
In this case, the `detail` is left empty, giving prominence to the `url` value.
* Refactored the get name/url methods
for code consistency.
* Updated `#requestRemoveItem()` to use the item's resolved name
with a fallback to "item".
Also localized the "Remove" button label
---------
Co-authored-by: leekelleher <leekelleher@gmail.com>
* chore: revamps openid package to organise files in a 'src' folder
* feat: adds all externals as npm workspaces with a vite build
* feat: copies the correct uui assets
* feat: copies the backoffice static assets
* feat: creates the correct module for openid
* feat: copies the correct monaco-editor assets
* feat: moves monaco-editor into its package
* feat: moves dependencies to relevant external modules
* feat: gets rid of rollup
* build: uses tiny-glob instead of glob (one less dependency)
* feat: copies all css assets to dist-cms/css first, minifies them, then copies everything over to StaticAssets
* build: removes old static assets from vite static build
* fix: forwards the file extensions to the inner dropzone
* fix: ensures non-mimetype extensions start with a dot (.)
* chore: adds more details on how to set file extensions
* feat: adds a bit of styling to code snippets in UFM
* fix: return if no file in stream
* fix: prevents potential race condition if src changes
* chore: minor code improvement
* Adds variation by the header name Accept-Language to the develivery API output cache policy
* Removed obsolete constructor (not necessary as the class is internal).
* Introduce contants for header names.
* Fix issue forceHideContentEditorInOverlay not available in RTE
* remove href link when enable hide content editor setting:
---------
Co-authored-by: Lan Nguyen Thuy <lnt@umbraco.dk>
* feat: converts tokenResponse into an object state
* feat: adds worker that checks token lifetime
* feat: initialises token worker to check up on tokens
* revert
* chore: defines typings for shared workers
* chore: uses correct assets url for core package
* feat: sets correct values for token check expiration
* feat: adds labels to confirm modal
* feat: separates logic for session monitoring to own controller
* feat: adds a timeout modal to correctly inform the user
* feat: opens the timeout modal (and closes it again) if a timeout occurs
* feat: log out when user clicks log out button
* feat: adds localization
* feat: sets sensible defaults for the web worker to check
* feat: adds more languages
* chore: adds more comments
* chore: removes nodejs types
* Update src/Umbraco.Web.UI.Client/src/packages/core/auth/workers/token-check.worker.ts
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* chore: removes nodejs types
* chore: resolves cyclic imports
* chore: removes circular dependencies from the 'modal' package
* chore: redefine SharedWorkerGlobalScope because of Github Actions CI
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Mock data updates
The `icon` is not part the block-type data.
* Adds `description` to the mock doctype model
* Refactors block catalogue modal
to make the filter/search work with a block-type's name & description.
This removes the need to use the `<umb-block-type-card>` component,
all element-type data is requested upfront.
* Reverted dev/debug change
* Abstracted out the element-type items observation to its own method
* Updated CSS rule
thanks to a Copilot suggestion.
* Adds `markedExtension` extension-type
* Relocates the Component and Filter extension-type interface code files
to under "extensions"
* Moves `UfmPlugin` type to its own referencable file
* Adds UFM support for JS expressions
making use of "@heximal/expressions" library.
* Modified regex pattern to match nested braces
* try/catch for invalid JS expressions
* Capitalizing the JS in `UmbUfmJsMarkedExtensionApi` class name
for consistency and improved readability.
* Abstracted out `ufmjs()` to its own Marked extension file
making it simpler to add unit-tests.
* Fixed up types in UFM context
added JSDocs for public methods
* Adds a generic Least Recently Used (LRU) cache implementation
* Added tests for granular document permission
* Updated tests for Webhook
* Bumped version
* Make all tests for granular permission run in the pipeline
* Added issue link for the failing tests
* Remove .skip
* Removed unnecessary tests
* Updated assertion step for create and delete document for a specific document
* Updated tests for read permission
* Fixed comments
* Pass notification state to cache refreshers.
Pass previous user name into member saved notification state and use when refreshing cache to clear the member by keys based on this.
* Fixed issue raised in code review.
* Fixed casing for state key.
* Added removed parameter to unit tests.
* Fix breaking change.
* Adds `markedExtension` extension-type
* Relocates the Component and Filter extension-type interface code files
to under "extensions"
* Moves `UfmPlugin` type to its own referencable file
* PoC implementation
* Move to controller base
* Implement solution that seems worse, but works better
* Don't require parent key in repository method
* Fix typos
* Add siblings for data type, media type and media
* Add endpoint for template
* Add DocumentType and DocumentBlueprint controllers
* Fix naming
* Fix case if siblings are under root
* Take item ordering into account
not all entities are ordered by sort order
* Add default implementation
* Fix parentkey
* Add tests
* Format optimizations for split view
* Add test covered requirement to description
* Cover positive case and make test case output more readable
* reduce allocations
* Clarify test
---------
Co-authored-by: Migaroez <geusens@gmail.com>
* Fixes issue where content created from blueprint would not persist file upload property values.
* Ensure a copy of a file upload is created when scaffolding content from a blueprint, like we do when copying content.
* Clarified comment.
* Removed unneeded usings.
* Fixed spelling.
* Handle create of blueprint from content to create a new uploaded file.
Handle delete of blueprint to delete uploaded files.
* Added abstraction for aggregation of granular permissions to support custom permissions.
* Refactor to move responsibility for aggregating granular permissions to the respective mappers.
* Added XML header comments for permission mappers.
* Tidied up/removed warnings in UserPresentationFactory interface and implementation.
* Optimized retrieval of documents in DocumentPermissionMapper.
* Fixed method header comment.
* Use entity service rather than content service to retrieve key and path.
* Passes the preview flag to the cache retrieval when resolving the delivery API object for the MNTP property editor.
* Added unit test verifying fix and adjusted mocks for tests to acoomodate.
* Provided preview flag for Razor rendering.
* Refactor section conditions into subfolders
Split section condition logic into 'section-alias' and 'section-user-permission' subfolders, each with their own constants, manifests, and types. Updated imports and manifest aggregation to use the new structure for improved modularity and maintainability.
* use const
* fix build
* Refactor section alias condition to use constant
Replaces hardcoded 'Umb.Condition.SectionAlias' strings with the UMB_SECTION_ALIAS_CONDITION_ALIAS constant across all manifests and related files. This improves maintainability and consistency by centralizing the section alias condition reference.
* clean up workspace conditions
* only show collection items workspace view when document is created
* do not pass null for collection
* only show media collection view when media is created
* add basic collection example
* add card view example
* update example readme
* Add workspace view example with collection
* wip tree example
* clean up
* Update README.md
* Update README.md