* 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.
* Fix for https://github.com/umbraco/Umbraco-CMS/issues/18872
* Parsing added for current value
* Build fix.
* Cyclomatic complexity fix
* Resolved breaking change.
* Pass content key.
* Simplified collections.
* Added unit tests to verify behaviour.
* Allow file upload on block list.
* Added unit test verifying added property.
* Added unit test verifying removed property.
* Restored null return for null value fixing failing integration tests.
* Logic has been updated according edge cases
* Logic to copy files from block list items has been added.
* Logic to delete files from block list items on content deletion has been added
* Test fix.
* Refactoring.
* WIP: Resolved breaking changes, minor refactoring.
* Consistently return null over empty, resolving failure in integration test.
* Removed unnecessary code nesting.
* Handle distinct paths.
* Handles clean up of files added via file upload in rich text blocks on delete of the content.
* Update src/Umbraco.Infrastructure/PropertyEditors/FileUploadPropertyEditor.cs
Co-authored-by: Sven Geusens <geusens@gmail.com>
* Fixed build of integration tests project.
* Handled delete of file uploads when deleting a block from an RTE using a file upload property.
* Refactored ensure of property type property populated on rich text values to a common helper extension method.
* Fixed integration tests build.
* Handle create of new file from file upload block in an RTE when the document is copied.
* Fixed failing integration tests.
* Refactored notification handlers relating to file uploads into separate classes.
* Handle nested rich text editor block with file upload when copying content.
* Handle nested rich text editor block with file upload when deleting content.
* Minor refactor.
* Integration test compatibility supressions.
---------
Co-authored-by: Andy Butland <abutland73@gmail.com>
Co-authored-by: Sven Geusens <geusens@gmail.com>
* feat: adds new localization keys for forbidden routes
* feat: ignore all 400, 401, 403, and 404 errors as they are handled by the UI
* feat: adds new elements to show forbidden routes and entities
* feat: adds generic forbidden state to base entities
* feat: injects a forbidden route component to documents
* feat: adds 'forbidden' state to media workspace
* chore: aligns document and media workspaces
* test(mock): adds user configuration endpoint
* test(mock): adds calculate-start-nodes endpoint to users
* test(mock): adds missing endpoint for 'client-credentials'
* feat: clean up old observers on entity errors
* feat: aligns UI for better DX if there is no user
* fix: returns early if there is no user, instead of trying to append properties to the object
* feat: adds 'forbidden' state to members
* feat: adds support for forbidden document blueprints
* feat: allows parent to be undefined as well as null
* feat: forbidden route for members as a state
* chore: simplify language workspace
* test: adds forbidden mock data
* test: adds missing endpoints and a check for forbidden ids
* add slot for icon
* expose icon data
* render icon
* load type for scaffold
* rename
* render icon for media
* add observable for content type icon
* request data in data source
* wire up document scaffolding
* remove unused
* export server data source
* render icon for member
* rename data source to align with other detail sources
* rename data source
* remove unused styling
* remove console log
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* remove console log
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* remove console log
* render workspace icon for document type folders
* make folder workspace editor
* use element
* remove const
* use folder-workspace-editor for templating folders
* introduce name write guard manager
* prevent name change of file system folders
* Update script-folder-workspace-editor.element.ts
* make guard optional
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Adds optional parameter to Tiptap toolbar item's `isActive`
* Adds `isActive` support to toolbar menus and cascading menus
* Adds `isActive` support to the font menus
* Adds `isActive` support to the table menu
+ UI/CSS tweak
* Adds `isActive` support to the style menu API
+ refactored the commands
* Improves cascading menu popover closing
it previously didn't close the menu when an action was clicked.
* remove trash notifications
* Updated tests so we no longer use the notification for moving to recycle bin
---------
Co-authored-by: Andreas Zerbst <andr317c@live.dk>
* fix: if no workspace views are found at all, show a not found page
* fix: rather than redirecting to the first available tab, which may not always be available on secondary routing, let the router display the first tab on an empty url
this mirrors how workspace views are displayed in umb-workspace-editor
* Refactored breadcrumb variant name
The parentheses will be added to unnamed variant ancestor items.
* Adds `last-item` attribute
(for semantics)
* Imports tidy-up
* Refactored `#getHref` to early exit for `.isFolder`
Saves on the string allocation.
* feat: fix a small-ish nitpick where extensions would reload after login
this could potentially try to re-register all private extensions after each auth signal, which is being prevented anyway because of duplicate aliases, but still nice to remove and not have to listen to
* feat: align login UI extension load with backoffice, i.e. wait for external load before registering core extensions
* build(deps): bump @hey-api to newest and re-generate client
* chore: adds extra error logging
* feat: adds retry logic to the api interceptor
* feat: warn about incomplete actions
* fix: the body was already plain text, but we need to ensure the headers say so as well
* feat: warns the user when actions could not be completed
* build(deps): update @hey-api/client-fetch
* chore: generate new api
* feat: simplify error handling to just UmbApiError and UmbCancelError
* feat: moves error notifications from interceptors into tryExecute, so you more easily can opt out of it and everything is gathered in one place
* feat: recreate responses with correct 'status' and 'statusText'
* build: stop dotnet processes after debug session
* feat: extrapolate common logic into helper method to create responses
* feat: returns a UmbProblemDetails like object on interceptors to be handled by tryExecute
* chore: deprecates duplicate, outdated UmbProblemDetails interface and type guard
* feat: uses the 'title' of the problem details object to convey the main message
* chore: 401 and 403 uses their own interceptors
* feat: show no notification if 401
* feat: uses the real request method and url (instead of the template placeholders) to tell the user what did not succeed
* feat: retry requests with no timeout/race
* feat: throttle and delay signals and disallow them from being updated from the outside
* chore: adds more logging to timeouts
* chore: optimise imports
* test: ignores any test files left in node_modules folder
* feat: uses auditTime to wait a bit before showing the timeout screen
* feat: adds 404 handling to error interceptor
* chore: cleans up after response modification
* feat: preserve only a few headers
this mimicks the v15 behavior
* feat: lets the UI handle 404 errors instead of notifying directly
* test: uses create action menu option instead to find the correct locator, and skips a seemingly unnecessary timeout
* fix: add a catcher to most `asPromise` for stores to prevent cascading errors
* fix: remove conditional instances - they should be able to be undefined
* fix: check for missing store and extract UmbProblemDetails
* fix: only append data if no error
* fix: adds error handling to missing stores and to extract the ProblemDetails object
* revert commit
* fix: ignore errors completely instead of unsetting stores
* revert commit
* chore: cleanup imports
* fix: do not unset store
* stop observation in a proper way
* stop observation of for document-user-permissions
* check for manager twice
* save action
* save action optional
* fix: ensure the right types are used for base stores
---------
Co-authored-by: Niels Lyngsø <niels.lyngso@gmail.com>
* Bump version to 16.0.0, update starter kit reference and enable package validation.
* Update version number in package.json.
* Re-disabled package validation (can't enable this yet).
* Tiptap style menu toggles (for classes and IDs)
Fixes#19244
* Tiptap style menu toggles (for font/color)
Fixes#19508
* Tiptap "Clear Formatting" remove classes and styles
* Tiptap font sizes, removes trailing semicolon
as the API handles the delimiter
* Tiptap global attrs: adds set/unset styles commands
* chore: export useful rxjs functions
* fix: use switchMap to ensure correct loading of localization extensions
also added filter() and distinctUntilChanged() to ensure the logic is not run more often than what is needed
* test: adds tests for async localization extensions and weights
* chore: apply simpler sorting syntax
* chore: adds catchError to ensure the whole stream is not stopped because of an error
* chore: lowest weight should win
* chore: move catchError so it catches everything
* chore: returns an observable to not break the stream
* chore: reverse weight as the previous was correct
* chore: adds a true comparer function that is more efficient
* Import order sorting
* Export order sorting
---------
Co-authored-by: leekelleher <leekelleher@gmail.com>
* Fixes search filter text alignment
* Let `styleMenu` kind display as a menu
* Collapse excessive whitespace in RTE
* Ensures the RTE Capabilities are in 3 columns
* Dimensions UI fixes
* Ensures backwards compatibility of `UMB_CONTENT_PROPERTY_CONTEXT`
* Updates usage of deprecated `UMB_CONTENT_PROPERTY_CONTEXT` to `UMB_PROPERTY_TYPE_BASED_PROPERTY_CONTEXT`
* chore: disable notifications for global manifest loads
* fix: registers required contexts to load public manifests
* fix: specifically for localizations, load with the same cultures and weights as the backoffice itself does
* fix: set weight to +100 to make sure custom localization extensions are loaded first
* fix: remove 'welcome' fallback to avoid a flash of unlocalized content (FO"U"C)
* fix: starting <li> tag
* Removed encoding of request to retrieve files and folders by path, to avoid double encoding via the typed client.
* fix: adjusts log viewer to encode only once and remove empty properties
---------
Co-authored-by: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com>