* Backport user enumeration fix.
* Supress warning on use of .NET 6 with TimeProvider dependency.
* Replace TimeProvider with Stopwatch, as the former isn't tested against .NET 6.0 and generates warnings.
* Remove full path details from exception when requesting a path outside of the physical file system's root.
* Added randomness to login duration.
* Ensured against negative duration.
* Bumped version to 10.8.9.
* Fixed parsing of node if in content and media permission querystring handlers to retrieve expected value when multiple are provided in the querystring.
# Conflicts:
# tests/Umbraco.Tests.UnitTests/Umbraco.Web.BackOffice/Authorization/ContentPermissionsQueryStringHandlerTests.cs
# tests/Umbraco.Tests.UnitTests/Umbraco.Web.BackOffice/Authorization/MediaPermissionsQueryStringHandlerTests.cs
* Add HttpPost attributes to backoffice endpoints that should only accept post requests.
* Narrow PermissionQueryString parsing to the releveant UmbracoObjectType
* Add missed update from v10
---------
Co-authored-by: Sven Geusens <sge@umbraco.dk>
* Ensure preview can only be requested with a valid culture code.
* Update src/Umbraco.Web.BackOffice/Controllers/PreviewController.cs
Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>
* Restricted to predefined culture codes.
---------
Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>
* Added ExecuteNonQuery(DbCommand command) on database to ensure we call OnExecutingCommand and OnExecutedCommand when executing DbCommands
* Added Cache Instructions lock, to avoid deadlocks
* Optimized read locks for nucache when only one content type is rebuilt
* Optimized the SqlServer locks, so only one command is executed (and thereby roundtrip) per lock instead of two
* Avoid breaking changes
* Cosmetic changes
* Take locks if everything is rebuild
* Use same lock in scopes, to avoid potential deadlocks between the two
* Use eager locks in PublishedSnapshotService.cs
* Added timeouts to some of the application locks
* Revert "Use eager locks in PublishedSnapshotService.cs"
This reverts commit 01873aae97.
* Revert "Added Cache Instructions lock, to avoid deadlocks"
This reverts commit e3fca7c12a.
* Use single readlock call to lock many
* Use eager locks for reads
* Eager write locks
* Ignore test of lazy locks
* Unique timeout exception messages
---------
Co-authored-by: kjac <kja@umbraco.dk>
(cherry picked from commit 2c23e67c65)
* Added ExecuteNonQuery(DbCommand command) on database to ensure we call OnExecutingCommand and OnExecutedCommand when executing DbCommands
* Added Cache Instructions lock, to avoid deadlocks
* Optimized read locks for nucache when only one content type is rebuilt
* Optimized the SqlServer locks, so only one command is executed (and thereby roundtrip) per lock instead of two
* Avoid breaking changes
* Cosmetic changes
* Take locks if everything is rebuild
* Use same lock in scopes, to avoid potential deadlocks between the two
* Use eager locks in PublishedSnapshotService.cs
* Added timeouts to some of the application locks
* Revert "Use eager locks in PublishedSnapshotService.cs"
This reverts commit 01873aae97.
* Revert "Added Cache Instructions lock, to avoid deadlocks"
This reverts commit e3fca7c12a.
* Use single readlock call to lock many
* Use eager locks for reads
* Eager write locks
* Ignore test of lazy locks
* Unique timeout exception messages
---------
Co-authored-by: kjac <kja@umbraco.dk>
* Run the same cleanup with scaffolding content as when copying.
- Added a new ContentScaffoldedNotification
- Published the notification when a new scaffold has been created from a blueprint (content template)
- Linked up the ComplextPEContent handler to do the same cleanup for the new notification as when copying.
- registered handlers to the event for blocklist, blockgrid and nested content
* PR pattern matching suggestion
Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>
---------
Co-authored-by: Sven Geusens <sge@umbraco.dk>
Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>
(cherry picked from commit dff90c6ec0)
* Include automatic relation type aliases from factory and fix SQL parameter overflow (#15141)
* Include automatic relation type aliases from factory
* Remove unnessecary distinct and fix SQL parameter overflow issue
* Fixed assertions and test distinct aliases
* Simplified collection assertions
* Improve logging of invalid reference relations (#15160)
* Include automatic relation type aliases from factory
* Remove unnessecary distinct and fix SQL parameter overflow issue
* Fixed assertions and test distinct aliases
* Simplified collection assertions
* Improve logging of invalid reference relations
* Always get all automatic relation type aliases
* Do not set relation type alias for unknown entity types
* Get references from recursive (nested/block) properties
* Optimize relation tracking for adding new and keeping existing relations
* Optimize getting references by grouping by property editor alias and avoiding duplicate parsing of the same value
* Include automatic relation type aliases from factory and fix SQL parameter overflow (#15141)
* Include automatic relation type aliases from factory
* Remove unnessecary distinct and fix SQL parameter overflow issue
* Fixed assertions and test distinct aliases
* Simplified collection assertions
* Improve logging of invalid reference relations (#15160)
* Include automatic relation type aliases from factory
* Remove unnessecary distinct and fix SQL parameter overflow issue
* Fixed assertions and test distinct aliases
* Simplified collection assertions
* Improve logging of invalid reference relations
* Always get all automatic relation type aliases
* Do not set relation type alias for unknown entity types
* Get references from recursive (nested/block) properties
* Run the same cleanup with scaffolding content as when copying.
- Added a new ContentScaffoldedNotification
- Published the notification when a new scaffold has been created from a blueprint (content template)
- Linked up the ComplextPEContent handler to do the same cleanup for the new notification as when copying.
- registered handlers to the event for blocklist, blockgrid and nested content
* PR pattern matching suggestion
Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>
---------
Co-authored-by: Sven Geusens <sge@umbraco.dk>
Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>
* Bump version
* Apply authorization policies to controllers
* Return bad request if we urltracking is disabled
* Apply authorization policies to controllers
* Return bad request if we urltracking is disabled
---------
Co-authored-by: Bjarke Berg <mail@bergmania.dk>
Co-authored-by: Zeegaan <nge@umbraco.dk>
* Added Exception handling and replicated error and info message
* Update auth.resource.js
Fixed the message
* Changed Delay introduction to early phase to avoid repeating code.
---------
Co-authored-by: jey <jey@umbraco.dk>
Co-authored-by: Jey <cyaqublu@gmail.com>
* Moved to centralized nuget packages
* Handle JsonSchema
* Change PackageReference to PackageVersion
* Opt out of central package management for mangement api (at least for versions less than 14) and the UI project
* ManagePackageVersionsCentrally = false
* Change folder acceptance tests are build, to avoid reading the test Directory.Packages.props
* Change folder acceptance tests are build, to avoid reading the test Directory.Packages.props
* change working directory
* workingDirectory
* Force the template to use local nuget packages
* Force the template to use local nuget packages
* clean up
* added wait on
* added wait on
* Fixed a couple of occurrences where scopes was auto-complated while actually modified the state of the database.
* Added temp ctor to fix boot issue
(cherry picked from commit 41f8f03c2c)
* V13: Add support for Node.js 20 (#15022)
* update versionSpec to nodejs 20 and avoid specifying minor and patch versions to improve Azure Pipelines stability
* update engines and package lock files
* update helpful displayNames for npm builds
* add retry to counter nodejs.org timeouts
add retryCountOnTaskFailure as suggested on https://developercommunity.visualstudio.com/t/NodeTool0-task-to-install-nodejs-fails/10455454
* update lockfile
* bump nvm support to latest node.js 20.9 LTS
* build(deps): bump @umbraco-ui/uui from 1.3.0 to 1.5.0
* build(deps): bump public dependencies to latest
* build(deps-dev): bump build dependencies to latest
* build(deps-dev): bump test tools to latest
* build: add script to lint and run --fix
* revert login merge from v13
* Added content types to property index value factory, because the deep cloning is too expensive to execute often
* Do not use entityservice in ToEditor, as it goes to the database. We need to use something that is cached.
* Small performance optimization for nested content too
* A little formatting and an obsoletion message
---------
Co-authored-by: kjac <kja@umbraco.dk>
* #14835 Update link on permissionsreport.html
Updated link to permissions page to point to 10-LTS documentation
* retrigger checks
---------
Co-authored-by: Rasmus Berntsen <rasmus.berntsen@isobar.com>
* Setting actionContext.Result when authz wasn't successful
* Taking into account permissions when it is a new node
* Cleanup
* Passing nodeId as path when new item
* Revert "V10/bugfix/14543 publish descendants (#14763)"
This reverts commit f750bca453.
* Add notification state to "final" published notification when publishing with descendants
* Updated playwright, our builders, and our helpers
* Updated the use of our testhelper methods, we removed the need for sending umbracoApi through the methods as a parameter since it was unnecessary
* Added a timeout
* Updated successNotifications and added a locator
* Removed timeout from successNotification
* Added additional timeouts and updated old locators which were failing
* Updated locator so it only finds one element
* Removed timeouts and added a waitForTimeout
* Removed timeouts
* Removed timeouts
* Added timeouts
* Updated locator
* Added a timeout
* Updated locators for clicking button
* Changed locator for adding the image, sometimes the old locator would find 2 locators
* Revert "Make sure the property editor layout is contained within its container (prevent Z-index bleed-through) (#13583)"
This reverts commit 8463d906a7.
* remove seemingly unused attribute readonly
* contain everything with contain:layout
this is set if the property editor is in preview mode to make sure all overlays work
* Revert "remove seemingly unused attribute readonly"
This reverts commit 7a2743e8f6.
* Add configuration/code to not run certain tests based on variables/release builds
* Applied longrunning testAttribute to the worst offenders (>200ms on my machine)
* Fix yaml notation
* split up windows/non windows test runs
* Added supression for moved tests
* Fix yaml validation issues
* Change yaml string parameter null value to empty string
* Convert empty strings to whitespace strings
* Rename and cleanup some paramater to better reflect why we use them
* Nightly build test
* Change nightly build authentication type
* template paramater fix
* Update nightly pipeline name
---------
Co-authored-by: Sven Geusens <sge@umbraco.dk>
* Added test for checking if a settings model contains default value.
Fixed tests
* Bumped version
* Moved createSliderWithDefaultValue function to our testHelpers. Removed the use of count in test since there was only one
Sometimes a tab, e.g. a "block list settings model" might register some default values, but if the user never clicks on the tab then they are not registered due to how AngularJS renders views with "ng-if".
* WIP: Fix publish descendants and related notifications
* Removed related entitities from publish notification
* Fixed root not being saved when publishingWithDescendants
* Updated integrationtests to reflect the update view on when to save the root when its part of a branch
* PR formatting fix
Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>
* PR Cleanup
Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>
* Spicing up the codebase with some PR pattern matching
Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>
---------
Co-authored-by: Sven Geusens <sge@umbraco.dk>
Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>
* Fix IndexOutOfRangeException when converting single value to range in SliderValueConverter
* Fix NullReferenceException while deserializing empty value in TagsValueConverter
* Use invariant decimal parsing
* Handle converting from slider to single value
* Fix parsing range as single value
* Make Handle methods autonomous
---------
Co-authored-by: nikolajlauridsen <nikolajlauridsen@protonmail.ch>
* Fix IndexOutOfRangeException when converting single value to range in SliderValueConverter
* Fix NullReferenceException while deserializing empty value in TagsValueConverter
* Use invariant decimal parsing
* Handle converting from slider to single value
* Fix parsing range as single value
* Make Handle methods autonomous
---------
Co-authored-by: nikolajlauridsen <nikolajlauridsen@protonmail.ch>
* Implemented modular architecture for filestream security sanitization with an svg-html example
* 31440: Refactoring, applied to more entry points and removed test analyzer
* 31440 Added Unittests for FileStreamSecurityValidator
* PR fixes and better unittest mock names
---------
Co-authored-by: Sven Geusens <sge@umbraco.dk>
* Updated the name of our Acceptance test project.
The reason is because we want the naming to be clear and concise.
* Changed the name of the e2e pipeline project name for linux
* Updated dll file
* Obsolete constructor with deprecated IScopeProvider
* Add exclusion setting to typefinder settings
* The old TypeFinder constructor calls the new constructor now instead and excluded duplicates by using Union instead of Concat.
* Revert "The old TypeFinder constructor calls the new constructor now instead and excluded duplicates by using Union instead of Concat."
This reverts commit 87801c6c1c.
* Add changes to TypeFinder
* Do not use null when type is not nullable
---------
Co-authored-by: Bjarke Berg <mail@bergmania.dk>
The validation errors should not happen as the model mapping cleans up block data for entity types that do not longer exist (which is checked on the aformentioned key)
Co-authored-by: Sven Geusens <sge@umbraco.dk>
* Added new configuration "Umbraco:CMS:Examine:ExplicitlyIndexEachNestedProperty" that can be used to avoid nested properties like block grid to index each property individually.
* Moved the setting "Umbraco:CMS:Examine:ExplicitlyIndexEachNestedProperty" to "Umbraco:CMS:Indexing:ExplicitlyIndexEachNestedProperty" to make it more future proof
* Added missing registration
* Fixed registration
* Small readability improvement
---------
Co-authored-by: Sven Geusens <sge@umbraco.dk>
* fix: mark files that result in error as processed
* fix: for safety measure check that a file is truthy before trying to upload it
* fix: push an error when file.$error is encountered to make sure it does not get uploaded
* fix: remove header from error messages since it is not being used anyway
* fix: check for maxFileSize before uploading pasted images in tinymce
* use stored blob variable
* feat: add property to fileManager to get and format the maxFileSize
* fix: make tinymce use fileManager to get maxFileSize
* fix(image cropper): check for maxFileSize before setting file to upload
* multiply by 1000 to get bytes
---------
Co-authored-by: Elitsa <elm@umbraco.dk>
* Fixes an incorrect property name used for generating JSON schema.
* Added JSON schema/intellisense for default data dictionary keys.
* Renamed private variable to match setting name.
* add method to find and persist embedded base64 (data-uri) images in a html string
* use method to find embedded images in the Umbraco.TinyMce and Umbraco.Grid property editors
* rename method to better reflect what it does
* set allowed upload file types for integration tests
* add test for embedded images in Umbraco.TinyMce
* let old ctor call new ctor
* Apply suggestions from code review
Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>
* apply pattern matching
---------
Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>
* Don't login after install
* Fail the install if database is not created
---------
Co-authored-by: Zeegaan <nge@umbraco.dk>
Co-authored-by: Nikolaj <nikolajlauridsen@protonmail.ch>
* Fix broken CookieAuthenticationRedirect caused by PR #14036 when not in an API controller
* Added Integration Tests for the MemberAuthorizationFilter
* Fix merge conflict
---------
Co-authored-by: Elitsa <elm@umbraco.dk>
(cherry picked from commit 1d239a30ca)
* Load default icons to show them next to checkboxes in configuration of richtext editor
* More mapping of icons
* Fix vertical align items centered not reflected
* Wrap mapping in function
* Map a few more icons
* Cleanup and formatting
* Cleanup
* Cleanup
* Add period in description
(cherry picked from commit 583965cf9d)
* fix: #12253 Anchor picker does not appear
* Update ContentServiceExtensions.cs
fix: #12253#13492 ; implement PR suggestions, test the new changes to confirm that they fix the issue with the anchorlink implementation on RTE from blocklist, blockgrid and normal RTE properties
Co-Authored-By: Laura Neto <12862535+lauraneto@users.noreply.github.com>
* Removed unnecessary using and code
* Small adjustments
---------
Co-authored-by: Laura Neto <12862535+lauraneto@users.noreply.github.com>
(cherry picked from commit 1ba834a9ca)
* Update the tour text to the correct text and to save confusion
* Added extra information to the delete language warning to inform the user that it will also delete all content related to the language
* Updated language files with same message re deletion
---------
Co-authored-by: Paul Seal <p.seal@clerkswell.com>
Co-authored-by: Emma Garland <emma.garland@rocksolidknowledge.com>
(cherry picked from commit 542d0f7f74)
* Implement available culture in Interface and base classes
* Add available cultures
* DI localizationService and use it
* Make the new method have default implementation to avoid breaking change
* Create implementations for old method
* Pass available cultures
* Pass localization service
* Create new method that takes available cultures
* Add ILocalizationService to DI
* implement missing method
* Add database for schema test
* Fixed issue with indexes not added correctly to nested types..
---------
Co-authored-by: Zeegaan <nge@umbraco.dk>
Co-authored-by: Bjarke Berg <mail@bergmania.dk>
* Ensure case insensitivity in tag name queries.
Use LIKE instead of = to ignore collation rules.
* Add integration test for creating tag relations with mixed casing.
(cherry picked from commit 37d737f9bc)
* Support readonly set via SendingContentNotification
* Apply changes to second umb-property-editor as well
* Remove check on property.supportsReadOnly
* Disable allow unlock
* Add check on property.readonly
* Small adjustment in the order of preview checks
---------
Co-authored-by: Laura Neto <12862535+lauraneto@users.noreply.github.com>
(cherry picked from commit e30587f90d)
* Fix CanForceCreateDatabase method and add some unit tests
* Fixed an old copy/paste error
* A little nitpicking over wording and formatting
---------
Co-authored-by: kjac <kja@umbraco.dk>
* Fix ViewContext.FormContext not being set during BeginUmbracoForm
Client validation is broken without this if there are multiple forms with the same field names on a page.
* Tweaked comment
(cherry picked from commit 62b49c7ea7)
* Reduce the number of string concatenations required to generate cache keys.
* Updated to match existing Nucache keys.
---------
(cherry picked from commit 7c30da9fbf)
Updates the reference to the .targets file to use the correct folder name of `buildTransitive` instead of `build`
(cherry picked from commit d8f204ddf9)
* SQL Server Truncate when full nucache SQL rebuild.
* Optimize truncate for SQL Lite
* Remove comment.
* Use current DB Types
* I added a couple of formatting changes.
---------
Co-authored-by: georgebid <91198628+georgebid@users.noreply.github.com>
(cherry picked from commit be72c8147d)
* Add IsNullOrWhiteSpace Extension method
IsNullOrWhiteSpace extension method for IHtmlEncodedString
* Move extension method
* Add a UnitTest for the IsNullOrWhiteSpace extension method
* Update unit test
(cherry picked from commit 9771e77243)
Undefined error when inserting an empty link in the RTE editor
(cherry picked from commit 6ce30fb561)
# Conflicts:
# src/Umbraco.Web.UI.Client/src/common/services/tinymce.service.js
* Modified PostPublishById to handle content that is culture variant. Added model and modified the javascript function that call the api endpoint.
* Added separate method for publishing with cultures. Added if else statment to js function.
* Moved check for all cultures being published to the top of PostPublishByIdAndCulture. Added parameter to ngDoc. Added Where Query.
(cherry picked from commit 37db3ae3da)
Changed internal to public for ContentPickerValueConverter, which was the only property value converter defined as `internal`
Fixes issue umbraco#13858
(cherry picked from commit 362832b594)
* Mini-list view search by id,name & key is fixed.
Added multiple conditions in the query to consider id or name or key from the filter param(search bar from minilistview)
* make it more simple ,now using || instead of clause conditions.
---------
Co-authored-by: Dhanesh Kumar <dhanesh.kumar@phases.dk>
Co-authored-by: Michael <michael@crossingpaths.be>
(cherry picked from commit 2f5726384d)
* Fixes#13715 issue with simple logviewer searches
* Update Logviewer test - to ensure MessageLike and simple equivalent returns same result count to help catch
(cherry picked from commit d38fabea4a)
* fix for #13623 by hiding Member Edit Action Menu on Infinite editing for consistency
* added missing attribute to umb-editor-header for Member editing
(cherry picked from commit e7a986b1c3)
* fixes data-element attribute on media section
* Revert "fixes data-element attribute on media section"
This reverts commit 2a35c9fbed.
* use property alias on members umb-property
Co-authored-by: Mario Lopez <mario@luminary.com>
(cherry picked from commit dc46b649f7)
* Fixed issue mentioned in https://github.com/umbraco/Umbraco-CMS/issues/13836
Now surface controller requests always has higher priority than other. So if this is both a surface controller request and a virtual page request, it will execute the surface controller.
* Moved some login into private methods
* More clean up
* Clean up
* Only handle valid candidates
* Added missing PropertyIndexValueFactories, for Block Grid, Block List, Nested Content, Tags and added No-op for image picker, image cropper etc, where the content dont make any sense anyway.
Made it replace for block grid/list, nested content and tags
* Fixed tests
* Ensure raw-fields are the prefix
* Code clean up
* build fix
* Minor cleanup
* Fixed issue with published values / external index
---------
Co-authored-by: nikolajlauridsen <nikolajlauridsen@protonmail.ch>
* Add DoesPrimaryKeyExist method
* Add primary key name to dto
* Add extension method PrimaryKeyExists
* Dont use sql_master table
* Implement DoesPrimaryKeyExists
* Rename without plural s
* Refactor to get proper primary key name and not column name
* Use primary key name and not column name
* Dont filter tables in memory
* Remove .Where
* Don't select all, select only sql
* throw NotImplementedException by default
* USe virtual instead of abstract to avoid breaking change
* Reinstert primary key attribute
---------
Co-authored-by: Zeegaan <nge@umbraco.dk>
* format preValues with DataTypeHelper.createPreValuesProps before rendering so they have the 'alias' prop used for input-id to umb-toggle
* preValues are now formatted on fetch so we do not need to do it again
(cherry picked from commit 7aee15d6d1)
* Re-introduce the option to conditionally login members after registration
* Make absolutely sure the default is true for automatic member login after registration
* Dont allow disable user when invited
* Use data instead of selection
* return succesfully disabled users
* Disable disable button when invited
* Add integration tests
* Remove unused usings
* Update src/Umbraco.Web.BackOffice/Controllers/UsersController.cs
Co-authored-by: Kenn Jacobsen <kja@umbraco.dk>
* Create DisabledUsersModel
* use data.disabledUsers
* Return OK if no users to be saved
* User disabledUsersModel
Co-authored-by: Zeegaan <nge@umbraco.dk>
Co-authored-by: Kenn Jacobsen <kja@umbraco.dk>
* Dont allow disable user when invited
* Use data instead of selection
* return succesfully disabled users
* Disable disable button when invited
* Add integration tests
* Remove unused usings
* Update src/Umbraco.Web.BackOffice/Controllers/UsersController.cs
Co-authored-by: Kenn Jacobsen <kja@umbraco.dk>
* Create DisabledUsersModel
* use data.disabledUsers
* Return OK if no users to be saved
* User disabledUsersModel
Co-authored-by: Zeegaan <nge@umbraco.dk>
Co-authored-by: Kenn Jacobsen <kja@umbraco.dk>
* Use `getLocalDate` from dateHelper
* Remove duplicate import
* Keep function getLocalDate but use dateHelper
* Mark function as deprecated
(cherry picked from commit 30a7bca0ef)
It's possible that consumers have already set up a bootstrap logger themselves before Umbraco had a chance too, if that's the case we just reload it.
(cherry picked from commit 7ad1e638e6)
When Umbraco is configured with X-Content-Type-Options nosniff as is recommended (there's even a health check for it), any boot failure would simply show the html source code in the browser instead of properly rendering the html, as the content-type wasn't being set.
(cherry picked from commit d4c921264d)
* Added functionality to show maintenance page and fixed issues with showing custom api controllers and 404 page, when umbraco had been in install or upgrade state
* Fixed Tests
* Fixed typo
* Fixed issue with login screen redirecting to website when in upgrade state, instead of backoffice
* v11: Umbraco Marketplace replaces packages repo (#13371)
* add lang keys for marketplace
* remove old 'repo' page and deprecate related services
* add new view for Umbraco Marketplace
* optimise margin/padding for other tabs
* mark Our Repository constants as obsolete
* improve css path to iframe slightly with more aliases and classnames
* remove style qs
* update URL of Marketplace
* add ng-controller with utitlities for future PostMessage API
* rename marketplace loaded function
* remove iframe postmessage logic for time being
* add handling of dynamic querystring params
* assume url does not change
* Added support for additional parameters for marketplace
* Update src/JsonSchema/AppSettings.cs
Fix styling issue
Co-authored-by: Ronald Barendse <ronald@barend.se>
* Update src/Umbraco.Core/Configuration/Models/MarketplaceSettings.cs
Fix styling issue
Co-authored-by: Ronald Barendse <ronald@barend.se>
* Update src/Umbraco.Core/Configuration/Models/MarketplaceSettings.cs
Make comment more descriptive
Co-authored-by: Ronald Barendse <ronald@barend.se>
* Update src/Umbraco.Core/Constants-Marketplace.cs
Fix styling issue
Co-authored-by: Ronald Barendse <ronald@barend.se>
Co-authored-by: Bjarke Berg <mail@bergmania.dk>
Co-authored-by: Ronald Barendse <ronald@barend.se>
* Info panes not loading prerequisites (#13486)
* load relations immediately on init and remove call to non-existing function `appTabChange` on destroy
* load relations immediately on init and remove now not-used eventsService
* update marketplace url to its final, live url
* re-add files to prevent breaking change
Co-authored-by: Bjarke Berg <mail@bergmania.dk>
Co-authored-by: Ronald Barendse <ronald@barend.se>
* Fix issue with custom Umbraco routes not working after submitting to a Surface controller
* Added comments
* Fixed breaking changes
* Fixed test by using correct new ctor
* Fixed initializtion of UmbracoRouteValueTransformer due to ambiguous ctor
Co-authored-by: Bjarke Berg <mail@bergmania.dk>
* Removed all the DeleteAllContent since I delete the doctypes in the before and after each functions which also deletes the content.
* fixed the test so it selects the specific button!
* I was dumb and forgot to remove the out commented code
* Added additional timeout so the pipeline has more time
* Removed language in settings because it was a duplicate of languages / languages
* Fixed the tests so they now check if each individual language that was created actually exists instead of checking for how many languages there are which could be flaky if another test touching the languages failed
* Bumped version
* Added a better locator for the buttons and increased timeouts
Signed-off-by: Zeegaan <nge@umbraco.dk>
Signed-off-by: Zeegaan <nge@umbraco.dk>
Co-authored-by: Andreas Zerbst <73799582+andr317c@users.noreply.github.com>
* This fixes issues 11383.
The introduction of the new Examine library caused an unintended consequence that it stopped indexing of nodes with language variants on them when one of the variants was unpublished.
These changes align ValueSetValidationStatus.Filtered to indicate that a node is intended as filtered out of a search, not that parts of its contents had been excluded from the result.
This brings it inline with how it is used in Umbraco.Examine.Lucene/UmbracoContentIndex
Unit tests changed to indicate the intent of ValueSetValidationStatus.Filtered
Change to UmbracoViewPage to make model variable nullable (because the solution wouldn't build otherwise on 2022)
* revert to use explicit type instead of var
Co-authored-by: Nathan Woulfe <nathan@nathanw.com.au>
Co-authored-by: Bjarke Berg <mail@bergmania.dk>
* Make sure contexbar fits within the available space
* Ensuring context bar moves above, no matter size of it.
* Fixing apperance of connection-fixers
* Rollback improvements - hide draft version, allow rolling back to last published version
* UX improvements to rollback, revert some overly complex logic in favor of better UX
* Ensure title update when changing rollback version
* Clean up
* Fix rollback playwright text
* make sure area border is on top of block views.
* rename class to avoid confusion
* change witch UI goes on top on hover
* Description informing all blocks are allowed when none is configured.
* add 'When empty'
* Sort mode
* ability to switch out property actions
* enter and exit sortmode from property actions
* gridsortblock
* rename block class to use sortblock
* Sort mode styling
* remove unused css selector
* fixing style for inline-creat button to appear above and not when hovering contextbar
* work on block grid inline editor
* use uui-button + enable installing demo blocks when its not the first dataType of this kind.
* improvements to inline editing POC
* update title of area config overlay editor
* reset columnSpan if no column span options is defined.
* Inline editing
* remove html comment
* remove code for transfer of stylesheets
* ability to hide label from directive
* inline editing using slots to render the umb-property in light dom
* remove property editor proxies when moving a block to a new area/block/context
* minor adjustments to custom views
* use individual slots for each area.
* Inline editing
* a little smaller rte min-height
* fire Custom focus/blur event for Block Grid Editor to catch for focus imitation
* disable inline editing prevalue field when custom view is set
* Fix scroll parent block into view
* initial work on sorter directive
* remove mediaBlock controller
* initial notes and structure
* further concept work
* remove consol log
* CSS for getting bigger areas
* removal of the forceLeft/forceRight code
* proven concept
* fix grid space detection. vertical/horizontal
* clean up and notes
* move into inner containers as well
* use last available index pr default
* boundary selector, for improved choise of dropping into an area
* hide last inline create button when dragging around
* remove console.log
* removal of forced placement in css
* default config and clean up
* notes
* bring back removed code
* show area ui when in dragging mode
* more specific selector
* drop allowance + clean up
* notes and clean up
* auto scroll
* turn --umb-block-grid--dragging-mode into conditional CSS Custom Property
* auto scroll
* refactoring
* fix condition mistake
* scope.config.resolveVerticalDirection
* wrap up simple setDragImage solution
* bring back vm.notifyVisualUpdate and clean up
* make draggableSelector optional, fallback to element
* implement umb-block-grid-sorter for Area PreValue editor
* remove sortableJS dependency
* remove sortableJs from dependencies
* wups, bring back the comma
* removed sortablejs from package-lock
* finished implementation of sorter for PreValue Block Areas
* fix for FireFox shadowDom issue, contains temprorary code.
* stop auto scroll
* make full thing dragable
* fix firefox issue (applying translateZ)
* comment
* make block fit in context columns
* revert element to where it came from if sync could not succeed + clean up
* ensure block does not push the amount of columns, this occourse when dragging item around.
* take horizontalPlaceAfter into account
* implement horizontalPlaceAfter in Areas Prevalue editor
* clean up dependencies
* Shift related el to first in row or last in row when there is no horizontal room
* clean up and correct calculation
* remove unused attribute
* revert to using el.getBoundingClientRect(), as the config.draggableSelector is not available for the placeholder item.
* bind model via dedicated binding to ensure it stay connected with the source model
* Update src/Umbraco.Web.UI.Client/src/views/propertyeditors/blockgrid/prevalue/umb-block-grid-area-editor.html
Co-authored-by: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com>
* fix eslint issues
* ensure missingColumnWidth is above 0
* Do not allow dragging something thats not found in the model.
* remove as this is not an error.
* update to Flexbox solution
* as the complex model does not change we can use single way binding
* Adjust columnSpan to context container, keep start columnSpan as the target for the calculation.
* make prevalue editor overlay medium size
* more white borders on UI
* move Catalogue appearance to Advanced
Co-authored-by: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com>
* make sure area border is on top of block views.
* rename class to avoid confusion
* change witch UI goes on top on hover
* Description informing all blocks are allowed when none is configured.
* add 'When empty'
* Sort mode
* ability to switch out property actions
* enter and exit sortmode from property actions
* gridsortblock
* rename block class to use sortblock
* Sort mode styling
* remove unused css selector
* fixing style for inline-creat button to appear above and not when hovering contextbar
* work on block grid inline editor
* use uui-button + enable installing demo blocks when its not the first dataType of this kind.
* improvements to inline editing POC
* update title of area config overlay editor
* reset columnSpan if no column span options is defined.
* Inline editing
* remove html comment
* remove code for transfer of stylesheets
* ability to hide label from directive
* inline editing using slots to render the umb-property in light dom
* remove property editor proxies when moving a block to a new area/block/context
* minor adjustments to custom views
* use individual slots for each area.
* Inline editing
* a little smaller rte min-height
* fire Custom focus/blur event for Block Grid Editor to catch for focus imitation
* disable inline editing prevalue field when custom view is set
* Fix scroll parent block into view
* initial work on sorter directive
* remove mediaBlock controller
* initial notes and structure
* further concept work
* remove consol log
* CSS for getting bigger areas
* removal of the forceLeft/forceRight code
* proven concept
* fix grid space detection. vertical/horizontal
* clean up and notes
* move into inner containers as well
* use last available index pr default
* boundary selector, for improved choise of dropping into an area
* hide last inline create button when dragging around
* remove console.log
* removal of forced placement in css
* default config and clean up
* notes
* bring back removed code
* show area ui when in dragging mode
* more specific selector
* drop allowance + clean up
* notes and clean up
* auto scroll
* turn --umb-block-grid--dragging-mode into conditional CSS Custom Property
* auto scroll
* refactoring
* fix condition mistake
* scope.config.resolveVerticalDirection
* wrap up simple setDragImage solution
* bring back vm.notifyVisualUpdate and clean up
* make draggableSelector optional, fallback to element
* implement umb-block-grid-sorter for Area PreValue editor
* remove sortableJS dependency
* remove sortableJs from dependencies
* wups, bring back the comma
* removed sortablejs from package-lock
* finished implementation of sorter for PreValue Block Areas
* fix for FireFox shadowDom issue, contains temprorary code.
* stop auto scroll
* make full thing dragable
* fix firefox issue (applying translateZ)
* comment
* make block fit in context columns
* revert element to where it came from if sync could not succeed + clean up
* ensure block does not push the amount of columns, this occourse when dragging item around.
* take horizontalPlaceAfter into account
* implement horizontalPlaceAfter in Areas Prevalue editor
* clean up dependencies
* Shift related el to first in row or last in row when there is no horizontal room
* clean up and correct calculation
* remove unused attribute
* revert to using el.getBoundingClientRect(), as the config.draggableSelector is not available for the placeholder item.
* bind model via dedicated binding to ensure it stay connected with the source model
* Update src/Umbraco.Web.UI.Client/src/views/propertyeditors/blockgrid/prevalue/umb-block-grid-area-editor.html
Co-authored-by: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com>
* fix eslint issues
* ensure missingColumnWidth is above 0
* Do not allow dragging something thats not found in the model.
* remove as this is not an error.
* update to Flexbox solution
* as the complex model does not change we can use single way binding
* Adjust columnSpan to context container, keep start columnSpan as the target for the calculation.
* make prevalue editor overlay medium size
Co-authored-by: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com>
* make sure area border is on top of block views.
* rename class to avoid confusion
* change witch UI goes on top on hover
* Description informing all blocks are allowed when none is configured.
* add 'When empty'
* Sort mode
* ability to switch out property actions
* enter and exit sortmode from property actions
* gridsortblock
* rename block class to use sortblock
* Sort mode styling
* remove unused css selector
* fixing style for inline-creat button to appear above and not when hovering contextbar
* work on block grid inline editor
* use uui-button + enable installing demo blocks when its not the first dataType of this kind.
* improvements to inline editing POC
* update title of area config overlay editor
* reset columnSpan if no column span options is defined.
* Inline editing
* remove html comment
* remove code for transfer of stylesheets
* ability to hide label from directive
* inline editing using slots to render the umb-property in light dom
* remove property editor proxies when moving a block to a new area/block/context
* minor adjustments to custom views
* use individual slots for each area.
* Inline editing
* a little smaller rte min-height
* fire Custom focus/blur event for Block Grid Editor to catch for focus imitation
* disable inline editing prevalue field when custom view is set
* Fix scroll parent block into view
* initial work on sorter directive
* remove mediaBlock controller
* initial notes and structure
* further concept work
* remove consol log
* CSS for getting bigger areas
* removal of the forceLeft/forceRight code
* proven concept
* fix grid space detection. vertical/horizontal
* clean up and notes
* move into inner containers as well
* use last available index pr default
* boundary selector, for improved choise of dropping into an area
* hide last inline create button when dragging around
* remove console.log
* removal of forced placement in css
* default config and clean up
* notes
* bring back removed code
* show area ui when in dragging mode
* more specific selector
* drop allowance + clean up
* notes and clean up
* auto scroll
* turn --umb-block-grid--dragging-mode into conditional CSS Custom Property
* auto scroll
* refactoring
* fix condition mistake
* scope.config.resolveVerticalDirection
* wrap up simple setDragImage solution
* bring back vm.notifyVisualUpdate and clean up
* make draggableSelector optional, fallback to element
* implement umb-block-grid-sorter for Area PreValue editor
* remove sortableJS dependency
* remove sortableJs from dependencies
* wups, bring back the comma
* removed sortablejs from package-lock
* finished implementation of sorter for PreValue Block Areas
* fix for FireFox shadowDom issue, contains temprorary code.
* stop auto scroll
* make full thing dragable
* fix firefox issue (applying translateZ)
* comment
* make block fit in context columns
* revert element to where it came from if sync could not succeed + clean up
* ensure block does not push the amount of columns, this occourse when dragging item around.
* take horizontalPlaceAfter into account
* implement horizontalPlaceAfter in Areas Prevalue editor
* clean up dependencies
* Shift related el to first in row or last in row when there is no horizontal room
* clean up and correct calculation
* remove unused attribute
* revert to using el.getBoundingClientRect(), as the config.draggableSelector is not available for the placeholder item.
* bind model via dedicated binding to ensure it stay connected with the source model
* Update src/Umbraco.Web.UI.Client/src/views/propertyeditors/blockgrid/prevalue/umb-block-grid-area-editor.html
Co-authored-by: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com>
* fix eslint issues
* ensure missingColumnWidth is above 0
* Do not allow dragging something thats not found in the model.
* remove as this is not an error.
* update to Flexbox solution
* as the complex model does not change we can use single way binding
* Adjust columnSpan to context container, keep start columnSpan as the target for the calculation.
* change let to const
* Revert "change let to const"
This reverts commit fe19f8c5ed.
Co-authored-by: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com>
* make sure area border is on top of block views.
* rename class to avoid confusion
* change witch UI goes on top on hover
* Description informing all blocks are allowed when none is configured.
* add 'When empty'
* Sort mode
* ability to switch out property actions
* enter and exit sortmode from property actions
* gridsortblock
* rename block class to use sortblock
* Sort mode styling
* remove unused css selector
* fixing style for inline-creat button to appear above and not when hovering contextbar
* work on block grid inline editor
* use uui-button + enable installing demo blocks when its not the first dataType of this kind.
* improvements to inline editing POC
* update title of area config overlay editor
* reset columnSpan if no column span options is defined.
* Inline editing
* remove html comment
* remove code for transfer of stylesheets
* ability to hide label from directive
* inline editing using slots to render the umb-property in light dom
* remove property editor proxies when moving a block to a new area/block/context
* minor adjustments to custom views
* use individual slots for each area.
* Inline editing
* a little smaller rte min-height
* fire Custom focus/blur event for Block Grid Editor to catch for focus imitation
* disable inline editing prevalue field when custom view is set
* Fix scroll parent block into view
* initial work on sorter directive
* remove mediaBlock controller
* initial notes and structure
* further concept work
* remove consol log
* CSS for getting bigger areas
* removal of the forceLeft/forceRight code
* proven concept
* fix grid space detection. vertical/horizontal
* clean up and notes
* move into inner containers as well
* use last available index pr default
* boundary selector, for improved choise of dropping into an area
* hide last inline create button when dragging around
* remove console.log
* removal of forced placement in css
* default config and clean up
* notes
* bring back removed code
* show area ui when in dragging mode
* more specific selector
* drop allowance + clean up
* notes and clean up
* auto scroll
* turn --umb-block-grid--dragging-mode into conditional CSS Custom Property
* auto scroll
* refactoring
* fix condition mistake
* scope.config.resolveVerticalDirection
* wrap up simple setDragImage solution
* bring back vm.notifyVisualUpdate and clean up
* make draggableSelector optional, fallback to element
* implement umb-block-grid-sorter for Area PreValue editor
* remove sortableJS dependency
* remove sortableJs from dependencies
* wups, bring back the comma
* removed sortablejs from package-lock
* finished implementation of sorter for PreValue Block Areas
* fix for FireFox shadowDom issue, contains temprorary code.
* stop auto scroll
* make full thing dragable
* fix firefox issue (applying translateZ)
* comment
* make block fit in context columns
* revert element to where it came from if sync could not succeed + clean up
* ensure block does not push the amount of columns, this occourse when dragging item around.
* take horizontalPlaceAfter into account
* implement horizontalPlaceAfter in Areas Prevalue editor
* clean up dependencies
* Shift related el to first in row or last in row when there is no horizontal room
* clean up and correct calculation
* remove unused attribute
* revert to using el.getBoundingClientRect(), as the config.draggableSelector is not available for the placeholder item.
* bind model via dedicated binding to ensure it stay connected with the source model
* Update src/Umbraco.Web.UI.Client/src/views/propertyeditors/blockgrid/prevalue/umb-block-grid-area-editor.html
Co-authored-by: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com>
* fix eslint issues
* ensure missingColumnWidth is above 0
* Do not allow dragging something thats not found in the model.
* remove as this is not an error.
* update to Flexbox solution
* as the complex model does not change we can use single way binding
Co-authored-by: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com>
* prototype drag and drop upload
* Add upload image endpoint
* Add MediaPickerThreeController.cs
* Revert "Add upload image endpoint"
This reverts commit 4bb5865480.
* Update IIOHelper dependency
* show preview when uploading a new media item
* open uploaded media in media entry editor
* map data from uploaded media entry to support cropper
* add crop data to uploaded media item
* remove media library buttons for media entries not created in the media library
* Implement temp images save & add to media picker 3
* Implement ITemporaryImageService
* Remove save logic from MediaPicker3PropertyEditor
* Dont use a TempImageDto
* Add GetByAlias endpoint
* Add additonal xml doc
* Refactor to take array of aliases
* Add FromQuery attribute
* Formatting
* add resource to get media types by alias
* validate file size and file type based on server variables
* Update OpenApi.json
Add media picker three to BackOfficeServerVariables
* rename endpoint to upload media
* Use baseurl Method
* Dont upload in rte folder
* pass params correctly to end point
* queue files before uploading
* handle invalid files
* progress bar design adjustments
* only create data url for images
* disable edit and name buttons when uploading
* fix missing error messages for invalid files
* add temp location to media entry
* Add startNode to TemporaryImageService.cs
* Refactor get by alias
* Rename to GetAllFiltered
* use getAllFiltered method
* remove autoselect option
* fix missing alias when selecting media type
* fix file filter
* don't overwrite invalid entries from dropping new files
* add disallowed files to filter
* remove console.log
* move media uploader logic to reusable function
* fix missing tmp location
* attach media type alias to the mediaEntry
* support readonly mode
* show discard changes when files has been dropped
* add disabled prop to button group
* emit events when upload queue starts and ends
* pass node to media picker property editor
* add service to keep track of all uploads in progress
* add upload in progress to uploadTracker when the queue starts and ends
* disabled buttons when any upload is in progress
* return a subscription to align with eventsService
* Fix up cases where StartNodeId was null
* scope css
* Show filename in dialog for selecting media type
* reuse translation from media library dropzone
* Don't check for only images
* Remove composer
* Add mediaTypeAlias to TemporaryImageService
* Rename ITemporaryImageService to ITemporaryMediaService
* prefix client side only props with $ so we don't send unnecessary data to the server
* use prefixed dataURL in media entry editor
* render icon for non images
* fix auto select media type
Co-authored-by: Zeegaan <nge@umbraco.dk>
Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>
* Add new Settings
* Use new settings instead of old ones
* Implement AllowedUploadedFiles value to be copied to AllowedUplayedFileExtensions
* Obsolete old settings
* Rename DisallowedUploadFileExtensions
* Implement same fix for DisallowedUploadFiles
* Use new settings for backoffice server variables
* Update the correct setting
Co-authored-by: Zeegaan <nge@umbraco.dk>
* Allow for configuration of additional languages to install and ensure one is set as default.
* Amended install default language method to handle invalid ISO codes and ensure the first specified language is always made the default.
* Removed unnecessary using.
* Apply suggestions from code review
Co-authored-by: Ronald Barendse <ronald@barend.se>
* Clean up.
* Update src/Umbraco.Infrastructure/Migrations/Install/DatabaseDataCreator.cs
Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>
Co-authored-by: Ronald Barendse <ronald@barend.se>
Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>
* Add locking for creating scope
* Lock the repository instead
* Add scope in action instead of locking in service
* Fix up post-merge
Co-authored-by: Zeegaan <nge@umbraco.dk>
* Add migration that adds BlockGrid files to disk
* Add partial views to disk when creating sample
* Refactor upgrade to use IPartialViewPopulator
* Add blockgrid default rendering partial views when creating a new project from template
* Remove views from static assets
Co-authored-by: Elitsa Marinovska <elm@umbraco.dk>
* Collecting new language files from different sources
* Apply suggestions from review
* Adding TODO for merging the language files locations to one when packages are not concerned
* Collecting new language files from different sources
* Apply suggestions from review
* Adding TODO for merging the language files locations to one when packages are not concerned
* Fixed assert to hopefully find the package each time so it isnt flaky anymore
* Updated so it retries 5 times instead of 2
* Dont submit html-report
* Dont have output defined in npm run
* Copy over playwright trace.zip files before publishing
* Updated assert so it looks after the package in the table
* updated so we get the first fail as the trace file
* Bumped version for testhelpers
* Updated so the test checks if the package actually exists. Added a wait that checks if the created packages button is visible
* Updated package lock
* Fixed so it now calls the correct testhelper
Co-authored-by: Zeegaan <nge@umbraco.dk>
* Fixing null check as default(NRT) is null => default(configuration?.Delimiter) is also null and we were counting on it being the same as default(char)
* Adding tests to check cases with multiple tags (or tag made of comma separated values)
* Fixing null check as default(NRT) is null => default(configuration?.Delimiter) is also null and we were counting on it being the same as default(char)
* Adding tests to check cases with multiple tags (or tag made of comma separated values)
* Dispose OnChange event registration when disposing the notification handler
* Ensure that the ApplicationUrl is only initialized once
Since notifications handlers are transient,_hasAppUrl and _isInit defaults to false on every request causing it to always be called.
* Make notification handler and EnsureApplicationUrl internal
* Dispose OnChange event registration when disposing the notification handler
* Ensure that the ApplicationUrl is only initialized once
Since notifications handlers are transient,_hasAppUrl and _isInit defaults to false on every request causing it to always be called.
* Make notification handler and EnsureApplicationUrl internal
* Fixes to focus trap within the modal
* Removing duplicate code
* Adding focus to previous element
* changed hardcoded color to existing less variable
Co-authored-by: Michael <michael@crossingpaths.be>
* search on input allowing to wait for copy/paste etc
* invoke resourcePromise() with correct parameters
* return the xhrStatus allowing the caller to check if the request was aborted
* fix: send in canceler.promise to allow the timeout to work
* catch any errors and ignore aborts if they happen
* move the logic to handle cancellations outside Angulars $scope.$apply
* remove file accidentally committed
(cherry picked from commit 4a412bb432)
* search on input allowing to wait for copy/paste etc
* invoke resourcePromise() with correct parameters
* return the xhrStatus allowing the caller to check if the request was aborted
* fix: send in canceler.promise to allow the timeout to work
* catch any errors and ignore aborts if they happen
* move the logic to handle cancellations outside Angulars $scope.$apply
* remove file accidentally committed
* Refactor block list/grid property value editors for code reuse
* Prettify block grid editor data conveter a bit
* correct appearance and colors
* validation should only kick in if value is higher than 0 and not null
* Add copyright notice to code, a little formatting and file scoped namespaces where applicable
* custom views
* custom views for blocks
* Refactor block list min/max validation and reuse for block grid
* Prettify extraction of nested content-and-settings references for block grid
* Fix bad naming
* fix casing
* Refactor block list notification handler and reuse for block grid
* context sensitive ui for Blocks
* Refactor notification handlers for block list and block grid incl. unit tests
* Formatting and review
* Bump number of expected data editors in unit test
* initial progress on column options editor
* column span options UI
* column span UI adjustments
* context aware ui adjustments
* minor border improvement
* get and pick layout stylesheet
* remove random x
* make highlight border standout more
* dedicated context bar
* UI improvements
* remove annoying indication
* copy paste
* UI improvements
* remove div.umb-block-grid__block--view from partial
* show block ui, only hide when hovering area.
* area actions
* UI Adjustments
* Block grid editor localization (#12915)
Co-authored-by: Niels Lyngsø <niels.lyngso@gmail.com>
* fix case of empty value
* use right index
* place border on top of column indication
* heroblock
* userFlowWhenBlockWasCreated
* shorter messages
* overal improvements
* force left/right drag feature
* stylesheet picker localization
* localizations
* space
* unnesecary removal of space
* notes on masonry
* validation form parent skipping + better snapping when drag n drop
* remove icons
* make rows go as minimal as posible
* scale and drop indications
* use item width to determin forceLeft or forceRight
* clean up
* Make clipboard filtering work with block arrays
* readonly mode
* important note
* ask to revert failed paste
* dont allow for backdrop click
* changed wording
* more area actions outside grid container
* droppable indication
* implemented minimal responsive solution.
* add additional data fields about grid clumns
* improved fallback columns width + rows height
* make root element class `umb-block-grid`
* align layout with position relatives, to align visual experience.
* use clientX not screenX
* rename area classes so they dont include the word 'block'
* more renaming
* commit flexbox layout css to repo
* fixes
* fix typo
* only show a broader inline create button if the block is full width.
* simplify css
* remove headline block hover effect
* use some font, to make it look better.
* Drag and drop correctiions/limits
* clean up
* remove log
* make assumptions about proposed distance of target
* slightly white border on validation message for areas to make it standout
* drag n drop seems good at this stage
* force left and right buttons and indication
* correct if
* revert scale handler ui
* If columnSpans is empty we fall back to full width
* Access other PreValues from a PreValue Editor
* maybe temprorary turn of distance drag n' drop condition
* setDirty
* area alias was missing in razor and needed help text
* forceleft forceright translations
* forceLeft / forceRight razor
* correct translation +
remove data- on ng-click
* force placement when moving over edge
* remove unnesecary wrapper element
* show-validation
* red text, might be hard to see, lets see.
* for safety have the border-raduis correct
* better wordings
* Use mouse position to judge if the drop is good before or after.
* fit placeholder when item is begin dragged away
* initial step for finding nearest relation when drag-hovering nothing
* Much better drag n drop experience, must be tested further to prove its not breaking some cases.
* title for scale handler
* new approach + massive drag n drop clean up
* avoid complex CSS transfering of props, instead add the prop in HTML
* adjust placeAfter when in vertical direction mode
* do not scale bigger than the available space to the right
* clean css
* fix numbers
* Fix the case of flickering when hitting an empty area.
* correct placement of code
* package lock
* Adjustment for PreValue Area allowances
* comment on fit in line feature
* fixing scale and drag n drop potential issues
* clean up
* only disallow above max
* outcomment unused code
* clean up
* drag n drop above or below container
* fix for Firefox
* Do not edit block if there is no properties in content
* angularJS form for Entries, to correct validation
* parse layout columns, used to know if block is full width of the layout
* use inherited layout columns
* add this to the example html
* flexbox fix
* highlight if empty area
* comments for undefined column spans
* bring back approvedContainer lock period.
* fix
* Do not edit something without properties
* Remove Force, as thats confusing to read.
* correct localization key
* minor corrections
* Fit within context columns
* Conceptual, inline editor for Grid.
* fix casing
* consider related position in directional conditions
* set default max row span to 1
* update columnSpanOption check for sync
* move Editor to group of Rich Text
* more shift autoScroll
* assume layout columns comes as string
* fix variable name
* force left/right indication
* Inject Areas directly in slot, to enable custom view manipulations of such.
* fix sortableJS mis dropping items
* Overwrite create label
* ability to overwrite root layout create label
* Simplify PreValue editor by hidding options that is not in effect.
* Setup new areas as half width if possible
* Grouping blockTypes
* remove flexbox stylesheet
* Chose groups for area allowance
* ensure a good default width
* improve block active state
* Better contextual sizing
* Comment clean up
* Remove The StarterKit from branch
* Unique group identification for the property editor sortable
* only show avaiable block groups in picker.
* Indication of taget area
* Fallback to root grid columns
* use root layout grid columns, so dont update when layoutColumns change
* Ability to remove block group
* clean up references when removing Group or single Block
* fix drop in same group
* Block picker use contexual create label as headline
* adjust area highlight
* Prevalue editor
* structuralOptions
* Move pre values into tabs for better overview and scope
* Let area grid columns fallback to root grid columns, and let both default to "12" instead of "initial"
* remove input close tag
* Allow in areas
* Move build-in custom views
* only show property-into-button on hover when in group-panel__header
* some height for the show buttons
* filter available block type based on allowInAreas
* remove OnlySpecifiedAllowance
* unsupported block if trouble happend
* move allow at root to allowance group
* easily drop at top or below area if outside. If more than 100px outside then see if there is a parent layout to move into.
* block group validation
* shortcut for opening Areas if areas are defined
* scale label for Areas editor
* Added Legacy name on the old grid layout
* Remove files that come with the starter kit
* Sorting: takeover container detection
* Refactor models + remove unused properties
* Endpoint for creating block grid demo element types
* CTA for getting Block Grid demo blocks
* Refactor block grid sample element creation
* Fix Constants-PropertyEditors spacing
* Fixed unit tests
* Get sample configuration
* Labels for sample blocks
* Improve drag, to swap across unallowed area/root
* improved empty threshold
* hide the after inline-create-button if block is located at right side of area/layout
* clean up
* translations
* danish translations
* move outside edge for forceRight
* Update src/Umbraco.Web.Common/Extensions/BlockGridTemplateExtensions.cs
Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>
* Review comments
* Remove leftover TODO
* big cleanup
* Hide Sample CTA when installed
* clean up
* correct styling for wrapper + moving Block UI to z-index 3 for visiblity on top of other block
* slightly adjusting inline-create-buttons to avoid collisions
* correct localization for force left/right buttons
* gitignorer update
* Clean up nesting of classes in BlockGridConfiguration
* change gitignorer to include App_Plugin folder
* move default layout stylesheet
* remove specific App_plugin folder
* package-lock
* update sample custom views paths
* add custom views for sample
* Adding sample custom views
* Move sample partial Views and custom views
* Update views to not use ModelsBuilder
* Move sample custom views to wwwroot
* Updated Sample CTA text
* Use localize directory
* Ensure groupKey for items without such to work.
Co-authored-by: kjac <kja@umbraco.dk>
Co-authored-by: Warren Buckley <warren@umbraco.com>
Co-authored-by: Bjarke Berg <mail@bergmania.dk>
Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>
* Addes a parameter to BeginUmbracoForm to allow the disabling of the creation of an antiforgery token.
* Updated project references for Forms and Deploy in the JsonSchema project.
* Revert "Updated project references for Forms and Deploy in the JsonSchema project."
This reverts commit a749b45ab8.
Co-authored-by: Zeegaan <nge@umbraco.dk>
* Removing can connect to database check so that Umbraco errors out on startup rather than trying to re-install when unable to connect to database.
* Revert breaking change
* Support installs of missing databases if the provider CanForceCreateDatabase. Else not
Co-authored-by: Austin Gilbert <AGilbert@rbaconsulting.com>
* Set specific width of container to avoid slider flickering when browser add scrollbar due the telemetry data description
* Round value to nearest integer when slider use smooth behaviour
* Fixed test for tab 'Drags and drops a property in a tab'
* Fixed test for macro 'Create macro'
* Fixed test for dataTypes 'Tests Approved Colors', 'Tests Textbox Maxlength', 'Test Url Picker'
* Fixed: Added more waitForTimeout on the test Tests Approved Colors.
* Fixed test for packages 'Create a simple package' test
* Removed unnecessary waitForTimeout
* Changed waitForTimeout to waiting until an element isVisible
* bumped test-helper packed to 1.0.2
* Removed duplicate isSuccessNotificationVisible
Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>
* Disapprove member instead of delete if failed autolink
* Update to not disable the member when external login fails, but move the logic to protected method, to make it easy to extend.
Co-authored-by: Zeegaan <nge@umbraco.dk>
Co-authored-by: Bjarke Berg <mail@bergmania.dk>
* Add OutOfDateType model
* Add ModelsBuilderDashboardControllerBase
* Add BuildModelsController.cs
* Add StatusModelsBuilderDashboardController
* Change to return created and not OK
* Remove unused usings
* Add GetModelsBuilderDashboardController
* Add OpenApi attributes
* Fix formatting
* Fix up dependency injection for ModelsBuilderSettings
* Fix up naming and routing
* Fix up OpenApi attributes
* Remove ability to send raw HTML in dashboard
* Remove obsolete property
* Dont include dashboard in the name
* Async controllers
* Return ActionResults
* Fix up OpenApi contract
* Fix missing usings
* Update src/Umbraco.Cms.ManagementApi/Controllers/ModelsBuilderDashboard/ModelsBuilderControllerBase.cs
Co-authored-by: Mole <nikolajlauridsen@protonmail.ch>
* use VersionedApiBackOfficeRouteAttribute for routing
* Fix up open api spec
Co-authored-by: Zeegaan <nge@umbraco.dk>
Co-authored-by: Mole <nikolajlauridsen@protonmail.ch>
* Create migrate Language controller to Umbraco.Cms:ManagementApi
* Add proper language mapping
* Update mapping to handle if language name is null
* Uncomment code
* Add new language view model
* Add LanguageViewModelMapping
* Add mapper registration
* Fix up AddMappers extension method
* Implement mapping IEnumerable of languages
* Change action signatures to ViewModel instead of model
* Seperate logic from controller into service
* Move LanguageService.cs
* Register service
* Fix up mapping
* Add null check to mapping instead of controller
* Map to ILanguage instead of implementation
* Fix up null check
* Implement ProblemDetailsBuilder.cs
* Rename duplicate method
* Use builder in actions
* Implement new Paged models
* Create language controller base
* Use pagedModel for GetAllLanguages
* Create GetAllLanguagesPaged method
* Split language controller into single APIs
* Fix up controllers with API versions
* Map Total property
* Fix up route and naming for GetLanguageController.cs
* Fix up naming for language controllers
* New folder structure
* Add culture controllers
* Map CultureInfos to paged CultureViewModel
* Remove wierd include in csproj
* Refactor controller to return pagedViewModel instead of dictionary
* Fix up mapping to map single and enumerable
* Register mapping
* Add apiversion to controller
* Add inheritdoc
* Create DictionaryControllerBase.cs
* Add delete controller
* Only use HttpDelete for deletes
* Check also if language exists in service
* Split Save action into Create & Update actions
* Update Http attributes on Create and update controllers
* Proper routing for delete controller
* Add api version
* Make action async
* Implement CreateDictionaryController
* Create DictionaryViewModel.cs
* Use viewmodel instead of values
* Create get by int DictionaryController
* Add view models
* Rename controller
* Rename DictionaryViewModel to DictionaryItemViewModel
* use created instead of ID
* Apply DataContract/Datamember to view model
* change to guid instead of Guid
* Use proper responses instead of return models when creating/updating
* Implement new IDictionaryService
* Implement new MoveController
* Use new service in mapper
* Remove unused method
* Add DictionaryViewModelMapDefinition
* Create MoveOrCopyViewModel
* Proper Http action
* Create UpdateDictionary controller
* Map IDictionaryItem to DictionaryViewModel
* Add JsonPatching
* Add UpdateDictionaryController.cs
* Map DictionaryTranslationsDisplays properly
* ParentId should be nullable
* Add new DictionaryTranslationViewModel.cs
* Remove translationViewModel
* Add Id and Key to DictionaryTranslationDisplay.cs
* Implement IDictionaryFactory.cs
* Create DictionaryViewModels and do not use IEntity
* Map to new view models instead of displays
* Register the factiories in the service container
* Remove newtonsoft
* Add serializing to and from PatchDocs
* Use JsonPatchViewModel instead of object type
* Add JsonPatch.Net to csproj
* Implement JsonPatchService.cs
* Register JsonPatchService
* Make model non-nullable
* Update controllers to use new attributes
* Rename MoveViewModel.cs
* Remove NameIsDirty as that is legacy from how we used to handle updating
* Add GetAllDictionaryController
* Add todo to DictionaryControllerBase
* Add ExportDictionaryController
* Add ImportDictionaryController
* Remove unused umbraco mapper
* Add upload dictionary controller
* Create Dictionary import view models
* Update UploadDictionaryController with view models
* Remove unused using
* Implement pagedviewmodel for GetAllDictionaryController.cs
* Add dictionary overview viewmodels
* Add mapping for DictionaryOverViewModel
* Update Dictionary controller to use new viewmodel
* Fix up attributes for UploadDictionaryController
* Make actions async
* Make controller bases abstract
* Fix after merge
* New backoffice: Analytics controller (#12957)
* Add AnalyticsControllerBase
* Add AnalyticsViewModel
* Add GetAnalyticsController
* Update ViewModel to use System.Text.Json
* Add SetAnalyticsController
* Add AnalyticsLevelViewModel
* Add GetAllAnalyticsController
* Add viewmodel factory
* Register factory for DI
* Use factory for creation of ViewModel
* Fix up AnalyticsLevelViewModel.cs
* Use analyticsLevelViewModel
* Add Enum validation to controller
* Add OpenApi attributes
* Add routing to GetAllAnalyticsController
* Rename IPagedViewModelFactory
* use new renamed PagedViewModelFactory
* Make actions async
* Make controller base abstract
* Fix up after merge
Co-authored-by: Zeegaan <nge@umbraco.dk>
* New backoffice: Help controller (#12958)
* Add HelpControllerBase
* Add HelpPageViewModel
* Add GetHelpController
* Add viewmodel factory
* Register factory for DI
* Use PagedViewModelFactory for controller
* Update baseurl to be nullable
* Rename IPagedViewModelFactory
* Use new renamed IPagedViewModelFactory
* Dont use httpclient as field
Co-authored-by: Zeegaan <nge@umbraco.dk>
* New backoffice: Relation controller (#12961)
* Add relation controller base
* Add commen about auth
* Add GetRelationController
* Use mapping to viewmodel
* Add RelationViewModel
* Add RelationViewModelsMapDefinition.cs
* Add viewmodel factory
* Register factory for DI
* Rename IPagedViewModelFactory
* Add RelationViewModelFactory
* Remove unused service
* Add GetByChildRelationController
* Add relationViewModelFactory to DI
* Add MappingBuilderExtensions
* Add relationViewModelsMapDefinition to DI
* Use PagedViewModel for child relations
* Add CreateMultiple
* Update GetRelationController to use factory instead of direct mapping
* Update GetByChildRelationController to use relationViewModelFactory
* Fix up after merge
Co-authored-by: Zeegaan <nge@umbraco.dk>
* New backoffice: Tracked references controller (#12966)
* Add TrackedReferencesControllerBase.cs
* Add GetTrackedReferencesController
* Add relation model
* Add ITrackedReferencesRepository.cs
* Rename relation to RelationModel
* Add RelationMapDefinition.cs
* Add TrackedReferencesSkipTakeRepository
* Rename RelationModelMapDefinition
* Add new services to DI
* Rename RelationModel to RelationItemModel
* Implement TrackedReferencesSkipTakeService
* Formatting
* Add RelationItemViewModel.cs
* Add mapdefition
* Update TrackedReferencesController to use new PagedViewModel
* Add service to DI
* imlement proper routing
* Add async to GetTrackedReferencesController.cs
* Rename action to get
* Add DescendantTrackedReferencesController
* make filterMustBeIsDependency nullable
* Use count instead of capacity
* Rename controller
* Add MultipleTrackedReferencesController.cs
* Refactor TrackedReferencesService to not return pagedViewModel
* Remove TODO untill consensus on convention
* Formatting
* Delete old duplicate controller
* Fix up naming
* Fix up naming and fixed todo
* Fix up mapdefinition registrations
* Rename controllers
* Fix naming
* Fix nullable tree
* Fix up relation controller & action names
* Fix naming
* Fix up multiple to not be post
* Apply suggestions from code review
Co-authored-by: Mole <nikolajlauridsen@protonmail.ch>
* Remove [ApiVersion] from each individual controller and added to base instead
* Added missing semi-colon
* Update all "non-async async" endpoints to return Task.FromResult
* Fixed up LanguageViewModels namespace
* Return proper status code
* Update xml documentation
* Rename GetAllCultureController
* Change return type attribute to proper Model
* Change return type attribute to correct model
* Add clarifying comment
* Change return type attribute to proper model
* Rename ById to by key
* Update DictionaryOverviewViewModel to use Key instead of ID
* Implement factory method to create viewModel instead of using services in mapper
* Fix up DictionaryItemViewModel to use Parent GUID instead of ID
* Update return type attribute to correct model
* Update key to actual GUID instead of string
* Update route to not include "delete"
* Remove redundant IActionResult specification
* Update responseType attribute to correct models
* Update OpenApiTag for DictionaryControllerBase
* Update ResponseType attribute to correct models
* update variable name to not be "XD"
* Update ResponseType attribute to correct model
* Update route to not include "update" as it is redundant
* Update produces responsetype attributes to correct models
* Use IJsonSerializer abstraction instead of JsonConvert directly
* Remove unused field
* Change ResponseType attribute to correct model
* change TrackedReferencesSkipTakeService to return pagedModels directly
* Remove duplicate DI
* change to better variable names
* Move RelationItemModel to core
* Remove empty folder
* Remove ITrackedReferencesSkipTakeService and add it to TrackedReferencesService
* remove TrackedReferencesSkipTakeRepository and add to TrackedReferencesRepository.cs
* Fix up TrackedReferencesService to not use SkipTake repository
* Remove AddRepositories from ManagementApiComposer
* Transition to ManagementApiBaseController
* Fixes ResponseType attribute to correct model
* Add loading files to service instead of having logic in controller
* Add todo comment
* Fix up routing for delete language
* Use problem details builder
* Add SystemTextJsonSerializer
* Add SystemTextJsonSerializer
* Remove unused usings
* Remove obsolete MoveDictionaryController
* Remove CreateDate and UpdateDate from DictionaryViewModel
* Change response type to correct model
* Remove PagedViewModelFactory.cs
* Add obsolete message
* Fix installer view models
A setter is required for the modelbinder to be able to do its work
* Update src/Umbraco.Cms.ManagementApi/Controllers/Analytics/SetAnalyticsController.cs
Co-authored-by: Mole <nikolajlauridsen@protonmail.ch>
* Update ResponseType to correct Model
* Update comment
* Add FileUploadService
* Add DictionaryFactory.cs to handle creation of viewmodel
* Remove unused DI
* Rename actions & controllers to reflect eachother
* Update OpenApi.json
* Add dictionary to openapi
* Update in proper alphabetical order
* Add trackedReferences to openapi
* Fix open api doc
Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>
Co-authored-by: Zeegaan <nge@umbraco.dk>
* Update readme to reflect the change to playwright
* Update test scripts
* update README
* update pipelines to run new script
* update package.json scripts
* dont include demo test in package.json
* Add creation of blueprint test
* Implement create test script
Co-authored-by: Zeegaan <nge@umbraco.dk>
* fix up dependencies in package.json
* Change configs to playwright
* update types
* remove cypress
* add playwright
* Fix up imports
* Move up test files
* Fix up scripts
* Update user import
* Remove allowEditInvariantFromNonDefault=True.spec.ts
* Update docker container
* Run playwright on pipelines
* Install playwright
* change urls
* change to run playwright
* Update reporter
* create .env file when installing
* update pipelines
* Remove @in yml
* Update Yaml script to use New-Item
* Pipe object to Value
* Update yaml to use "" not {}
* Update localhost to proper port
* Push package-lock.json
* include dotenv in package.json
* Add back umbraco.config.ts
* Dont change launchSettings.json
* Fix up pipelines
* Change working directory
* Add logging
* Actually name the file
* Remove .env from path
* Add working directory
* Add working directory to script
* check env content
* Update more working dir
* Try making newline in YAML
* add quotes
* Try multiline infront of script
* Move top statement
* use https
* Update to localhost 44331
* ignore https in config
* Change linux to https
* add timeouts for tests
* Fix up url for linux
* Update docker to use port 44331 -> 5000
* increase timeout
* Update yaml
* Remove Cypress references and fix URL/port mapping
* Update umbraco-linux.docker
* Generate ASP.NET HTTPS development certificate
* Enable HTTPS development certificate in Docker
* Dont run failing tests
* Update HTTPS development certificate generation
* Copy nuget.config to correct location in Docker file
* do not run flaky test
* update outputdir
* Remove flaky tests
* Update to dot reporter
* Update to json-models-builders package
* Check if results folder exists
* Remove logging
* Use bash to find folder
* Dont use junit to report
* only publish if folder exists
* Add 5 retries for CI
* search correct folder
* Remove unused json file
* Use line reporter
* Remove umbraco.config.ts
* Remove more flaky test
* Add waits so we dont bombard SQLite
* Add page as parameter
* add page as parameter
* Remove flaky macro test
Co-authored-by: Zeegaan <nge@umbraco.dk>
Co-authored-by: Ronald Barendse <ronald@barend.se>
* Refactor: Add default versioned back office route attribute
* Tree controller bases and first draft implementations for document, media and doctype
* Move tree item view models to appropriate location
* Fix missing parent
* Refactor user entity access for testability
* A bit of clean-up + handle user start nodes for items endpoint
* Implement foldersOnly for folder tree
* Items endpoint for document type tree
* Strongly typed action results
* Content + media recycle bin
* Correct return type for swagger
* Member type tree
* Rename user start node handling to make a little more sense
* Revert to faked admin start nodes in document tree
* Media type tree
* Data type tree
* Relation type tree
* Remove unused dependency from member type tree
* Correct documentation for member type tree endpoint response types
* Use icon constants
* Add templates tree
* Member group tree
* Document blueprint tree
* Partial views, scripts and stylesheets trees
* Static files tree
* Clarify "folders only" state
* Comments and improved readability
* Rename TreeControllerBase and TreeItemViewModel
* Move recycle bin controller base to its own namespace
* Moved tree base controllers to their own namespace
* Common base class for tree view models
* Remove ProblemDetails response type declaration from all actions
* Add OpenApiTag
* Various review comments
* Dictionary item tree
* Renamed all tree controllers to follow action/feature naming convention
* Handle client culture state for document tree
* Support "ignore user start nodes" for content and media + refactor how tree states work to make things more explicit
* Fix or postpone a few TODOs
* Make entity service able to paginate trashed children
* Handle sorting explicitly
* Re-apply VersionedApiBackOfficeRoute to install and upgrade controllers after merge
* Use PagedViewModel instead of PagedResult for all trees
* Explain the usage of UmbracoObjectTypes.Unknown
* Introduce and apply GetMany pattern for dictionary items
* Add a note about relation type caching
* Fix broken test build + add unit tests for new localization service methods
* Use new management API controller base
* Entity repository should build document entities for document blueprints when getting paged entities (same as it does when getting specific entities)
* Use Media type for Media recycle bin
Co-authored-by: Mole <nikolajlauridsen@protonmail.ch>
* Move shared relation service to concrete implementations
* Use inclusive language
* Add 401 response type documentation to applicable trees
* Refactor entity load for folder tree controller base + ensure that folders are only included in the first result page
* Add (in-memory) pagination to dictionary tree
* Make file system controller honor paging parameters
* Support pagination in relation type tree
* Clarify method name a bit for detecting tree root path requests
* Update Open API schema to match new trees
* Move from page number and page size to skip/take (with temporary workaround for lack of property skip/take pagination in current DB implementation)
* Update OpenAPI schema to match skip/take
* Update OpenAPI schema
* Don't return paginated view models from "items" endpoints
* Update OpenApi schema
Co-authored-by: Mole <nikolajlauridsen@protonmail.ch>
* Add published cache controller (endpoints for the Published Status dashboard)
* Update OpenAPI contract for published cache endpoints
* Fix OpenApi spec
Co-authored-by: Zeegaan <nge@umbraco.dk>
* Only expose swagger ui when in development
* Only expose swagger ui when in development + Test confirming the contract is respected + contract
* Rollback test code
* Fix up formatting
* Add reference to managementapi in integration tests.
* Revert "Add reference to managementapi in integration tests."
This reverts commit 67e2bf8277.
* Fix integration tests
* Add reference to management api in integration tests
* Fix up schema
* Fixed tests
* Fix test.. do not execute that composer twice
* Revert "Updated dependencies and fixed new NRT issues"
This reverts commit b2b2903a6e.
* Added debug info to test, to debug on azure pipeline
* Try and fix OpenApi test
* Only run test in release
* Try fixing OpenApi.json
Co-authored-by: Nikolaj <nikolajlauridsen@protonmail.ch>
* update string extensions IsFullPath to support more filepaths with new built-in Path.IsPathFullyQualified
* resolve TODO to switch to Path.IsPathFullyQualified supported from .NET Standard 2.1
* Use content root instead of web root for uploaded images
* Un-break a breaking change
* handle special parsing of AngularJS json response
* change htmlId selector to support html id's with numbers
* remove bad test case
* test IsFullPath without tricky UNC paths that are not useful
Co-authored-by: Bjarke Berg <mail@bergmania.dk>
(cherry picked from commit d18dc92137)
* Use ContentSettings instead of SecuritySettings for AllowEditInvariantFromNonDefault
* Make it backwards compatible
(cherry picked from commit 3846c75cc6)
* Add initial implementation using 1 controller pr. action
* Add OpenApiTag attribute
Otherwise the endpoints won't be grouped correctly
* Use correct response type
* Move ApiVersion to endpoint controllers
* Add ServerController suffix to endpoint controllers
(cherry picked from commit 9cf7e965a9)
* Introduce opt-in option for reusable data editors
* Verified RTE as reusable
* Make attribute property naming more explicit + update comments
* Test file upload and image cropper
* Add unit tests
(cherry picked from commit 44122c6509)
* change "umbraco" to "Umbraco" in translation files.
* Replace "<i>" and "<b>" tag with "<em>" and "<strong>"
(cherry picked from commit fa8bb3f1da)
(cherry picked from commit de0294d163)
* update string extensions IsFullPath to support more filepaths with new built-in Path.IsPathFullyQualified
* resolve TODO to switch to Path.IsPathFullyQualified supported from .NET Standard 2.1
* Use content root instead of web root for uploaded images
* Un-break a breaking change
* handle special parsing of AngularJS json response
* change htmlId selector to support html id's with numbers
* remove bad test case
* test IsFullPath without tricky UNC paths that are not useful
Co-authored-by: Bjarke Berg <mail@bergmania.dk>
* v10/feature/skip-move-logic: add logic to skip move logic when parentId would be the same as before
* v10/feature/skip-move-logic: remove unnecessary checks
* remove check for mediaservice as there is already one in place
* remove unnecessary using
* added parent checks for dictionary items
* changing behaviour for contenttypes, datatypes and mediatypes to show errors on move
* Use SVG logo in upgrader
* Adjust logo in app header and boot failed as well
* Remove width and height from CSS
* Update sizes
* Set image size
* Disable draggable of logo
* Add initial implementation using 1 controller pr. action
* Add OpenApiTag attribute
Otherwise the endpoints won't be grouped correctly
* Use correct response type
* Move ApiVersion to endpoint controllers
* Add ServerController suffix to endpoint controllers
* Introduce opt-in option for reusable data editors
* Verified RTE as reusable
* Make attribute property naming more explicit + update comments
* Test file upload and image cropper
* Add unit tests
* Add new BackOfficeApi project
* Add swagger
* Add and route new install controller
* Add new install steps
* Add Setup endpoint
* Add missing RequiresExecution methods
* Fix nullability of databasemodel
* Move user information to separate model
* Remove ping method
* Add view models install data
* Move mapping folder
* Move ViewModels
* Add settings endpoint
* Remove unused binderprovider
* Postfix RequiresExecution with async
* Update NewDatabaseUpgradeStep to not depend on install step
* Add installstep collection
* Move registration into backoffice project
* Add InstallService
* Use service in controller
* Add upgrade to install service and use in controller
* Correctly check is database is configured
* Reorganize
* Reorganize into new core and infrastructure
* Rename steps
* Rename BackofficeApi to MangementApi
* Make install step an interface instead of abstract class
* Rename InstallStep to create CreateUserStep
* Move restart runtime and sign in user into install steps
* Move install service into new core project
* Map controllers in composer
* Restrict access to installcontroller based on runtime level
* Use FireAndForget when logging install
* Use actionresult instead of iactionresult
* Set new projects as not packable
* Link to backoffice in 201 response when installed
* Register installations
* Add custom backoffice routing template token
* Move umbraco path trimming out of application convention
* Make it easier to route to backoffice api
* Make swagger version aware and move behind backoffice path
* Obsolete old install classes
* Move maps into single file
This is all mappint to/from viewmodels in some manner
* Remove usage of InstallSetupResult
* Move new projects to the src folder
* Remove InstallationType from IInstallStep
This upgrade steps should implement their own IUpgradeStep interface
* Remove upgrade from service and controller
This should be its own service and controller
* Add xml docs
* Remove internals visible to
* Disable package validation for new projects
Quite the gotcha here, if the projects are brand new, there is no nuget packages to compare with, this causes the build to fail.
* Add ValidateDatabase endpoint
* Remove project references to new backoffice
We don't actually want to depend on this yet, it's just needed for testing/development
* Obsolete installationtype
* Add DatabaseSettingsFactory tests
* Add InstallServiceTests
* Fix InstallServiceTests
* Test RequireRuntimeLevelAttribute
* Implement new backoffice upgrader (#12818)
* Add UpgradeSettingsModel and viewmodel
* Add upgrade/settings endpoint
* Implement upgrade steps
* Add upgrade step collection
* Add UpgradeService
* Add authorize endpoint to UpgradeController
* Fix interface
* Add upgrade service tests
* Remove runtime check in databaseinstallstep
* Move RequireRuntimeLevel to controller
* Add a readme to the new backoffice part
* BackOffice not Backoffice
* Add conditional project references
* Fixes based on review
* Fix up
* Move running of steps into its own method in UpgradeService
* Make services transient
* More fixup
* Log exceptions when running steps
* mark ncNodeName as stateful allowing it to update the node name asynchronously and implement several checks for caching and fallthroughs
* ensure that the blocklist block component watches and updates stuff on the blockObject
* add $interpolate to the blockList Property Editor to interpolate the label with the saved state
* replace static label with the blockHtmlCompile directive to ensure labels are updated dynamically
* add failsafe in case block is not instantiated
* replace manual udi separation with the parse function from the udiParser service
* simplify watching, to avoid overwritting data object.
* virtual block label rendering
* destroy label scope
* add extra information for label doc
* revert previously used functions and add deprecation notices to them
* remove getBlockLabel, as it's not being used or publicly available.
Co-authored-by: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com>
* Fix leak for PublicAccessEntry
* Fix memory leak for PropertyTypeCollection
* Don't clone the lazy property group ID when caching property types, it is explicitly assigned at runtime
(cherry picked from commit 10b8f63052)
* Fix leak for PublicAccessEntry
* Fix memory leak for PropertyTypeCollection
* Don't clone the lazy property group ID when caching property types, it is explicitly assigned at runtime
They are located in Umbraco:CMS:Security and are read from that location.
Setting any values in Umbraco:CMS does not actually work but
intellisense shows up so the user thinks it will work.
* Remove null check from MapperContext.SetCulture and .SetSegment
We need to be able to set these to null, since null = invariant / default segment
* show segment label on property
* Add ContentVariation to ContentPropertyDisplay
* Add ContentVariation to DocumentTypeDisplay
* Change variations to be on ContentTypeBasic.cs
* don't cache value
* show correct label and unlock text for culture and segment variations
* make lock overlay take up less space
Co-authored-by: nikolajlauridsen <nikolajlauridsen@protonmail.ch>
Co-authored-by: Zeegaan <nge@umbraco.dk>
* Remove null check from MapperContext.SetCulture and .SetSegment
We need to be able to set these to null, since null = invariant / default segment
* show segment label on property
* Add ContentVariation to ContentPropertyDisplay
* Add ContentVariation to DocumentTypeDisplay
* Change variations to be on ContentTypeBasic.cs
* don't cache value
* show correct label and unlock text for culture and segment variations
* make lock overlay take up less space
Co-authored-by: nikolajlauridsen <nikolajlauridsen@protonmail.ch>
Co-authored-by: Zeegaan <nge@umbraco.dk>
* Remove null check from MapperContext.SetCulture and .SetSegment
We need to be able to set these to null, since null = invariant / default segment
* show segment label on property
* Add ContentVariation to ContentPropertyDisplay
* Add ContentVariation to DocumentTypeDisplay
* Change variations to be on ContentTypeBasic.cs
* don't cache value
* show correct label and unlock text for culture and segment variations
* make lock overlay take up less space
Co-authored-by: nikolajlauridsen <nikolajlauridsen@protonmail.ch>
Co-authored-by: Zeegaan <nge@umbraco.dk>
* Remove SQL Server part of the CodeSpace - we have SQLite to use
* Update to use .NET 6 and simplified docker stuff
https://github.com/microsoft/vscode-dev-containers/
* Need to set the SQLite Connection string env variable
* Path to SLN has changed to the root of the repo
* Fix up launch and VSCode tasks
* Update projects to .NET 7
* Fix nullability errors
* Fix up pipelines to run 7.0
* Update langversion to preview
* Revert "Fix up pipelines to run 7.0"
This reverts commit d0fa8d01b8.
* Fix up pipelines again, this time without indentation changes
* Include preview versions
* Versions not Version
* Fix ModelTypeTests
* Fix MemberPasswordHasherTests
Microsoft wants to use SHA512 instead of SHA256, so our old hashes will return SuccessRehashNeeded now
* Use dotnet cli instead of nuget restore
* Update src/Umbraco.Web.UI/Umbraco.Web.UI.csproj
* Update dependencies
* Fix nullability issues
* Fix unit test
* Fix nullability in ChangingPasswordModel
OldPassword can be null, if we're changing the password with password reset enabled. Additionally, we might as well use the new required keyword instead of supressing null.
* Use required keyword instead of supressing null
* Fix up pipelines again
* fix up spelling-error
* Use dotnet cli instead of nuget restore
* Fix up another NuGet command
* Use dotnet version 7 before building
* Include preview versions
* Remove condition
* Use dotnet 7 before running powershell script
* Update templates to .net 7
* Download version 7 before running linux container
* Move use dotnet 7 even earlier in E2E process
* Remove dotnet 7
* Reintroduce .NET 7 task
* Update linux docker container and remove dotnet 7 from yml
* Fix up dockerfile with ARG
* Fix up docker file with nightly builds of dotnet 7
* Reintroduce dotnet 7 so windows can use it
* Use aspnet 7 in docker
Co-authored-by: Nikolaj <nikolajlauridsen@protonmail.ch>
Co-authored-by: Zeegaan <nge@umbraco.dk>
* Fixes to modal and group headings
* updated modal headings for h1 and h2
* Updated line-height
Changed line-height: 0 to line-height: 1.3 and added margin: 0
Co-authored-by: Tiffany Prosser <tiffany.prosser1@gmail.com>
* Fixes to modal and group headings
* updated modal headings for h1 and h2
* Updated line-height
Changed line-height: 0 to line-height: 1.3 and added margin: 0
Co-authored-by: Tiffany Prosser <tiffany.prosser1@gmail.com>
* add the Umbraco.Cms.StaticAssets folder to ignored paths for the codeql scanner
* exclude only the 'wwwroot' folder since other assets could be valid to scan
* Fixes to modal and group headings
* updated modal headings for h1 and h2
* Updated line-height
Changed line-height: 0 to line-height: 1.3 and added margin: 0
* Makes active pip text darker to contrast with non-active pips
* Adds active class to slider component and updates functionality to accommodate multiple pips
* Update umbrangeslider.directive.js
* Adds click handler,accommodates decimal values and moves styles to single file
* Remove docs folder
* Re-add docfx files
I think it makes sense to have these in the solution, however it's a build concern really, not a documentation in the sense that you'll learn anything from it.
* Remove build.ps1 scripts - it's not a thing in v10
* Add version.json to the solution file
* Adds the package version from Package Manifest - (JSON or ManifestFilter C#)
Used to see what version of a package installed & make package devs aware that they can set this, as we use this in the package telemetry service
* Prefix with word Version for cases where 'Unknown' is displayed
* Refactors the logic for calculating the first run time for a recurring task for easier re-use by similar hostservices.
* Renamed method to match wider usage.
* Fix some XML docs
* Re add unused using in SqlSyntaxProviderBase to magically fix docfx
I have no idea why this works, but it does
* Fix nullref exception
* remove absolute-center class from installer and replace with css grid
* replace tooltips for telemetry with columns and a direct view of what eact telemetry level means
* ensure that inputs will out entire columns and that buttons are aligned as the rest of the system with the CTA on the right side
* update buttons on the database screen to match the user screen
* set min-width on installer for views with only text content
* add border to preconfigured database field
* remove extra headline from telemetry data info text
* change telemetry info text to 'small'
* remove opacity for database settings
* update wording of intro text to the installer
* add unordered list to the detailed telemetry description
* add helper text to indicate that telemetry can be changed later
* change wording from 'analytics' to 'telemetry data'
* add smooth-steps-tap to noUiSlider for telemetry data
* add short text explaining what telemetry is to the installer
* Prevent asterix having its own line
With certain label lengths the * would end up on its own line
Adjusting width of group builder labels / descriptions to be in line with the width of the content labels
Adjusting the margins / padding which looked out of place
* Single line html
Change html to be on one line due to white-space css properties requiring such
* Label on top
Fix the width of labels when the label is on top
* Add spacing
Add spacing to control groups to account for the removed padding from labels
* Labels on tablet
Fix label width on tablet screen size
* Check if content has an identity before attempting to get it's ancestors
* Check if we even need to go to the parent
* Fail earlier
* Update src/Umbraco.Web.BackOffice/Controllers/ContentController.cs
Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>
Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>
* Check if content has an identity before attempting to get it's ancestors
* Check if we even need to go to the parent
* Fail earlier
* Update src/Umbraco.Web.BackOffice/Controllers/ContentController.cs
Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>
Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>
* Fix previous conversion of SearchAll to async ignoring the SortOrder value from SearchableTree
* small refactoring
Co-authored-by: Paul Woodland <paul.woodland@pwnewmedia.com>
Co-authored-by: Michael <michael@crossingpaths.be>
* #umbraco12400 fixing StripHtmlTagsMethod by adding Regex
* changing logic by removing .FirstChild calls
* fixing line endings
* final fix
* removing unused using
Co-authored-by: Michael Reiter <michale.reiter@cyber-solutions.at>
Co-authored-by: Michael Reiter <michael.reiter@metro-external.digital>
* Added secure to the UMB-XSRF-V cookie when global https is true.
* Issue 12551 search bug
Previous optimisation incorrectly filtered the index fields needed to return published results
* Update MemberRepository.cs (#12641)
Ensuring that MemberManager.ConfirmEmailAsync persists, same changes in pull request #12640 but for v9
* Fixed Group Headings in Content
Co-authored-by: Corey Philipp <CPhilipp@dewpoint.com>
Co-authored-by: Matthew Care <matty_care@hotmail.co.uk>
Co-authored-by: gilbertaoe <gilbertaoe@hotmail.com>
Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>
Co-authored-by: Sebastiaan Janssen <sebastiaan@umbraco.com>
* Added secure to the UMB-XSRF-V cookie when global https is true.
* Issue 12551 search bug
Previous optimisation incorrectly filtered the index fields needed to return published results
* Update MemberRepository.cs (#12641)
Ensuring that MemberManager.ConfirmEmailAsync persists, same changes in pull request #12640 but for v9
* Initial Commit
Amended tree root to be h1 (previously was h5) and amended contextual modal header to be h2 (previously was h1)
Co-authored-by: Corey Philipp <CPhilipp@dewpoint.com>
Co-authored-by: Matthew Care <matty_care@hotmail.co.uk>
Co-authored-by: gilbertaoe <gilbertaoe@hotmail.com>
Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>
Co-authored-by: Sebastiaan Janssen <sebastiaan@umbraco.com>
* Tweaks the composition dialog in the content type editor
- removes the search field if no content types is available
- change the styling on the info text regarding missing content types
- moves the search field closer to the content type list
* fixes filter - needed vm binding, probably due to introducing ng-if and related scope trickery
tweaked css on checkbox list icon to improve alignment
Co-authored-by: Nathan Woulfe <nathan@nathanw.com.au>
* Don't allocate new object array instances when indexing
There's no reason to allocate new object[] array instances for each ValueSet created for the "y" or "n" values going into the index. This just creates a single object[] for each "y" or "n" value which will save on a ton of allocations when re indexing a bunch of content.
There's an easy way to make further allocation reductions too (prob a separate PR) since there is no reason to create new object[] allocations for: CreatorId, WriterId, Level, TemplateId, Culture. Each of these can be returned from a concurrent dictionary since these values are finite and there won't be too many of each so we can just keep an internal dictionary of these object[] instances.
* fixes mistake
* Updates NoValue and YesValue field declarations - was blowing up
Co-authored-by: Nathan Woulfe <nathan@nathanw.com.au>
* Use OEmbedProviderBase
* Use QueryHelpers.AddQueryString in .NET Core
* Nullable value
* Cleanup usings
* Ensure invariant string
* No need to URL encode when using QueryHelpers.AddQueryString()
* Include WebUtilities
* Cleanup usings
* Revert "Include WebUtilities"
This reverts commit 3cffb740ce.
* Revert "No need to URL encode when using QueryHelpers.AddQueryString()"
This reverts commit 70ca5306ac.
* Revert "Ensure invariant string"
This reverts commit 318ab23f6f.
* Revert "Nullable value"
This reverts commit c39911de06.
* Revert to StringBuilder
* Cleanup usings
* Add more descriptions of providers
* Removed mention of Umbraco.tv from the Members Dashboard
* Add new key to en.xml
* Update membersdashboardvideos.html
* Update label used in members dashboard.
* Revert incorrect change in Property.PublishValues
Fix incorrect change made for nullability support which changes the result of the updated expression to `false` instead of `true` when both inputs are `null`.
That is, `null?.InvariantEquals(null) ?? false` becomes `false` but in the previous version it was `true` since the `InvariantEquals` extension method simply calls `string.Equals(v1, v2)` which will return `true` when both inputs are `null`. Due to the `?` operator the `InvariantEquals` method is not called anymore and `?? false` turns the expression to `false`.
* Update PropertyValidationService.cs
Reverts incorrect update for nullability that changes a value of `true` into `false` when both operands are `null`.
Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>
* Allow only unpublish in schedule publish overlay if user has permission
* Adjust logic to newer JS syntax
* Fix update configuration
* Delete updated property names
* Style unpublish date as disabled
* Fix css selector for new button element
* Make buttons and datepickers more consistent in invariant and variant versions of schedule overlay
* Fill half width like in invariant version of schedule overlay
* Use native includes instead
* return early from getPermissionsForContent
Co-authored-by: Nathan Woulfe <nathan@nathanw.com.au>
* Add Current Server Rule to system information
* Update Unit Tests, Mock IServerRoleAccessor
* Add CurrentServerRole to UnitTest
* adds trailing commas
Co-authored-by: Nathan Woulfe <nathan@nathanw.com.au>
* set isInfoTab to true if active tab is info tab
* replace underscore functions with good old boring javascript
Co-authored-by: Nathan Woulfe <nathan@nathanw.com.au>
* Add runtime mode setting
* Only enable Razor runtime compilation in development modes
* Only enable ModelsBuilder generation in development modes
* Fix disabling ModelsBuilder controllers
* Add IRuntimeModeValidationService and IRuntimeModeValidator
* Add JITOptimizerValidator
* Add UmbracoApplicationUrlValidator
* Add UseHttpsValidator
* Add RuntimeMinificationValidator
* Add ModelsBuilderModeValidator
* Remove .NET 6 preview 1 fix for Razor runtime compilation
* Only allow InMemoryAuto in backoffice development mode
* Make runtime mode validators public, so they can be easily removed if required
* Add comment to highlight removing RazorCompileOnBuild, RazorCompileOnPublish and CopyRazorGenerateFilesToPublishDirectory when using ModelsMode InMemoryAuto
* Add documentation
* Update src/Umbraco.Web.Common/ModelsBuilder/NoopModelsBuilderDashboardProvider.cs
Co-authored-by: Ronald Barendse <ronald@barend.se>
Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>
* Added configuration to allow RTL cultures to opt-in to reverse the url hierarchy.
https://github.com/umbraco/Umbraco-CMS/issues/12621
* Fixed bug.. There is difference between array.Reverse (Linq) and list.Reverse (native)
* formatting
* add a gap between icon and label of media menu
* replace inline style with class
* icon alignment
Co-authored-by: Nathan Woulfe <nathan@nathanw.com.au>
* Allow action links to wrap
Preventing wrapping means that buttons can overflow their container.
* slightly wider context menu to reduce runty labels
Co-authored-by: Nathan Woulfe <nathan@nathanw.com.au>
* Add mappers to map between ContentItemDisplay and ContentItemDisplayWithSchedule
* Ensure SendingContentNotification is always sent
* Add custom setup hook for UmbracoTestServerTestBase
* Add test showing bug/fix
* Test schedule being mapped correctly
* Obsolete the old constructor
* Removed TODO
* Add mappers to map between ContentItemDisplay and ContentItemDisplayWithSchedule
* Ensure SendingContentNotification is always sent
* Add custom setup hook for UmbracoTestServerTestBase
* Add test showing bug/fix
* Test schedule being mapped correctly
* Obsolete the old constructor
* Removed TODO
* Add Umbraco specific global usings
* Enable implicit usings
* v10: Wait for updated ConnectionStrings during install (#12536)
* Do not change/reload configuration
* Wait for updated connection string options
* recase assigndomain (#12448)
* Add depth property to ICoreScope (#12540)
* Remove ambient scope stack from httpcontext.items. (#12539)
This change makes it easier to use service calls in parallel whilst
a httpcontext is available.
* v10: Prefer SQLite primitive types to flexible types (#12541)
* Prefer SQLite primitive types to flexible types.
* SQLite - column mappings use TEXT for decimals
Thanks @mattbrailsford for sense check.
* Fix issue where languages files are not found in subdir of package dir (#12543)
* Make FindContent return type nullable (#12545)
* Updated nuget dependencies (07-06-2022) (#12525)
* Updated nuget dependencies
* Move Nerdbank.GitVersioning update to Directory.Build.props
* Updated more dependencies
* Improve FlagOutOfDateModels property behaviour.
(cherry picked from commit 54077725c3)
* Fix logic error WRT models builder flag out of date models. (#12548)
(cherry picked from commit 6b0149803a)
* Fixed issue with expected null value. (#12550)
Fixes https://github.com/umbraco/Umbraco-CMS/issues/12526
* Updated Examine to 3.0.0
* Fixes relation issue, when moving a root item to recycle bin, the "Relate Parent Media Folder On Delete"/"Relate Parent Document On Delete" cannot get the parent node type, because it is a fake root.
* Fix possible null error
* Bump version to 10.0.0 final
* Fix attempting to write lock files to LocalTempPath before it exists (#12563)
* Re fix usage statements
Co-authored-by: Ronald Barendse <ronald@barend.se>
Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>
Co-authored-by: Paul Johnson <pmj@umbraco.com>
Co-authored-by: Bjarke Berg <mail@bergmania.dk>
* Run code cleanup
* Run dotnet format
* Manual cleanup
* Fix [..] to substring
* Fix after merge
* Update src/Umbraco.Cms.Persistence.SqlServer/Services/SqlServerBulkSqlInsertProvider.cs
Co-authored-by: Paul Johnson <pmj@umbraco.com>
Co-authored-by: Nikolaj Geisle <niko737@edu.ucl.dk>
Co-authored-by: Zeegaan <nge@umbraco.dk>
Co-authored-by: Paul Johnson <pmj@umbraco.com>
* Added dictionary import/export
* Added umb tree to dictionary import & level for displaying preview dictionary import
* Indented dictionaries for import, added new text for choosing where to import dictionary items
* Removed console.log for dictionary/import.controller.js
Co-authored-by: Michael <michael@crossingpaths.be>
* Fixed issues with basic auth middleware to support Umbraco Cloud usecase
* Fix redirects to return url, now allows website urls
* Strip potential domain part of returnPath
* Fix default value in appsettings schema
* Reintroduce check of basic auth enabled.
* Fix wrong negation introduced in #12349
* Fixed issues with redirects
* Also check external login cookie, while authenticating backoffice
* Fixed issues with basic auth middleware to support Umbraco Cloud usecase
* Fix redirects to return url, now allows website urls
* Strip potential domain part of returnPath
* Fix default value in appsettings schema
* Reintroduce check of basic auth enabled.
* Fix wrong negation introduced in #12349
* Fixed issues with redirects
* Also check external login cookie, while authenticating backoffice
* Fixes issue with redirects not being generated when an invariant content has variant ancestors. In this case we wanna create redirects for all languages
https://github.com/umbraco/Umbraco-CMS/issues/12452
* Handle Url routing of invariant items with variant parents, when no culture is given
* Cleanup
* Update src/Umbraco.Core/Routing/UrlProvider.cs
Co-authored-by: Ronald Barendse <ronald@barend.se>
* Refactor styling and added else if
Co-authored-by: Ronald Barendse <ronald@barend.se>
* Add Execute with obsoleted IScopeProvider parameter
* Add ScopeContextualBase Get method that accepts an obsolete IScopeProvider
* Make LegacyIScope have all props/methods defined upon it as otherwise it causes method missing errors
* Added new keyword to hidden properties / methods
* Drop Context prop from Infrastructure.IScopeProvider
Co-authored-by: Paul Johnson <pmj@umbraco.com>
* Update template gitignore
Remove the rules for umbraco static assets as these are now served from a Razor Class Libray
* Update .gitignore
Adjust path of appsettings-schema.json
* Do not replace DataDirectory placeholder when setting connection string
* Ensure ConnectionStrings options are updated when configuration is reloaded
* Use CurrentValue to get default Umbraco connection string
* added option to disable automatic expand of single nc item
* remove max item conditional
remove max item 1 conditional to set current node
* changed description of slider property
removed description of first item conditional
* Update NestedContentConfiguration.cs
change copy to more accurately describe the feature
Co-authored-by: Wilmar <wilmar.de.hoogd@thevalley.nl>
* Separate legacy scope provider interface and explicitly implement.
* Don't rely on legacy scope provider for existing tests.
* Assert correct type returned when using legacy scope provider.
commit ff6d064b29
Author: Paul Johnson <pmj@umbraco.com>
Date: Mon May 23 08:43:52 2022 +0100
Allow for slow integration test runs
commit e6320a12ba
Author: Andy Butland <abutland73@gmail.com>
Date: Sat May 21 08:10:52 2022 +0200
Fixed null check in external login.
(cherry picked from commit 9981907532)
commit 0f6630861e
Author: Paul Johnson <pmj@umbraco.com>
Date: Mon May 23 07:25:04 2022 +0100
static assets nupkg fixes (#12440)
* Remove duplicate jsonschema build
* Don't attempt to --no-build for dotnet pack (fixes static assets)
* Bump version to 10.0.0-rc3
* Improve restoreKeys
* update Umbraco.GitVersioning.Extensions to 0.1.1
(cherry picked from commit 0ef34ab9c5)
* tag e2e container with current commit
* cache cypress binaries
# Conflicts:
# version.json
* Remove duplicate jsonschema build
* Don't attempt to --no-build for dotnet pack (fixes static assets)
* Bump version to 10.0.0-rc3
* Improve restoreKeys
* update Umbraco.GitVersioning.Extensions to 0.1.1
(cherry picked from commit 0ef34ab9c5)
* tag e2e container with current commit
* cache cypress binaries
* Add slider to user view
* fix typo 'constentLevels'
* Add TelemetryLevel to UserModel
* Extend NewInstallStep to include descriptions of each TelemetryLevel
* Add nouislider as dependency for installer view
* Add telemetry levels
Add raw nouislider to select a telemetry level + set chosen level onChange to the user model + show detailed description of each level as a tooltip
* Copy over basic styling of nouislider
* Save consent level in installer
* Fix detailed key to not contain <br>
* Fix MetricsConsentService to log correctly when we set analyticsLevel in installer
* Fix breaking change and obsolete messages
* reinstate saved value of the subscription field if you traverse the steps
* calculate the initial slider level based on the saved value of the model
Co-authored-by: Nikolaj Geisle <niko737@edu.ucl.dk>
Co-authored-by: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com>
commit e0aa430d4c
Author: Paul Johnson <pmj@umbraco.com>
Date: Thu May 19 10:00:57 2022 +0100
Fix typo in pipeline yaml
commit 2ec450f2d6
Author: Paul Johnson <pmj@umbraco.com>
Date: Thu May 19 09:14:47 2022 +0100
Fix yaml conditions
commit c2d548039a
Author: Paul Johnson <pmj@umbraco.com>
Date: Thu May 19 09:02:50 2022 +0100
Azure pipeline refactor (#12428)
* Skip symbols for Umbraco.Templates
* Resolve some test issues
+ Fixed whitespace dependant tests to pass regardless of build OS vs
run OS.
+ Snap dictionary tests were failing when Configuration was release
+ Removed hardcoded baseUrl from one of the acceptance tests
* Move docfx setup to ./build and fix
* Update UI docs title
* Added dockerfile that can be used when running the acceptance tests.
* Take explicit dependency on System.Security.Cryptography.Pkcs
* Refactor ci/cd pipeline
commit ee8359af75
Author: Mole <nikolajlauridsen@protonmail.ch>
Date: Thu May 19 09:57:21 2022 +0200
V10: Reintroduce appsettings-schema.json (#12416)
* Reintroduce language files tests (#12367)
* Reintroducing language files tests
* Fix casing
* Update tests/Umbraco.Tests.UnitTests/Umbraco.Core/EmbeddedResources/LanguageXmlTests.cs
Co-authored-by: Mole <nikolajlauridsen@protonmail.ch>
* Change Umbraco.Cms and Umbraco.Templates nuspecs to csproj
* Remove Umbraco.Templates from VerifyNuGet step
* Remove duplicate and unnecessary properties
* Generate json schema on build
* Add targets file
* Gitignore auto generated appsettings schema
* Fix build not copying file
* Use the new path in appsettings
* Update copy message
* Build json schema as release
* Update json schema options
Otherwise just running the project will put the file in the wrong place
* Generate schema if it doesn't exist in Web.Ui
* Update json schema options
Otherwise just running the project will put the file in the wrong place
Co-authored-by: Elitsa Marinovska <21998037+elit0451@users.noreply.github.com>
Co-authored-by: Ronald Barendse <ronald@barend.se>
commit dd617ede80
Author: Ronald Barendse <ronald@barend.se>
Date: Thu May 19 09:51:11 2022 +0200
v10: Change Umbraco.Cms and Umbraco.Templates nuspecs to csproj (#12413)
* Reintroduce language files tests (#12367)
* Reintroducing language files tests
* Fix casing
* Update tests/Umbraco.Tests.UnitTests/Umbraco.Core/EmbeddedResources/LanguageXmlTests.cs
Co-authored-by: Mole <nikolajlauridsen@protonmail.ch>
* Change Umbraco.Cms and Umbraco.Templates nuspecs to csproj
* Remove Umbraco.Templates from VerifyNuGet step
* Remove duplicate and unnecessary properties
Co-authored-by: Elitsa Marinovska <21998037+elit0451@users.noreply.github.com>
Co-authored-by: Mole <nikolajlauridsen@protonmail.ch>
commit b83216876f
Author: Ronald Barendse <ronald@barend.se>
Date: Thu May 19 08:36:04 2022 +0200
v10: Project template database/connection string improvements (#12407)
* Add new connection-string-provider-name parameter
* Use template value forms to correctly encode JSON values
* Add new development-database-type parameter
* Update package template and fix App_Plugins directory rename
* Remove conflicting short parameter name
* Lowercase framework parameter to align with MS templates
* Cleanup default template settings
* Write unattended install parameters when either connection string or development database is set
* Include RootNamespace in UmbracoPackage template
* Update Umbraco specific gitignore rules
* Revert "Lowercase framework parameter to align with MS templates"
This reverts commit 22de389272.
* Add exclude-gitignore parameter
* Update template schemas
* Add minimal-gitignore parameter
commit e40049dcf1
Author: Mole <nikolajlauridsen@protonmail.ch>
Date: Wed May 18 15:22:51 2022 +0200
Fix domain for invariant content nodes (#12405)
Co-authored-by: Elitsa Marinovska <elm@umbraco.dk>
commit a3692b887a
Author: Elitsa Marinovska <21998037+elit0451@users.noreply.github.com>
Date: Mon May 9 11:42:10 2022 +0200
Use SnippetCollection to when working with snippets (#12355)
* Introducing a new Snippet type
* Adding a SnippetCollection and SnippetCollectionBuilder
* Using snippetCollection to get the snippets instead of fileService
* Fixed fetching the correct content
* Make ISnippet non-discoverable
* Split the SnippetCollection into PartialViewSnippetCollection and PartialViewMacroSnippetCollection
* Update CodeFileController to use the 2 snippet collections
* Display the names with Empty.cshtml on top
* Remove merging embedded snippets with custom snippets from ~\Umbraco.Web.UI\umbraco\PartialViewMacros\Templates folder for the Partial View Collection
* Fix naming
* Fix another naming
* Cleanup + Use base items
Co-authored-by: Bjarke Berg <mail@bergmania.dk>
(cherry picked from commit 9326cc5fc6)
commit 4f48a4937b
Author: patrickdemooij9 <patrickdemooij98@hotmail.com>
Date: Fri Oct 8 11:18:00 2021 +0200
Cherry picked from 4c08b44684
commit 4fdbfee597
Author: Bjarne Fyrstenborg <bjarne_fyrstenborg@hotmail.com>
Date: Wed May 11 00:51:37 2022 +0200
Show nicer overlay when clicking block card for deleted element type (#12140)
* Show nicer overlay when clicking block card for deleted element type
* Cleanup
* Remove stop-scrolling container
* Use flex-start instead on start
* Remove legacy flexbox fallback
* Remove unnecessary hack
* Use standard gap property instead
* Localization of message
* Fix translation
* End sentence with a dot
(cherry picked from commit ebb1dc21a9)
commit 3856bf8288
Author: Henk Jan Pluim <henkjan.pluim@greenchoice.nl>
Date: Mon Apr 25 10:02:06 2022 +0200
#fix 12254 return emptyresult
(cherry picked from commit 7993d19c1b)
commit 7087c3d9f6
Author: Ronald Barendse <ronald@barend.se>
Date: Tue May 17 12:59:01 2022 +0200
v10: Use ForceCreateDatabase during unattended install and extend GetUmbracoConnectionString extension methods (#12397)
* Add extension methods to get the Umbraco connection string/provider name from configuration
* Added tests for configuration extension methods.
* Fix issue with InstallMissingDatabase and ForceCreateDatabase
* Fix comments
* Revert casing change in GenerateConnectionString
* Re-add AddOptions (without config binding) to fix test
* Update src/Umbraco.Core/Configuration/Models/ConnectionStrings.cs
Co-authored-by: Ronald Barendse <ronald@barend.se>
* Update src/Umbraco.Core/Configuration/Models/ConnectionStrings.cs
* Update src/Umbraco.Infrastructure/Runtime/RuntimeState.cs
* Whitespace and documentation updates
* Add DatabaseProviderMetadataExtensions
* Filter before ordering
* Replace DataDirectory placeholder when setting connection string
Co-authored-by: Andy Butland <abutland73@gmail.com>
Co-authored-by: Bjarke Berg <mail@bergmania.dk>
(cherry picked from commit 8e6e262c7f)
commit e90bf26577
Author: Ronald Barendse <ronald@barend.se>
Date: Tue May 17 07:33:54 2022 +0200
v10: Support System.Data.SqlClient provider name (#12408)
* Add support for System.Data.SqlClient provider name
* Only update connection string when required
(cherry picked from commit e82bcb1b76)
commit fd0637c96d
Author: Elitsa Marinovska <21998037+elit0451@users.noreply.github.com>
Date: Mon May 16 14:23:59 2022 +0200
Reintroduce language files tests (#12367)
* Reintroducing language files tests
* Fix casing
* Update tests/Umbraco.Tests.UnitTests/Umbraco.Core/EmbeddedResources/LanguageXmlTests.cs
Co-authored-by: Mole <nikolajlauridsen@protonmail.ch>
(cherry picked from commit 2ed71a64ec)
* Skip symbols for Umbraco.Templates
* Resolve some test issues
+ Fixed whitespace dependant tests to pass regardless of build OS vs
run OS.
+ Snap dictionary tests were failing when Configuration was release
+ Removed hardcoded baseUrl from one of the acceptance tests
* Move docfx setup to ./build and fix
* Update UI docs title
* Added dockerfile that can be used when running the acceptance tests.
* Take explicit dependency on System.Security.Cryptography.Pkcs
* Refactor ci/cd pipeline
* Reintroduce language files tests (#12367)
* Reintroducing language files tests
* Fix casing
* Update tests/Umbraco.Tests.UnitTests/Umbraco.Core/EmbeddedResources/LanguageXmlTests.cs
Co-authored-by: Mole <nikolajlauridsen@protonmail.ch>
* Change Umbraco.Cms and Umbraco.Templates nuspecs to csproj
* Remove Umbraco.Templates from VerifyNuGet step
* Remove duplicate and unnecessary properties
* Generate json schema on build
* Add targets file
* Gitignore auto generated appsettings schema
* Fix build not copying file
* Use the new path in appsettings
* Update copy message
* Build json schema as release
* Update json schema options
Otherwise just running the project will put the file in the wrong place
* Generate schema if it doesn't exist in Web.Ui
* Update json schema options
Otherwise just running the project will put the file in the wrong place
Co-authored-by: Elitsa Marinovska <21998037+elit0451@users.noreply.github.com>
Co-authored-by: Ronald Barendse <ronald@barend.se>
* Add new connection-string-provider-name parameter
* Use template value forms to correctly encode JSON values
* Add new development-database-type parameter
* Update package template and fix App_Plugins directory rename
* Remove conflicting short parameter name
* Lowercase framework parameter to align with MS templates
* Cleanup default template settings
* Write unattended install parameters when either connection string or development database is set
* Include RootNamespace in UmbracoPackage template
* Update Umbraco specific gitignore rules
* Revert "Lowercase framework parameter to align with MS templates"
This reverts commit 22de389272.
* Add exclude-gitignore parameter
* Update template schemas
* Add minimal-gitignore parameter
* Add new connection-string-provider-name parameter
* Use template value forms to correctly encode JSON values
* Add new development-database-type parameter
* Update package template and fix App_Plugins directory rename
* Remove conflicting short parameter name
* Lowercase framework parameter to align with MS templates
* Cleanup default template settings
* Write unattended install parameters when either connection string or development database is set
* Include RootNamespace in UmbracoPackage template
* Update Umbraco specific gitignore rules
* Revert "Lowercase framework parameter to align with MS templates"
This reverts commit 22de389272.
* Add exclude-gitignore parameter
* Update template schemas
* Add minimal-gitignore parameter
* Introducing a new Snippet type
* Adding a SnippetCollection and SnippetCollectionBuilder
* Using snippetCollection to get the snippets instead of fileService
* Fixed fetching the correct content
* Make ISnippet non-discoverable
* Split the SnippetCollection into PartialViewSnippetCollection and PartialViewMacroSnippetCollection
* Update CodeFileController to use the 2 snippet collections
* Display the names with Empty.cshtml on top
* Remove merging embedded snippets with custom snippets from ~\Umbraco.Web.UI\umbraco\PartialViewMacros\Templates folder for the Partial View Collection
* Fix naming
* Fix another naming
* Cleanup + Use base items
Co-authored-by: Bjarke Berg <mail@bergmania.dk>
(cherry picked from commit 9326cc5fc6)
* Show nicer overlay when clicking block card for deleted element type
* Cleanup
* Remove stop-scrolling container
* Use flex-start instead on start
* Remove legacy flexbox fallback
* Remove unnecessary hack
* Use standard gap property instead
* Localization of message
* Fix translation
* End sentence with a dot
(cherry picked from commit ebb1dc21a9)
* Support SVG icon in umb-property-actions
* Update icons for existing property actions
* Make backwards compatible
* Update existing property actions to not use legacy icons as we now specify full icon name, but we need this for backward compatibility
* Change from named function to local function
* Add property actions to multi url picker
* Inject overlayService and set isDisabled in watch
* Add function to clear
* Updated the installer screen, and the no NoNodes.cshtml with link to the new learning base for Umbraco
* Added ref to the link
Co-authored-by: Dennis Aaen <dennis@umbraco.com>
* Support custom SVG icon in menu item with legacy support
* Update menu icons
* Update action icons
* Adjust icons in menu actions with legacy fallback
* Don't use legacy icon
* Update comments
* Publish invariants from non default
* Add culture impact service
* Use the new culture impact service instead of newing up culture impacts
* Only publish invariant properties on non-defaults with invariant culture
Essentially we want to be able to fall back to the default culture for the variant properties if a document type is made invariant, not whatever culture was published last.
* Move creation logic into the service
* Make creation method names consistent
* Fix tests
We compare the cultures directly, so they have to be the same object instance unfortunately
* Add test for the new setting
* Add new config to server variables
* Fix test setup
* Apply suggestions from code review
Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>
Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>
* Show nicer overlay when clicking block card for deleted element type
* Cleanup
* Remove stop-scrolling container
* Use flex-start instead on start
* Remove legacy flexbox fallback
* Remove unnecessary hack
* Use standard gap property instead
* Localization of message
* Fix translation
* End sentence with a dot
* Amended nullability of base Deploy classes.
* Ensured ContentItemDisplay.Variants is non-nullable.
* Set IArtifactSignature.Dependencies to be non-nullable.
* Update template collection retrieval to be non-nullable.
* IMediaService.GetRootMedia to be non-nullable.
* Non-nullable collection for IMemberService.GetMembersByMemberType.
* Non-nullable collection for member role retrieval.
* Non-nullable collection for root dictionary items.
* Non-nullable collection for child dictionary items.
* Applied suggestions from code review
Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>
* Remove extra dot
Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>
Co-authored-by: Nikolaj Geisle <niko737@edu.ucl.dk>
(cherry picked from commit 63b77b7743)
* Allowed null item retrievel in IDeployContext.
* Allowed null item retrievel in IImageSourceParser.
* Allowed null item retrievel in IMacroParser.
* Set null syntax for other Deploy interfaces.
(cherry picked from commit a42ff2c267)
* Introducing a new Snippet type
* Adding a SnippetCollection and SnippetCollectionBuilder
* Using snippetCollection to get the snippets instead of fileService
* Fixed fetching the correct content
* Make ISnippet non-discoverable
* Split the SnippetCollection into PartialViewSnippetCollection and PartialViewMacroSnippetCollection
* Update CodeFileController to use the 2 snippet collections
* Display the names with Empty.cshtml on top
* Remove merging embedded snippets with custom snippets from ~\Umbraco.Web.UI\umbraco\PartialViewMacros\Templates folder for the Partial View Collection
* Fix naming
* Fix another naming
* Cleanup + Use base items
Co-authored-by: Bjarke Berg <mail@bergmania.dk>
* add new rule to globalconfig
* Fix warnings in Web.Website
* Fix more warnings in Web.Website
* Fix more build warnings in Web.Website
* Fix more warnings in Web.Website
* Fix tests
* Fix proper constructor call
* Fix not being able to run project
* Fix Obsolete method
Co-authored-by: Nikolaj Geisle <niko737@edu.ucl.dk>
* Amended nullability of base Deploy classes.
* Ensured ContentItemDisplay.Variants is non-nullable.
* Set IArtifactSignature.Dependencies to be non-nullable.
* Update template collection retrieval to be non-nullable.
* IMediaService.GetRootMedia to be non-nullable.
* Non-nullable collection for IMemberService.GetMembersByMemberType.
* Non-nullable collection for member role retrieval.
* Non-nullable collection for root dictionary items.
* Non-nullable collection for child dictionary items.
* Applied suggestions from code review
Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>
* Remove extra dot
Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>
Co-authored-by: Nikolaj Geisle <niko737@edu.ucl.dk>
* Ensured container collections retrieved from content type services return empty rather than nullable.
* Reverted change to ILocalLinkParser.
* Reverted change to ILocalLinkParser (2).
* Update GetByParentOrChildId in IRelationService to return non-nullable result.
* Added obsoleted constructor due to change in MemberTypeService.
* Updated nullability of Compare method parameters in IServiceConnector.
* Adjusted nullability of method on IValueConnector.
* Removed nullability of ArtifactDeployState.
* Allowed null item retrievel in IDeployContext.
* Allowed null item retrievel in IImageSourceParser.
* Allowed null item retrievel in IMacroParser.
* Set null syntax for other Deploy interfaces.
* 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)
* Add IPublishedModelFactory.GetModelType method to remove work-around
* update new location of anime.js
* set new location of 'diff' and update to new global Diff vs JsDiff
* Embedded snippets
* Do not copy an empty folder
Co-authored-by: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com>
* DefaultItemExcludes from Umbraco.Cms.StaticAssets
* Update src/Umbraco.Cms.StaticAssets/Umbraco.Cms.StaticAssets.csproj
Co-authored-by: Ronald Barendse <ronald@barend.se>
Co-authored-by: Ronald Barendse <ronald@barend.se>
* RCL for static assets to replace the nuspec
* Fix build
* Fix unit tests
* clean up in build.ps1
* Removed test (lang files will be removed later anyway)
* Fixed namespaces.. + Ensure we set web root path if missing (e.g. wwwroot folder do not exist) + Added StaticWebAssetBasePath
* fixed namespace
* cleanup
* Set root variable
* Added static assets
* Experimenting with StaticWebAssetBasePath
* Embedded lang files into Umbraco.Core
* Removed legacy test. New test can be implemented instead
* Fixed tests
* clean up
* Fix merge issue
* Update language models to get and set manual name
* Save custom language name in controller
* Rewrite AngularJS language edit view and controller
* Cleanup language overview
* Remove icon from language overview
* Make styling of control group the same as properties
* Ensure both ISO code and culture name are set in language model
* Use new language model constructor
* Update tests to use new language constructor
* Update culture name in dictionary package export
* Use language name in dictionary
* Fix language nullability issues
* Cleanup GetAllCultures and added null checks
* Re-add obsolete constructors
* Make language name required and update Cypress test
* Fix routing/saveNewLanguages Cypress test
* Make language name optional (improved backwards compatibility)
Co-authored-by: Ronald Barendse <ronald@panoramastudios.nl>
* Updating to Examine 3 beta. Currently not building due to missing support for updating values in the OnTransformingIndexValues event
* Updated to beta 6 - It builds, but we need to fix tests
* Fixed issue with values being passed into nested lists.
* Fixed issue in test
* Updated to examine beta.9
* Fixed breaking changes
* Upgraded MailKit
* Upgraded Microsoft.* packages
* Upgrades various nuget packages to latest version
* Upgrades various nuget packages related to test
* update package-lock.json to new npm format
* bump all angular dependencies to latest 1.8.3
* bump jquery to 3.6.0
* remove dubious 'npm' dependency and set engines versions to avoid warnings
* bump signalr dependency from v3 to v6
* bump 'underscore' from 1.12.1 to 1.13.1
* bump 'diff' from 3.5.0 to 5.0.0
* bump 'clipboard' from 2.0.4 to 2.0.10
* bump 'flatpickr' from 4.6.9 to 4.6.13
* bump 'moment' from 2.22.2 to 2.29.3
* bump 'spectrum-colorpicker2' from 2.0.8 to 2.0.9
* bump 'underscore' from 1.13.1 to 1.13.2
* update 'less' 'autoprefixer' 'cssnano' and accompanying gulp tasks to latest
* bump all gulp dependencies
except gulp-imagemin since we do not yet support esmodules in the backoffice client
* remove 'fs' since the package is marked as malicious and do not seem to be used
* update AcceptanceTests lockfile to latest npm + dependency updates
* bump '@babel/core' from 7.17.5 to 7.17.9
* bump karma dependencies to latest
* bump 'animejs' from 2.2.0 to 3.2.1
* bump 'jasmine-core' from 3.5.0 to 4.1.0
* remove deduped 'caniuse-lite'
* bump wicg-inert from ^3.0.2 to 3.1.1
* bump 'nouislider' from 15.5.0 to 15.5.1
* add slight delay for confirmation overlay
* ignore postinstall task for acceptance tests since env file is generated manually
* upgrade cypress to 9.5.4
* add wait step to content.ts tests
* Revert "ignore postinstall task for acceptance tests since env file is generated manually"
This reverts commit 61acebfda2.
* increate wait amount of content rollback tests
* Revert "upgrade cypress to 9.5.4"
This reverts commit 2febf139a4.
* Revert "update AcceptanceTests lockfile to latest npm + dependency updates"
This reverts commit b45d20b3cd.
* update lockfile version
* update umbraco-cypress-testhelpers to latest
Co-authored-by: Bjarke Berg <mail@bergmania.dk>
* Add pr first response workflow
* Returning all packages from PackagingService so they show in the backoffice
Co-authored-by: Sebastiaan Janssen <sebastiaan@umbraco.com>
Co-authored-by: Bjarke Berg <mail@bergmania.dk>
Co-authored-by: Paul Johnson <pmj@umbraco.com>
* use localize keys instead of hard coded text
* Update text
* Remove duplicate -
* Add italics to bottom text
Co-authored-by: Nikolaj Geisle <niko737@edu.ucl.dk>
* Amended GetAll() on IDataTypeService to return an empty collection rather than null.
* Added a ClearSessionValue method to ISessionManager (given you can no longer set a value to null).
* Allow for null values in a StatefulNotification.
* Removed obsoletion of synchronous messages on TreeControllerBase.
* Fixed further CS8620 warnings in core project.
* Further fix to nullable warning.
* Aligned nullablility of retreiving tree nodes and menus, synchronously or asynchronously (such that we no longer can get null values, always empty collection objects).
* add support for UserService to change password
* for 'users' section use UserService to change password
* user infinite editor should now use the changepassword dialog as seen in the 'users' section
* add some autocomplete and name changes to change-password form to support autofill and password managers
* Revert "for 'users' section use UserService to change password"
This reverts commit 68c5972777.
* Revert "add support for UserService to change password"
This reverts commit a64b756ad3.
* use the currentUserResource to change password
* only return true on success since notifications are handled in the resource
* Update to ImageSharp 2.1.0 and ImageSharp.Web 2.0.0-alpha.0.23
* Rename CachedNameLength to CacheHashLength and add CacheFolderDepth setting
* Replace PhysicalFileSystemProvider with WebRootImageProvider
* Support EXIF-orientation in image dimention extractor
* Remove virtual methods on FileProviderImageProvider
* Simplify FileInfoImageResolver
* Update to SixLabors.ImageSharp.Web 2.0.0-alpha.0.25 and remove custom providers
* Make CropWebProcessor EXIF orientation-aware
* Improve width/height sanitization
* Also use 'v' as cache buster value
* Add WebP to supported image file types
* Update to SixLabors.ImageSharp.Web 2.0.0-alpha.0.27 and fix test
* Fix rounding error and add test cases
* Update to newest and stable releases
* Move ImageSharpImageUrlGenerator to Umbraco.Web.Common
* Use IConfigureOptions to configure ImageSharp options
* Implement IEquatable on ImageUrlGenerationOptions classes
* Fix empty/null values in image URL generation and corresponding tests
* Use IsSupportedImageFormat extension method
* Remove unneeded reflection
* Update localized to get the physical paths on .net 6
* Update src/Umbraco.Web.BackOffice/DependencyInjection/UmbracoBuilder.LocalizedText.cs
Co-authored-by: Ronald Barendse <ronald@barend.se>
* Minor amends for variable naming and to resolve warnings on use of explicit types.
Co-authored-by: Ronald Barendse <ronald@barend.se>
Co-authored-by: Andy Butland <abutland73@gmail.com>
* Move AuditService to core project
* Move two factor login service to core
* Move ServerRegistrationService to core
* Move BasicAuthService to Core project
* Move IdKeyMap to core project
* Added CacheInstructionService to the infrastructure namespace
* Move DataTypeService to core namespace
* Update CacheInstructionService.cs to use CoreScopeProvider
* Move core editors to core
* Move more Property editors and configuration
* Remove obsoleted constructors in internal classes
* Update PropertyEditors to use new ctors
* Fix propertyEditors to use new ctors
* Use the right property editor constructors
* add DI in the property method
* Update grid to use new ctor
* Fix non-assignment of variable
* Apply suggestions from code review
Co-authored-by: Mole <nikolajlauridsen@protonmail.ch>
* Fix suggestions from code review
Co-authored-by: Nikolaj Geisle <niko737@edu.ucl.dk>
Co-authored-by: Kevin Jump <kevin@thejumps.co.uk>
Co-authored-by: Mole <nikolajlauridsen@protonmail.ch>
* Amended IFileSystem OpenFile to return Stream.Null rather than a nullable stream.
* Updated IUmbracoMapper to map enumerables without null elements given non-null inputs.
* Amended EntityRepositoryBase to not return null collections.
* Made IPublishedElement.Properties a non-nullable collection.
* Add logging to SetConsentLevel
* Obsolete old ctor and change logging to email
* Fixed a few issues with MetricsConsentService logging
* Fixed null check
Co-authored-by: Bjarke Berg <mail@bergmania.dk>
* Add logging to SetConsentLevel
* Obsolete old ctor and change logging to email
* Fixed a few issues with MetricsConsentService logging
* Fixed null check
Co-authored-by: Bjarke Berg <mail@bergmania.dk>
* Move MapPathWebRoot & MapPathContentRoot to extension methods.
* Set AspNetCoreHostingEnvironment ApplicationId without service provider.
* Drop some usages of TempHostingEnvironment
* Logging setup cleanup - AppDomainId has no value (it is always "1")
Creating new AppDomains isn't possible in .Net core.
Attempting to do so results in a platform exception.
A dotnet core process has a single AppDomain instance whose Id property
is always the integer 1.
* Setup logging without IHostingEnvironment
* Mark IUmbracoBuilder.BuilderHostingEnvironment obsolete
And remove internal usages.
* Typeloader no longer uses umbraco-types.list
* Added UmbracoHost - setup serilog two-stage init.
* Add ApplicationIdEnricher
* Defensive tweaks for those not using UmbracoHost
* Drop UmbracoHost static class
* Setup runtime logger without host builder extensions.
* Prevent RefreshingRazorViewEngine related explosions
* Filescoped namespaces for new classes.
* Apply suggestions from code review
* Upgraded MailKit
* Upgraded Microsoft.* packages
* Upgrades various nuget packages to latest version
* Upgrades various nuget packages related to test
* Add new columns to the member table
* Add missing IsApproved column
* Add joins with nested query
* Add query for selecting new column values from existing members
* Update the member data from the same query
* Make escapes work for sqlite
* Use GetFieldNameForUpdate instead of GetFieldName
* Left join on memberDto
* Remove the now unused property types and data
* Don't create member columns as properties anymore
* Store old properties in fields on member
Also switch the dates to nullable since they can be null
* Map columns when mapping from DTO to Member object
* Display columns in the member content app
* Fix null exception when creating new user
* Hide value if user doesn't have access to sensitive data
* Remove hardcoded member properties
* Obsolete old member alias constants
* Map and persist member properties
* Correctly update LastLogin when member logs in
* Map IsApproved and IsLockedOut when saving member in backoffice
* Update the query mappers for members
* Fix member service tracks dirty changes test
* Remove no longer existing property types from member type builder
* Fix null error in UpdateMemberProperties
* Fix builder tests
* Fix SetupMemberTestData in MemberControllerUnitTests
* Let LastLoginDate be null and handle check in controller
There's no reason to default a perfectly nullable property to default(DateTime)
* Add translation key for is approved and use that instead of constant
* Obsolete old label constants
* Fix whitespace post merge
* Fix up test comments
* Apply suggestions from code review
Co-authored-by: Elitsa Marinovska <21998037+elit0451@users.noreply.github.com>
* Fix member properties always being sensitive
Co-authored-by: Elitsa Marinovska <elm@umbraco.dk>
Co-authored-by: Elitsa Marinovska <21998037+elit0451@users.noreply.github.com>
* Add initial classes
* Add TelemetryProviders
* Add new NodeCountService.cs and NodeTelemetryProvider
* Add data contract attribute to UsageInformation
Otherwise it wont serialize correctly
* Implement more providers
* Fix builders and propertyEditorTelemetry
* Add MediaTelemetryProvider
* Add MediaTelemetryProvider
* Fix doubling of media telemetry
* Move contentCount from NodeCountTelemetryProvider and move to ContentTelemetryProvider
* Revert ContentTelemetryProvider changes
* Add detailed information to TelemetryService
* Add integration tests
* Add more tests and todos for tests
* Fix stylecop warnings
* Use yield return instead of instantiating local list
* Implement Macro test
* Inject interface instead of implementation in TelemetryService
* Fix TelemetryServiceTests.cs
* Implement media tests
* Implement propertyTypeTests
* Implement constants instead of hardcoded strings
* Add SystemInformationTelemetryProvider
* Use SystemInformationTableDataProvider in UserDataService
* Implement more properties
* Add UsageInformation
* Replace UserDataService with SystemInformationTelemetryProvider
* Undo changes to UserDataService and obsolete it
* Remove ISystemInformationTableDataProvider
* Register SystemInformationTelemetryProvider as telemetry provider
* Use constants for telemetry names
* Make UserDataServiceTests test SystemInformationTelemetryProvider instead
* Update UserDataServiceTests to cover new data
* Add unit tests
* Add integration test testing expected data is returned
* Implement Analytics dashboard
* Improve assertion message
* Add text and styling to analyticspage
* Rename consent to analytic
* implement save button for consent level
* Implement save button
* Fix system information test
* Add TelemetryResource
* Move telemetry providers to infrastructure
* Add database provider to system information
* Set startvalue for slider
* Fix unit tests
* Implement MetricsConsentService using KeyValueService
* Return void hen setting the telemetry level
* fix startposition when not reloading
* Add a couple tests
* Update src/Umbraco.Core/Services/MetricsConsentService.cs
* Rename ConsentLevel.cs
* Use direct Enum instead of parsing
* rename consent resource
* add lazy database
* refactor slider
* Implement ng-if and propers pips
* Make classes internal
* Fix slider not loading when navigating to tab
* Add telemetry level check to TelemetryService.cs
* Add Consent for analytics text
* Fix build errors for unit tests
* Fix TelemetryServiceTests
* revert package-lock.json
* Fix integration test
* Update slider
* Update TelemetryService.cs
* Apply suggestions from code review
Co-authored-by: Mole <nikolajlauridsen@protonmail.ch>
Co-authored-by: Nikolaj Geisle <niko737@edu.ucl.dk>
Co-authored-by: nikolajlauridsen <nikolajlauridsen@protonmail.ch>
* wrapping SetAllFastSortedLocked in try catch
* Potential issue mitigation by retrieving all data from the database at once instead of one at a time while populating the NuCache file.
* Moved content retrieval to within the try-catch block.
* using InGroupsOf() to retrieve content without loading absolutely everything into memory.
* added "old" method signatures to prevent breaking change in ContentStore
* Revert code style cleanups for clarity
Co-authored-by: Sebastiaan Janssen <sebastiaan@umbraco.com>
* Added functionality to enable 2FA for users..
* Do not use the obsolete ctor in tests
* cleanup
* Cleanup
* Convert User view from overlay to infinite editor
* Add support for having additional editors on top of the user (2fa) which overlay does not support
* Add controllerAs syntax in the template
* Remove unused dependencies
* Adjustments to 2fa login view
* organize elements
* add translations
* add a11y helpers
* add autocompletion = one-time-code
* change to controllerAs syntax
* add callback to cancel 2fa and fix error where submit button was not reset when all other validations were
* add a cancel/go back button to the 2fa view
* replace header with something less obstrusive
* move logout button to the footer in the new editor view
* change 'edit profile' to an umb-box and move ng-if for password fields out to reduce amount of checks
* Add umb-box to external login provider section
* add umb-box to user history section
* bug: fix bug where notificationsService would not allow new notifications if removeAll had been called
* add styling and a11y to configureTwoFactor view
- also ensure that the view reloads when changes happen in the custom user view to enable 2fa
- ensure that view updates when disabling 2fa
- add extra button to show options (disable) for each 2fa provider
* add notification when 2fa is disabled
* add data-element to support the intro tour
also changed a minor selector in the cypress test
* correct usage of umb-box with umb-box-content
* do not use the .form class twice to prevent double box-shadow
* make tranlastion for 2fa placeholder shorter
* ensure that field with 2fa provider is always visible when more than 1 provider
* move error state of 2fa field to token field
* update translation of multiple 2fa providers
* move CTA buttons to right side to follow general UI practices
* rename options to disable
* add disabled state
* add helper folders to gitignore so you can work with plugins and custom code without committing it accidentally
* move the disable functionality to its own infinite editor view
* use properties from umb-control-group correctly
* add 'track by' to repeater
* make use of umb-control-group
* remove unused functions
* clean up translations
* add Danish translations
* copy translations to english
* Only return enabled 2fa providers as expected
Co-authored-by: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com>
* Fixes RedirectToUmbracoPageResult to handle redirects to pages with domains defined on them.
* Renamed variable to match with updated service type.
* Apply suggestions from code review
Co-authored-by: Ronald Barendse <ronald@barend.se>
* Fixed usage of IUrlHelper.
Co-authored-by: Ronald Barendse <ronald@barend.se>
* Fix KeepAlive Config so that value from appsettings.json is used if present
* update comment to reflect get-set on KeepAlivePingUrl
Co-authored-by: Nathan Woulfe <nathan@nathanw.com.au>
* Added "move" action for dictionaries
* Replaced DictionaryMove with MoveOrCopy for PostMove
* Removed int parse for dictionary postmove id & parentId, changed paramtype for move in dictionary.resource
* Added localizedText for new dictionary validationProblems & adjusted nullcheck for move.ParentId
* Fixed logic for move dictionary parent
* Resolve issues creating database file for new install on app services.
* Prevent accidental create of SQLite database when testing connections
* Fix e2e tests against sqlite db
* Update spelling of appearance
in 'Editor appearance' key was incorrectly apperance
* Update spelling of appearance
in 'headlineEditorAppearance' key was incorrectly apperance
* Corrected the base URL to use when retrieving and setting public access details.
* Fixed original issue from a merge conflict.. Now using the correct v9+ resource
Co-authored-by: Bjarke Berg <mail@bergmania.dk>
* Corrected the base URL to use when retrieving and setting public access details.
* Fixed original issue from a merge conflict.. Now using the correct v9+ resource
Co-authored-by: Bjarke Berg <mail@bergmania.dk>
* Update UmbracoProject.csproj
Changing the comment would make the intent of the comment more clear, as you cannot use InMemoryAuto on compiled Razor views, but you're still allowed to keep it as false if you're using a different ModelsBuilder mode.
* Update UmbracoProject.csproj
Hoping this kicks off the PR checks...
* Added configuration and checks for creation of default Umbraco data.
* Fixed configuration binding issues.
* Updated comments.
* Added DefaultDataCreationSettings to the JSON schema.
* Removed option to not install default relation types as Umbraco relies on (and will recreate) them if they aren't there.
* Renamed configuration class used for install of default data and converted to named optios.
* Fix to failing unit tests.
* Fixes for integration tests.
* Apply suggestions from code review
Co-authored-by: Elitsa Marinovska <21998037+elit0451@users.noreply.github.com>
* Further fix from code review.
* Updated naming as per PR review suggestions.
* Update src/Umbraco.Infrastructure/Migrations/Install/DatabaseDataCreator.cs
Co-authored-by: Elitsa Marinovska <21998037+elit0451@users.noreply.github.com>
Co-authored-by: Elitsa Marinovska <21998037+elit0451@users.noreply.github.com>
* Cleanup; Fix lang keys
* Documentation
* Typos
* Distinct the results
* Changed GetPagedRelationsForItems to GetPagedRelationsForItem as we would only expect a single id to be passed when calling this + fix more docs
* Changed to the correct reference
* Unused code
* Only load references when info tab is clicked
Co-authored-by: Bjarke Berg <mail@bergmania.dk>
* Cleanup; Fix lang keys
* Documentation
* Typos
* Distinct the results
* Changed GetPagedRelationsForItems to GetPagedRelationsForItem as we would only expect a single id to be passed when calling this + fix more docs
* Changed to the correct reference
* Unused code
* Only load references when info tab is clicked
Co-authored-by: Bjarke Berg <mail@bergmania.dk>
* Created Persistence.SQLite project skeleton.
* SQLite database initialization
* Various changes and hacks to make things work.
* WIP integration tests
* Fix thread safety tests
* Fix tests that relied on tie breaker sorting.
Spent a fair amount of time looking for a less lazy fix but gave up.
* Convert right join to left join ContentTypeRepository.PerformGetByQuery
SQLite doesn't support right join
* Fix test Can_Generate_Delete_SubQuery_Statement
Worth noting that NPoco.DatabaseTypes.SQLiteDatabaseType doesn't override
EscapeSqlIdentifier so NPoco will escape with [].
SQLite docs say > "A keyword enclosed in square brackets is an identifier.
This is not standard SQL.
This quoting mechanism is used by MS Access and SQL Server and is
included in SQLite for compatibility."
Also could have updated SqliteSyntaxProvider to match npoco but
decided against it.
* Fixes for paginated custom order by
* Fix tests broken by lack of unique indexes.
* Fix SqlServerTableByTableTest tests.
These tests didn't actually do anything as the tables already exist so schema creator just returned.
Did however point out that the default implementation for DoesTableExist just returns false so added a default naive implementation.
* Fix ValidateLoginSession - SelectTop must come later
* dry up database cleanup
* Fix up db migration tests.
We can't drop pk in sqlite without recreating table.
Test looks to be testing that add column works as intended which we can test.
* Prevent schema creation errors.
* SQLite ignore lock tests, WAL back on.
* Fix package schema tests
* Fix NPocoFetchTests - case sensitivity not under test
* Fix AdvancedMigrationTests (where possible)
Migrations probably need a good look later.
Maybe nuke old migrations and only support moving to v10 from v9.
If we do that can do some cleanup.
* Cleanup test database configuration
* Run integration tests against SQLite on build agent.
* Drop MS.Data.SQLite
System.Data.SQLite was quicker to roll out due to more CLR type mapping
* YAML
* Skip Umbraco.Tests.Integration.SqlCe
* Drop SqlServerTableByTable tests.
Until this week they did nothing anyway as they with NewSchemaPerTest
so the tests all passed as CreateTable was no op (already exists).
Also all of the tables are created in an empty database by SchemaValidationTest.cs
DatabaseSchemaCreation_Produces_DatabaseSchemaResult_With_Zero_Errors
* Might aswell run against macOS also.
* Copy azure pipelines task header layout
* Delete SQLCe projects
* Remove SQL CE specific code.
* Remove SQL CE NuSpec, template params, build script setup
* Delete umbraco-netcore-only.sln
* Add SkipTests solution configuration and use for codeql
* Remove reference to deleted nuspec file.
* Refactor ConnectionStrings WRT DataDirectory placeholder & ProviderName.
At this point you can try out SQLite support by setting the following
in appsettings.json and then completing the install process.
"ConnectionStrings": {
"umbracoDbDSN": "Data Source=|DataDirectory|/umbraco.sqlite",
"umbracoDbDSN_ProviderName": "System.Data.SQLite"
},
Not currently possible via installer UI without provider name pre-set in
configuration.
* Switch to Microsoft.Data.Sqlite
Some gross hacks but will be good to find out if this works
with apple silicon.
* Enable selection of SQLite via installer UI (also quick install)
* Remove SqlServerDbProviderFactoryCreator to cleanup a TODO
* Move SQL Server support to its own class library
* Add persistence dependencies to Umbraco.CMS metapackage
* Bugfix packages delete query
Created invalid query for SQLite.
* Try out cypress tests Linux + SQLite
* Prevent cypress test artifact upload failure on attempt 2+
* LocalDb bugfixes
* Drop redundant enum
* Move SqlClient constant
* Misc whitespace
* Remove IsSqlCe extension (TODO: drop non 9->10 migrations later).
* Umbraco.Persistence.* -> Umbraco.Cms.Persistence.*
* Display quick install defaults and per provider default database name.
* Misc remove old comment
* little re-arrange
* Remove almost all usages of IsSqlite extension.
* visual adjustments
* Custom Database Configuration is last step and should then say Install.
* use text instead of disabled inputs
* move legend, rename to Install
* Update SqlMainDomLock to work without distributed locks.
* Added IDistributedLockingMechanism interface and in memory impl.
* Drop locking from ISqlSyntaxProvider & wire up scope to abstraction.
* Added SqlServerDistributedLockingMechanism
* Move distributed locking interfaces and exceptions to Core + xmldocs.
* Fix tests, Misc cleanup, Add SQL distributed locking integration tests
* Provide mechanism to specify DistributedLockingMechanism in config
(even if added by composer)
* Nomplementation -> NoImplementation
* Fix misleading comment
* Integration tests use SqlServerDistributedLockingMechanism when possible
* Handle up-gradable locks SqlServerDistributedLockingMechanism.
TODO: InMemoryDistributedLockingMechanism.
Note: Nuked SqlServerDistributedLockingMechanismTests, will still sleep
at night.
Is covered by Umbraco.Cms.Tests.Integration.Umbraco.Infrastructure.Persistence.LockTests
* Make tests pass for InMemoryDistributedLockingMechanism, pretty hacky.
* Tweak constraints on WithCollectionBuilder so i can drop bad constructor
* Added SqliteDistributedLockingMechanism
* Dropped InMemoryDistributedMechanism + magic
InMemoryDistributedMechanism was pretty rubbish and now we have
a decent implementation for SQLite as we no longer block readers
see 8d1f42b.
Also drop the CollectionBuilder setup, instead do the same as we do
for syntax providers etc, it's more automagical so we never require an
explicit selection although we are allowing for it.
However keeping the optional IUmbracoBuilder constructor param for
CollectionBuilders as it's extremely useful.
* Fix quick install "" database name.
* Hide Database Configuration section when a connection string is pre-set.
Doesn't seem worth it to extract db name from connection string.
* Ensure wal test 2+
* Fix logging inconsistencies.
* Ensure in transaction when obtaining locks + no-op the SQLite read lock.
There's no point in running the query just to make a single test pass.
* Fix installer database display names
* Allow SQLite shared cache without losing deferred transactions
* Opt into shared cache for new SQLite databases + fix filename
* Fix misc inconsistency in .gitignore
* Prefer our interceptor interface
* Restore DEBUG_DATABASES code OnConnectionOpened in case it's used.
* Back to private cache.
* Added retry strategy for SQLite + refactor out SQL server specific stuff
* Fix SQL server tests.
* Misc - Orphaned comment, incorrect casing.
* InMemory SQLite test database & turn shared cache back on everywhere.
Co-authored-by: Niels Lyngsø <niels.lyngso@gmail.com>
* Further enhancements for legacy password support.
For users - try new style passwords first and fallback on failure seeing
as a valid modern password is the norm, rehash is only one time.
For both users and members also deals with the fact that for
useLegacyEncoding we could store any old thing in passwordConfig
e.g. it's possible to get Umbraco8 to store "HMACSHA384" alongside
the hash even though it's really HMACSHA1 with password used as key
(try it out by tweaking machine key settings and setting
useLegacyEncoding=true).
Has behavioral breaking changes in LegacyPasswordSecurity as the
code now expects consumers to to respect IsSupportedHashAlgorithm
rather than ignoring it.
* Less rushed removals
* Fixed a bug in the MultiUrlPickerValueConverter file, where an invalid value being set will result in a NullReferenceException
* Change to checking for whitespace values before de-serializing
Co-authored-by: Paul Woodland <paul.woodland@pwnewmedia.com>
* Fix relation type tests
* Fix saving content not updating the UI
We have to map to display after we've saved content or we'll be missing information generated when saving content such as ID
* Dont map to display to get isBlueprint
* Map dirty culture to EditedCultures before saving
And set the name of the content when setting default culture variant name
* Update src/Umbraco.Web.BackOffice/Controllers/ContentController.cs
Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>
Co-authored-by: nikolajlauridsen <nel@umbraco.dk>
Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>
* Adding TrackedReferencesController
* Adding/changing views
* Adding/Editing js files
* RelationService changes
* RelationRepository changes
* Adding missing translations
* Adding/Modifying tests
* Beginning of #9125 migration
* Introducing a new component + refactoring based on that
* Abstracting + refactoring
* Work on content unpublishing
* Work on media.delete
* Various small changes
* Beginning of #9119 migration
* Changes on content.delete
* Various fixes
* Adding new keys used in the listview bulk actions
* Adding methods to get the items used in relations from array of ids
* Adding the checkLinkedItems function to the trackedReferencesResource
* Passing the selected items from a listview to unpublish and delete
* Adding umb-tracked-references-listview
* Adding umb-tracked-references-listview-table with language column
* Fixes for tracked references
* Changes in listview unpublish dialog
* Changes in listview delete dialog
* Removing Variants logic as it is not currently supported
* Visual fixes
* Closing dialogs on click
* Fix wording
* Fix breaking changes
* Change to a single title "Items in use" instead of 2 different for Content and Media
* No need for obsoleting because we can change new controllers
* Return ActionResult from actions
* V9: Prevent delete or unpublish of items that have references (#12047)
* Introducing config settings that prevent delete or unpublish of items referenced by other items
* Disable deletion of content items and show a new warning
* Disable deletion of media items and show a new warning
* Disable deletion of list view items
* Disable unpublish and bulk unpublish
* Add a new warning
* V9: Displaying descendants in use as part of item tracking (#12039)
* Replace HasReferencesInDescendants with GetPagedDescendantsInReferences
* Display descendants in use on parent's info tab
* Add getPagedDescendantsInReferences to trackedReferencesResource
* Add lang keys for Descendants in use
* Refactoring controller actions
* Don't call check descendants usage when it is a new item
* rename busfy to busy
* always show references
* rearrange for scrollbar to appear at the edge of the dialog
* use the word referenced instead of used
* change fallback texts
* Added "IsDependency" to relation types
* refactor of umb-tracked-references
* rename checkLinkedItems to getPagedReferencedItems
* rename check to load, to be consistent with the rest.
* Refactored backend . Needs frontend fixes
* Cleanup
* Use filters
* Front-end refactor to match refactored end-points
* Fixed bug + warning
* Fixed query (more then 2100 descensdants) and optimized it (using nested select instead of inner join).
* remove comment
* hideNoneDependencies including varying text for the configuration
* Hack for SqlCE :(
* some final adjustments for item tracking ui
* Unbreak change
Co-authored-by: Niels Lyngsø <niels.lyngso@gmail.com>
Co-authored-by: Bjarke Berg <mail@bergmania.dk>
This is the same fix that @inetzo made for a PR I checked earlier today except the fix was for U8. Since I didn't notice it was U8 until I had merged, I thought I'd fix it here but credit should go to @inetzo
#12097
* Check form and querystring when validating ufprt
Checks to see if the request has form data before validating the `ufprt` parameter, and if it doesn't assumes it must be on the querystring
* Create GetUfprt extension method
* Use GetUfprt extension
* Update UmbracoRouteValueTransformer to use GetUfrpt()
* Added missing using statement
* Check for StringValues.Empty
* Validate that imageUrl param is a relative path
To prevent open redirects, the imagePath should point to a relative path (i.e. not point to a different domain).
* LocalRedirectResult instead of RedirectResult
Uri.Relative does not prevent paths like //google.com/test.jpg
Checking for both relative and local seems to cover all the cases.
* Fixes issue with OrderByDescending generating invalid SQL
* Update OrderByDexcending with single field for consistecy
Co-authored-by: Michael <michael@crossingpaths.be>
GetRouteById and RedirectUrlService expects the culture to be null if it's invariant, however, Cultures in IPublished content uses empty string for invariant culture
* Add SiteIdentifierService
* Use SiteIdentifierService in TelemetryService
* Use SiteIdentifierService when installing
* Remove timeout
* Use TryGetOrCreateSiteIdentifier in TelemetryService
* Add site identifier to dashboard url
* Fix and add tests
* Don't accept empty guid as valid site identifier
* Fix dashboard controller
* Fix site id query parameter
* Use Optionsmonitor onchange
Co-authored-by: nikolajlauridsen <nel@umbraco.dk>
Co-authored-by: Bjarke Berg <mail@bergmania.dk>
* Uninstall Serilog.Filters.Expressions as it is deprecated by the Serilog team
NOTE: This package brought in a dependenacy on a package called SuperPower from Datalust
* Install replacement package Serilog.Expressions
* Update implementation of Serilog.Expressions
* Add new test cases to verify expressions still working
Currently Serilog.Expressions only supports short names such as @x @l @m and @mt as opposed @Exception @Level @Message and @MessageTemplate
* Use Serilog.Expressions NamedFilters extension point, to plug the missing Has() function in expressions that was not ported across by the library
* Update to dev build of Serilog.Expressions to verify new method we can override works
* Update to release build of Serilog.Expressions 3.3.0 now its been pushed to Nuget
* Filesystem based MainDomLock & extract interface for MainDomKey generation (#12037)
* Extract MainDomKey generation to its own class to ease customization.
Also add discriminator config value to GlobalSettings for advanced users.
Prevents a mandatory custom implementation, should be good enough for
the vast majority of use cases.
* Prevent duplicate runs of ScheduledPublishing during slot swap.
* Add filesystem based MainDomLock
(cherry picked from commit 860c8e8ae2)
# Conflicts:
# src/Umbraco.Infrastructure/Runtime/SqlMainDomLock.cs
* Remove obsolete constructors from ScheduledPublishing & SqlMainDomLock
* FileSystemMainDomLock promoted to default fallback for all platforms.
* Various fixes & improvements
* Resolve various points related to deficiencies in FileSystemMainDomLock
See GH #12049
* Increasing backoff time for retry when deleting lock release signal file
However reducing max tries, really hoping this never actually happens
and if it does, failing to boot ASAP seems reasonable.
* Extract MainDomKey generation to its own class to ease customization.
Also add discriminator config value to GlobalSettings for advanced users.
Prevents a mandatory custom implementation, should be good enough for
the vast majority of use cases.
* Prevent duplicate runs of ScheduledPublishing during slot swap.
* Add filesystem based MainDomLock
* Turn SlidingExpiration off and only renew cookie of not RemainingSeconds request
Also adds the TicketExpiresClaim before validating the the security stamp, otherwise the claim won't be merged and "dissappear", leading to the user being instantly logged out
Also only EnsureValidSessionId if not RemainingSeconds request, otherwise the session will always be valid, since the remaining seconds request renews it.
* Don't ignore SessionIdClaimType and Cookiepath when merging claims
Besides what the comment used to state these claims are only issued when logging in, leading you to be logged out once the claims are merged, furthermore when we check the session ID we verify that you session has not expired.
* Manually specify Issued and Expires when renewing token
If we don't we lose 30 minutes of our ExpireTimeSpan every time the principal refreshes
* Re-add ignored claims
And use MergeAllClaims on refreshing principal instead.
* EnsureValidSessionId before updating IssuedUtc
* Fix comment
* Update src/Umbraco.Web.BackOffice/Security/ConfigureBackOfficeCookieOptions.cs
Co-authored-by: nikolajlauridsen <nel@umbraco.dk>
Co-authored-by: Bjarke Berg <mail@bergmania.dk>
* Fixed issue with migration from 8, because the external login table is changed in 9.3, but added in 9.0. we need to use the legacy models when running 9.0 migrations
* Support migration from 8.18 (final state)
* Use lowercase lang folder name for packages lang files
Use lowercase lang folder name for packages lang files to be consistent with Umbraco's casing
* Case insensitive `lang` folder lookup
* Comment grammar
* Setup lower case appl_plugin icons folder path
* Update Constants-SystemDirectories.cs
* Check both casings for the AppPluginIcons path
* Fixed spelling mistake + avoid multiple Exists checks
* Add IsCaseSensitiveFileSystem to IHostingEnvironment
* Add IsCaseSensitiveFileSystem to AspNetCoreHostingEnvironment
* Undo last changes
* Undo last changed
* Add FileSystemUtility
* Only perform second iconPath if OS is case sensitive
* Undo changes
* Undo changes
* Remove filesystem utils file
* Added HostingEnvironmentExtensions.cs
* Use IsCaseSensitiveFileSystem extension method
* Use the Umbraco.Extensions namespace
* Simplify IsCaseSensitiveFileSystem
* Better naming
* Use PluginIcons
* Remove unused using statement
* Delete HostingEnvironmentExtensions.cs
* Update IconService.cs
* Comment clarity
* Update src/Umbraco.Infrastructure/DependencyInjection/UmbracoBuilder.Services.cs
Co-authored-by: Paul Johnson <pmj+github@ologn.co.uk>
Co-authored-by: Paul Johnson <pmj+github@ologn.co.uk>
Co-authored-by: Michael Latouche <michael@crossingpaths.be>
* Store notification z-index in variable
* Only show unordered list if any notifications
* Move notificaion layers to same parent as overlays so layers can be controlled via z-index
* Fix code styling
* Only select ItemIdFieldName and fix exception when variation context is null
* Save hashset instead of making on on each request (indirectly)
Co-authored-by: Bjarke Berg <mail@bergmania.dk>
* Switch a lot of warnings to suggestions until we are able to resolve.
* Make stylecop respect more csharp_style rules
e.g. csharp_using_directive_placement
* Added cheatsheet
* Drop sorting requirements for using directives.
(cherry picked from commit 91c4c77676)
Ensure ConfigureWebServer called before ConfigureServices for tests that
make use of WebApplicationFactory.
Still not apparent why tests would pass if debugger isn't attached?
* Switch a lot of warnings to suggestions until we are able to resolve.
* Make stylecop respect more csharp_style rules
e.g. csharp_using_directive_placement
* Added cheatsheet
* Drop sorting requirements for using directives.
* Added settings for bypassing 2fa for external logins
* Fixed issue with saving roles using member ID before the member had an ID.
* Added missing extension method
* Removed test classes from git
* rollback csproj
Fixes#11951 by changing `UmbracoContext` to be an expression rather than being a static setter thus ensuring the current umbraco context is always returned, rather than a cached version from initial execution
* 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
* 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 constant for blueprint icon
* Use constant for folder icon
* Create empty array of IEntitySlim as the GetAll() method returns IEnumerable<IEntitySlim>
* Use constant
* Add allowlist for HelpPage
* Use current request for emails (#11775)
* Use current request for emails
* Fix tests
* Bump version to 8.17.2
* Use Umbraco Path instead of constant
Co-authored-by: Mole <nikolajlauridsen@protonmail.ch>
* 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
* Add IsRestarting property to Umbraco application notifications
* Add IUmbracoApplicationLifetimeNotification and update constructors
* Only subscribe to events on initial startup
* Cleanup CoreRuntime
* Do not reset StaticApplicationLogging instance after stopping/during restart
* Add IsRestarting property to Umbraco application notifications
* Add IUmbracoApplicationLifetimeNotification and update constructors
* Only subscribe to events on initial startup
* Cleanup CoreRuntime
* Do not reset StaticApplicationLogging instance after stopping/during restart
* Bugfix - Take ufprt from form data if the request has form content type, otherwise fallback to use the query
* External linking for members
* Changed migration to reuse old table
* removed unnecessary web.config files
* Cleanup
* Extracted class to own file
* Clean up
* Rollback changes to Umbraco.Web.UI.csproj
* Fixed migration for SqlCE
* Added 2fa for members
* Change notification handler to be on deleted
* Update src/Umbraco.Infrastructure/Security/MemberUserStore.cs
Co-authored-by: Mole <nikolajlauridsen@protonmail.ch>
* updated snippets
* Fixed issue with errors not shown on member linking
* fixed issue with errors
* clean up
* Fix issue where external logins could not be used to upgrade Umbraco, because the externalLogin table was expected to look different. (Like after the migration)
* Fixed issue in Ignore legacy column now using result column.
* Updated 2fa for members + publish notification when 2fa is requested.
* Changed so only Members out of box supports 2fa
* Cleanup
* rollback of csproj file, that should not have been changed
* Removed confirmed flag from db. It was not used.
Handle case where a user is signed up for 2fa, but the provider do not exist anymore. Then it is just ignored until it shows up again
Reintroduced ProviderName on interface, to ensure the class can be renamed safely
* Bugfix
* Registering DeleteTwoFactorLoginsOnMemberDeletedHandler
* Rollback nuget packages added by mistake
* Update src/Umbraco.Infrastructure/Services/Implement/TwoFactorLoginService.cs
Co-authored-by: Mole <nikolajlauridsen@protonmail.ch>
* Update src/Umbraco.Infrastructure/Persistence/Repositories/Implement/TwoFactorLoginRepository.cs
Co-authored-by: Mole <nikolajlauridsen@protonmail.ch>
* Added providername to snippet
Co-authored-by: Mole <nikolajlauridsen@protonmail.ch>
* Bugfix - Take ufprt from form data if the request has form content type, otherwise fallback to use the query
* External linking for members
* Changed migration to reuse old table
* removed unnecessary web.config files
* Cleanup
* Extracted class to own file
* Clean up
* Rollback changes to Umbraco.Web.UI.csproj
* Fixed migration for SqlCE
* Change notification handler to be on deleted
* Update src/Umbraco.Infrastructure/Security/MemberUserStore.cs
Co-authored-by: Mole <nikolajlauridsen@protonmail.ch>
* Fixed issue with errors not shown on member linking
* fixed issue with errors
* clean up
* Fix issue where external logins could not be used to upgrade Umbraco, because the externalLogin table was expected to look different. (Like after the migration)
* Fixed issue in Ignore legacy column now using result column.
Co-authored-by: Mole <nikolajlauridsen@protonmail.ch>
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
* Fixing ContentDashboardSettings to work when set in the config
* Moving file in Models folder and adding ContentDashboardUrlAllowlist setting
* Implementing allowlist for content dashboard base url
* Cleanup
* Error msg vs log msg
* Returns "Page Not Found" when template doesn't exist for a docType
* Fix comment
* Use IsNullOrWhiteSpace instead of IsNullOrEmpty
Co-authored-by: Mole <nikolajlauridsen@protonmail.ch>
* Add UmbracoApplicationStartedNotification and UmbracoApplicationStoppedNotification
* Include cancellation token when publishing unattended install/upgrade notifications
Deleting media via services results in a published MediaDeletedNotification
via scope.Notifications, these are fired on Scope.Complete() and picked up
by the registered handlers.
* Update web.config
* Change web.config to align with v8 default values
* Adjust kestrel options to align with v8
* Add better comment
* added web.config to root
* change web.config to 30mb
* delete obsolete comment
* No reason to have web.config to just have it default
* Add back ConfigureIISServerOptions.cs
* Add obsolete comment, can't link to documentation yet as it doesn't exist
* Apply suggestions from code review
Co-authored-by: Mole <nikolajlauridsen@protonmail.ch>
* Add link to documentation
Co-authored-by: Mole <nikolajlauridsen@protonmail.ch>
* Add failing test to demo issue with handlers + scoped dependencies.
* Make using scoped services in notification handlers less painful.
* Update comments for accuracy.
* 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
* Allow changing UmbracoMediaPath to an absolute path. Also ensure Imagesharp are handing requests outside of the wwwroot folder.
* Let UmbracoMediaUrl fallback to UmbracoMediaPath when empty
* Add FileSystemFileProvider to expose an IFileSystem as IFileProvider
* Replace IUmbracoMediaFileProvider with IFileProviderFactory implementation
* Fix issue resolving relative paths when media URL has changed
* Remove FileSystemFileProvider and require explicitly implementing IFileProviderFactory
* Update tests (UnauthorizedAccessException isn't thrown anymore for rooted files)
* Update test to use UmbracoMediaUrl
* Add UmbracoMediaPhysicalRootPath global setting
* Remove MediaFileManagerImageProvider and use composited file providers
* Move CreateFileProvider to IFileSystem extension method
* Add rooted path tests
Co-authored-by: Ronald Barendse <ronald@barend.se>
By adding a new configuration and mapping the old CharCollection to that, we can get around having to return null the first time, by obsoleting the old one and redirecting to the new GetCharReplacements method
* Move package to database
* Added migration and implemented new repository
* Updated migrations to use proper xml convert
* Fixed save function and renamed createDate to update date
* Updated dependencyInjection
* Updated UmbracoPlan.cs
* Apply suggestions from code review
Co-authored-by: Elitsa Marinovska <21998037+elit0451@users.noreply.github.com>
* Added File check
* Tried using same context as create table
* Fix DTO
* Fix GetById and local package saving
* Fix images when migrating
* Implement deletion of all local files
* Only delete local repo file, not file snapshots
* Remove static package path and use the one we save
* Update package repo to export package and remove check for ids when exporting
* Minor fixes
* Fix so that you can download package after creating
* Update savePackage method to export package afterwards
Co-authored-by: Nikolaj Geisle <niko737@edu.ucl.dk>
Co-authored-by: Elitsa Marinovska <elm@umbraco.dk>
Co-authored-by: Elitsa Marinovska <21998037+elit0451@users.noreply.github.com>
Since this is the way it's been previously, we cannot change the behaviour of this. Unfortunately due to how the config binding works, we have to make sure it returns null the very first time it's called by the framework to ensure that overrides actually gets registered.
On second thought this is not a breaking change since CharItem implements IChar, so you could still do something lke IEnumerable<IChar> chars = requestHandlerSettings.CharCollection
* Add TelemetryService
Currently it only allows you to get a list of the name of all the installed packages
* Create model class for package telemetry
And move the telemetry report data out of ReportSiteTask
* Add version as an option in package manifest
* Use TelemetryService to generate telemetry data
Instead of doing it directly in the ReportSiteTask
* Seal TelemetryService
This should not be overwritten
* Add option for package creators to opt out
* Add global setting to restrict package telemetry
* Add TelemetryService unit tests
* Add ManifestParser tests for new properties
* Clean
* Update src/Umbraco.Core/Telemetry/TelemetryService.cs
Co-authored-by: Bjarke Berg <mail@bergmania.dk>
* Create interface for telemetry service
* Use IOptionsMonitor instead of IOptions
However I chose to use CurrentValue since according to microsoft: "Some file systems, such as Docker containers and network shares, may not reliably send change notifications.", additionally TelemetryService only runs once pr. day, so it shouldn't be too much of an issue that it doesn't cache the result.
* Use is false instead of negation
It's a bit more readable
* Track restrict package telemetry value
* Save RestrictPackageTelemetry in report data
Not packages, since it'll be the same for all packages
* Fix TelemetryService unit tests
* Clean
* Update src/Umbraco.Core/Telemetry/ITelemetryService.cs
Co-authored-by: Bjarke Berg <mail@bergmania.dk>
* Remove RestrictPackageTelemetry
Co-authored-by: Bjarke Berg <mail@bergmania.dk>
* 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)
It worked properly if the Umbraco files are on disk before a build
but when the files are not there yet or a dotnet clean is done first the
files are not compiled. This is often the case on build servers that start
with a clean working directory for each build.
Using this target we simply ensure the files are included as "Content"
which Razor will scan for .cshtml files in their "ResolveRazorGenerateInputs"
target.
* Adding ILogLevelLoader to get Serilog level values (global one and umbraco) and the corresponding dependencies
* Obsoleting old methods
* Fix tests
* Front-end changes
* Changes requested in a review
* https://github.com/umbraco/Umbraco-CMS/issues/11366
Fallback to try login using super legacy HMACSHA1 even when the algorithm is stated as being HMACSHA256. The issue is that v8 saves HMACSHA256 on the user, but when configured to use legacy encoding it actually uses HMACSHA1
* Support migration of members with:
UseLegacyEncoding+Clear
UseLegacyEncoding+Encrypted (Requires machine key)
UseLegacyEncoding+Hashed
* Fixes unit tests
* Avoid exceptions + unit tests
* Save unknown algorithm if we dont know it, instead of persisting a wrong algorithm.
* Added setting to enable clear text password rehashes.
* Removed support for migration of clear text passwords
* Fixed unit test
* cherry-pick 13a51d32 (V8 History cleanup import/export)
Support import/export for doc type history cleanup policy (#11660)
* 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>
# Conflicts:
# src/Umbraco.Core/Models/IContentType.cs
# src/Umbraco.Core/Packaging/PackageDataInstallation.cs
# src/Umbraco.Infrastructure/Persistence/Repositories/Implement/ContentTypeRepository.cs
# src/Umbraco.Infrastructure/Services/Implement/EntityXmlSerializer.cs
# src/Umbraco.Tests/Packaging/PackageDataInstallationTests.cs
# src/Umbraco.Tests/Services/Importing/ImportResources.Designer.cs
# src/Umbraco.Tests/Umbraco.Tests.csproj
# src/Umbraco.Web.UI/umbraco/config/lang/en.xml
# src/Umbraco.Web.UI/umbraco/config/lang/en_us.xml
# src/Umbraco.Web/Models/Mapping/ContentTypeMapDefinition.cs
# tests/Umbraco.Tests.Integration/Umbraco.Infrastructure/Services/Importing/ImportResources.resx
# tests/Umbraco.Tests.UnitTests/Umbraco.Core/Services/Importing/SingleDocType-WithCleanupPolicy.xml
* Remove namespace aliases
* Update IContentTypeWithHistoryCleanup documentation
Co-authored-by: Ronald Barendse <ronald@barend.se>
* Update Smidge
* Add SmidgeRequestHelper to override the compression order
By default Smidge will always try and use Brotli (br), this compression is good in the the sense that it compresses the file quite a bit, but sadly it's super super slow, like 10 seconds for backoffice js slow.
* Remove unnecessary new keyword
Co-authored-by: nikolajlauridsen <nel@umbraco.dk>
* Update Smidge
* Add SmidgeRequestHelper to override the compression order
By default Smidge will always try and use Brotli (br), this compression is good in the the sense that it compresses the file quite a bit, but sadly it's super super slow, like 10 seconds for backoffice js slow.
* Remove unnecessary new keyword
Co-authored-by: nikolajlauridsen <nel@umbraco.dk>
* Rename AddOEmbedProvider to AddEmbedProvider
* Obsolete OEmbedProviders()
Obsolete OEmbedProviders() and proxy it to a new EmbedProviders()
* Rename EmbedProviderBase to OEmbedProviderBase
Rename EmbedProviderBase to OEmbedProviderBase
Add an obsoleted class EmbedProviderBase
Add todo's to all implementations
* remove unintentionally comment
Rem: automatic tests failures not linked to this PR.
* Create UmbracoBuilder.ContentApps.cs
Add an extension method to register content apps to make it possible to register content apps in the startup.cs class.
* Create UmbracoBuilder.CollectionsBuilders
* White space
* Rename OEmbedProvider to EmbedProvider
* Rename EmbedProvider to OEmbedProvider
* Added EntityController.GetUrlsByIds support for int & guid + update MNTP
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.
* Added partial test coverage for GetUrlsByIds.
This doesn't actually work in the backoffice because of GH #11448
So lets fix that next.
* Failing test demonstrating #11448
* Fix for #11448 getByIds doesn't work as expected.
ParameterSwapControllerActionSelectorAttribute - cached body survived between requests.
* Expand on sync vs async comment for future confused souls.
* Might aswell cache parsed json vs string for performance
* Make ParameterSwapControllerActionSelector remarks more accurate.
* Share deserialized request body between action constraint and model binder
* Be more defensive with RequestBodyAsJObject HttpContext item
Only store if deserialize success.
Don't assume key being present means can cast as JObject.
* Nest constant a little deeper.
* Final defensive tweak
* 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
* Changes to GetReducedEventList (#11444)
* 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>
* Merge pull request #11360 from umbraco/v8/bugfix/11057-mandatory-image-not-validating-after-first-time-failure
Fixes 11057: Mandatory Image not validating after first time failure
(cherry picked from commit 5cc70d2160)
* Additional optional sanitization of scripting in TinyMCE (#10653)
(cherry picked from commit f68dba7bcb)
* Bump version to 8.17.1
* Hide localization key while loading
* ContentVersion cleanup backoffice UI (#11637)
* 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>
* Bugfix - DocumentVersionRepository.Get should not join culture variation
* Bugfix - Missing write lock
* Bugfix - Policy returns items to delete not items to keep.
Switch to inverse behavior.
Co-authored-by: Andy Butland <abutland73@gmail.com>
Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>
Co-authored-by: Niels Lyngsø <nsl@umbraco.dk>
Co-authored-by: Sebastiaan Janssen <sebastiaan@umbraco.com>
Co-authored-by: Ronald Barendse <ronald@barend.se>
Co-authored-by: Paul Johnson <pmj@umbraco.com>
Co-authored-by: Mads Rasmussen <madsr@hey.com>
* 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
* Changed targetFramework in nuspec file & project files + updated NuGet dependencies
* Updated .net version in pipelines
* Updated .net version in templates
* Update more dependencies
* Fixed ambiguous call to DistinctBy() - part of Umbraco.Extensions and System.Linq
* Disabling the Razor source generators in .NET 6 due to error: "Cannot find the fallback endpoint specified by route values..."
* Fixed unit tests
Co-authored-by: Bjarke Berg <mail@bergmania.dk>
* Fixes the treepicker for granular permissions to use a select callback instead of submit with the full selection
* Introduced UserGroup2NodeDto table, to allow users to save empty arrays of permissions
* Cleanup
* Fixed null issue in audit logging
* Fixed migration
* Fixed GetDeleteClauses
* Fixes for SqlCE, do not run multiple comments on one sql request
* Align behavior between content>permissions and usergroups>granularPpermissions
- It is now possible to save default values in content>permissions like in usergroups>granularPpermissions
- It is now possible to differentiate between we save an empty collection and we remove the granular permissions in content>permissions
* Fix comments
Co-authored-by: Andy Butland <abutland73@gmail.com>
Co-authored-by: Bjarke Berg <mail@bergmania.dk>
* 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)
* ContentVersion cleanup backoffice UI (#11637)
* 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>
# Conflicts:
# src/Umbraco.Core/ContentEditing/ContentVersionMetaViewModel.cs
# src/Umbraco.Core/Models/HistoricContentVersionMeta.cs
# src/Umbraco.Infrastructure/Services/Implement/ContentService.cs
# src/Umbraco.Tests/Persistence/Repositories/DocumentVersionRepository_Tests_Integration.cs
# src/Umbraco.Tests/Services/ContentVersionCleanupService_Tests_UnitTests.cs
# src/Umbraco.Web.BackOffice/Controllers/ContentController.cs
# src/Umbraco.Web.UI.Client/src/common/resources/content.resource.js
# src/Umbraco.Web.UI/config/umbracoSettings.Release.config
# src/Umbraco.Web.UI/umbraco/config/lang/en.xml
# src/Umbraco.Web.UI/umbraco/config/lang/en_us.xml
# src/Umbraco.Web/Umbraco.Web.csproj
* Added tests
* Misc - missed translation update
* Bugfix - DocumentVersionRepository.Get should not join culture variation
* Bugfix - Missing write lock
* Removed unnecessary view model
* Misc - kill some warnings
* Misc - Kill some more warnings
* Fixed cypress rollback test
* Bugfix - Policy returns items to delete not items to keep.
Switch to inverse behavior.
# Conflicts:
# src/Umbraco.Tests/Services/DefaultContentVersionCleanupPolicy_Tests_UnitTests.cs
Co-authored-by: Paul Johnson <pmj@umbraco.com>
* 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>
* Added failing test to demonstrate issue with large raw_ fields.
* Switched to StoredField to avoid indexing error for immense fields.
StringField indexes all the content as a single token and has a max
length of 32766.
StoredField does not analyze/index the field but enables retrieval with
luceneSearcher.Doc(docId)
Closes GH #11487
* Added failing test to demonstrate issue with large raw_ fields.
* Switched to StoredField to avoid indexing error for immense fields.
StringField indexes all the content as a single token and has a max
length of 32766.
StoredField does not analyze/index the field but enables retrieval with
luceneSearcher.Doc(docId)
Closes GH #11487
* downgraded cypress, updated package
* Fixed language test
* Fix language test
* Fixed routing tests to wait for popup
* Publish test artifacts
* Added better element to wait on
* Fix routing tests for linux
* Fix language tests on linux
* Stablize tabs tests
* Implement waiting for inner tree like in content tests
* Assert that we are in settings section so we dont click an element that doesnt exist
* Fixed rollback by not doing cy.reload()
* Fix language test with correct wait
* Stabilize dataTypes by moving API Call, and stabilize systemInformation.ts test by waiting for success notification
* Fix dataTypes, tabs and template tests
* Update node to newer version in package-lock.json and fix template test
* Implemented cy.wait to test if it is because we are too fast
* Added comments
* Bigger wait
* Try another wait instead of magic numbers
Co-authored-by: Nikolaj Geisle <niko737@edu.ucl.dk>
* downgraded cypress, updated package
* Fixed language test
* Fix language test
* Fixed routing tests to wait for popup
* Publish test artifacts
* Added better element to wait on
* Fix routing tests for linux
* Fix language tests on linux
* Stablize tabs tests
* Implement waiting for inner tree like in content tests
* Assert that we are in settings section so we dont click an element that doesnt exist
* Fixed rollback by not doing cy.reload()
* Fix language test with correct wait
* Stabilize dataTypes by moving API Call, and stabilize systemInformation.ts test by waiting for success notification
* Fix dataTypes, tabs and template tests
* Update node to newer version in package-lock.json and fix template test
* Implemented cy.wait to test if it is because we are too fast
* Added comments
* Bigger wait
* Try another wait instead of magic numbers
Co-authored-by: Nikolaj Geisle <niko737@edu.ucl.dk>
* add create language test
* add create language test
* fix bug, move test to new folder and add type definitions
* update to use culture command
Co-authored-by: Jesper <jmh@umbraco.dk>
* WIP
Waiting for a response on the issue about how to proceed
* Support messages in dropzone
Update dropzone to allow the showing of messages that may be added in a media saving notification / handler
* Remove test code
Remove code used for testing
* Sort usings
Remove unused using
* Fix ordering
Ordering of files when they were being processed was backwards / out of order
* Add button to "okay" all messages
PR Feedback to add a button to dismiss all of the messages all at once.
Fixing a referencing issue with `currentFile`
Co-authored-by: Michael Latouche <michael@crossingpaths.be>
* Added unit tests for ContentVersionService
* Clean up
* Fixed tests after using ConfigureMembers = true
* Fixed tests after using ConfigureMembers = true
* 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
* Fix double skip
Skipping is done as part of the query now, causing `skip` to be applied twice
* More instances of skipping
Fix more areas where skip is applied twice
* 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>
* Fix the basehttpheader health check so that it's checking the root of the domain instead of the /umbraco path.
* Remove unused value from security health checks (it was used in v8 for fixing)
* 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>
* 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>
Use powershell / bash tasks instead of npm for acceptance tests
npm buffers output and flushes at end, which isn't ideal if cypress killed after an hour and we have no idea what happened.
* 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>
* 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>
* Adjust icon in umb-checkbox and ensure icon is centered
* Missing nl translation for blockEditor_addBlock
* Implement icon parameter for doctype editor (#11008)
* 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>
* Align sortable handle vertically in multivalues prevalue editor
* 10341: Use different picker for content types (#10896)
* 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>
* Falling back to contentTypeName when Block List label is empty (#10963)
* Falling back to contentTypeName when Block List label is empty
* Adding $contentTypeName variable for Block List labels
* Fix incorrect attribute
* Grid: Add button styling fix (#10978)
* Add missing focus styling
* Ensure add button is perfectly rounded and remove unused / uneeded CSS.
* Remove redundant border-color property
* Revert removal of unused css
Co-authored-by: BatJan <jaskov@gmail.com>
Co-authored-by: Jan Skovgaard Olsen <jso@co3.dk>
* Create content template localization (#10945)
* 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>
* Cleanup examine search results, and adds ability to toggle fields (#9141)
* 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>
* Add EntityController GetUrlsByUdis
Enables loading multiple URLs in a single request for Media & Documents
* Update content picker to use GetUrlsByUdis
* Allows replacing MainDom with alternate DB
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.
* Remove inherited property group id/key when local properties are added (#11231)
* Remove inherited property group id/key when local properties are added
* Rebind saved content type values
* Remove inherited from save group
* Rename parameter for clarity
* Removes annoying wait text, which causes layout jank
* v8: Backoffice Welsh language translation updates (#11240)
* 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
* Use medium sized overlay
* Use umb-icon component for icons in content type groups and tabs
* fixes wrong reference to enterSubmitFolder method in ng-keydown
* 11251: Don't add default dashboard to url
* Fix preview of SVG when height and width not are set
* If caching a published document, make sure you use the published Name… (#11313)
* 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>
* Added missing Italian translations (#11197)
* Resolve incorrect ContentSavedState for failed publish
Closes#11290 (for v8)
* add modelValue validation for server to correctly update validation errors
* 11048: Bugfix for groups and properties that get replaced (#11257)
(cherry picked from commit 1605dc10bd)
* Icon fallback to `icon-document` for existing document types (#11283)
* Align create buttons styling (#11352)
* Added button for cancelling dictionary create action
* Use hideMenu
* Align dictionary create with the other creates
* Align import documenttype
* Align for data type folder create
* Align document type create buttons
* Forgot small ng-show
* Align create media folder buttons
* Align create macro buttons
* Align create relation buttons
* Align create partial view macro folder buttons
* Align partial view folder create buttons
* Align create scripts folder buttons
* Align create scripts folder buttons
* Use primary instead of success
* V8: Duplicate MemberGroup names cause MemberGroup mixup (#11291)
* Prevented duplicate member group names
* Added English lang
* Updated 'Exist' typo
* add labels in FR and NL
* Adding property group aliases to ex.message
* Adding invalid prop group aliases as ModelState errors, so we don't introduce breaking changes
* Pointing the actual reason for invalidating composition
* Validate all content type dependencies and throw a single InvalidCompositionException
* Rename based on review comments
* Update composition validation error messages
* Update InvalidCompositionException message
* Allow switching property editor from numeric to slider (#11287)
* Make it possible to change from numeric/decimal property editor to slider without breaking editor
* Formatting
* Enables friendly pasting in multipletextbox
* UI API docs: Added reset rules for .close class
* UI API docs: Fixed incorrect method name
* 11331: Check property on instance if id is not set yet
* Fixed cypress tests
Co-authored-by: Bjarne Fyrstenborg <bjarne_fyrstenborg@hotmail.com>
Co-authored-by: Corné Strijkert <cornestrijkert@hotmail.com>
Co-authored-by: Søren Gregersen <soreng@gmail.com>
Co-authored-by: Nathan Woulfe <nathan@nathanw.com.au>
Co-authored-by: patrickdemooij9 <patrickdemooij98@hotmail.com>
Co-authored-by: Callum Whyte <hey@callumwhyte.com>
Co-authored-by: Jan Skovgaard <1932158+BatJan@users.noreply.github.com>
Co-authored-by: BatJan <jaskov@gmail.com>
Co-authored-by: Jan Skovgaard Olsen <jso@co3.dk>
Co-authored-by: Søren Kottal <sk@ecreo.dk>
Co-authored-by: Paul Johnson <pmj@umbraco.com>
Co-authored-by: Shannon <sdeminick@gmail.com>
Co-authored-by: Sebastiaan Janssen <sebastiaan@umbraco.com>
Co-authored-by: Ronald Barendse <ronald@barend.se>
Co-authored-by: Owain Jones <owain.jones@method4.co.uk>
Co-authored-by: Mole <nikolajlauridsen@protonmail.ch>
Co-authored-by: Doug Moore <lordscarlet@idledreams.net>
Co-authored-by: Moore, Douglas S <Douglas.Moore@opm.gov>
Co-authored-by: Martino Gabrielli <39855999+ZioTino@users.noreply.github.com>
Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>
Co-authored-by: Mads Rasmussen <madsr@hey.com>
Co-authored-by: Jamie Townsend <jamie.townsend@unitstack.co.uk>
Co-authored-by: Elitsa Marinovska <elm@umbraco.dk>
Co-authored-by: Anders Bjerner <abjerner@skybrud.dk>
* 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>
* starts cleaning up old test project, removing ones we'll never convert, moves new test to where it should be.
* Makes ContentNodeKit immutable properties, moves first nucache tests over
* Gets the Nucache unit tests working and refactors a bit to use builder pattern for models.
* Migrates first xml based cache test to use nucache.
* Migrates a bunch more
* Migrates remaining tests for PublishedContentTests
* Moves PublishedRouterTests
* Moves PublishedContentExtensionTests
* Moves more tests.
* committing wip
* committing wip
* Gets PublishedContentLanguageVariantTests converted and working.
* Fixes DataTable ext method and moves PublishedContentDataTableTests
* Moves PublishedMediaTests
* wip - moving EntityXmlSerializerTests
* Moves more tests
* moves more tests
* moves more tests
* Move another test
* Moves more tests
* Fix test
* move another test
* Moves more tests
* Moves more tests
* Moves more tests
* wip before merge
* More tests
* More tests
* More tests
* More tests
* More tests
* More tests
* Cleanup and moving classes.
* Remove unused code
* Fixed failing tests, due to new null checks, that did not exist in v8
* Avoid breaking changes
* Unbreak more things, even that it the old solution was crazy..
* Fixed bug where ordering of stream readings was changed..
* cleanup
Co-authored-by: Bjarke Berg <mail@bergmania.dk>
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
* 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
`CharCollection` didn't map correctly from the config, updated to an array so that it does
Add logic to concatenate user and default replacements, replacing defaults with user defined if present.
Added additional option to disable the default replacements
* Remove remaining web.config references in translation files so it will fallback to the correct English text
* Remove final reference to web.config in config/lang
ru errorChangingProviderPassword
Co-authored-by: Paul Johnson <pmj@umbraco.com>
* 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>
* Added missing GetCropUrl overload for MediaWithCrops with the extra configuration options
The missing overload would mean that if anyone tried to use the extra options with MediaWithCrops, they would be using the IPublishedContent extension method instead.
This would cause several issues, like not loading the local crops and returning null for a lot of scenarios that should work.
* Added documentation to the added overload
* Use extension method
* Added support for Smtp PickupDirectory
* Add reference to the implementation outline by MailKit
Co-authored-by: Bjarke Berg <mail@bergmania.dk>
Co-authored-by: Bjarke Berg <mail@bergmania.dk>
Fix all of the unit / integration tests
Update integration tests to remove references to ViewHelper, to make the tests more focused on what they should be testing
Add the ability to register your own content provider, so that you can change the content which is injeted into new templates
Obsolete old static method
Register new interfaces / classes (hopefully in the correct buidler)
* 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>
file_header_template=Copyright (c) Umbraco.\nSee LICENSE for more details.
# SA1636: File header copyright text should match
# Justification: .editorconfig supports file headers. If this is changed to a value other than "none", a stylecop.json file will need to added to the project.
In order to use Umbraco as a CMS and build your website with it, you should not build it yourself. If you're reading this then you're trying to contribute to Umbraco or you're debugging a complex issue.
- Are you about to create a pull request for Umbraco?
- Are you about to [create a pull request for Umbraco][contribution guidelines]?
- Are you trying to get to the bottom of a problem in your existing Umbraco installation?
If the answer is yes, please read on. Otherwise, make sure to head on over [to the download page](https://our.umbraco.com/download) and start using Umbraco CMS as intended.
**Table of contents**
## Table of contents
[Building from source](#building-from-source)
* [The quick build](#quick)
* [Build infrastructure](#build-infrastructure)
* [Properties](#properties)
* [GetUmbracoVersion](#getumbracoversion)
* [SetUmbracoVersion](#setumbracoversion)
* [Build](#build)
* [Build-UmbracoDocs](#build-umbracodocs)
* [Verify-NuGet](#verify-nuget)
* [Cleaning up](#cleaning-up)
↖️ You can jump to any section by using the "table of contents" button (  ) above.
[Azure DevOps](#azure-devops)
[Quirks](#quirks)
* [Powershell quirks](#powershell-quirks)
* [Git quirks](#git-quirks)
## Debugging source locally
Did you read ["Are you sure"](#are-you-sure)?
[More details about contributing to Umbraco and how to use the GitHub tooling can be found in our guide to contributing.][contribution guidelines]
If you want to run a build without debugging, see [Building from source](#building-from-source) below. This runs the build in the same way it is run on our build servers.
#### Debugging with VS Code
In order to build the Umbraco source code locally with Visual Studio Code, first make sure you have the following installed.
* [Visual Studio Code](https://code.visualstudio.com/)
Open the root folder of the repository in Visual Studio Code.
To build the front end you'll need to open the command pallet (<kbd>Ctrl</kbd> + <kbd>Shift</kbd> + <kbd>P</kbd>) and run `>Tasks: Run Task` followed by `Client Watch` and then run the `Client Build` task in the same way.
You can also run the tasks manually on the command line:
```
cd src\Umbraco.Web.UI.Client
npm install
npm run dev
```
or
```
cd src\Umbraco.Web.UI.Client
npm install
gulp dev
```
**The initial Gulp build might take a long time - don't worry, this will be faster on subsequent runs.**
You might run into [Gulp quirks](#gulp-quirks).
The caching for the back office has been described as 'aggressive' so we often find it's best when making back office changes to [disable caching in the browser (check "Disable cache" on the "Network" tab of developer tools)][disable browser caching] to help you to see the changes you're making.
To run the C# portion of the project, either hit <kbd>F5</kbd> to begin debugging, or manually using the command line:
**The initial C# build might take a _really_ long time (seriously, go and make a cup of coffee!) - but don't worry, this will be faster on subsequent runs.**
When the page eventually loads in your web browser, you can follow the installer to set up a database for debugging. You may also wish to install a [starter kit][starter kits] to ease your debugging.
#### Debugging with Visual Studio
In order to build the Umbraco source code locally with Visual Studio, first make sure you have the following installed.
* [Visual Studio 2019 v16.8+ with .NET 6.0.2+](https://visualstudio.microsoft.com/vs/) ([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)
The easiest way to get started is to open `umbraco.sln` in Visual Studio.
To build the front end, you'll first need to run `cd src\Umbraco.Web.UI.Client && npm install` in the command line (or `cd src\Umbraco.Web.UI.Client; npm install` in PowerShell). Then find the Task Runner Explorer (View → Other Windows → Task Runner Explorer) and run the `build` task under `Gulpfile.js`. You may need to refresh the Task Runner Explorer before the tasks load.
If you're working on the backoffice, you may wish to run the `dev` command instead while you're working with it, so changes are copied over to the appropriate directories and you can refresh your browser to view the results of your changes.
**The initial Gulp build might take a long time - don't worry, this will be faster on subsequent runs.**
You might run into [Gulp quirks](#gulp-quirks).
The caching for the back office has been described as 'aggressive' so we often find it's best when making back office changes to [disable caching in the browser (check "Disable cache" on the "Network" tab of developer tools)][disable browser caching] to help you to see the changes you're making.
"The rest" is a C# based codebase, which is mostly ASP.NET Core MVC based. You can make changes, build them in Visual Studio, and hit <kbd>F5</kbd> to see the result.
**The initial C# build might take a _really_ long time (seriously, go and make a cup of coffee!) - but don't worry, this will be faster on subsequent runs.**
When the page eventually loads in your web browser, you can follow the installer to set up a database for debugging. You may also wish to install a [starter kit][starter kits] to ease your debugging.
## Building from source
@@ -38,13 +104,14 @@ Did you read ["Are you sure"](#are-you-sure)?
To build Umbraco, fire up PowerShell and move to Umbraco's repository root (the directory that contains `src`, `build`, `LICENSE.md`...). There, trigger the build with the following command:
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 (v8/contrib) the file will appear and you can build it.
You might run into [Powershell quirks](#powershell-quirks).
If it runs without errors; Hooray! Now you can continue with [the next step](CONTRIBUTING.md#how-do-i-begin) and open the solution and build it.
### Build Infrastructure
The Umbraco Build infrastructure relies on a PowerShell object. The object can be retrieved with:
@@ -145,7 +212,7 @@ To perform a more complete clear, you will want to also delete the content of th
The following command will force remove all untracked files and directories, whether they are ignored by Git or not. Combined with `git reset` it can recreate a pristine working directory.
@@ -214,3 +281,19 @@ The best solution is to unblock the Zip file before un-zipping: right-click the
### Git Quirks
Git might have issues dealing with long file paths during build. You may want/need to enable `core.longpaths` support (see [this page](https://github.com/msysgit/msysgit/wiki/Git-cannot-create-a-file-or-directory-with-a-long-path) for details).
### Gulp Quirks
You may need to run the following commands to set up gulp properly:
```
npm cache clean --force
npm ci
npm run build
```
[ contribution guidelines]: CONTRIBUTING.md "Read the guide to contributing for more details on contributing to Umbraco"
[ starter kits ]: https://our.umbraco.com/packages/?category=Starter%20Kits&version=9 "Browse starter kits available for v9 on Our "
[ disable browser caching ]: https://techwiser.com/disable-cache-google-chrome-firefox "Instructions on how to disable browser caching in Chrome and Firefox"
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:
* 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
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.
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/)
## Our Pledge
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.
We pledge to act and interact in ways that contribute to an open, welcoming, diverse, inclusive, and healthy community.
## Our Standards
Examples of behavior that contributes to a positive environment for our community include:
* 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
Examples of unacceptable behavior include:
* 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
## Enforcement Responsibilities
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/)
👍🎉 First off, thanks for taking the time to contribute! 🎉👍
The following is a set of guidelines, for contributing to Umbraco CMS.
These contribution guidelines are mostly just that - guidelines, not rules. This is what we've found to work best over the years, but if you choose to ignore them, we still love you! 💖 Use your best judgement, and feel free to propose changes to this document in a pull request.
These are mostly guidelines, not rules. Use your best judgement, and feel free to propose changes to this document in a pull request.
## Coding not your thing? Or want more ways to contribute?
Remember, we're a friendly bunch and are happy with whatever contribution you might provide. Below are guidelines for success that we've gathered over the years. If you choose to ignore them then we still love you 💖.
This document covers contributing to the codebase of the CMS but [the community site has plenty of inspiration for other ways to get involved.][get involved]
**Code of conduct**
If you don't feel you'd like to make code changes here, you can visit our [documentation repository][docs repo] and use your experience to contribute to making the docs we have, even better.
This project and everyone participating in it, is governed by the [our Code of Conduct](CODE_OF_CONDUCT.md). By participating, you are expected to uphold this code. Please report unacceptable behavior to [Sebastiaan Janssen - sj@umbraco.dk](mailto:sj@umbraco.dk).
We also encourage community members to feel free to comment on others' pull requests and issues - the expertise we have is not limited to the Core Collaborators and HQ. So, if you see something on the issue tracker or pull requests you feel you can add to, please don't be shy.
* [Building Umbraco from source code](#building-umbraco-from-source-code)
* [Working with the source code](#working-with-the-source-code)
* [Making changes after the PR is open](#making-changes-after-the-pr-is-open)
* [Which branch should I target for my contributions?](#which-branch-should-i-target-for-my-contributions)
* [Keeping your Umbraco fork in sync with the main repository](#keeping-your-umbraco-fork-in-sync-with-the-main-repository)
## Contributing code changes
### Code of Conduct
This document gives you a quick overview on how to get started.
This project and everyone participating in it, is governed by the [our Code of Conduct][code of conduct].
### Guidelines for contributions we welcome
### What can I contribute?
Not all changes are wanted, so on occasion we might close a PR without merging it. We will give you feedback why we can't accept your changes and we'll be nice about it, thanking you for spending your valuable time.
We categorise pull requests (PRs) into two categories:
We have [documented what we consider small and large changes](CONTRIBUTION_GUIDELINES.md). Make sure to talk to us before making large changes, so we can ensure that you don't put all your hard work into something we would not be able to merge.
| Small PRs | Bug fixes and small improvements - can be recognized by seeing a small number of changes and possibly a small number of new files. |
| Large PRs | New features and large refactorings - can be recognized by seeing a large number of changes, plenty of new files, updates to package manager files (NuGet’s packages.config, NPM’s packages.json, etc.). |
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.
We’re usually able to handle small PRs pretty quickly. A community volunteer will do the initial review and flag it for Umbraco HQ as “community tested”. If everything looks good, it will be merged pretty quickly [as per the described process][review process].
We would love to follow the same process for larger PRs but this is not always possible due to time limitations and priorities that need to be aligned. We don’t want to put up any barriers, but this document should set the correct expectations.
Not all changes are wanted, so on occasion we might close a PR without merging it but if we do, we will give you feedback why we can't accept your changes. **So make sure to [talk to us before making large changes][making larger changes]**, so we can ensure that you don't put all your hard work into something we would not be able to merge.
#### Making larger changes
[making larger changes]: #making-larger-changes
Please make sure to describe your larger ideas in an [issue (bugs)][issues] or [discussion (new features)][discussions], it helps to put in mock up screenshots or videos. If the change makes sense for HQ to include in Umbraco CMS we will leave you some feedback on how we’d like to see it being implemented.
If a larger pull request is encouraged by Umbraco HQ, the process will be similar to what is described in the small PRs process above, we strive to feedback within 14 days. Finalizing and merging the PR might take longer though as it will likely need to be picked up by the development team to make sure everything is in order. We’ll keep you posted on the progress.
#### Pull request or package?
[pr or package]: #pull-request-or-package
If you're unsure about whether your changes belong in the core Umbraco CMS or if you should turn your idea into a package instead, make sure to [talk to us][making larger changes].
If it doesn’t fit in CMS right now, we will likely encourage you to make it into a package instead. A package is a great way to check out popularity of a feature, learn how people use it, validate good usability and fix bugs. Eventually, a package could "graduate" to be included in the CMS.
#### 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.
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.
When your contribution has been accepted, it will be [MIT licensed][MIT license] from that time onwards.
### What can I start with?
## Finding your first issue: Up for grabs
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+)
Umbraco HQ will regularly mark newly created issues on the issue tracker with [the`community/up-for-grabs` tag][up for grabs issues]. This means that the proposed changes are wanted in Umbraco but the HQ does not have the time to make them at this time. We encourage anyone to pick them up and help out.
### How do I begin?
If you do start working on something, make sure to leave a small comment on the issue saying something like: "I'm working on this". That way other people stumbling upon the issue know they don't need to pick it up, someone already has.
## Making your changes
Great question! The short version goes like this:
* **Fork** - create a fork of [`Umbraco-CMS` on GitHub](https://github.com/umbraco/Umbraco-CMS)
1.**Fork**

Create a fork of [`Umbraco-CMS` on GitHub][Umbraco CMS repo]

1.**Clone**
* **Clone** - when GitHub has created your fork, you can clone it in your favorite Git tool
When GitHub has created your fork, you can clone it in your favorite Git tool

1.**Switch to the correct branch**

Switch to the `v10/contrib` branch
* **Switch to the correct branch** - switch to the `v8/contrib` branch
* **Build** - build your fork of Umbraco locally as described in [building Umbraco from source code](BUILD.md)
* **Change** - make your changes, experiment, have fun, explore and learn, and don't be afraid. We welcome all contributions and will [happily give feedback](#questions)
* **Commit** - done? Yay! 🎉 **Important:** create a new branch now and name it after the issue you're fixing, we usually follow the format: `temp-12345`. This means it's a temporary branch for the particular issue you're working on, in this case `12345`. When you have a branch, commit your changes. Don't commit to `v8/contrib`, create a new branch first.
* **Push** - great, now you can push the changes up to your fork on GitHub
* **Create pull request** - exciting! You're ready to show us your changes (or not quite ready, you just need some feedback to progress - you can now make use of GitHub's draft pull request status, detailed [here](https://github.blog/2019-02-14-introducing-draft-pull-requests/)). GitHub has picked up on the new branch you've pushed and will offer to create a Pull Request. Click that green button and away you go.
1.**Build**

Build your fork of Umbraco locally as described in the build documentation: you can [debug with Visual Studio Code][build - debugging with code] or [with Visual Studio][build - debugging with vs].
### Pull requests
The most successful pull requests usually look a like this:
1.**Branch**
* Fill in the required template (shown when starting a PR on GitHub), and link your pull request to an issue on the [issue tracker,](https://github.com/umbraco/Umbraco-CMS/issues) if applicable.
* Include screenshots and animated GIFs in your pull request whenever possible.
* Unit tests, while optional, are awesome. Thank you!
* New code is commented with documentation from which [the reference documentation](https://our.umbraco.com/documentation/Reference/) is generated.
Create a new branch now and name it after the issue you're fixing, we usually follow the format: `temp-12345`. This means it's a temporary branch for the particular issue you're working on, in this case issue number `12345`. Don't commit to `v10/contrib`, create a new branch first.
Again, these are guidelines, not strict requirements. However, the more information that you give to us, the more we have to work with when considering your contributions. Good documentation of a pull request can really speed up the time it takes to review and merge your work!
1.**Change**
## Reviews
Make your changes, experiment, have fun, explore and learn, and don't be afraid. We welcome all contributions and will [happily give feedback][questions].
You've sent us your first contribution - congratulations! Now what?
1.**Commit and push**
The [pull request team](#the-pr-team) can now start reviewing your proposed changes and give you feedback on them. If it's not perfect, we'll either fix up what we need or we can request that you make some additional changes.
Done? Yay! 🎉
We have [a process in place which you can read all about](REVIEW_PROCESS.md). The very abbreviated version is:
Remember to commit to your new `temp` branch, and don't commit to `v10/contrib`. Then you can push the changes up to your fork on GitHub.
- Your PR will get a reply within 48 hours
- An in-depth reply will be added within at most 2 weeks
- The PR will be either merged or rejected within at most 4 weeks
- Sometimes it is difficult to meet these timelines and we'll talk to you if this is the case.
#### Keeping your Umbraco fork in sync with the main repository
To be honest, we don't like rules very much. We trust you have the best of intentions and we encourage you to create working code. If it doesn't look perfect then we'll happily help clean it up.
That said, the Umbraco development team likes to follow the hints that ReSharper gives us (no problem if you don't have this installed) and we've added a `.editorconfig` file so that Visual Studio knows what to do with whitespace, line endings, etc.
### The Core Contributors team
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.
### Questions?
You can get in touch with [the core contributors team](#the-core-contributors-team) in multiple ways; we love open conversations and we are a friendly bunch. No question you have is stupid. Any question you have usually helps out multiple people with the same question. Ask away:
- If there's an existing issue on the issue tracker then that's a good place to leave questions and discuss how to start or move forward.
- Unsure where to start? Did something not work as expected? Try leaving a note in the ["Contributing to Umbraco"](https://our.umbraco.com/forum/contributing-to-umbraco-cms/) forum. The team monitors that one closely, so one of us will be on hand and ready to point you in the right direction.
## Working with the code
### Building Umbraco from source code
In order to build the Umbraco source code locally, first make sure you have the following installed.
* [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 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.

After this build completes, you should be able to hit `F5` in Visual Studio to build and run the project. A IISExpress webserver will start and the Umbraco installer will pop up in your browser. Follow the directions there to get a working Umbraco install up and running.
### Working with the source code
Some parts of our source code are over 10 years old now. And when we say "old", we mean "mature" of course!
There are two big areas that you should know about:
1. The Umbraco backoffice is a extensible AngularJS app and requires you to run a `gulp dev` command while you're working with it, so changes are copied over to the appropriate directories and you can refresh your browser to view the results of your changes.
You may need to run the following commands to set up gulp properly:
```
npm cache clean --force
npm install
npm run build
```
The caching for the back office has been described as 'aggressive' so we often find it's best when making back office changes to disable caching in the browser to help you to see the changes you're making.
2. "The rest" is a C# based codebase, which is mostly ASP.NET MVC based. You can make changes, build them in Visual Studio, and hit `F5` to see the result.
To find the general areas for something you're looking to fix or improve, have a look at the following two parts of the API documentation.
* [The AngularJS based backoffice files](https://apidocs.umbraco.com/v9/ui#/api) (to be found in `src\Umbraco.Web.UI.Client\src`)
### Which branch should I target for my contributions?
We like to use [Gitflow as much as possible](https://jeffkreeftmeijer.com/git-flow/), but don't worry if you are not familiar with it. The most important thing you need to know is that when you fork the Umbraco repository, the default branch is set to something, usually `v8/contrib`. If you are working on v8, this is the branch you should be targetting. For v7 contributions, please target 'v7/dev'.
Please note: we are no longer accepting features for v7 but will continue to merge bug fixes as and when they arise.

### Making changes after the PR is open
If you make the corrections we ask for in the same branch and push them to your fork again, the pull request automatically updates with the additional commit(s) so we can review it again. If all is well, we'll merge the code and your commits are forever part of Umbraco!
### Keeping your Umbraco fork in sync with the main repository
We recommend you to sync with our repository before you submit your pull request. That way, you can fix any potential merge conflicts and make our lives a little bit easier.
Also, if you have submitted a pull request three weeks ago and want to work on something new, you'll want to get the latest code to build against of course.
Once you've already got a fork and cloned your fork locally, you can skip steps 1 and 2 going forward. Just remember to keep your fork up to date before making further changes.
To sync your fork with this original one, you'll have to add the upstream url. You only have to do this once:
@@ -199,13 +138,110 @@ Then when you want to get the changes from the main repository:
```
git fetch upstream
git rebase upstream/v8/contrib
git rebase upstream/v10/contrib
```
In this command we're syncing with the `v8/contrib` branch, but you can of course choose another one if needed.
In this command we're syncing with the `v10/contrib` branch, but you can of course choose another one if needed.
(More info on how this works: [http://robots.thoughtbot.com/post/5133345960/keeping-a-git-fork-updated](http://robots.thoughtbot.com/post/5133345960/keeping-a-git-fork-updated))
[More information on how this works can be found on the thoughtbot blog.][sync fork ext]
### And finally
#### Style guide
We welcome all kinds of contributions to this repository. If you don't feel you'd like to make code changes here, you can visit our [documentation repository](https://github.com/umbraco/UmbracoDocs) and use your experience to contribute to making the docs we have, even better. We also encourage community members to feel free to comment on others' pull requests and issues - the expertise we have is not limited to the Core Contributors and HQ. So, if you see something on the issue tracker or pull requests you feel you can add to, please don't be shy.
To be honest, we don't like rules very much. We trust you have the best of intentions and we encourage you to create working code. If it doesn't look perfect then we'll happily help clean it up.
That said, the Umbraco development team likes to follow the hints that ReSharper gives us (no problem if you don't have this installed) and we've added a `.editorconfig` file so that Visual Studio knows what to do with whitespace, line endings, etc.
#### Questions?
[questions]: #questions
You can get in touch with [the core contributors team][core collabs] in multiple ways; we love open conversations and we are a friendly bunch. No question you have is stupid. Any question you have usually helps out multiple people with the same question. Ask away:
- If there's an existing issue on the issue tracker then that's a good place to leave questions and discuss how to start or move forward.
- If you want to ask questions on some code you've already written you can create a draft pull request, [detailed in a GitHub blog post][draft prs].
- Unsure where to start? Did something not work as expected? Try leaving a note in the ["Contributing to Umbraco"][contrib forum] forum. The team monitors that one closely, so one of us will be on hand and ready to point you in the right direction.
## Creating a pull request
Exciting! You're ready to show us your changes.
We recommend you to [sync with our repository][sync fork] before you submit your pull request. That way, you can fix any potential merge conflicts and make our lives a little bit easier.
GitHub will have picked up on the new branch you've pushed and will offer to create a Pull Request. Click that green button and away you go.

We like to use [git flow][git flow] as much as possible, but don't worry if you are not familiar with it. The most important thing you need to know is that when you fork the Umbraco repository, the default branch is set to something, usually `v10/contrib`. If you are working on v9, this is the branch you should be targeting.
Please note: we are no longer accepting features for v8 and below but will continue to merge security fixes as and when they arise.
## The review process
[review process]: #the-review-process
You've sent us your first contribution - congratulations! Now what?
The [Core Collaborators team][Core collabs] can now start reviewing your proposed changes and give you feedback on them. If it's not perfect, we'll either fix up what we need or we can request that you make some additional changes.
You will get an initial automated reply from our [Friendly Umbraco Robot, Umbrabot][Umbrabot], to acknowledge that we’ve seen your PR and we’ll pick it up as soon as we can. You can take this opportunity to double check everything is in order based off the handy checklist Umbrabot provides.
You will get feedback as soon as the [Core Collaborators team][Core collabs] can after opening the PR. You’ll most likely get feedback within a couple of weeks. Then there are a few possible outcomes:
- Your proposed change is awesome! We merge it in and it will be included in the next minor release of Umbraco
- If the change is a high priority bug fix, we will cherry-pick it into the next patch release as well so that we can release it as soon as possible
- Your proposed change is awesome but needs a bit more work, we’ll give you feedback on the changes we’d like to see
- Your proposed change is awesome but... not something we’re looking to include at this point. We’ll close your PR and the related issue (we’ll be nice about it!). See [making larger changes][making larger changes] and [pull request or package?][pr or package]
### Dealing with requested changes
If you make the corrections we ask for in the same branch and push them to your fork again, the pull request automatically updates with the additional commit(s) so we can review it again. If all is well, we'll merge the code and your commits are forever part of Umbraco!
#### No longer available?
We understand you have other things to do and can't just drop everything to help us out.
So if we’re asking for your help to improve the PR we’ll wait for two weeks to give you a fair chance to make changes. We’ll ask for an update if we don’t hear back from you after that time.
If we don’t hear back from you for 4 weeks, we’ll close the PR so that it doesn’t just hang around forever. You’re very welcome to re-open it once you have some more time to spend on it.
There will be times that we really like your proposed changes and we’ll finish the final improvements we’d like to see ourselves. You still get the credits and your commits will live on in the git repository.
### The Core Collaborators team
[Core collabs]: #the-core-collaborators-team
The Core Contributors team consists of one member of Umbraco HQ, [Sebastiaan][Sebastiaan], who gets assistance from the following community members who have committed to volunteering their free time:
- [Nathan Woulfe][Nathan Woulfe]
- [Joe Glombek][Joe Glombek]
- [Laura Weatherhead][Laura Weatherhead]
- [Michael Latouche][Michael Latouche]
- [Owain Williams][Owain Williams]
These wonderful people aim to provide you with a 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.
When you’re considering creating a pull request for Umbraco CMS, we will categorize them in two different sizes, small and large.
The process for both sizes is very similar, as [explained in the contribution document](CONTRIBUTING.md#how-do-i-begin).
## Small PRs
Bug fixes and small improvements - can be recognized by seeing a small number of changes and possibly a small number of new files.
We’re usually able to handle small PRs pretty quickly. A community volunteer will do the initial review and flag it for Umbraco HQ as “community tested”. If everything looks good, it will be merged pretty quickly [as per the described process](REVIEW_PROCESS.md).
### Up for grabs
Umbraco HQ will regularly mark newly created issues on the issue tracker with the `Up for grabs` tag. This means that the proposed changes are wanted in Umbraco but the HQ does not have the time to make them at this time. We encourage anyone to pick them up and help out.
If you do start working on something, make sure to leave a small comment on the issue saying something like: "I'm working on this". That way other people stumbling upon the issue know they don't need to pick it up, someone already has.
## Large PRs
New features and large refactorings - can be recognized by seeing a large number of changes, plenty of new files, updates to package manager files (NuGet’s packages.config, NPM’s packages.json, etc.).
We would love to follow the same process for larger PRs but this is not always possible due to time limitations and priorities that need to be aligned. We don’t want to put up any barriers, but this document should set the correct expectations.
Please make sure to describe your idea in an issue, it helps to put in mockup screenshots or videos.
If the change makes sense for HQ to include in Umbraco CMS we will leave you some feedback on how we’d like to see it being implemented.
If a larger pull request is encouraged by Umbraco HQ, the process will be similar to what is described in the [small PRs process](#small-prs) above, we strive to feedback within 14 days. Finalizing and merging the PR might take longer though as it will likely need to be picked up by the development team to make sure everything is in order. We’ll keep you posted on the progress.
It is highly recommended that you speak to the HQ before making large, complex changes.
### Pull request or package?
If it doesn’t fit in CMS right now, we will likely encourage you to make it into a package instead. A package is a great way to check out popularity of a feature, learn how people use it, validate good usability and fix bugs.
Eventually, a package could "graduate" to be included in the CMS.
> This is an early WIP and is set not to be packable since we don't want to release this yet. There will be breaking changes in these projects.
This solution folder contains the projects for the new backoffice. If you're looking to fix or improve the existing CMS, this is not the place to do it, although we do very much appreciate your efforts.
### Project structure
Since the new backoffice API is still very much a work in progress, we've created new projects for the new backoffice API:
* Umbrao.Cms.ManagementApi - The "presentation layer" for the management API
* "New" versions of existing projects, should be merged with the existing projects when the new API is released:
* Umbraco.New.Cms.Core
* Umbraco.New.Cms.Infrastructure
* Umbraco.New.Cms.Web.Common
This also means that we have to use "InternalsVisibleTo" for the new projects since these should be able to access the internal classes since they will when they get merged.
Umbraco is the friendliest, most flexible and fastest growing ASP.NET CMS, and used by more than 500,000 websites worldwide. Our mission is to help you deliver delightful digital experiences by making Umbraco friendly, simpler and social.
@@ -15,7 +15,7 @@ See the official [Umbraco website](https://umbraco.com) for an introduction, cor
- [Community](#join-the-umbraco-community)
- [Contributing](#contributing)
Please also see our [Code of Conduct](CODE_OF_CONDUCT.md).
Please also see our [Code of Conduct](https://github.com/umbraco/.github/blob/main/.github/CODE_OF_CONDUCT.md).
## Getting Started
@@ -25,7 +25,7 @@ If you want to DIY, then you can [download Umbraco]((https://our.umbraco.com/dow
## Documentation
The documentation for Umbraco CMS can be found [on Our Umbraco](https://our.umbraco.com/documentation/). The source for the Umbraco docs is [open source as well](https://github.com/umbraco/UmbracoDocs) and we're happy to look at your documentation contributions.
The documentation for Umbraco CMS can be found [on Our Umbraco](https://docs.umbraco.com/). The source for the Umbraco docs is [open source as well](https://github.com/umbraco/UmbracoDocs) and we're happy to look at your documentation contributions.
You're an awesome person and have sent us your contribution in the form of a pull request! It's now time to relax for a bit and wait for our response.
In order to set some expectations, here's what happens next.
## Review process
You will get an initial reply within 48 hours (workdays) to acknowledge that we’ve seen your PR and we’ll pick it up as soon as we can.
You will get feedback within at most 14 days after opening the PR. You’ll most likely get feedback sooner though. Then there are a few possible outcomes:
- Your proposed change is awesome! We merge it in and it will be included in the next minor release of Umbraco
- If the change is a high priority bug fix, we will cherry-pick it into the next patch release as well so that we can release it as soon as possible
- Your proposed change is awesome but needs a bit more work, we’ll give you feedback on the changes we’d like to see
- Your proposed change is awesome but.. not something we’re looking to include at this point. We’ll close your PR and the related issue (we’ll be nice about it!)
## Are you still available?
We understand you have other things to do and can't just drop everything to help us out.
So if we’re asking for your help to improve the PR we’ll wait for two weeks to give you a fair chance to make changes. We’ll ask for an update if we don’t hear back from you after that time.
If we don’t hear back from you for 4 weeks, we’ll close the PR so that it doesn’t just hang around forever. You’re very welcome to re-open it once you have some more time to spend on it.
There will be times that we really like your proposed changes and we’ll finish the final improvements we’d like to see ourselves. You still get the credits and your commits will live on in the git repository.
# 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"
console.log("Returned data not indicate success.");
if(response.status !== 200) {
console.log("Status code:", response.status)
}
console.log("Returned data:", data);
if(data === '') {
console.log("An empty response usually indicates that either no comment was found or the actor user was not eligible for getting an automated response (HQ users are not getting auto-responses).")
console.log("Returned data not indicate success.");
if(response.status !== 200) {
console.log("Status code:", response.status)
}
console.log("Returned data:", data);
if(data === '') {
console.log("An empty response usually indicates that either no comment was found or the actor user was not eligible for getting an automated response (HQ users are not getting auto-responses).")
<description>Contains the SQL CE assemblies needed to run Umbraco Cms. This package only contains assemblies and can be used for package development. Use the UmbracoCms package to setup Umbraco in Visual Studio as an ASP.NET Core project.</description>
<summary>Contains the SQL CE assemblies needed to run Umbraco Cms</summary>
<file src="$BuildTmp$\SqlCe\System.Data.SqlServerCe.dll" target="lib\netstandard2.0\System.Data.SqlServerCe.dll" /> <!-- Hack because the file from the package is only added to net472 projects -->
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
Publish this won't affect you.
The following items will now be automatically included when creating a deploy package or publishing to the file
<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)" />
file_header_template=Copyright (c) Umbraco.\nSee LICENSE for more details.
# SA1636: File header copyright text should match
# Justification: .editorconfig supports file headers. If this is changed to a value other than "none", a stylecop.json file will need to added to the project.
file_header_template=Copyright (c) Umbraco.\nSee LICENSE for more details.
# SA1636: File header copyright text should match
# Justification: .editorconfig supports file headers. If this is changed to a value other than "none", a stylecop.json file will need to added to the project.
# The following applies as to the .editorconfig file ONLY, and is
# included below for reference, per the requirements of the license
# corresponding to this .editorconfig file.
# See: https://github.com/RehanSaeed/EditorConfig
#
# MIT License
#
# Copyright (c) 2017-2019 Muhammad Rehan Saeed
# Copyright (c) 2019 Henry Gabryjelski
#
# 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:
#
# The above copyright notice and this permission notice shall be
# included in all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
# OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
# OTHER DEALINGS IN THE SOFTWARE.
##########################################
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.