* 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>
* 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>
* 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>
* 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.
* 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
* 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
* 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
* 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
* 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)
* 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
* 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>
* 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
* 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)
* 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>
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>
* 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)
@@ -57,6 +57,7 @@ Or alternatively, you can reach out directly to any of the team members behind t
* 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)
* Emma Burstow (She, Her - Languages spoken: English) [ema@umbraco.com](mailto:ema@umbraco.com)
The review process is done with full respect for the privacy and security of the reporter of any incident.
@@ -89,4 +90,4 @@ Consequence: A permanent ban from any sort of public interaction within the comm
## 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.
This Code of Conduct will be maintained and reviewed by the team listed above.
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
# If this step fails, then you should remove it and run the build manually (see below)
# ℹ️ Command-line programs to run using the OS shell.
# 📚 https://git.io/JvXDl
# ✏️ If the Autobuild fails above, remove it and uncomment the following three lines
# and modify them (or add more) to build your code if your project
# uses a compiled language
- name:configure Pagefile
uses:al-cheb/configure-pagefile-action@v1.2
with:
minimum-size:8GB
maximum-size:32GB
- run:|
echo "Run Umbraco-CMS build"
pwsh -command .\build\build.ps1
config-file:./.github/config/codeql-config.yml
- name:dotnet build
run:dotnet build umbraco-netcore-only.sln
- name:Perform CodeQL Analysis
uses:github/codeql-action/analyze@v1
with:
config-file:./.github/config/codeql-config.yml
# This job is to prevent the workflow status from showing as failed when all other jobs are skipped - See https://github.community/t/workflow-is-failing-if-no-job-can-be-ran-due-to-condition/16873
always_job:
name:Always run job
runs-on:ubuntu-latest
steps:
- name:Always run
run:echo "This job is to prevent the workflow status from showing as failed when all other jobs are skipped"
Condition="$(RuntimeIdentifier.StartsWith('linux')) Or $(RuntimeIdentifier.StartsWith('win')) Or ('$(RuntimeIdentifier)' == '' And !$([MSBuild]::IsOSPlatform('osx')))"
/// Gets or sets a value indicating whether to bypass the two factor requirement in Umbraco when using external login for members. Thereby rely on the External login and potential 2FA at that provider.
/// Gets or sets a value indicating whether to bypass the two factor requirement in Umbraco when using external login for users. Thereby rely on the External login and potential 2FA at that provider.
/// Background - During v9 build we wanted an in-process message bus to facilitate removal of the old static event handlers. <br/>
/// Instead of taking a dependency on MediatR we (the community) implemented our own using MediatR as inspiration.
/// </para>
///
/// <para>
/// Some things worth knowing about MediatR.
/// <list type="number">
/// <item>All handlers are by default registered with transient lifetime, but can easily depend on services with state.</item>
/// <item>Both the Mediatr instance and its handler resolver are registered transient and as such it is always possible to depend on scoped services in a handler.</item>
/// </list>
/// </para>
///
/// <para>
/// Our EventAggregator started out registered with a transient lifetime but later (before initial release) the registration was changed to singleton, presumably
/// because there are a lot of singleton services in Umbraco which like to publish notifications and it's a pain to use scoped services from a singleton.
/// <br/>
/// The problem with a singleton EventAggregator is it forces handlers to create a service scope and service locate any scoped services
/// they wish to make use of e.g. a unit of work (think entity framework DBContext).
/// </para>
///
/// <para>
/// Moving forwards it probably makes more sense to register EventAggregator transient but doing so now would mean an awful lot of service location to avoid breaking changes.
/// <br/>
/// For now we can do the next best thing which is to create a scope for each published notification, thus enabling the transient handlers to take a dependency on a scoped service.
/// </para>
///
/// <para>
/// Did discuss using HttpContextAccessor/IScopedServiceProvider to enable sharing of scopes when publisher has http context,
/// but decided against because it's inconsistent with what happens in background threads and will just cause confusion.
publicoverrideHealthCheckStatusExecuteAction(HealthCheckActionaction)=>thrownewInvalidOperationException("UmbracoApplicationUrlCheck has no executable actions");
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.