* 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>
* Add a way to configure IUmbracobuilder on a per testcase basis
* New logic for invariantVariantMerging
* bugfix
* Undo formatting changes
* Undo more automatic formatting
* Last automatic formatting correction
* Cleanup ConfigureBuilderAttribute
* Made propertyEditor tests internal
* Block level variance - initial commit
* Remove TODOs
* Only convert RTEs with blocks
* Fix JSON paths for block level property validation
* Rename Properties to Values
* Correct the JSON path of block level validation errors
* Make it possible to skip content migration + ensure backwards compat for the new block format
* Partial culture variance publishing at property level
* UDI to key conversion for block editors - draft, WIP, do NOT merge 😄 (#16970)
* Convert block UDIs to GUIDs
* Fix merge
* Fix merge issues
* Rework nested layout item key parsing for backwards compatibility
* Clean-up
* Reverse block layout item key calculation
* Review
* Use IOptions to skip content migrations
* Remove "published" from data editor feature naming, as it can be used in other contexts too
* Parallel migration
* Don't use deprecated constructor
* Ensure that layout follows structure for partial publishing
* Block Grid element level variance + tests (incl. refactor of element level variation tests)
* Rollback unintended changes to Program.cs
* Fix bad casing
* Minor formatting
* RTE element level variance + tests
* Remove obsoleted constructors
* Use Umbraco.RichText instead of Umbraco.TinyMCE as layout alias for blocks in the RTE
* Fix bad merge
* Temporary fix for new cache in integration tests
* Add EditorAlias to block level properties
* Remove the unintended PropertyEditorAlias output for block values
* Add EditorAlias to Datatype Item model
* Update OpenApi.json
* Introduce "expose" for blocks
* Strict (explicit) handling for Expose
* Improve handling of document and element level variance changes
* Refactor variance alignment for published rendering
* Block UDI to Key conversion should also register as a conversion
* Convert newly added RTE unit test to new RTE blocks format
* Minor review changes
* Run memory intensive tests on Linux only
* Add tests proving that AllowEditInvariantFromNonDefault has effect for block level variance too
* Fix the Platform annotations
* Removed Platform annotations for tests.
* Fix merge
* Obsolete old PublishCulture extension
* More fixing bad merge
---------
Co-authored-by: Niels Lyngsø <niels.lyngso@gmail.com>
Co-authored-by: nikolajlauridsen <nikolajlauridsen@protonmail.ch>
* Added a custom RichTextRequiredValidator, to check that the empty richtext object (still with json) can be required or not. We are now testing the markdown needs to have a value
* Fixed namespaced and moved back wrong class
* Cleanup
* Added Element <-> Document type switch validation
* Apply HasElementconfigured to block grid and block list
Fix smalle bug + optimization
* Moved some of the logic into warnings trough notifcationhandlers and eventmessages
* Cleanup
* Update openApi spec (merge changes)
* Add IsElement check between parent and child on creation
* Typos
* Transformed HasElementConfigured into HasElementConfigured
* Typo
Co-authored-by: Kenn Jacobsen <kja@umbraco.dk>
* IsElement Validation refactor
Moved validation logic regarding doctype IsElement switch into its own service as it will be consumed by more things down the line
* commit missing services...
* Naming improvements
* Bugfix
* First batch of integration tests for ElementSwitchValidator
* More integration tests!
* Little reformatting
* Changed the default values of block based configuration to match expected values.
---------
Co-authored-by: Kenn Jacobsen <kja@umbraco.dk>
* Do not execute query if no macros found
* Request cache the permission lookup
* Unbreak change by adding obsolete ctor
* Clean up
* Wrap indexing for delivery API in a scope
* Do not ask options every time for the timeout, instead listen for updates
* Lookup content types once instead of one by one
* Use TryGetValue instead
* Do a distinct on user ids before building index, to avoid issue with more than 2100 parameters
* Don't map ContentDto (it's unused)
* Introduce request bound block editor element cache
---------
Co-authored-by: kjac <kja@umbraco.dk>
* Improve getting and initializing new block value layouts
* Remove unnecessary generic type constraints
* Add and use new block value/layout item constructors in tests
* Removed GetLayouts that did not make sense
* Added constructor to BlockItemData to simplify explicit usages
---------
Co-authored-by: kjac <kja@umbraco.dk>
* Move magical route to management api
* Move auth around
* Remove "New" cookies, as they are no longer needed
* Move all installer related
* Remove BackOfficeServerVariables.cs and trees
* Move webhooks to management api
* Remove remainting controllers
* Remove last services
* Move preview to management api
* Remove mroe extensions
* Remove tours
* Remove old Auth handlers
* Remove server variables entirely
* Remove old backoffice controller
* Remove controllers namespace entirely
* Move rest of preview
* move last services
* Move language file extension
* Remove old backoffice entirely (Backoffice and Web.UI projects)
* Clean up unused security classes
* Fix up installer route
* Remove obsolete tests
* Fix up DI in integration test
* Add missing property mapping
* Move core mapping into core
* Add composers to integration test
* remove identity
* Fix up DI
* Outcomment failing test :)
* Fix up remaining test
* Update mapper
* Remove the actual project files
* Remove backoffice cs proj
* Remove old backoffice from yml
* Run belissima before login
* Remove caching
* Refactor file paths
* Remove belle from static assets
* Dont refer to old project in templates
* update gitignore
* Add missing files
* Remove install view as its no longer used
* Fix up failing test
* Remove outcommented code
* Update submodule to latest
* fix build
---------
Co-authored-by: Bjarke Berg <mail@bergmania.dk>
* Introduced IDataTypeConfigurationCache
* Applied IDataTypeConfigurationCache to Property Editors and display mapping
* Invalidate new cache trough DataTypeConfigurationCacheRefresher
* Improve IDatatype service to use cached int path when fetching by guid (using idkeymap)
---------
Co-authored-by: Sven Geusens <sge@umbraco.dk>
Co-authored-by: Ronald Barendse <ronald@barend.se>
* insert umb rte block web component in rte
* First stab at moving the RTE markup to a nested "markup" property in the property value.
* initial work
* only rewrite markup
* transform RTE into component
* parse scope in grid.rte
* revert use a fallback instead
* block insertion and sync in place
* block picker partly impl
* remove test of old controller
* remove test of old controller
* block with block data
* proper block with api connection
* remove log
* styling
* Persist blocks data (still a temporary solution)
* styling allows for interaction
* block actions
* tinyMCE styling
* paste feature
* prevalue display Inline toggle
* inline mode in RTE
* todo note
* fixes wording
* preparation for editor communication
* remove val-server-match for now
* clean up blocks that does not belong in markup
* remove blocks not used in the markup
* liveEditing
* displayAsBlock formatting
* clean up
* TODO note
* Serverside handling for RTE blocks (incl. refactor of Block List and Block Grid)
* ensure rich text loads after block editor
* trigger resize on block init
* Handle RTE blocks output in Delivery API
* sanitize ng classes
* simplify calls to init blocks
* move sanitisation
* make validation work
* only warn when missing one
* clean up
* remove validation border as it does not work
* more clean up
* add unsupported block entry editor
* Revert breaking functionality for Block List and Grid
* prevent re-inits of blocks
* make sure delete blocks triggers an update
* Refactor RichTextPropertyIndexValueFactory to index values from blocks + clean up RichTextPropertyEditor dependencies
* first working cursor solution
* inline element approach
* Handle both inline and block level blocks
* Fix the RTE block parser regex so it handles multiple inline blocks.
* Fix reference and tags tracking, add tests, make the editor backwards compatible and make deploy happy
* Use RichTextPropertyEditorHelper serialization in tests
* Ensure correct model in Block Grid value converter (incl unit test to prove it)
* do not include umbblockpicker in grid
* make blocks the new default, instead of macros
* only send value of body from DOMParser
* Blocks of deleted ElementTypes shows unsupported
* do not edit a unsupported block
* remove trying to be smart on the init
* fix missing culture issue
* set dirty
* alert when no blocks
* Revert "make blocks the new default, instead of macros"
This reverts commit 283e8aa473fdfde075197d34aa47e35dfc64a8ae.
---------
Co-authored-by: kjac <kja@umbraco.dk>
* V12: Dropzone should handle internal and external errors when uploading (#14579)
* fix: for safety measure check that a file is truthy before trying to upload it
* fix: push an error when file.$error is encountered to make sure it does not get uploaded
* fix: mark file as done if it errors
* format error messages
* fix: check for maxFileSize before uploading pasted images in tinymce
* remove the image from the DOM if any error is encountered
* feat: add property to fileManager to get and format the maxFileSize
* fix: make tinymce use fileManager to get maxFileSize
* fix(image cropper): check for maxFileSize before setting file to upload
* multiply by 1000 to get bytes
* V11/merge v10 into v11 (#14602)
* V10: Dropzone should handle internal and external errors when uploading (#14578)
* fix: mark files that result in error as processed
* fix: for safety measure check that a file is truthy before trying to upload it
* fix: push an error when file.$error is encountered to make sure it does not get uploaded
* fix: remove header from error messages since it is not being used anyway
* fix: check for maxFileSize before uploading pasted images in tinymce
* use stored blob variable
* feat: add property to fileManager to get and format the maxFileSize
* fix: make tinymce use fileManager to get maxFileSize
* fix(image cropper): check for maxFileSize before setting file to upload
* multiply by 1000 to get bytes
---------
Co-authored-by: Elitsa <elm@umbraco.dk>
* Fix method invoke. (#14597)
* Ensure that the Slider does not crash the back-office (#14601)
* Ensure that the Slider does not crash the back-office
* Add field descriptions to config
---------
Co-authored-by: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com>
Co-authored-by: Elitsa <elm@umbraco.dk>
Co-authored-by: Adrian Cojocariu <95346674+acoumb@users.noreply.github.com>
Co-authored-by: Kenn Jacobsen <kja@umbraco.dk>
---------
Co-authored-by: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com>
Co-authored-by: Elitsa <elm@umbraco.dk>
Co-authored-by: Adrian Cojocariu <95346674+acoumb@users.noreply.github.com>
Co-authored-by: Kenn Jacobsen <kja@umbraco.dk>
* add method to find and persist embedded base64 (data-uri) images in a html string
* use method to find embedded images in the Umbraco.TinyMce and Umbraco.Grid property editors
* rename method to better reflect what it does
* set allowed upload file types for integration tests
* add test for embedded images in Umbraco.TinyMce
* let old ctor call new ctor
* Apply suggestions from code review
Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>
* apply pattern matching
---------
Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>
* 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>
* 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>
* Introduce opt-in option for reusable data editors
* Verified RTE as reusable
* Make attribute property naming more explicit + update comments
* Test file upload and image cropper
* Add unit tests
(cherry picked from commit 44122c6509)
* Introduce opt-in option for reusable data editors
* Verified RTE as reusable
* Make attribute property naming more explicit + update comments
* Test file upload and image cropper
* Add unit tests
* Move AuditService to core project
* Move two factor login service to core
* Move ServerRegistrationService to core
* Move BasicAuthService to Core project
* Move IdKeyMap to core project
* Added CacheInstructionService to the infrastructure namespace
* Move DataTypeService to core namespace
* Update CacheInstructionService.cs to use CoreScopeProvider
* Move core editors to core
* Move more Property editors and configuration
* Remove obsoleted constructors in internal classes
* Update PropertyEditors to use new ctors
* Fix propertyEditors to use new ctors
* Use the right property editor constructors
* add DI in the property method
* Update grid to use new ctor
* Fix non-assignment of variable
* Apply suggestions from code review
Co-authored-by: Mole <nikolajlauridsen@protonmail.ch>
* Fix suggestions from code review
Co-authored-by: Nikolaj Geisle <niko737@edu.ucl.dk>
Co-authored-by: Kevin Jump <kevin@thejumps.co.uk>
Co-authored-by: Mole <nikolajlauridsen@protonmail.ch>