* Add controller attributes
* Fix up RedirectUrlManagementController to not delete redirects when not enabled
---------
Co-authored-by: Zeegaan <nge@umbraco.dk>
* Added Exception handling and replicated error and info message
* Fixed code so that it works for v8. Added Random Delay to prevent User Enumeration
---------
Co-authored-by: jey <jey@umbraco.dk>
* Backport the validator
* Update fileupload to use filestream validator
* Use validator for image cropper
* Validate avatar uploads
* Add validation to media controller
* Add translations
* Add tests
* Fix unit tests
* Don't locate the validator in PostSetAvatarInternal
* Move stream validation to immediately before media creation.
* Add commit 1198c76d67
manually, as files have moved on newer version
* Update src/Umbraco.Core/Persistence/Factories/UserGroupFactory.cs
* SafeCast instead of regular casting
---------
Co-authored-by: Zeegaan <nge@umbraco.dk>
* add GetProcessedImageUrl controller to get a new crop url when resizing images in the rich text editor
* tinymce: add extra allowed elements
* cherry-pick fix for imageUploadHandler from v10
* tinymce: handle insert & resize of media
* tinymce: cherry-pick bugfix from v10 where not all editors were able to activate because a random id might start with a number which is not supported out-of-the-box in html
* tinymce: remove unused parameter
* tinymce: cherry-pick bugfix from v10 where sometimes a target anchor would be processed even though it didn't have a url
* tinymce: check that the toolbar is active before getting toolbarItems
* Cherry-pick blob image fix from v10 to v8, and re-factor to work with .NET framework
---------
Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>
* Don't use MapModelType to get model type
* Optimize block list item activation (cache constructors)
* Fix exceptions in NestedContentSingleValueConverter (zero content types or multiple stored items)
* Ported over the fixes in the v9 PR #11858 "Check media Parent for permissions when setting correct MediaType" to v8
* reverted weird formatting in lang file
* Fixes
Co-authored-by: Elitsa Marinovska <elm@umbraco.dk>
* Fixes missing null checks as reported in #10066
* Fixed check for null or empty in NPoco where clause.
Co-authored-by: Andy Butland <abutland73@gmail.com>
* Add SiteIdentifierService
* Use SiteIdentifier service to create site identifier if it doesn't exist
* Use default timeout for telemetry request
* Use SiteIdentifierService in TelemetryIdentifierStep
* Send SiteId when requesting dashboard
* Make empty GUID an invalid site identifier
Co-authored-by: nikolajlauridsen <nel@umbraco.dk>
* adding logo as text in replacement of umbraco_logo_white, this will enable existing configuration to continue to work and minimise the breaking change of this PR.
* adjust logo position to fit with logged-in logomark. Allowing for the logo and customised logo to be very wide.
* adding logomark in topbar of backoffice
* login box style
* correction of shadow
* Logo modal, to display more information about the product including linking to the website
* rename to modal
* stop hidden when mouse is out
* Version line without Umbraco
* focus link and use blur as the indication for closing.
* correcting to rgba
* focus and click outside needs a little help to work well
* use @zindexUmbOverlay to ensure right depth going forward.
* adding large logo svg
* append ;
* tidy logo svg file
* Add IHtmlSanitizer
* Use IHtmlSanitizer in RTE value editor
* Add docstrings to IHtmlSanitizer
* Rename NoOp to Noop
To match the rest of the classes
* Fix tests
Fixes issue with MNTP (for 8.18) in a partial view macro - GH #11631
Renamed GetUrlsByUdis to match, don't do this in v9 as it would be
breaking there, instead mark it obsolete.
TODO: v9 ensure integration test coverage, more painful here as no
WebApplicationFactory.
* Implement allowlisting of urls when fetching data for the content dashboard
* Adding a new setting in the config & removing inexistent one
* Adding description
* Adding description
* Tidy up code
* Use Formatting.None for JSON property data in default value editor
* Use Formatting.None for JSON property data in custom value editors
* Use Formatting.None for JSON property data in Nested Content and Block List
* Use Formatting.None for JSON property tags
* Use Formatting.None for JSON configuration data
* Use Formatting.None in custom JSON converter
* Ensure empty tags and complex editor values are not stored
* Fix NestedContentPropertyComponentTests
* Do not store empty property data
* Use Formatting.None and don't store configured crops (without coordinates)
* Fix JSON deserialization of tags value
* Adds support for simple markdown in property descriptions, and extended descriptions
* removes max-width for property descriptions (doesn't make sense to limit these IMO)
(cherry picked from commit 8393fdecfb)
* Apply pickDate-config setting to hide calendar in datepicker
A time-only picker is only possible if the format is configured like "hh:mm:ss". By using the pickDate config it is possible to determine whether the calendar should be shown or not, instead of depending on a certain time format.
* Changed timeformat to accept both hh:mm:ss and hh:mm
Edited the regex to math times with and without seconds. The calendar should not be shown anymore if the timeformat is (H)H:mm:ss or (H)H:mm.
* Removed unused config property pickDate
config.pickDate is never used and can be removed.
* remove pickDate config from datepickers config
* Support import/export for doc type history cleanup policy
* Support unset/null history cleanup value
* Resolve issue when api endpoints called without cleanup policy.
noop isn't good enough as map fails for response.
* null conditional vs null coalesce assignment
* Don't overwrite existing policy if omitted in import XML
* Update history cleanup warning and translations
* Change history cleanup alert to infomational styling
* Remove margin around history cleanup config
Co-authored-by: Ronald Barendse <ronald@barend.se>
* Call onInit directly and add a timeout of 500ms
* Don't include hidden input types in the selector
* Ensure that the "next" focusable element is selected in case the first element is either the sub-nav or the ellipsis type
* Make sure tab is not selected first
* Add remove all property action
* Disable action if no current ids or new ids
* Use vm
* resolve conflict
Co-authored-by: Nathan Woulfe <nathan@nathanw.com.au>
* Add conditional step that navigates users to the content section
* tweaked the text in the sections step as it refers to being in the content section, which may not always be the case (hence this PR)
Co-authored-by: Nathan Woulfe <nathan@nathanw.com.au>
* Fix typo retrive to be retrieve throughout project.
* * Retain uppercase in descriptions.
* Add new directive fixing typo.
* Revert existing directive and template to previous to prevent breaking change.
* * Swap directives.
* * Revert.
* obsoletes public methods with typos. probably should find all refs and update those too
Co-authored-by: Nathan Woulfe <nathan@nathanw.com.au>
* fixes#9894 . Truncate block editor model title to 100 chars.
* update to move max into controller logic
* null check name, just in case...
Co-authored-by: Mario Lopez <mario@monkii.com>
Co-authored-by: Nathan Woulfe <nathan@nathanw.com.au>
* Ensure there is space enough to render thumbnail size label
* Simplify crop size label
* Add original gray color for min/max icons and adjust margin to compensate for slider handle
* init rollback ui prototype
* add busy state to button, deselect version, add pagination status
* add localisation
* style current version
* disable rollback button when nothing is selected
* stop click event
* Endpoints for paginated content versions.
Light on tests, tight on time.
* Endpoints to "pin" content versions
* camel case json output.
Not sure why json formatter not set for controller, bit risky to add it now
* wire up paging
* wire up pin/unpin
* rename getPagedRollbackVersions to getPagedContentVersions
* prevent selection of current version and current draft
* add current draft and current version to UI
* remove pointer if the row is not selectable
* Improve warning for globally disabled cleanup feature.
* Fix current loses prevent cleanup state on publish.
* Added umbracoLog audit entries for "pin" / "unpin"
* Match v9 defaults for keepVersions settings
* Fix - losing preventCleanup on save current with content changes
* update pin/unpin button labels
* fix pagination bug
* add missing "
* always send culture when a doc type can vary
Co-authored-by: Mads Rasmussen <madsr@hey.com>
* Clarify the use of placeholders
Since the placeholder is only replaced if it's at the beginning of the query, I've added a note about it.
Also made the spelling of XPath consistent and fixed a nesting error in the HTML.
* Rephrase a couple of sentences
(cherry picked from commit e04efe6067)
* Added more detailed message when deleting items in the list view
* Update FR language file
(cherry picked from commit 14fe7d99a8)
# Conflicts:
# src/Umbraco.Web.UI/Umbraco/config/lang/en.xml
# src/Umbraco.Web.UI/Umbraco/config/lang/en_us.xml
TinyMCE requires text to be selected in order to insert links.
Added checks for if there is a text selection, and insert HTML content if there is not.
Link contents consists of the target name, or the target url if not populated
(cherry picked from commit e7f8e692c2)
* fixed flaky macro test and updated cypress version
* fixed flaky macro test and updated cypress version
* Update package.json
* Fixed failing tabs test
* Amend magic numbers with actual wait
* Update tests/Umbraco.Tests.AcceptanceTest/cypress/integration/Content/content.ts
* Updated UI to click on button instead of icon
* Make macro test click bottom to ensure we're not clicking on icon
Co-authored-by: Nikolaj Geisle <niko737@edu.ucl.dk>
(cherry picked from commit 34be464cf8)
# Conflicts:
# tests/Umbraco.Tests.AcceptanceTest/cypress/integration/Tabs/tabs.ts
* fixed flaky macro test and updated cypress version
* fixed flaky macro test and updated cypress version
* Update package.json
* Updated cypress to 8.6 and fixed failing script test
* Updated cypress to 8.6 and fixed failing script test
* Update package-lock.json
* Fixed Scripts and stylesheet tests with proper waits instead of magic numbers
* Updated to newest version of cypress and fixed template test
* Remove duplicate click
* Revert version to 8.4.1
* changed template
Co-authored-by: Nikolaj Geisle <niko737@edu.ucl.dk>
(cherry picked from commit e9ae567617)
# Conflicts:
# src/Umbraco.Tests.AcceptanceTest/package.json
# tests/Umbraco.Tests.AcceptanceTest/package-lock.json
Thanks @lauraneto - reviewed this and your fix solves the issue. #h5yr
(cherry picked from commit 23d2106277)
# Conflicts:
# src/Umbraco.Web/PropertyEditors/BlockEditorPropertyEditor.cs
* adding unit test for validating language xml files.
* locating the language files by traversing instead of hardcoded path.
* debugging null refs.
* debugging
* Updated method of detecting language folder for XML tests, that should work correctly on the build server.
* Path amends to support running test on build server.
* Path amends to support running test on build server (2).
Co-authored-by: Andy Butland <abutland73@gmail.com>
* Pass in invalid files
* Fix pattern and accept udt file extension
* Remove wildcard
* fix help text - referred to 'browse' button, which does not exist
Co-authored-by: Nathan Woulfe <nathan@nathanw.com.au>
* Instead of only using first event, we combine events of same type into a single event with multiple arguments
* Added generic method to DRY up grouping logic.
* Renamed method to better reflect new functionality.
Co-authored-by: Andy Butland <abutland73@gmail.com>
* Added a link to 404 documentation
I think it will be useful to include a link to the documentation on how to create a custom 404
* added localized titles to the search and help buttons in the app header (top right of Umbraco)
* Align template picking more towards the other pickers
* style/cleanup - remove unused args, updated openItemPicker function name to openTemplatePicker since that's what we're opening
Co-authored-by: Nathan Woulfe <nathan@nathanw.com.au>
* contentpicker: Don't validate minNumber if empty and not mandatory
* adds variable for accessing $scope.model.config.minNumber and $scope.model.config.maxNumber
Co-authored-by: Nathan Woulfe <nathan@nathanw.com.au>
* If caching a published document, make sure you use the published Name. Closes#11074.
* Fix case of new node
Co-authored-by: Moore, Douglas S <Douglas.Moore@opm.gov>
* Updated the Welsh language file to include newly added keys (based on the en us language file)
* Updated the searchInputDescription key
* Updated the endTitle key
* Remove inherited property group id/key when local properties are added
* Rebind saved content type values
* Remove inherited from save group
(cherry picked from commit 20b9db87d0)
There are some cases where there is a complex hosting strategy and folks want a readonly database and are hosting on Azure. In that case, it is not entirely possible to have a readonly Umbraco database because SqlMainDom is required and part of that requirement is to have read/write access to the umbraco key value table.
This PR allows for the default MainDom to be replaced and to allow for an SqlMainDomLock to use an alternate connection string so that a separate read/write database can be used.
(cherry picked from commit 9f48a9f940)
There are some cases where there is a complex hosting strategy and folks want a readonly database and are hosting on Azure. In that case, it is not entirely possible to have a readonly Umbraco database because SqlMainDom is required and part of that requirement is to have read/write access to the umbraco key value table.
This PR allows for the default MainDom to be replaced and to allow for an SqlMainDomLock to use an alternate connection string so that a separate read/write database can be used.
* Cleanup examine search results, and adds ability to toggle fields
* update table to use joinarray filter with one-time binding to avoid recalculating filter values, updated filter to not explode when array arg is null
* fix failing tests - improve filter to not fail on non-array params, update tests accordingly
Co-authored-by: Nathan Woulfe <nathan@nathanw.com.au>
* Don't use self-closing element for custom HTML elements
* Use button element for close/cancel in copy dialog
* Update localization of "createBlueprintFrom"
Co-authored-by: Nathan Woulfe <nathan@nathanw.com.au>
* 10341: Use different picker for content types
* use es6 where possible (inc removing underscore for teeny tiny performance improvement)
Co-authored-by: Nathan Woulfe <nathan@nathanw.com.au>
* fix: implement icon parameter for doctype editor
issue #10108
* fix: move color from icon to class attribute
* fix: removed defined colors, defaulting to the standard dark grey (ie "no color picked" in icon picker)
* cleaned up unused dependencies, double quotes to single, removed unused 'color' param from the create methods, and use shorthand object creation in createDocType (if the key has the same name as the variable passed as a prop, we only need to pass the key name)
* fix comment
Co-authored-by: Nathan Woulfe <nathan@nathanw.com.au>
* Remove restricted image size as SVG are vector and we already handle max size in css
* Use css class instead of inline style
* Add required src and alt attributes to img tag - ng-src will populate value of src attribute
* Align folder icon in medie entry editor
* Set property editor limit width on parent like other property editors
* Use checkered background in media picker 3 preview like the legacy media picker
* Introduce overlaysize prevalue editor instead of redundant prevalue editor for each property editor
* Move ordering of properties
* Change overlaySizeWidth to overlaySize
* Make it clear overlay is only for link picker
* Fix overlay size not working for link picker in rich text editor
The ChooseMediaTypeDialog is shown even if there are no queue items, for example due file errors.
Checking the queue lenght in _requestChooseMediaTypeDialog prevents showing the dialog unnecessary.
* Adjust noDirtyCheck directive to accept a parameter to enable/disable dirty check
* Update dirty property
* Use Utilities.noop and add description
* Set default value from controller
* Check for truthly value
* Use Object.toBoolean
* Revert setting $pristine and $dirty for now
* Handle default values in dirty check attributes
* Add check on presence of disableDirtyCheck atribute
* Check for truthy value otherwise it should be default return false and work as no-dirty-check without value
* update test conditions for vamue of no-dirty-check and disable-dirty-check
* Remove whitespace
* update check
Co-authored-by: Kenn Jacobsen <kja@vertica.dk>
Co-authored-by: Michael <michael@crossingpaths.be>
Instead of calling the parents CreateDictionary we just newed up a regular dictionary leading to AutoInterningStringKeyCaseInsensitiveDictionaryConverter not actually being case insensitive
This reverts commit 990fc118cb.
When using the _reusableEditor field to create a BlockEditorPropertyEditor
it doesn't matter that content type cache has been invalidated (memory cache)
as the content types are also cached in a private field in the BlockEditorValues class.
Closes#10910
(cherry picked from commit 94b0b252ec)
This reverts commit 990fc118cb.
When using the _reusableEditor field to create a BlockEditorPropertyEditor
it doesn't matter that content type cache has been invalidated (memory cache)
as the content types are also cached in a private field in the BlockEditorValues class.
Closes#10910
* Adjust styling of umb-file-icon with new umb-icon
* Styling on legacy icons
* Use umb-icon and add missing class
* Simplify icons
* Use umb-search-filter in umb-tree-search-box and add back button
* Inherit text color from parent element
* Update block card icon and avoid use of !important
* Wrap card in div
* interpolate background image path value, to remove string escaping which can be confusing
Co-authored-by: Nathan Woulfe <nathan@nathanw.com.au>
* Get all nested content scaffolds in a single post request
* Only load alias array and initialize once
* Remove old nested content load code
* Get the content types within a scope
This will drastically reduce the amount of SQL queries, since the same read lock will be used for all operations.
* Add comments
* Fix typo
* Fix typos
Co-authored-by: Elitsa Marinovska <21998037+elit0451@users.noreply.github.com>
* Update search.controller.js
Minor linting update to existing code
* Basic functionality for select and deselect all log level filters
* Fix button texts and added localisations for languages en, en_us, da
* Grammar correction of Danish localisation
* Finalise button styling using the umb-button directive, including localisation of labels
* Minor linting update
* Add various localisations of "select all" and "deselect all" for Log Viewer
* Minor refactor of select/deselect buttons to be wrapped in <umb-dropdown-item> directive
* use foreach/map
Co-authored-by: Nathan Woulfe <nathan@nathanw.com.au>
* Wrap legacy font icon so we can inherit font from parent element
* Remove icon name from class attributes
* Add back class as color is part of icon
* Replace icon classes
* Replace icon class
* Use umb-icon
* Remove icon classes
* Remove icon classes
* Update color for SVG icons
* Inherit animation
* Add icon add class to SVG as well
* Update umb-icon inner wrapper
* Fix issue with search icon styling in property editors dialog
* Formatting
* Adjust umb-icon with transclude
* Change back to original back icon from font awesome
* Adjust styling for font icon
* Replace with umb-icon
* Use umb-icon in packager
* Use umb-icon in help drawer
* Use umb-icon in treesource prevalue editor
* Update font size
* Replace with umb-icon
* Replace icons with umb-icon
* div isn't valid inside label element
* Replace more icons
* Use umb-search-filter component
* Update to use umb-icon
* Use end-closing tag for custom HTML element
* Use umb-icon component
* Use umb-icon component to replace icons
* Replace with umb-icon
* Replace icons with umb-icon
* Replace more icons
* Custom HTML element should have end-closing tag
* Replace icons with umb-icon
* Replace icons
* Remove unused variable
* Replace icon
* Replace icons
* Revert to `<i>` element as it was causing issues with isolated scopes
* Adjust umb-checkmark to work with umb-icon
* Adjust lightbox styling
* Remove unused helper class and it is already available as "self-center" in _flexbox.less
* remove unused class from icon, shift margin to parent element
Co-authored-by: Nathan Woulfe <nathan@nathanw.com.au>
This should at least fix#10793 because of a memory leak fix in Serilog.Sinks.Map 1.0.2. Also updated the rest for good measure.
Note that Serilog.Sinks.File is not upgraded to the latest version because it is a new major (4.1.0 -> 5.0.0). Also note that Serilog.Filters.Expressions is deprecated and should be replaced by Serilog.Expressions. I considered both out of scope for this fix.
* Fix JS error when using the hide search function in treepicker
* updates with same defensive change from original pr - only explores child.children after confirming the child indeed has children
Co-authored-by: Nathan Woulfe <nathan@nathanw.com.au>
* Use member group icon as default icon
* Make pickers consistent using member group entity icon
* Remove unused functions
* Use vm
* Use original getSelected() function
* Include clear function again
* Fix merge conflict
* Remove comment - remove function is requested from <umb-node-preview> in view
* Remove comment - wasn't used, but intend to use in PR 10096 to use property actions to clear member group picker
* Replace angular.forEach with Utilities.forEach
* Use localizeMany to localize translations in a single request
* Replace angular.forEach
* Replace angular.forEach in mocks
* Remove unusable method
* Fixes#10746 by removing the recursive call ending in an infinite loop
Also: the culture is already known, don't take the `CurrentUICulture`
(cherry picked from commit cb06442de4)
* Remove unusable method
* Fixes#10746 by removing the recursive call ending in an infinite loop
Also: the culture is already known, don't take the `CurrentUICulture`
Fixes#10708 by removing the `inert` attribute on `#mainWrapper` when `editorService.closeAll()` is called.
This code is necessary because when close all is called, there is no editor passed, and so `removeEditor` is never called, and so the `focusLockService.removeInertAttribute();` method isn't called. I add to the if block that handles the close all code instead.
(cherry picked from commit 1f4cc81af8)
Fixes#10708 by removing the `inert` attribute on `#mainWrapper` when `editorService.closeAll()` is called.
This code is necessary because when close all is called, there is no editor passed, and so `removeEditor` is never called, and so the `focusLockService.removeInertAttribute();` method isn't called. I add to the if block that handles the close all code instead.
* Add missing focus styling
* Fix issue where validation message does not disappear when all chars are removed
Co-authored-by: BatJan <jaskov@gmail.com>
Co-authored-by: Jan Skovgaard Olsen <jso@co3.dk>
We added an overload that would conflict for people with existing templates, that was a bit too premature. Disabled for now with a note to look into it for v9 again.
* Support for language of parts
* Changed casing of "FallBack" to "Fallback" to be consistent with the existing code.
* Now tests the type to determine if span should be added.
* Remove magic strings and return <div> for IHtmlString values
This fixes the "string" vs "String" issue in the previous commit and prevents the function returning invalid markup
* Fix for test providing string as "object"
Co-authored-by: Joe Glombek <joe@rockdove.uk>
* Add missing focus styling
* Change width to ensure label does not get too wide
Co-authored-by: BatJan <jaskov@gmail.com>
Co-authored-by: Jan Skovgaard Olsen <jso@co3.dk>
The logic in the markup was previously incorrect.
I changed the check from `tab.length` to `dashboard.length`.
The custom dashboard's label isn't `.caption` and it's per dashboard,
not per "property".
Lastly, `.path` should be `.view`.
Resolves#6417
Having had an older version of visual studio running I've been unable to build the source without making changes to the solution. However, upgrading to at least VS 16.8 has meant those changes haven't been required. This is to do with how the language target "latest" was working.
Propose upping the min version listed here to avoid build issues being raised.
* Enabling configuration of remote URL for fetching content on the content dashboard and adding additional params indicating whether solution is running on Umbraco Cloud
* Determining if Umbraco is running on Umbraco Cloud by checking whether Umbraco.Deploy.Cloud.dll is present and making its value more accessible for other contexts. Passing a hosting parameter as string instead of boolean
* Changing from Unknown to OnPremises
* Updated content dashboard to use hard-coded URL but path derived from configuration.
Co-authored-by: Andy Butland <abutland73@gmail.com>
(cherry picked from commit 917c89cde7)
* Enabling configuration of remote URL for fetching content on the content dashboard and adding additional params indicating whether solution is running on Umbraco Cloud
* Determining if Umbraco is running on Umbraco Cloud by checking whether Umbraco.Deploy.Cloud.dll is present and making its value more accessible for other contexts. Passing a hosting parameter as string instead of boolean
* Changing from Unknown to OnPremises
* Updated content dashboard to use hard-coded URL but path derived from configuration.
Co-authored-by: Andy Butland <abutland73@gmail.com>
* Reducing the large amount of objects allocated and make use of the attemped dictionary cache
* Reverting optimization by passing data from a higher level - not really possible to achieve what we wanted and adding faster way to lookup value editors
(cherry picked from commit 897cb11f00)
* Reducing the large amount of objects allocated and make use of the attemped dictionary cache
* Reverting optimization by passing data from a higher level - not really possible to achieve what we wanted and adding faster way to lookup value editors
* Find the old property by alias instead of by indexes as if you move around properties in the EditorModel events Rollback breaks.
* optimise property lookup - avoids iterating entire property set
Co-authored-by: Nathan Woulfe <nathan@nathanw.com.au>
* Use custom svg icon in grid editor row configuration
* Use umb-icon in grid editor placeholder
* Use control icon in grid editor placeholder
* use umb-icon in itempicker to ensure svg icons are displayed
Co-authored-by: Nathan Woulfe <nathan@nathanw.com.au>
(cherry picked from commit f0e13e87d5)
* Try to update admin user unattended
This will fail because we're not in install runtime state
* Create a new user instead of trying to update the default admin
* Create a new user instead of trying to update the default admin
* Use same logic from NewInstallStep to modify the SuperUser aka -1
* Add back stuff after merge conflict from v8/dev
* Add event to be raised
* Trying to wire up events
* Remove commented out code - just need to figure out why event is not hit/triggered
* Read Appsettings as opposed to ENV variables
* Use a JSON file that deletes itself as storing secrets in web.config will be accidently committed
* Remove component based event - Component were only initialized after DB creation
* Move UnattendedInstall down after _factory
* Remove commented out code
* Fixed issue where upgrader UI would show up - needed to recheck the Runtimelevel after UnattenedInstall
* Apply suggestions from code review - Thanks Marc :)
Co-authored-by: Marc Goodson <marc@moriyama.co.uk>
Co-authored-by: Mole <nikolajlauridsen@protonmail.ch>
Co-authored-by: Marc Goodson <marc@moriyama.co.uk>
* HTML Symantic error UL > LI >LI changes to UL > LI > UL > LI - ScreenReader reads propperly
* ensurce render if condition is meet. If any child render a subset of unorder list withs is list-items
* Add missing focus styling
* Add width modifier to link input
* same result without adding new classes
Co-authored-by: BatJan <jaskov@gmail.com>
Co-authored-by: Jan Skovgaard Olsen <jso@co3.dk>
Co-authored-by: Nathan Woulfe <nathan@nathanw.com.au>
Datetime values where always converted to date(102) so sorting by time does not work.
By converting to 120 (yyyy-mm-dd hh:mi:ss (24h)) the time is respected.
* Use custom svg icon in grid editor row configuration
* Use umb-icon in grid editor placeholder
* Use control icon in grid editor placeholder
* use umb-icon in itempicker to ensure svg icons are displayed
Co-authored-by: Nathan Woulfe <nathan@nathanw.com.au>
* Use umb-icon component
* Specify button type attribute
* Use umb-search-filter component
* Adjust styling of item picker
* Replace trash icons with umb-icon
* Replace a few icons in umb-grid-selector as well
* Use umb-icon in datatype picker
* Ensure icons are styles correct in legacy format
* Use umb-icon component in macro parameter editors and fix wrong end closing tag from button element
* Use umb-icon in macro parameter editor overlay
* Replace angular.extend with Utilities.extend
* Replace more references of angular.extend with Utilities.extend
* Replace angular.extend
* Replace last reference of angular.extend except in Utilities itself
* Use spread operator
* Add spread operator
* Use existing format with empty destination object
* Configurate Babel to work with JS spread operator
* Use default for loose property which is "false"
* use alias for angular.extend - removes need for any other changes and makes multiple arguments easy
Co-authored-by: Nathan Woulfe <nathan@nathanw.com.au>
* Variant sorting should take into account that there might not be any language available
* fix languages
Co-authored-by: Niels Lyngsø <nsl@umbraco.com>
Co-authored-by: Mads Rasmussen <madsr@hey.com>
(cherry picked from commit e19a5989e9)
* Variant sorting should take into account that there might not be any language available
* fix languages
Co-authored-by: Niels Lyngsø <nsl@umbraco.com>
Co-authored-by: Mads Rasmussen <madsr@hey.com>
* The listview search within a dialog (eg. minilistview) shows the loading indicator forever for zero results #10193
* Updated comment.
* Another updated comment.
Co-authored-by: Adam Nelson <anelson@bauerxcelmedia.com.au>
* Fix wrong end closing tag
* Add button type attribute
* Assign null instead of undefined
* Left align text in row button
* Assign temporary rows to currentLayout
* Cleanup output
* Register functions in vm
* Move nameChanged property to init function
* Don't set toggled as checked when switching columns in row
* Use existing behaviour to set allowAll
* Remove vm.layout again
* copy rows when adding new section + clean up rows on submit and close
Co-authored-by: Niels Lyngsø <nsl@umbraco.com>
Co-authored-by: Mads Rasmussen <madsr@hey.com>
* 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>
* 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>
* 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>
* 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
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>
* load only once
* Bump version to 8.6.8
* Initial rework of Lock dictionaries
* [Issue 5277-146] accessibility - Close 'X' icon next to language drop… (#9264)
* [Issue 5277-146] accessibility - Close 'X' icon next to language drop down is identified as "link" - screen reader
* add new loacalization key
* Fix issue with SqlMainDomLock that cannot use implicit lock timeouts … (#9973)
* Fix issue with SqlMainDomLock that cannot use implicit lock timeouts … (#9973)
(cherry picked from commit da5351dfcf)
* Adjust unit tests and apply fixes to scope
* Add more unit tests, showing current issue
* Counting Umbraco.ModelsBuilder and ModelsBuilder.Umbraco namespaces as external providers
* Fix dead lock with TypeLoader
* Fix errors shown in unit tests
* Throw error if all scopes hasn't been disposed
* Clean
* Fixes and Updates for DB Scope and Ambient Context leaks (#9953)
* Adds some scope tests (ported back from netcore) and provides a much better error message, ensure execution context is not flowed to child tasks that shouldn't leak any current ambient context
* updates comment
* Ensure SqlMainDomLock suppresses execution context too
* Since we're awaiting a task in a library method, ConfigureAwait(false)
* missing null check
Co-authored-by: Elitsa Marinovska <elm@umbraco.dk>
* Adds additional error checking and reporting to MainDom/SqlMainDomLock (#9954)
Co-authored-by: Elitsa Marinovska <elm@umbraco.dk>
* Add copy logic to Media Picker (#9957)
* Add copy logic to Media Picker
* Add action for copy all
* Fix for selectable media item
* Wrap calls to map in scopes
* Autocomplete scopes
* Remove unnecessary aria-hidden attribute from <umb-icon>
* Remove scope from method that calls another method that has a scope
* Fixes#9993 - Cannot save empty image in Grid
* Clean
* Revert "The Value() method for IPublishedContent was not working with the defaultValue parameter" (#9989)
* Use a hashset to keep track of acquired locks
This simplifies disposing/checking for locks greatly.
* Add images in grid - fixes 9982 (#9987)
Co-authored-by: Sebastiaan Janssen <sebastiaan@umbraco.com>
* Only create the dicts and hashset when a lock is requested
* Clean
* Adds a config for configuring the access rules on the content dashboard - by default it granted for all user groups
* Adds additional params indicating whether user is admin
* Add images in grid - fixes 9982 (#9987)
Co-authored-by: Sebastiaan Janssen <sebastiaan@umbraco.com>
(cherry picked from commit e2019777fb)
* Bump version to 8.12.2
* #9964 Removed unneeded check for HttpContext
* Fix for #9950 - HttpsCheck will now retry using the login background image if inital request returns 301/302. Excessvie Headers check will now check the root url instead of the backoffice
* Merge pull request #9994 from umbraco/v8/bugfix/9993
Fixes#9993 - Cannot save empty image in Grid
(cherry picked from commit 0ecc933921)
* Apply suggestions from review
* Fixes#9983 - Getting kicked, if document type has a Umbraco.UserPicker property (#10002)
* Fixes#9983
Temporary fix for this issue. using the entityservice like before.
* Needed to remove the call to usersResource here as well for displaying the picked items
* Don't need usersResource for now
* Fixes#9983 - Getting kicked, if document type has a Umbraco.UserPicker property (#10002)
* Fixes#9983
Temporary fix for this issue. using the entityservice like before.
* Needed to remove the call to usersResource here as well for displaying the picked items
* Don't need usersResource for now
(cherry picked from commit 45de0a101e)
* 8539: Allow alias in image cropper (#9266)
Co-authored-by: Owain Williams <owaingdwilliams@gmail.com>
* Wrap dumping dictionaries in a method.
* Create method for generating log message
And remove forgotten comments.
* Fix swedish translation for somethingElse.
* Copy member type (#10020)
* Add copy dialog for member type
* Implement copy action for member type
* Create specific localization for content type, media type and member type
* Handle "foldersonly" querystring
* Add button type attribute
* Add a few missing changes of anchor to button element
* Null check on scope and options to ensure backward compatibility
* Improve performance, readability and handling of FollowInternalRedirects (#9889)
* Improve performance, readability and handling of FollowInternalRedirects
* Logger didn't like string param
Passing string param to _logger.Debug<PublishedRouter, int> wasn't happy. Changed to pass existing internalRedirectAsInt variable.
Co-authored-by: Nathan Woulfe <nathan@nathanw.com.au>
* Update casing of listview layout name
* 9097 add contextual password helper (#9256)
* update back-office forms
* Display tip on reset password page as well
* add directive for password tip
* integrate directove in login screen
* forgot the ng-keyup :-)
* adapt tooltip directive to potential different Members and Users password settings
* remove watcher
Co-authored-by: Nathan Woulfe <nathan@nathanw.com.au>
* Unbind listener
Listening for splitViewRequest was only unbound if the split view editor was opened. Not cleaning up the listener caused a memory leak when changing between nodes as the spit view editor was detached but not garbage-collected
* Replace icon in date picker with umb-icon component (#10040)
* Replace icon in date picker with <umb-icon> component
* Adjust height of clear button
* Update cypress and fix tests
* Listview config icons (#10036)
* Update icons to use <umb-icon> component
* Simplify markup and use disabled button
* Use move cursor style on sortable handle
* Add class for action column
* Update setting auto focus
* Increase font size of umb-panel-header-icon
* Anchor noopener (#10009)
* Set rel="noopener" for anchors with target="_blank"
* Reverted unwanted changes to Default.cshtml
* Align 'Add language' test to netcore
* Add new cypress tests
* Add indentation
* Getting rid of the config file and implementing an appSetting instead
* Implementation for IContentDashboardSettings
* Cleanup
* bool.Try
* Taking AllowContentDashboardAccessToAllUsers prop from GlobalSettings to ContentDashboardSettings and saving AccessRulesFromConfig into a backing field
* fix support for non run states
* Handling multiple values per field in Examine Management
* Add Root<T> and Breadcrumbs extension methods for IPublishedContent (#9033)
* Fix usage of obsolete CreatorName and WriterName properties
* Add generic Root extension method
* Add Breadcrumbs extension methods
* Orders member type grouping of members alphabetically, matching the listing of member types.
* Revert updating deprecated WriterName/CreatorName refs
Changing the properties to use the extensions is a good thing (given the props are deprecated), but causes issues deep in tests. I'm reverting that change to fix the tests, and all refs to the deprecated properties should be updated in one sweep, to deal with any other test issues that might crop up.
* Handle Invalid format for Upgrade check
* Fixes tabbing-mode remains active after closing modal #9790 (#10074)
* Allow to pass in boolean to preventEnterSubmit directive (#8639)
* Pass in value to preventEnterSubmit directive
* Set enabled similar to preventDefault and preventEnterSubmit directives
* Update prevent enter submit value
* Init value from controller
* Use a different default input id prefix for umb-search-filter
* Fix typo
* Check for truthly value
* Revert "Set enabled similar to preventDefault and preventEnterSubmit directives"
This reverts commit 536ce855c4.
* None pointer events when clicking icon
* Use color variable
* Fixes tabbing-mode remains active after closing modal #9790 (#10074)
(cherry picked from commit c881fa9e7d)
* Null check on scope and options to ensure backward compatibility
(cherry picked from commit fe8cd239d2)
* Fix validation of step size in integer/numeric field
* 9962: Use $allowedEditors instead of allowed (#10086)
* 9962: Use $allowedEditors instead of allowed
* 9962: Remove redundant statement
* fixes#10021 adds ng-form and val-form-manager to the documentation
* Improved accessibility of link picker (#10099)
* Added support for screeen reader alerts on the embed so that assitive technology knows when a url retrieve has been succesfull.
Added labels for the controls
Preview reload only triggered if the values for height and width change
* Added control ids for the link picker
* Add French translation
* Accessibility: Alerts the user how many results have been returned on a tree search (#10100)
* Added support for screeen reader alerts on the embed so that assitive technology knows when a url retrieve has been succesfull.
Added labels for the controls
Preview reload only triggered if the values for height and width change
* Tree search details the number of search items returned
* Add French translations
* Updated LightInject to v6.4.0
* Remove HtmlSanitizer once more - see #9803
* Also make sure NuGet installs the correct version of the CodePages dependency
* Bump version to 8.13 RC
* Fixed copy preserving sort order (#10091)
* Revert "Updated LightInject to v6.4.0"
This reverts commit fc77252ec7.
* Revert "Add copy logic to Media Picker (#9957)"
This reverts commit f7c032af65.
* Reintroduce old constructor to make non-breaking
* Update cypress test to make macros in the grid work again
* Attributes could be multiple items, test specifically if `Directory` is an attribute
* Accessibility: Adding label fors and control ids for the macro picker (#10101)
* Added support for screeen reader alerts on the embed so that assitive technology knows when a url retrieve has been succesfull.
Added labels for the controls
Preview reload only triggered if the values for height and width change
* Added support for label fors for the macro picker and also gave the ,acro search box a title
* Now displays a count of the matching macros returned. Please note the language file amends shared with #10100
* Removed src-only class for the display of the count of messages
* Updating typo
* Removed top-margin from switcher icon
* Allow KeepAlive controller Ping method to be requested by non local requests (#10126)
* Allow KeepAlive controller Ping method to be requested by non local requests and accept head requests
* removed unused references
* fix csproj
* fix merge
* btree serializer optimizations
* array pool and nametable optimizations
Co-authored-by: Mole <nikolajlauridsen@protonmail.ch>
Co-authored-by: Sebastiaan Janssen <sebastiaan@umbraco.com>
Co-authored-by: Justin Shearer <justin.shearer@gmail.com>
Co-authored-by: Bjarke Berg <mail@bergmania.dk>
Co-authored-by: Callum Whyte <hey@callumwhyte.com>
Co-authored-by: Shannon <sdeminick@gmail.com>
Co-authored-by: Elitsa Marinovska <elm@umbraco.dk>
Co-authored-by: patrickdemooij9 <patrickdemooij98@hotmail.com>
Co-authored-by: Bjarne Fyrstenborg <bjarne_fyrstenborg@hotmail.com>
Co-authored-by: Michael Latouche <michael@crossingpaths.be>
Co-authored-by: Nathan Woulfe <nathan@nathanw.com.au>
Co-authored-by: Markus Johansson <markus@obviuse.se>
Co-authored-by: Jeavon Leopold <jeavon@crumpled-dog.com>
Co-authored-by: Benjamin Carleski <benjamin@proworks.com>
Co-authored-by: Owain Williams <owaingdwilliams@gmail.com>
Co-authored-by: Jesper Löfgren <jesper.lofgren@sappa.se>
Co-authored-by: Martin Bentancour <mbe@umbraco.dk>
Co-authored-by: Ronald Barendse <ronald@panoramastudios.nl>
Co-authored-by: Andy Butland <abutland73@gmail.com>
Co-authored-by: BeardinaSuit <BeardInASuit@outlook.com>
Co-authored-by: Mads Rasmussen <madsr@hey.com>
Co-authored-by: Rachel Breeze <RachBreeze@users.noreply.github.com>
Co-authored-by: Dave de Moel <d.demoel@wearetriple.com>
Co-authored-by: ric <60885685+ricbrady@users.noreply.github.com>
Co-authored-by: Carole Rennie Logan <crgrieve@users.noreply.github.com>
Co-authored-by: Dennis Öhman <dennis.ohman@bjornmamman.se>
* Bump version to 8.6.8
* Initial rework of Lock dictionaries
* [Issue 5277-146] accessibility - Close 'X' icon next to language drop… (#9264)
* [Issue 5277-146] accessibility - Close 'X' icon next to language drop down is identified as "link" - screen reader
* add new loacalization key
* Fix issue with SqlMainDomLock that cannot use implicit lock timeouts … (#9973)
* Fix issue with SqlMainDomLock that cannot use implicit lock timeouts … (#9973)
(cherry picked from commit da5351dfcf)
* Adjust unit tests and apply fixes to scope
* Add more unit tests, showing current issue
* Counting Umbraco.ModelsBuilder and ModelsBuilder.Umbraco namespaces as external providers
* Fix dead lock with TypeLoader
* Fix errors shown in unit tests
* Throw error if all scopes hasn't been disposed
* Clean
* Fixes and Updates for DB Scope and Ambient Context leaks (#9953)
* Adds some scope tests (ported back from netcore) and provides a much better error message, ensure execution context is not flowed to child tasks that shouldn't leak any current ambient context
* updates comment
* Ensure SqlMainDomLock suppresses execution context too
* Since we're awaiting a task in a library method, ConfigureAwait(false)
* missing null check
Co-authored-by: Elitsa Marinovska <elm@umbraco.dk>
* Adds additional error checking and reporting to MainDom/SqlMainDomLock (#9954)
Co-authored-by: Elitsa Marinovska <elm@umbraco.dk>
* Add copy logic to Media Picker (#9957)
* Add copy logic to Media Picker
* Add action for copy all
* Fix for selectable media item
* Wrap calls to map in scopes
* Autocomplete scopes
* Remove unnecessary aria-hidden attribute from <umb-icon>
* Remove scope from method that calls another method that has a scope
* Fixes#9993 - Cannot save empty image in Grid
* Clean
* Revert "The Value() method for IPublishedContent was not working with the defaultValue parameter" (#9989)
* Use a hashset to keep track of acquired locks
This simplifies disposing/checking for locks greatly.
* Add images in grid - fixes 9982 (#9987)
Co-authored-by: Sebastiaan Janssen <sebastiaan@umbraco.com>
* Only create the dicts and hashset when a lock is requested
* Clean
* Adds a config for configuring the access rules on the content dashboard - by default it granted for all user groups
* Adds additional params indicating whether user is admin
* Add images in grid - fixes 9982 (#9987)
Co-authored-by: Sebastiaan Janssen <sebastiaan@umbraco.com>
(cherry picked from commit e2019777fb)
* Bump version to 8.12.2
* #9964 Removed unneeded check for HttpContext
* Fix for #9950 - HttpsCheck will now retry using the login background image if inital request returns 301/302. Excessvie Headers check will now check the root url instead of the backoffice
* Merge pull request #9994 from umbraco/v8/bugfix/9993
Fixes#9993 - Cannot save empty image in Grid
(cherry picked from commit 0ecc933921)
* Apply suggestions from review
* Fixes#9983 - Getting kicked, if document type has a Umbraco.UserPicker property (#10002)
* Fixes#9983
Temporary fix for this issue. using the entityservice like before.
* Needed to remove the call to usersResource here as well for displaying the picked items
* Don't need usersResource for now
* Fixes#9983 - Getting kicked, if document type has a Umbraco.UserPicker property (#10002)
* Fixes#9983
Temporary fix for this issue. using the entityservice like before.
* Needed to remove the call to usersResource here as well for displaying the picked items
* Don't need usersResource for now
(cherry picked from commit 45de0a101e)
* 8539: Allow alias in image cropper (#9266)
Co-authored-by: Owain Williams <owaingdwilliams@gmail.com>
* Wrap dumping dictionaries in a method.
* Create method for generating log message
And remove forgotten comments.
* Fix swedish translation for somethingElse.
* Copy member type (#10020)
* Add copy dialog for member type
* Implement copy action for member type
* Create specific localization for content type, media type and member type
* Handle "foldersonly" querystring
* Add button type attribute
* Add a few missing changes of anchor to button element
* Null check on scope and options to ensure backward compatibility
* Improve performance, readability and handling of FollowInternalRedirects (#9889)
* Improve performance, readability and handling of FollowInternalRedirects
* Logger didn't like string param
Passing string param to _logger.Debug<PublishedRouter, int> wasn't happy. Changed to pass existing internalRedirectAsInt variable.
Co-authored-by: Nathan Woulfe <nathan@nathanw.com.au>
* Update casing of listview layout name
* 9097 add contextual password helper (#9256)
* update back-office forms
* Display tip on reset password page as well
* add directive for password tip
* integrate directove in login screen
* forgot the ng-keyup :-)
* adapt tooltip directive to potential different Members and Users password settings
* remove watcher
Co-authored-by: Nathan Woulfe <nathan@nathanw.com.au>
* Unbind listener
Listening for splitViewRequest was only unbound if the split view editor was opened. Not cleaning up the listener caused a memory leak when changing between nodes as the spit view editor was detached but not garbage-collected
* Replace icon in date picker with umb-icon component (#10040)
* Replace icon in date picker with <umb-icon> component
* Adjust height of clear button
* Update cypress and fix tests
* Listview config icons (#10036)
* Update icons to use <umb-icon> component
* Simplify markup and use disabled button
* Use move cursor style on sortable handle
* Add class for action column
* Update setting auto focus
* Increase font size of umb-panel-header-icon
* Anchor noopener (#10009)
* Set rel="noopener" for anchors with target="_blank"
* Reverted unwanted changes to Default.cshtml
* Align 'Add language' test to netcore
* Add new cypress tests
* Add indentation
* Getting rid of the config file and implementing an appSetting instead
* Implementation for IContentDashboardSettings
* Cleanup
* bool.Try
* Taking AllowContentDashboardAccessToAllUsers prop from GlobalSettings to ContentDashboardSettings and saving AccessRulesFromConfig into a backing field
* Handling multiple values per field in Examine Management
* Add Root<T> and Breadcrumbs extension methods for IPublishedContent (#9033)
* Fix usage of obsolete CreatorName and WriterName properties
* Add generic Root extension method
* Add Breadcrumbs extension methods
* Orders member type grouping of members alphabetically, matching the listing of member types.
* Revert updating deprecated WriterName/CreatorName refs
Changing the properties to use the extensions is a good thing (given the props are deprecated), but causes issues deep in tests. I'm reverting that change to fix the tests, and all refs to the deprecated properties should be updated in one sweep, to deal with any other test issues that might crop up.
* Handle Invalid format for Upgrade check
* Fixes tabbing-mode remains active after closing modal #9790 (#10074)
* Allow to pass in boolean to preventEnterSubmit directive (#8639)
* Pass in value to preventEnterSubmit directive
* Set enabled similar to preventDefault and preventEnterSubmit directives
* Update prevent enter submit value
* Init value from controller
* Use a different default input id prefix for umb-search-filter
* Fix typo
* Check for truthly value
* Revert "Set enabled similar to preventDefault and preventEnterSubmit directives"
This reverts commit 536ce855c4.
* None pointer events when clicking icon
* Use color variable
* Fixes tabbing-mode remains active after closing modal #9790 (#10074)
(cherry picked from commit c881fa9e7d)
* Null check on scope and options to ensure backward compatibility
(cherry picked from commit fe8cd239d2)
* Fix validation of step size in integer/numeric field
* 9962: Use $allowedEditors instead of allowed (#10086)
* 9962: Use $allowedEditors instead of allowed
* 9962: Remove redundant statement
* fixes#10021 adds ng-form and val-form-manager to the documentation
* Improved accessibility of link picker (#10099)
* Added support for screeen reader alerts on the embed so that assitive technology knows when a url retrieve has been succesfull.
Added labels for the controls
Preview reload only triggered if the values for height and width change
* Added control ids for the link picker
* Add French translation
* Accessibility: Alerts the user how many results have been returned on a tree search (#10100)
* Added support for screeen reader alerts on the embed so that assitive technology knows when a url retrieve has been succesfull.
Added labels for the controls
Preview reload only triggered if the values for height and width change
* Tree search details the number of search items returned
* Add French translations
* Updated LightInject to v6.4.0
* Remove HtmlSanitizer once more - see #9803
* Also make sure NuGet installs the correct version of the CodePages dependency
* Bump version to 8.13 RC
* Fixed copy preserving sort order (#10091)
* Revert "Updated LightInject to v6.4.0"
This reverts commit fc77252ec7.
* Revert "Add copy logic to Media Picker (#9957)"
This reverts commit f7c032af65.
* Reintroduce old constructor to make non-breaking
* Update cypress test to make macros in the grid work again
* Attributes could be multiple items, test specifically if `Directory` is an attribute
* Accessibility: Adding label fors and control ids for the macro picker (#10101)
* Added support for screeen reader alerts on the embed so that assitive technology knows when a url retrieve has been succesfull.
Added labels for the controls
Preview reload only triggered if the values for height and width change
* Added support for label fors for the macro picker and also gave the ,acro search box a title
* Now displays a count of the matching macros returned. Please note the language file amends shared with #10100
* Removed src-only class for the display of the count of messages
* Updating typo
* Removed top-margin from switcher icon
* Allow KeepAlive controller Ping method to be requested by non local requests (#10126)
* Allow KeepAlive controller Ping method to be requested by non local requests and accept head requests
* removed unused references
* fix csproj
Co-authored-by: Mole <nikolajlauridsen@protonmail.ch>
Co-authored-by: Sebastiaan Janssen <sebastiaan@umbraco.com>
Co-authored-by: Justin Shearer <justin.shearer@gmail.com>
Co-authored-by: Bjarke Berg <mail@bergmania.dk>
Co-authored-by: Callum Whyte <hey@callumwhyte.com>
Co-authored-by: Shannon <sdeminick@gmail.com>
Co-authored-by: Elitsa Marinovska <elm@umbraco.dk>
Co-authored-by: patrickdemooij9 <patrickdemooij98@hotmail.com>
Co-authored-by: Bjarne Fyrstenborg <bjarne_fyrstenborg@hotmail.com>
Co-authored-by: Michael Latouche <michael@crossingpaths.be>
Co-authored-by: Nathan Woulfe <nathan@nathanw.com.au>
Co-authored-by: Markus Johansson <markus@obviuse.se>
Co-authored-by: Jeavon Leopold <jeavon@crumpled-dog.com>
Co-authored-by: Benjamin Carleski <benjamin@proworks.com>
Co-authored-by: Owain Williams <owaingdwilliams@gmail.com>
Co-authored-by: Jesper Löfgren <jesper.lofgren@sappa.se>
Co-authored-by: Martin Bentancour <mbe@umbraco.dk>
Co-authored-by: Ronald Barendse <ronald@panoramastudios.nl>
Co-authored-by: Andy Butland <abutland73@gmail.com>
Co-authored-by: BeardinaSuit <BeardInASuit@outlook.com>
Co-authored-by: Mads Rasmussen <madsr@hey.com>
Co-authored-by: Rachel Breeze <RachBreeze@users.noreply.github.com>
Co-authored-by: Dave de Moel <d.demoel@wearetriple.com>
Co-authored-by: ric <60885685+ricbrady@users.noreply.github.com>
Co-authored-by: Carole Rennie Logan <crgrieve@users.noreply.github.com>
Co-authored-by: Dennis Öhman <dennis.ohman@bjornmamman.se>
* Dont show block catalogue if only one block is available. Enable entering clipboard directly.
* corrected button states
* jump clipboard icon when adding items to the clipboard.
* fix merge issue
* add missing eventsService
* correcting missing parts from Merge
Co-authored-by: Niels Lyngsø <nsl@umbraco.com>
Co-authored-by: Mads Rasmussen <madsr@hey.com>
* Added support for screeen reader alerts on the embed so that assitive technology knows when a url retrieve has been succesfull.
Added labels for the controls
Preview reload only triggered if the values for height and width change
* Added support for label fors for the macro picker and also gave the ,acro search box a title
* Now displays a count of the matching macros returned. Please note the language file amends shared with #10100
* Removed src-only class for the display of the count of messages
* Added support for screeen reader alerts on the embed so that assitive technology knows when a url retrieve has been succesfull.
Added labels for the controls
Preview reload only triggered if the values for height and width change
* Tree search details the number of search items returned
* Add French translations
* Added support for screeen reader alerts on the embed so that assitive technology knows when a url retrieve has been succesfull.
Added labels for the controls
Preview reload only triggered if the values for height and width change
* Added control ids for the link picker
* Add French translation
* Pass in value to preventEnterSubmit directive
* Set enabled similar to preventDefault and preventEnterSubmit directives
* Update prevent enter submit value
* Init value from controller
* Use a different default input id prefix for umb-search-filter
* Fix typo
* Check for truthly value
* Revert "Set enabled similar to preventDefault and preventEnterSubmit directives"
This reverts commit 536ce855c4.
* None pointer events when clicking icon
* Use color variable
Changing the properties to use the extensions is a good thing (given the props are deprecated), but causes issues deep in tests. I'm reverting that change to fix the tests, and all refs to the deprecated properties should be updated in one sweep, to deal with any other test issues that might crop up.
* Update icons to use <umb-icon> component
* Simplify markup and use disabled button
* Use move cursor style on sortable handle
* Add class for action column
* Update setting auto focus
* Increase font size of umb-panel-header-icon
Listening for splitViewRequest was only unbound if the split view editor was opened. Not cleaning up the listener caused a memory leak when changing between nodes as the spit view editor was detached but not garbage-collected
* update back-office forms
* Display tip on reset password page as well
* add directive for password tip
* integrate directove in login screen
* forgot the ng-keyup :-)
* adapt tooltip directive to potential different Members and Users password settings
* remove watcher
Co-authored-by: Nathan Woulfe <nathan@nathanw.com.au>
* Add copy dialog for member type
* Implement copy action for member type
* Create specific localization for content type, media type and member type
* Handle "foldersonly" querystring
* Add button type attribute
* Add a few missing changes of anchor to button element
* Fixes#9983
Temporary fix for this issue. using the entityservice like before.
* Needed to remove the call to usersResource here as well for displaying the picked items
* Don't need usersResource for now
(cherry picked from commit 45de0a101e)
* Fixes#9983
Temporary fix for this issue. using the entityservice like before.
* Needed to remove the call to usersResource here as well for displaying the picked items
* Don't need usersResource for now
* Adds some scope tests (ported back from netcore) and provides a much better error message, ensure execution context is not flowed to child tasks that shouldn't leak any current ambient context
* updates comment
* Ensure SqlMainDomLock suppresses execution context too
* Since we're awaiting a task in a library method, ConfigureAwait(false)
* missing null check
Co-authored-by: Elitsa Marinovska <elm@umbraco.dk>
* Only allow not-admins to assign groups they have themselves
* Only admins is allowed to change password of other admins
* Fixed issue with deep clone of UserGroup. The Allowed sections was not cloned. This resulted in the allowed sections of the object stored in cache was updated, everytime we changed the allowed sections on an object cloned from the cache. Even if we did not save it.
* Only Admins are allowed to add sections to a user group, that they don't have access to themselves
* Align backend code with UI. User managers that is are not admin, can only assign the same groups new users, that they have themselves.
* Make existingGroupAliases and empty array when creating a new user
Co-authored-by: Mole <nikolajlauridsen@protonmail.ch>
* Should allow grid editors to use hash based settings
* Swap to using vm in grid config controller, as well as showing button when there's map settings
* Included keys for styles in empty state check for grid settings
* converted the code into more AngularJS performant code
* Remove rogue change to grid.editors.config
* use watchCollection instead
Co-authored-by: Niels Lyngsø <nsl@umbraco.com>
(cherry picked from commit 008827f785)
* Should allow grid editors to use hash based settings
* Swap to using vm in grid config controller, as well as showing button when there's map settings
* Included keys for styles in empty state check for grid settings
* converted the code into more AngularJS performant code
* Remove rogue change to grid.editors.config
* use watchCollection instead
Co-authored-by: Niels Lyngsø <nsl@umbraco.com>
* 9940: Make sure that ordering is correct
* 9940: Removed unnecessary ordering
* replace i with umb-icon directive
Co-authored-by: Nathan Woulfe <nathan@nathanw.com.au>
* The Value() method for IPublishedContent was not working with the defaultValue parameter
* Update src/Umbraco.Web/PublishedContentExtensions.cs
* Update src/Umbraco.Web/PublishedPropertyExtension.cs
* Update src/Umbraco.Web/PublishedPropertyExtension.cs
* Update src/Umbraco.Web/PublishedPropertyExtension.cs
When auto linking with callbacks such as OnExternalLogin, custom claims can be added to the user which are flowed to the auth ticket/identity.
However, when the security stamp validator executes, the identity is re-created manually without any knowledge of those custom claims so
they are lost. This ensures that those custom claims flow through to the re-generated identity during the security stamp validation phase.
The onUploadComplete function returns the last files that are added to a mediafolder. While this works correct by default and in most situations, it doesn't work as expected when a diffrent sorting is used for Media-items. For example, we've added events to sort Media-items automatically by name alphabetically when they are created/uploaded to keep them better organised.
By sorting the $scope.files array by the Id-property, it ensures that the function returns the uploaded files, instead of the last files in the folder.
In these statements, the exception was passed as a log message parameter instead of as the exception. This meant the exception and including stack trace was not logged and thus lost.
* WIP - added options from superdoctypecreate package
resolve merge conflict in create html file
* fiddling with the wording but it will never be perfect
* looks like ng-if should be ng-show
* Update data-elements for uniqueness (I'm not sure what these are used for!)
* pass 'iscomposition' on the querystring when choosing the 'composition' option from the menu
Why? - in the future we could hide the 'Compositions...' button when choosing to create a composition
* Remove PostCreateCollection implementation now the Create Collection is removed in this PR from the DocType Create menu
resolve merge conflict in Remove PostCreateCollection implementation now the Create Collection is removed in this PR from the DocType Create menu
* Add translations
* Put back PostSave method. It's useful.
Co-authored-by: Kenn Jacobsen <post@kennjacobsen.dk>
Co-authored-by: Nathan Woulfe <nathan@nathanw.com.au>
It's inconvenient that the click area for the remove button laps over the label of settings and styles in the Grid Layout property editor. Simply as the editor may remove the style/setting by accident – and especially since there isn't an undo option.
Known issue: Linebreak of long text labels doesn't appear pretty, but this is cosmetic and can be fixed.
* languages
* add service method for media crop details, might be useful elsewhere
* update UI to add buttons for changing image / editing existing
* update mediapicker controller to use named editor service method
* Update media.controller.js
undefined should be null, consistent use of arrow func
* move buttons to the top right - close to the grid toolbar, so more obvious
* Prevent overflow of searchresults with long urls
Small css change to prevent overflow of searchresults with long url's
* fixes wrapping in node-picker search, stop icon shrinking
Co-authored-by: Nathan Woulfe <nathan@nathanw.com.au>
* fix leak by unbinding event from $rootscope
* destroy more events
* $scope unavailable
* no need to destroy in services as they are singletons
Co-authored-by: nzdev <nzdev@github.com>
Co-authored-by: Nathan Woulfe <nathan@nathanw.com.au>
* Fix for applying searchResultFormatter on found searchresults
We found out that when the searchbox in the linkpicker is used, the URL of a page is not being shown anymore since Umbraco 8.7 and later. This is because of the searchResultFormatter wasn't applied correct.
* Changed ES6 arrow syntax as with the other functions.
Changed ES6 arrow syntax as with the other functions.
* Changed single qoutes to double qoutes for type
* Added missing alt text for login and avatar
* Added localisation for the avatar copy
* update alt avatar tag issue + translation
Co-authored-by: Michael <michael@crossingpaths.be>
* Improved validation on save for relationships and also added support for accesibilty
* Moved the localisation into the radiobutton and added support for localisation using lavel-key in the UmbRadioButtonController
Co-authored-by: Nathan Woulfe <nathan@nathanw.com.au>
* Bye bye angular.isFunction & use Utilities.isFunction
* Utilities.js is not available on first load - replace isFunction detection with underscore equivalent
* found a stray isFunction
Co-authored-by: Kenn Jacobsen <post@kennjacobsen.dk>
Co-authored-by: Nathan Woulfe <nathan@nathanw.com.au>
* Bye bye angular.equals & use Utilities.equals which is still using angular.equals under the hood for now
* Update umbvariantcontenteditors.directive.js
Co-authored-by: Nathan Woulfe <nathan@nathanw.com.au>
There was a memory leak with PublicAccessEntry during even unassignment which was not clearing the correct handler.
This goes a step further and adds a new ClearCollectionChangedEvents method for all observable collections used in umbraco
which allows fully clearing ALL event handlers instead of having to track specific ones. This will ensure there are no
unintended memory leaks in case end-users have assigned event handlers to the collection changed event which would
not be unassigned during deep cloning.
* Update Range documentation comments and use expression-bodied methods
* Implement IEquatable<Range<T>> and override Equals and GetHashCode
* Add Range formatting methods
* Use invariant culture in ToString
* Add RangeTests
* update ToString()
Disable unattended installs by default and enable install empty
database.
Fix create user step by adding back the HasSomeNonDefaultUser check, if
the check is missing the installer will skip creating the configured user
since the second time NewInstallStep.RequiresExecution is called, Umbraco
has been installed and it would return false and the user would never be
created.
Ensure that TaskScheduler.Default is used anywhere that ContinueWith is used, adds more debug logging to MainDom operations
(cherry picked from commit 9a1b456949)
# Conflicts:
# src/Umbraco.Core/Runtime/SqlMainDomLock.cs
* Changed the name of the example class in the mark up as it looks like the icon and the class name may need to be the same in order for umb-icon to work
* Removed the font icon classes in the umb-icon directive calls
* updates to remove class="icon", tidy up alignment in schedule overlay
Co-authored-by: Nathan Woulfe <nathan@nathanw.com.au>
The query result will always be -1, as the result is the amount of rows affected, but that is not applicable in these create queries. This may cause confusion as devs may wonder why for example 'CreatedIndex' is -1. This also seemed to be the only place where we actually use the result of `database.Execute`.
* Add rel="noopener" to anchor elements with target="_blank"
* Add rel="noopener" to language files as well
* Fix link, link tp https and link to umbraco.com
* Add noreferrer value
* Update Language keys for 'Public Access' to become 'Restrict Access' on the action menu
* Updated to be Restrict Public Access - to edge our bets
* merge latest, update casing
Co-authored-by: Nathan Woulfe <nathan@nathanw.com.au>
* Use color picker component in block list editor configuration
* Remove set color property
* Allow empty color
* Assign color value to properties
Co-authored-by: Nathan Woulfe <nathan@nathanw.com.au>
* Add buttons and convert icons to use the umb-icon directive
* removes class attribute from umb-icon, fixes self-closing th elements (th is non-void)
Co-authored-by: Nathan Woulfe <nathan@nathanw.com.au>
* Change div and img with ng-click events to be buttons and add a label for the caption input field
* Change back to old way of inserting icon
* Fix semantics and adjust styling
* Fix a11y and semantics
Co-authored-by: Nathan Woulfe <nathan@nathanw.com.au>
* Ensure the "clear" button is tabable and add accessibility attributes and texts for the overlay
* Add sr-only texts and useful aria attributes
* Convert i to umb-icon and fix wrong values in aria attributes
* Add translation mappings
Co-authored-by: Nathan Woulfe <nathan@nathanw.com.au>
* Move the wrapping div of the context-menu directive inside the directive instead
* Add focus lock, attributes and temporary hardcoded text description of the overlay
* Remove umb-auto-focus directive
* Add dictionary key for the visuallyhidden description
* Add tranlsation key for en-us
Co-authored-by: Nathan Woulfe <nathan@nathanw.com.au>
* Use umb-dropdown directive for Content dropdown
To allow keyboard toggling and automatic collapsing on click elsewhere
* Hide menu on blur
Co-authored-by: Joe Glombek <joe@rockdove.uk>
* Update NestedContentPropertyEditor.cs
Make sure when trying to JsonConvert.DeserializeObject it is json...
* Update NestedContentPropertyEditor.cs
added null check
* [Issue 5277-145] resolved - Language drop downs do not advise as drop downs - screen readers
* reseolve code change request by @nathanwoulfe and set aria-jaspopup to true instead of binding to the property.
Co-authored-by: Justin Shearer <justin@proworks.com>
The problem was that the directive was changed to a component and as such all things are named with vm which was not transitioned across for this form. There was also an issue with the avatar which is fixed too.
* Conver i to new umb-icon directive
* Extend directive to accept css class modifiers
* Add "scoped" styling for the directive to avoid issues with CSS modifiers when used in other contexts
Had the test pass sometimes before the fix because the success notification appear, but the error notification appear at well, so the test shouldn't actually have passed
I'm not sure you need to restate the version here, having got it specified in the list above, but if you do, then a vanilla 2017 won't build the source because of the c#8 stuff introduced recently.
The XML comments for KeepAlive mention the URL for the KeepAlive.Ping action but incorrectly omits 'umbraco' from the path.
The change adds the 'umbraco' section to the path.
(cherry picked from commit 312dc1d9a7)
The XML comments for KeepAlive mention the URL for the KeepAlive.Ping action but incorrectly omits 'umbraco' from the path.
The change adds the 'umbraco' section to the path.
Motivation: the only "benefit" I keep seeing is: you will know when dependencies has changed version.
But since we lock our dependencies down quite well in package.json already and we have never even had a problem with a package updating "on it's own" so I don't think it's really needed.
The only thing that updates on it's own is whatever dependencies our dependencies drag along with them, but the main js packages that we ship with are always pinned down to a version we know we want to ship with so that won't be a problem.
Fixes issue with scopes being disposed or referenced incorrectly due to yield returns as this can capture a scope in the enumerator which will get passed to a background thread in Examine and cause some issues. We saw this issue in netcore but the issue must still exist in v8 but we don't visibly see it for some reason. The other issue is that the ValueSet lookup for content was done 3x when an IContent is saved and it should only be done 2x, one for published, one for unpublished. The other issue is that the data lookups to build a ValueSet are intended to be done on a background thread. This is the case in v7 because the IEnumerable is lazy and passed all the way down to Examine's background thread but this doesn't occur in v8 because we need to iterate/split that value set before it's sent to Examine so the ValueSet is eagerly built within the request. We can easily resolve this by using the background task manager and just pushing a task when IContent/IMedia/IMember is saved. This will return the execution to the UI quicker.
* Emit event when content type icon/color change
* Allow node css class to change when icon change
* Cleanup unused injected services
* Add missing aria-hidden attribute in tree
* Fix typo
* Replace anchor elements with button elements
* Apply styling to button element
* Reset default button style
* Add missing type attributes
* Add aria-hidden attribute
* Move type attribute for readability
when using variants it's unlikely to need the same Html.Partial to be cached across all language variations, if we always add the current culture name to the cache key, we ensure this doesn't accidentally happen, and when not using variants, no harm to have the culture for the single site included here
Since we want to act like the tour has not been run before, at the start and end of each test we need to clean up by resetting the tour data so that the default user in the database hasn't already completed the tour.
I used the similar command style from the umbraco-cypress-testhelpers project - we may want to move this out of the test itself, but I wanted to make sure this approach was right first.
@@ -39,7 +39,7 @@ To build Umbraco, fire up PowerShell and move to Umbraco's repository root (the
build/build.ps1
If you only see a build.bat-file, you're probably on the wrong branch. If you switch to the correct branch (dev-v8) the file will appear and you can build it.
If you only see a build.bat-file, you're probably on the wrong branch. If you switch to the correct branch (v8/contrib) the file will appear and you can build it.
You might run into [Powershell quirks](#powershell-quirks).
Our informal code of conduct concentrates on the values we, as Umbraco HQ, have set for ourselves and for our community. We expect you to be a friend.
Instead of listing out all the exact "do's" and "don't's" we want to challenge you to think about our values and apply them:
# Umbraco Code of Conduct
If there's a need to talk to Umbraco HQ about anything, please make sure to send a mail to [Sebastiaan Janssen - sj@umbraco.dk](mailto:sj@umbraco.dk).
## Preamble
## Be a Friend
We are the friendly CMS. And our friendliness stems from our values. That's why we have set for ourselves, Umbraco HQ, and the community, five values to guide us in everything we do:
We welcome and thank you for registering at Our Umbraco. Find below the values that govern Umbraco and which you accept by using Our Umbraco.
* Trust - We believe in and empower people
* Respect - We treat others as we would like to be treated
* Open - We share our thoughts and knowledge
* Hungry - We want to do things better, best is next
* Friendly - We want to build long-lasting relationships
## Trust
With these values in mind, we want to offer the Umbraco community a code of conduct that specifies a baseline standard of behavior so that people with different social values and communication styles can work together.
Assume positive intent and try to understand before being understood.
This code of conduct is based on the widely used Contributor Covenant, as described in [https://www.contributor-covenant.org/](https://www.contributor-covenant.org/)
## Respect
## Our Pledge
Treat others as you would like to be treated.
We as members, contributors, and leaders pledge to make participation in our community a harassment-free experience for everyone, regardless of age, body size, visible or invisible disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, religion, or sexual identity and orientation.
This also goes for treating the HQ with respect. For example: don’t promote products on [our.umbraco.com](https://our.umbraco.com) that directly compete with our commercial offerings which enables us to work for a sustainable Umbraco.
We pledge to act and interact in ways that contribute to an open, welcoming, diverse, inclusive, and healthy community.
## Open
## Our Standards
Examples of behavior that contributes to a positive environment for our community include:
Be honest and straightforward. Tell it as it is. Share thoughts and knowledge and engage in collaboration.
* Demonstrating empathy and kindness toward other people
* Being respectful of differing opinions, viewpoints, and experiences
* Giving and gracefully accepting constructive feedback
* Accepting responsibility and apologizing to those affected by our mistakes, and learning from the experience
* Focusing on what is best not just for us as individuals, but for the overall community
## Hungry
Examples of unacceptable behavior include:
Don't rest on your laurels and never accept the status quo. Contribute and give back to fellow Umbracians.
* The use of sexualized language or imagery, and sexual attention or advances of any kind
* Trolling, insulting or derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or email address, without their explicit permission
* Other conduct which could reasonably be considered inappropriate in a professional setting
## Friendly
## Enforcement Responsibilities
Don’t judge upon mistakes made but rather upon the speed and quality with which mistakes are corrected. Friendly posts and contributions generate smiles and build long lasting relationships.
Community leaders (e.g. Meetup & festival organizers, moderators, maintainers, ...) are responsible for clarifying and enforcing our standards of acceptable behavior and will take appropriate and fair corrective action in response to any behavior that they deem inappropriate, threatening, offensive, or harmful.
Community leaders have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, and will communicate reasons for moderation decisions when appropriate.
Specific enforcement steps are listed in the [Code of Conduct Enforcement Guidelines](https://github.com/umbraco/Umbraco-CMS/blob/v8/contrib/.github/CODE_OF_CONDUCT_ENFORCEMENT.md) document which is an appendix of this document, updated and maintained by the Code of Conduct Team.
## Scope
This Code of Conduct applies within all community spaces and events supported by Umbraco HQ or using the Umbraco name. It also applies when an individual is officially representing the community in public spaces.
## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior, may be reported at [conduct@umbraco.com](mailto:conduct@umbraco.com). All complaints will be reviewed and investigated promptly and fairly.
Or alternatively, you can reach out directly to any of the team members behind the address above:
* Sebastiaan Janssen (He, Him - Languages spoken: English, Dutch, Danish(Read)) [sebastiaan@umbraco.com](mailto:sebastiaan@umbraco.com)
* Ilham Boulghallat (She, Her - Languages spoken: English, French, Arabic) [ilham@umbraco.com](mailto:ilham@umbraco.com)
* Arnold Visser (He, Him - Languages spoken: English, Dutch) [arnold@umbraco.com](mailto:arnold@umbraco.com)
The review process is done with full respect for the privacy and security of the reporter of any incident.
People with a conflict of interest should exclude themselves or if necessary be excluded by the other team members.
## Enforcement Guidelines
Community leaders will follow these Community Impact Guidelines in determining the consequences for any action they deem in violation of this Code of Conduct:
**1. Correction**
Community Impact: Use of inappropriate language or other behavior deemed unprofessional or unwelcome in the community.
Consequence: A private, written warning from community leaders, providing clarity around the nature of the violation and an explanation of why the behavior was inappropriate. A public apology may be requested.
**2. Warning**
Community Impact: A violation through a single incident or series of actions.
Consequence: A warning with consequences for continued behavior. No interaction with the people involved, including unsolicited interaction with those enforcing the Code of Conduct, for a specified period of time. This includes avoiding interactions in community spaces as well as external channels like social media. Violating these terms may lead to a temporary or permanent ban.
**3. Temporary Ban**
Community Impact: A serious violation of community standards, including sustained inappropriate behavior.
Consequence: A temporary ban from any sort of interaction or public communication with the community for a specified period of time. No public or private interaction with the people involved, including unsolicited interaction with those enforcing the Code of Conduct, is allowed during this period. Violating these terms may lead to a permanent ban.
**4. Permanent Ban**
Community Impact: Demonstrating a pattern of violation of community standards, including sustained inappropriate behavior, harassment of an individual, or aggression toward or disparagement of classes of individuals.
Consequence: A permanent ban from any sort of public interaction within the community.
## Attribution
This Code of Conduct is adapted from the Contributor Covenant, version 2.0, available at [https://www.contributor-covenant.org/version/2/0/code_of_conduct.html](https://www.contributor-covenant.org/version/2/0/code_of_conduct.html).
This Code of Conduct will be maintained and reviewed by the team listed above.
# Umbraco Code of Conduct Enforcement guidelines - Consequence Ladder
These are the steps followed by the [Umbraco Code of Conduct Team](https://github.com/umbraco/Umbraco-CMS/blob/v8/contrib/.github/CODE_OF_CONDUCT.md) when we respond to an issue or incident brought to our attention by a community member.
This is an appendix to the Code of Conduct and is updated and maintained by the Code of Conduct Team.
To make sure that all reports will be reviewed and investigated promptly and fairly, as highlighted in the Umbraco Code of Conduct, we are following [Mozilla’s Consequence Ladder approach](https://github.com/mozilla/inclusion/blob/master/code-of-conduct-enforcement/consequence-ladder.md).
This approach helps the Team enforce the Code of Conduct in a structured manner and can be used as a way of communicating escalation. Each time the Team takes an action (warning, ban) the individual is made aware of future consequences. The Team can either follow the order of the levels in the ladder or decide to jump levels. When needed, the team can go directly to a permanent ban.
**Level 0: No Action**
Recommendations do not indicate a violation of the Code of Conduct.
**Level 1: Simple Warning Issued**
A private, written warning from the Code of Conduct Team, with clarity of violation, consequences of continued behavior.
**Level 2: Warning**
A private, written warning from the Code of Conduct Team, with clarity of violation, consequences of continued behavior. Additionally:
* Communication of next-level consequences if behaviors are repeated (according to this ladder).
**Level 3: Warning + Mandatory Cooling Off Period (Access Retained)**
A private warning from the Code of Conduct Team, with clarity of violation, consequences of continued behavior. Additionally:
* Request to avoid interaction on community messaging platforms (public forums, Our, commenting on issues).
* This includes avoiding any interactions in any Umbraco channels, spaces/offices, as well as external channels like social media (e.g. Twitter, Facebook, LinkedIn). For example, 'following/liking/retweeting' would be considered a violation of these terms, and consequence would escalate according to this ladder.
* Require they do not interact with others in the report, or those who they suspect are involved in the report.
* Suggestions for 'out of office' type of message on platforms, to reduce curiosity, or suspicion among those not involved.
**Level 4: Temporary Ban (Access Revoked)**
Private communication of ban from the Code of Conduct Team, with clarity of violation, consequences of continued behavior. Additionally:
* 3-6 months imposed break.
* All accounts deactivated, or blocked during this time (Our, HQ Slack if applicable).
* Require to avoid interaction on community messaging platforms (public forums, Our, commenting on issues).
* This includes avoiding any interactions in any Umbraco channels, spaces/offices, as well as external channels like social media (e.g. Twitter, Facebook, LinkedIn). For example, 'following/liking/retweeting' would be considered a violation of these terms, and consequence would escalate according to this ladder.
* All community leadership roles (e.g. Community Teams, Meetup/festival organizer, Commit right on Github..) suspended. (onboarding/reapplication required outside of this process)
* No attendance at Umbraco events during the ban period.
* Not allowed to enter Umbraco HQ offices during the ban period.
* Permission to use the MVP title, if applicable, is revoked during this ban period.
* The community leaders running events and other initiatives are informed of the ban.
**Level 5: Permanent Ban**
Private communication of ban from the Code of Conduct Team, with clarity of violation, consequences of continued behavior. Additionally:
* All accounts deactivated permanently.
* No attendance at Umbraco events going forward.
* Not allowed to enter Umbraco HQ offices permanently.
* All community leadership roles (e.g. Community Teams, Meetup/festival organizer, Commit right on Github..) permanently suspended.
* Permission to use the MVP title, if applicable, revoked.
* The community leaders running events and other initiatives are informed of the ban.
Sources:
* [Mozilla Code of Conduct - Enforcement Consequence Ladder](https://github.com/mozilla/inclusion/blob/master/code-of-conduct-enforcement/consequence-ladder.md)
* [Drupal Conflict Resolution Policy and Process](https://www.drupal.org/conflict-resolution)
* [Django Code of Conduct - Enforcement Manual](https://www.djangoproject.com/conduct/enforcement-manual/)
* [Guidelines for contributions we welcome](#guidelines-for-contributions-we-welcome)
* [Ownership and copyright](#ownership-and-copyright)
* [What can I start with?](#what-can-i-start-with)
* [How do I begin?](#how-do-i-begin)
* [Pull requests](#pull-requests)
@@ -44,6 +45,17 @@ We have [documented what we consider small and large changes](CONTRIBUTION_GUIDE
Remember, it is always worth working on an issue from the `Up for grabs` list or even asking for some feedback before you send us a PR. This way, your PR will not be closed as unwanted.
#### Ownership and copyright
It is your responsibility to make sure that you're allowed to share the code you're providing us.
For example, you should have permission from your employer or customer to share code.
Similarly, if your contribution is copied or adapted from somewhere else, make sure that the license allows you to reuse that for a contribution to Umbraco-CMS.
If you're not sure, leave a note on your contribution and we will be happy to guide you.
When your contribution has been accepted, it will be [MIT licensed](https://github.com/umbraco/Umbraco-CMS/blob/v8/contrib/LICENSE.md) from that time onwards.
### What can I start with?
Unsure where to begin contributing to Umbraco? You can start by looking through [these `Up for grabs` issues](https://github.com/umbraco/Umbraco-CMS/issues?utf8=%E2%9C%93&q=is%3Aissue+is%3Aopen+label%3Acommunity%2Fup-for-grabs+)
@@ -102,10 +114,11 @@ That said, the Umbraco development team likes to follow the hints that ReSharper
The Core Contributors team consists of one member of Umbraco HQ, [Sebastiaan](https://github.com/nul800sebastiaan), who gets assistance from the following community members who have comitted to volunteering their free time:
These wonderful people aim to provide you with a first reply to your PR, review and test out your changes and on occasions, they might ask more questions. If they are happy with your work, they'll let Umbraco HQ know by approving the PR. Hq will have final sign-off and will check the work again before it is merged.
@@ -123,12 +136,12 @@ You can get in touch with [the core contributors team](#the-core-contributors-te
In order to build the Umbraco source code locally, first make sure you have the following installed.
* [Visual Studio 2017 v15.9.7+](https://visualstudio.microsoft.com/vs/)
* [Visual Studio 2019 v16.8+ (with .NET Core 3.0)](https://visualstudio.microsoft.com/vs/)
The easiest way to get started is to open `src\umbraco.sln` in Visual Studio 2017 (version 15.9.7 or higher, [the community edition is free](https://www.visualstudio.com/thank-you-downloading-visual-studio/?sku=Community&rel=15) for you to use to contribute to Open Source projects). In Visual Studio, find the Task Runner Explorer (in the View menu under Other Windows) and run the build task under the gulpfile.
The easiest way to get started is to open `src\umbraco.sln` in Visual Studio 2019 (version 16.3 or higher, [the community edition is free](https://www.visualstudio.com/thank-you-downloading-visual-studio/?sku=Community&rel=15) for you to use to contribute to Open Source projects). In Visual Studio, find the Task Runner Explorer (in the View menu under Other Windows) and run the build task under the gulpfile.
Alternatively, you can run `build.ps1` from the Powershell command line, which will build both the backoffice (also known as "Belle") and the Umbraco core. You can then easily start debugging from Visual Studio, or if you need to debug Belle you can run `gulp dev` in `src\Umbraco.Web.UI.Client`. See [this page](BUILD.md) for more details.
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
# If this step fails, then you should remove it and run the build manually (see below)
# ℹ️ Command-line programs to run using the OS shell.
# 📚 https://git.io/JvXDl
# ✏️ If the Autobuild fails above, remove it and uncomment the following three lines
# and modify them (or add more) to build your code if your project
# uses a compiled language
- name:configure Pagefile
uses:al-cheb/configure-pagefile-action@v1.2
with:
minimum-size:8GB
maximum-size:32GB
- run:|
echo "Run Umbraco-CMS build"
pwsh -command .\build\build.ps1
- name:Perform CodeQL Analysis
uses:github/codeql-action/analyze@v1
with:
config-file:./.github/config/codeql-config.yml
# This job is to prevent the workflow status from showing as failed when all other jobs are skipped - See https://github.community/t/workflow-is-failing-if-no-job-can-be-ran-due-to-condition/16873
always_job:
name:Always run job
runs-on:ubuntu-latest
steps:
- name:Always run
run:echo "This job is to prevent the workflow status from showing as failed when all other jobs are skipped"
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
We've done our best to transform your configuration files but in case something is not quite right: we recommmend you look in source control for the previous version so you can find the original files before they were transformed.
We've done our best to transform your configuration files but in case something is not quite right: we recommend you look in source control for the previous version so you can find the original files before they were transformed.
This NuGet package includes build targets that extend the creation of a deploy package, which is generated by
Publishing from Visual Studio. The targets will only work once Publishing is configured, so if you don't use
<add name="Microsoft SQL Server Compact Data Provider 4.0" invariant="System.Data.SqlServerCe.4.0" description=".NET Framework Data Provider for Microsoft SQL Server Compact" type="System.Data.SqlServerCe.SqlCeProviderFactory, System.Data.SqlServerCe" xdt:Locator="Match(invariant)" xdt:Transform="SetAttributes(invariant,description,type)" />
<add name="Microsoft SQL Server Compact Data Provider 4.0" invariant="System.Data.SqlServerCe.4.0" description=".NET Framework Data Provider for Microsoft SQL Server Compact" type="System.Data.SqlServerCe.SqlCeProviderFactory, System.Data.SqlServerCe" xdt:Locator="Match(invariant)" xdt:Transform="SetAttributes(invariant,description,type)" />
Current.Logger.Error(typeof(TypeFinder),ex,"Could not query types on {Assembly} assembly, this is most likely due to this assembly not being compatible with the current Umbraco version",assembly);
Current.Logger.Error<Assembly>(typeof(TypeFinder),ex,"Could not query types on {Assembly} assembly, this is most likely due to this assembly not being compatible with the current Umbraco version",assembly);
Current.Logger.Error(typeof(TypeFinder),ex,"Could not query types on {Assembly} assembly, this is most likely due to this assembly not being compatible with the current Umbraco version",assembly);
Current.Logger.Error<Assembly>(typeof(TypeFinder),ex,"Could not query types on {Assembly} assembly, this is most likely due to this assembly not being compatible with the current Umbraco version",assembly);
_logger.Debug<TypeLoader>("Attempted to get filestream for file {Path} failed, {NumberOfAttempts} attempts left, pausing for {PauseMilliseconds} milliseconds",path,attempts,pauseMilliseconds);
_logger.Debug<TypeLoader,string,int,int>("Attempted to get filestream for file {Path} failed, {NumberOfAttempts} attempts left, pausing for {PauseMilliseconds} milliseconds",path,attempts,pauseMilliseconds);
_logger.Debug<TypeLoader>("Running a full, "+(cache?"":"non-")+"cached, scan for non-discoverable type {TypeName} / attribute {AttributeName} (slow).",typeof(T).FullName,typeof(TAttribute).FullName);
_logger.Debug<TypeLoader,string,string>("Running a full, "+(cache?"":"non-")+"cached, scan for non-discoverable type {TypeName} / attribute {AttributeName} (slow).",typeof(T).FullName,typeof(TAttribute).FullName);
_logger.Debug<TypeLoader>("Running a non-cached, filter for discoverable type {TypeName} / attribute {AttributeName} (slowish).",typeof(T).FullName,typeof(TAttribute).FullName);
_logger.Debug<TypeLoader,string,string>("Running a non-cached, filter for discoverable type {TypeName} / attribute {AttributeName} (slowish).",typeof(T).FullName,typeof(TAttribute).FullName);
// filter the cached discovered types (and maybe cache the result)
// in case of any exception, we have to exit, and revert to scanning
_logger.Error<TypeLoader>(ex,"Getting {TypeName}: failed to load cache file type {CacheType}, reverting to scanning assemblies.",GetName(baseType,attributeType),type);
_logger.Error<TypeLoader,string,string>(ex,"Getting {TypeName}: failed to load cache file type {CacheType}, reverting to scanning assemblies.",GetName(baseType,attributeType),type);
// Only apply this setting if it's not excessively high or low
constintminimumTimeOut=100;
constintmaximumTimeOut=20000;
if(configuredTimeOut>=minimumTimeOut&&configuredTimeOut<=maximumTimeOut)// between 0.1 and 20 seconds
{
timeOut=configuredTimeOut;
}
else
{
logger.Warn<GlobalSettings>(
$"The `{Constants.AppSettings.SqlWriteLockTimeOut}` setting in web.config is not between the minimum of {minimumTimeOut} ms and maximum of {maximumTimeOut} ms, defaulting back to {timeOut}");
sb.AppendFormat("Content type with alias '{0}' has an invalid composition.",contentTypeAlias);
}
else
{
sb.AppendFormat("Content type with alias '{0}' was added as a composition to content type with alias '{1}', but there was a conflict.",addedCompositionAlias,contentTypeAlias);
}
if(propertyTypeAliases.Length>0)
{
sb.AppendFormat(" Property types must have a unique alias across all compositions, these aliases are duplicate: {0}.",string.Join(", ",propertyTypeAliases));
}
if(propertyGroupAliases.Length>0)
{
sb.AppendFormat(" Property groups with the same alias must also have the same type across all compositions, these aliases have different types: {0}.",string.Join(", ",propertyGroupAliases));
/// Initializes a new instance of the <see cref="UnattendedInstallException" /> class.
/// </summary>
/// <param name="info">The <see cref="T:System.Runtime.Serialization.SerializationInfo" /> that holds the serialized object data about the exception being thrown.</param>
/// <param name="context">The <see cref="T:System.Runtime.Serialization.StreamingContext" /> that contains contextual information about the source or destination.</param>
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.