* Adds in launchBrowser for Kestrel/Propject profile so running dotnet run from CLI will launch browser
* Keep in sync with the template file that will we ship
* skipValidation for content save
* Correcting merge
* Use warning style when saving
* final corrections
* skip client side validation
* remove log
* show invariant property validation issues in the save dialog
* use warning color for .show-validation-type-warning
Co-authored-by: Niels Lyngsø <nsl@umbraco.com>
Co-authored-by: Mads Rasmussen <madsr@hey.com>
Fix issue with hardcoded '\' as directory separator char. This caused all files in packages to be restored in the root folder with '\' in the filename on Linux.
* appsettings "WebRouting:DisableRedirectUrlTracking" should be a bool not a string
* Casing in appsettings "Umbraco:CMS:Content:MacroErrors" + Using MacroErrorBehaviour enum
* Toggle the inert attribute when adding or removing the first/last editor
* Add focus lock directive for the editor
* Increase timeout period so infinite editors transclusions will also have time to finish
* Make sure elements containing .ng-hide are not part of the possible focusable elements
* Update comments
* Conditionally add umb-focus-lock and inert attributes
* Hook into the evenservice to reinitialize the onInit method if the last editor has not been closed when the lock is used in infinite mode
* Don't try to add focus to something that does not exist
* Minor code refactor placing some variables outside the init method
* Refactoring code to make things a bit more clean
* Remove the event listener when the directive is destroyed
* Add mutationObserver to watch for attribute changes and then trigger the getFocusableElements method
* Fetch focusable elements on domChange
* Ensure that args exists before trying to read the properties
* Refactor to use mutationobserver when overlays are closed passing the correct target and re-initialising the directive to activate the focus lock
* Change ng-hide to ng-if so the focusable elements inside the hidden div are not being selected
* Narrow attributes to look for down to the bare minimum of the umb-focus-lock
* Refactor to using good ol' for loop (Fastest)
* Disconnect the observer once the init function has been called - Massive performance improvement
* Event handler cleanup
* Refactor the code to re-initialize the init method on destroy in case infinite editors still exists in the DOM
* Align codestyle
* Add logic to deal with "lastKnowFocused" elements in infinite editing mode
* Re-add attributes after merge with contrib branch
* Correct spelling mistake
* Move onInit into the $includeContentLoaded event and set the timeout to 0
* Make sure to add focus to elements with role="button" as well
* Add comments and remove timeout / delay settings
* Debouce domObserver
* Wrap init function in safeApply
* Add comments to help remember / understand what things are intended to be doing and add missing event param as well as getting rid of some unused code
* Adding more comments
* Move setting of first and last focusable elements into the setElement function
* Remove todo
* Move the setup of first and last focusable elements back to where they were...
Co-authored-by: Joe Glombek <gh@joe.gl>
* set input file accept
* Use PreValue file extensions for limiting the files to be chosen in file input
* Current state for Warren to review
* This should fix up what you need Niels
* update csproj
* use empty string if fileExtensions is undefined
* public interface
* initial work
* local crops
* translations
* translation correction
* fix misspeling
* some progress
* filter media picker
* align media card grid items correctly
* responsive media cropper
* always be able to scale 3 times smallest scale
* making image cropper property editor responsive
* scroll to scale
* adjust slider look
* rearrange parts of mediaentryeditor
* test helper
* styling
* move controls inside umb-image-crop
* seperate umg-cropper-gravity styling
* corrected layout
* more ui refinement
* keep the idea of mandatory out for now.
* remove double ;
* removed testing code
* JSON Property Value Convertor now has an array of property editors to exclude
* Property Value Convertor for Media Picker 3 aka Media Picker with Local Crops
* Experimenting on best approach to retrieve local crop in razor view when iterating over picked media items
* Update ValueConvertor to use ImageCropperValue as part of the model for views as alot of existing CropUrls can then use it
* Update extension methods to take an ImageCropperValue model (localCropData)
* Forgot to update CSProj for new ValueConvertor
* New GetCropUrl @Url.GetCropUrl(crop.Alias, media.LocalCrops) as oppposed to @Url.GetCropUrl(media.LocalCrops, cropAlias:crop.Alias, useCropDimensions: true)
* Remove dupe item in CSProj
* Use a contains as an opposed to Array.IndexOf
* various corrections, SingleMode based on max 1, remove double checkerBackground, enforce validation for Crops, changed error indication
* mediapicker v3
* correct version
* fixing file ext label text color
* clipboard features for MediaPicker v3
* highlight not allowed types
* highlight trashed as an error
* Media Types Video, Sound, Document and Vector Image
* Rename to Audio and VectorGraphics
* Add (SVG) in the name for Vector Graphics
* adding CSV to Documents
* remove this commented code.
* remove this commented code
* number range should not go below 0, at-least as default until we make that configurable.
* use min not ng-min
* description for local crops
* Error/Limits highlighting reactive
* visual adjustments
* Enabling opening filtered folders + corrected select hover states
* Varous fixes to resolve issues with unit tests.
* Refactor MediaType Documents to only contain Article file type
* mark as build-in
* predefined MediaPicker3 DataTypes, renaming v2 to "old"
* set scale bar current value after min and max has been set
* added missing }
* update when focal point is dragged
* adjusted styling for Image Cropper property editor
* correcting comment
* remove todo - message for trashed media items works
* Changed parameter ordering
* Introduced new extension method on MediaWithCrops to get croppings urls in with full path
* Reintroducing Single Item Mode
* use Multiple instead of SingleMode
* renaming and adding multiple to preconfigured datatypes
* Change existing media picker to use the Clipboard type MEDIA, enabling shared functionality.
* clean up unused clipboard parts
* adjusted to new amount
* correcting test
* Fix unit test
* Move MediaWithCrops to separate file and move to Core.Models
* parseContentForPaste
* clean up
* ensure crops is an array.
* actively enable focal points, so we dont set focal points that aren't used.
* only accept files that matches file extensions from Umbraco Settings
* Cleanup
* Add references from MediaPicker3 to media
* corrections from various feedback
* remove comment
* correct wording
* use windowResizeListener
* Show Media Type Selector if there is multiple types that matches the current upload batch
* clean-up and refactoring
* auto pick option
Co-authored-by: Warren Buckley <warren@umbraco.com>
Co-authored-by: Niels Lyngsø <nsl@umbraco.com>
Co-authored-by: Mads Rasmussen <madsr@hey.com>
Co-authored-by: Andy Butland <abutland73@gmail.com>
Co-authored-by: Bjarke Berg <mail@bergmania.dk>
Co-authored-by: Sebastiaan Janssen <sebastiaan@umbraco.com>
Co-authored-by: Elitsa Marinovska <elm@umbraco.dk>
* As we always ship with config in V8 to set this to be true makes sense it now because default in code
* Explicitly add JSON Schema property incase user IDE does not automap it
* Escaping issue with example usages
* Adding missing keys needed for the translation of the error describers' msgs
* Override all methods from IdentityErrorDescriber in order to provide our own translated error messages using our own translation engine (ILocalizedTextService)
* Fix tests
* Refactoring based on introducing an UmbracoErrorDescriberBase
* Remove unnecessary usings
* Add GetKey<T, TId>
* Update Usages of GetKey and remove GetKey<T>(object)
We shouldn't have to retain this since RepositoryCacheKeys is internal.
* Apply changes to DefaultRepositoryCachePolicy
* Add check for default/less than -1 on UserRepository PerformGet
Co-authored-by: Nikolaj <nel@umbraco.dk>
* Allow IMediaFileSystem to be replace in the DI, or registered with inner filesystem
* Remove GetFileSystem from Filesystems
It was only used by tests.
* Make MediaFileSystem inherit from PhysicalFileSystem directly
* Remove FileSystemWrapper
* Remove inner filesystem from MediaFileSystem
* Add MediaFileManager and bare minimum to make it testable
* Remove MediaFileSystem
* Fix unit tests using MediaFileManager
* Remove IFileSystem and rely only on FileSystem
* Hide dangerous methods in FileSystems and do some cleaning
* Apply stylecop warnings to MediaFileManager
* Add FilesystemsCreator to Tests.Common
This allows you to create an instance if FileSystems with your own specified IFileSystem for testing purposes outside our own test suite.
* Allow the stylesheet filesystem to be replaced.
* Fix tests
* Don't save stylesheetWrapper in a temporary var
* refactor(FileSystems): change how stylesheet filesystem is registered
* fix(FileSystems): unable to overwrite media filesystem
SetMediaFileSystem added the MediaManager as a Singleton instead of
replacing the existing instance.
* fix(FileSystems): calling AddFileSystems replaces MediaManager
When calling AddFileSystems after SetMediaFileSystem the MediaManager
gets replaced by the default PhysicalFileSystem, so instead of calling
SetMediaFileSystem in AddFileSystems we now call TrySetMediaFileSystem
instead. This method will not replace any existing instance of the
MediaManager if there's already a MediaManager registered.
* Use SetMediaFileSystem instead of TrySet, and rename AddFilesystems to ConfigureFileSystems
Also don't call AddFileSystems again in ConfigureFilesystems
* Don't wrap CSS filesystem twice
* Add CreateShadowWrapperInternal to avoid casting
* Throw UnauthorizedAccessException isntead of InvalidOperationException
* Remove ResetShadowId
Co-authored-by: Rasmus John Pedersen <mail@rjp.dk>