Reworks update of user groups on a user by updating in place rather than deleting and re-adding.
Ensure user groups affected by the update are invalidated in the repository cache.
Co-authored-by: Kenn Jacobsen <kja@umbraco.dk>
* added hovering and focus border to RTE
* fix main to OG
* fix to main again
* I'm going to cry
* added hovering and focus border to RTE
* fix indentation
* Refactored to set `--umb-tiptap-edge-border-color` variable
so that the toolbar and statusbar can pick up the state changes.
* Applies `transition` to the toolbar/statusbar components
---------
Co-authored-by: Oskar kruger <obk@umbraco.dk>
Co-authored-by: leekelleher <leekelleher@gmail.com>
* added hovering and focus border to RTE
* fix main to OG
* fix to main again
* I'm going to cry
* added dynamic label to expand/collapse button on parent/child treeitems
---------
Co-authored-by: Oskar kruger <obk@umbraco.dk>
* Remove redundant call to #loadTreeRoot in tree context
* Update tree root requests to use take: 0
Changed all tree repository requestTreeRoot methods to call getRootItems with { take: 0 } instead of { take: 1 }. This ensures that no items are fetched when only the total count is needed to determine if children exist, improving efficiency.
* Add user data delete endpoint to the management API
* Fix typo and remove unused umbracoMapper
* Applied changes from code review.
---------
Co-authored-by: Andy Butland <abutland73@gmail.com>
* set property type unique on context
* set the value
* observe property type unique from content picker property editor
* remove unused
* observe data type unique
* wip picker memories
* append memory option to the picker data model
* split into methods
* initialize memory context
* rename arg
* make memory module
* export constants
* allow nested memories
* pass memory from input document to picker context
* Update property-editor-ui-content-picker.element.ts
* fix import
* prefix with interaction
* clean up
* fix import
* rename module
* Update vite.config.ts
* update module name
* observe after search is initialized
* use memory manager in all places
* make picker modal base element
* update types
* add memory for document picker property editor
* store tree item picker expansion state in interaction memory
* Update picker-modal-base.element.ts
* remove the memory if we have no expansion state
* delete memory if it doesn't include anything
* clear picker input memories if nothing comes from the modal
* Refactor interaction memory handling in picker input
Moved the passing of interaction memories from the document picker input context to the core picker input context. Renamed the method for setting memories from the modal for clarity and consistency.
* only dispatch an event if the value changes
* remove unused
* observe to support close on escape
* add comments
* fix type error
* fix typings
* Replaces data type-based memory keys with config hash-based keys
* dont store picker search in interaction memory
* Rename interaction memory key in picker modal base
* Remove error throw for missing interaction memory
* Refactor interaction memory handling in content picker
Replaces the single 'memory' property with an 'interactionMemories' array and updates event handling to support multiple interaction memories. Adjusts property types, event listeners, and child component bindings to accommodate this change.
* Refactor content picker to use interaction memories
Replaces the previous memory handling with a new approach using interaction memories, including unique hash generation based on config. Updates event handling and property names to align with the new interaction memory model, improving state management and consistency.
* remove debugger
* rename const
* wip media picker memories
* remove args
* simplify memory model
* update internal value before dispatching event
* remove unused
* Update property-type-based-property.element.ts
* rename method
* simplify types
* implement location memory for media picker
* temp type cast
* set location memory when using the breadcrumb
* remove code duplication
* bubble memories from input media to input content
* Update src/Umbraco.Web.UI.Client/src/packages/property-editors/content-picker/property-editor-ui-content-picker.element.ts
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* fix import
* remove unused method
* Refactor content picker interaction memory management
Introduced UmbPropertyEditorUiInteractionMemoryManager to encapsulate interaction memory logic for property editors. Updated the content picker property editor to use this new manager, removing duplicated memory management code and improving maintainability.
* Refactor interaction memory management in pickers
Replaces custom interaction memory logic in document and media picker property editors with the shared UmbPropertyEditorUiInteractionMemoryManager. Updates unique memory key prefixes for consistency and simplifies related event handling. This improves maintainability and standardizes memory management across property editors.
* export context token
* add js docs
* remove timestamp
* add tests for interaction memory manager
* Added tests for the property editor ui interaction memory manager
* Rename memories to memoriesForPropertyEditor
Renamed the 'memories' property to 'memoriesForPropertyEditor' in the interaction memory manager and updated all references in related property editor components and tests for clarity and consistency.
* Separated out `import type`s + ordering
* remove interaction memory implementation in modal context
* remove interactionMemories from modal interface
* revert to using the umbOpenModal helper
* align property and event name
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: leekelleher <leekelleher@gmail.com>
* Preserve additional URL path in split view navigation
Enhances the split view manager to retain any additional pathname segments when updating the browser history, ensuring that navigation state beyond the variant part is preserved.
* Update src/Umbraco.Web.UI.Client/src/packages/core/workspace/controllers/workspace-split-view-manager.controller.ts
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* format
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* feat: gets hints and assigns to variants to enable the view to show a badge if there is a hint
* feat: find the first hint on the non-active variant
* feat: protect against non-variants
* feat: ignore invariant variants
* feat: adds a render method for hints
* chore: removes comment
* only add a new hint if the weight is higher
* Remove tags with backspace
* Unused varible
* Manage focusable tag and tabindex updates
* `import`s tidy-up
* Adds `tabindex` and focus outline for each tag
* Removed the tag wrapper container
No longer required.
* Adds support for "Delete" key
* Disables `autocomplete` for new tag input
This conflicts with the suggestions prompt.
* Reverted removal of the tag wrapper container
Required as a "skip tags" tabbing feature
* Uses `UmbChangeEvent`
---------
Co-authored-by: Mads Rasmussen <madsr@hey.com>
Co-authored-by: Niels Lyngsø <nsl@umbraco.dk>
Co-authored-by: leekelleher <leekelleher@gmail.com>
* Added appsettings
* Added test setup for different config
* Added appsettings for external login
* Added acceptance tests
* Updated pipelines
* Updated solution file
* V15 QA Added external login provider tests and split pipeline into templates (#20049)
* Added setup for external login
* Started on yaml
* Added test file
* Updated pipeline
* Use env vars
* Added env variables and commented out test we don't need to run
* Removed list from matrix
* Updated condition
* Updated package path
* Updated testFolder
* double slash
* Updated condition
* Updated condition again
* Added port
* Removed redundant values
* Set as env vars
* Added env vars beneath matrix
* Get env
* Updated naming
* Updated usage of values
* Added a check for client id, to see if value set
* Moved env out of pool
* Tried moving env
* Trying to fix the env being empty
* Removed env
* Updated name of variable
* Fixed A cyclical reference
* Updated typo
* More logging
* Reverted change
* Added env
* Added env to tests
* Cleaned up
* Added yaml template files
* Updated nighly pipepline to use templates
* Updated sln
* Split yaml into templates for e2e setup
* Updated pipeline
* Updated solution file
* Set value
* Added if statement
* Added variables
* Set default values
* Updated values
* Updated condition
* Run multiple tests
* Added env
* Updated from parameter to variable
* Fixed condition
* Fixed condition to use actual value
* Updated npx wait on command
* Updated pwsh
* Updated port again
* Updated port value
* Updated wait on
* Updated condition
* Restructured
* Updated var
* Updated run application steps
* Added echo
* Updated to boolean
* Updated conditions
* Updated test template usage
* Added databaseType
* Added another databaseType
* Split up templates
* Fixed indentation
* Updated condition
* updated path
* removed build from path
* Updated conditions for azureAd
* Fixed indentation
* Updated to single qoutes
* Cleaned up
* Removed unused file
* Clarified namin
* Moved
* Updated pipeline, not done
* Updated locator
* Updated pipelines
* Updated test helpers package
* Skipped build stage for default app settings tests
* Updated password var
* Updated locators
* Updated defaultconfig build setup
* Split E2E stage in two
* Added parameter for skipping integration tests
* Cleaned up
* Added ASPNETCORE_URLS
* V15 QA acceptance tests with appsettings (#19550)
* Start of appsetting
* Updated setup of playwright
* Adjusted the pipeline
* Updated appsetting
* Added install test
* Added comments
* Updated pipeline
* Updated development app settings
* Commented tests out
* comment
* Added if statement
* Updated pipeline
* Fixed condition
* Changed to production
* Added a log
* Updated copy item
* Added
* Updated app settings
* Updated pipeline
* Moved playwright login
* Updated pipeline
* Updated app setting
* Updated nightly
* Updated appsettings
* Updated get
* Updated wait on
* Updated appsettings
* Updated connection string
* Updates
* Skips code
* Updated variable
* Updated pipeline
* We want to always retain the trace, to see if the test runs as expected on the pipeline
* Added a temporary wait till port is open
* Fixed condition
* Added missing tcp for wait on
* Updated URL env
* Updated setup
* Fixed string
* Updated locator
* Split tests into SQLite and SQLServer
* Updated pipeline to run all tests
* Retain trace on failure
* Added testFolder var
* Added appsettings and program for delivery api tests
* Updated playwright config
* Split test runners into defaultconfig and different app settings
* Added delivery api tests
* Cleaned up tests
* Bumped version
* Updated pipeline
* Small fixes
* Added password
* Updated connection string
* Fixed
* Removed quotes
* Removed unnecessary connection string
* Added missing password
* Cleaned up
* Cleaned up
* Cleaned up
* Updated to use helpers
* Bumped version
* Updated helper usage
* Added password to variables and a condition
* Added check
* Indented value
* Fixed condition
* More updates
* Updated variable
* Removed settings
* Updated delivery api tests
* Bumped version
* Updated test
* Removed unnecessary variables
* Updates based on copilot comments
* Fixed merge conflict
* Fixed env creation step
* Bumped version
* Updated tests to use new helper
* Updated helper
* Updated to string
* Moved logic to conditions
* bumped version
* Use new name for helper
* Remove echo
* Added variable
* Initial implementation of non existing property editor
* Adjust `MissingPropertyEditor` to not require registering in PropertyEditorCollection
* Add `MissingPropertyEditor.name` back
* Remove unused dependencies from DataTypeService
* Removed reference to non existing property
* Add parameterless constructor back to MissingPropertyEditor
* Add validation error on document open to property with missing editor
* Update labels
* Removed public editor alias const
* Update src/Umbraco.Web.UI.Client/src/packages/property-editors/missing/manifests.ts
* Add test that checks whether the new MissingPropertyEditor is returned when an editor is not found
* Also check if the editor UI alias is correct in the test
* Apply suggestions from code review
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Share property editor instances between properties
* Only store missing property editors in memory in `ContentMapDefinition.MapValueViewModels()`
* Add value converter for the missing property editor to always return a string (same as the Label did previously)
* Small improvements to code block
* Adjust property validation to accept missing property editors
* Return the current value when trying to update a property with a missing editor
Same logic as for when the property is readonly.
* Fix failing unit tests
* Small fix
* Add unit test
* Remove client validation
* UI adjustments
* Adjustments from code review
* Adjust test
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Avoid throwing an exception on getting references when migrating content with changed data types.
* Reintroduced generic catch to avoid functional breakage
---------
Co-authored-by: kjac <kja@umbraco.dk>
* Renaming the providers, collection builder and model
* Renaming the items using signs
* Renaming in controllers
* Renaming mapping flags
* Renaming sign tests to flags
* Changing the test files names from signs to flags
* Updated a couple more references.
---------
Co-authored-by: Andy Butland <abutland73@gmail.com>
* Support querystring and anchor for local links in Delivery API output (#20142)
* Support querystring and anchor for local links in Delivery API output
* Add default implementation for backwards compat
* Add default implementation for backwards compat (also on the interface)
* Fix default implementation
* Add extra tests proving that querystring/postfix can be handled for local links in both legacy and current format.
* Tiptap RTE: prevent `undefined` value
If the `value` becomes `undefined`, then the block data can't be tracked (for undo/redo).
The scenario comes when a user "selects all" contents, cuts it, and pasted it back in.
Fixes#20076
* Tiptap RTE: fixes selection white text bug
* Tiptap RTE: amends heading styles (for first-child)
* Reload section root on repeated header section click
Adds logic to reload the root of a section if its header is clicked while already active. This improves navigation consistency by resetting the section view when the user clicks the current section again.
* Update backoffice-header-sections.element.ts