* parse culture and segment for dynamic root.
* Handle new culture and segment parameters
---------
Co-authored-by: Niels Lyngsø <niels.lyngso@gmail.com>
* Create missing node for content type
* Change to Unknown instead of deleted
* Cleared contentTypes and removed console.log
---------
Co-authored-by: Zeegaan <nge@umbraco.dk>
Co-authored-by: Andreas Zerbst <andr317c@live.dk>
* Refactor to show icon and status code to make status more clear
* Fix up migration
* Add change log status migration
* Fix up frontend to display cross when fail
---------
Co-authored-by: Zeegaan <nge@umbraco.dk>
* Use code snippet component for request and response
* Change overlay size to medium
* Format log date
* Handle JS as JavaScript
* Try format JSON
* Update less syntax
* Add word wrap
* Formatting
* Update variable
* Remove unused editorService
* Add missing details controller and fix formatting in catch block
* Set data object
* Update overlay size to match umb-editor overlay
* Use editorService instead to show details on overlay
* Add general box header
(cherry picked from commit 13db9b308e)
* Use code snippet component for request and response
* Change overlay size to medium
* Format log date
* Handle JS as JavaScript
* Try format JSON
* Update less syntax
* Add word wrap
* Formatting
* Update variable
* Remove unused editorService
* Add missing details controller and fix formatting in catch block
* Set data object
* Update overlay size to match umb-editor overlay
* Use editorService instead to show details on overlay
* Add general box header
* fix: make sure isTimedOut state is forwarded to the login screen
* fix: make umb-custom-view work without attributeChangedCallback
* style subheadline
* add support for userViewState on external login custom views
* fix: subheadline should be a span
* check for isTimedOut on internal login screen
* reformat code
* add args to external login provider custom view
* send args to custom view
* set state to "logout" when clicking the logout button
* force user to new login page /umbraco/login?logout=true if logged out
* add new login images
* layout styling
* styling
* fix line height
* use image and logo
* add comments
* remove border and shadow
* change logos and images
* use styleMap and add dark logo property
* add new content setting for dark logo variant
* add loginLogoImageDark to angular server variables
* set logo-dark attribute on the auth element and rename "logo-image" to "logo-light"
* styling
* update auth element
* replace logo files with new brand logos
* use different logo on install screen
* no-nodes: move logo to img file
* use different logo for umb-avatar
* use different logo for backoffice
* use different logo for BootFailed
* tranparent background
* switch dark and light logo
* image flip horizontal
* fix background
* inject native inputs into auth element
* use native inputs in login
* get input values and submit on enter press
* wip validation
* wip custom login input. And inject entire form instead
* use external submit button
* use uui-labels instead
* style inputs
* cleanup
* convert to function
* add translations
* wait for slot update before getting form
* fix divider to work on transparent backgrounds
* background less transparent
* load css from file
* fix logo
* fix mobile padding
* add documentation and fix name of input field for username
* revert to old login background
* revert to old login background
* add labels for login fields
* fix label warning
* fix fallback for messages
* replace background image
* do not transform background image
* add mocked texts
* use new generic "Welcome" title
* use correct user_email for email field
* update "Welcome..." to "Welcome" to use with the new login screen
* reformat code
* update greeting headline
* update actions
* update mocks
* update fallback value
* update texts
* improve query safety
* add logoImageAlternative and ensure naming is correct from backend to frontend
* add remarks to avoid changing the color configuration of an external login button
* format
* update auth styles
* external login provider element
* auth layout
* external login providers layout
* login input element
* invite page
* login page
* new password page
* typesafe
* fix custom view login provider
* divider color
* prevent pink lines from overflowing image
* replace login background
* add umb prefix to css variables
* avoid using 'umbraco' in alt texts and add check for logo alternative
* adjust greeting size
* Revert "add umb prefix to css variables"
This reverts commit 005813cbfd5df4b72d6ba61f6bfe7b368cb98823.
* add new blue button color
* font-size on headlines
* align styling on all pages
* use error layout
* ts happy
* adjust divider to work better with rounded buttons
* add overflow to in case of very long forms
* adjust h2 size
* update mocks to match cms
* first headline on a page should be a h1
* first headline on a page should be a h1
* first headline on a page should be a h1
* copy styling to mfa page
* first headline on a page should be a h1
* make the blue logo default for Umbraco 13
* move background-color to auth-layout so it also takes effect inside the cms
* adjust padding on the internal div on the buttons
* reformat code
* fix async text for external login buttons
* align design of mfa page with the other screens
* align logos
* reformat code
* use white logo for nonodes
* add safety measure to returnPath
* lowercase the 'or' text
* force uui-select to use the background-color as other regular inputs
* match uui-select-height with other input fields
* revert back to default look for outline uui-button
* move background-color to layout element to span the entire browser
* align headlines across components
* adjust max-width on #content to better fit headlines
* align line-height on headlines across components
* allow error text a bit of top margin
---------
Co-authored-by: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com>
* Add edit page for webhook
* Remove function again
* Remove old edit in overlay
* Update language keys
* Update GetByKey to get model as camel case properties
* Localize "select event"
* Localize "create header"
* Don't show input field in header for now
* Add generic class to limit property editor width
* Remove loading check since already checked when loading entire editor view
* Add empty message
* Update col span
* Set edit name
* Map id property
* Return webhook model after update
* Translate speech bubble text
* Resolve content types
* Only push if not already exists
* Check webhook headers
* Set webhook enabled by default
* Refactor IWebhookEvent to contain event type.
* refactor frontend to filter on eventType.
* Display event names
* refactor to use eventNames
* remove npm from overview
* implement alias for WebhookEvents
* Implement [WebhookEvent] attribute
* Refactor IWebhookService to get by event alias and not name
* Rename parameter to fit method name
* to lower event type to avoid casing issues
* Apply suggestions from code review
Co-authored-by: Ronald Barendse <ronald@barend.se>
* Change event names from constants to hard coded. And give more friendly names
* Refactor to not use event names, where it was not intended
* Add renaming column migration
* display event alias in logs
* Update migration to check if old column is there
* Apply suggestions from code review
Co-authored-by: Kenn Jacobsen <kja@umbraco.dk>
* add determineResource function to avoid duplicate code
---------
Co-authored-by: Zeegaan <nge@umbraco.dk>
Co-authored-by: Ronald Barendse <ronald@barend.se>
Co-authored-by: Kenn Jacobsen <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>
* Update icons
* Update tree headers
* Cleanup and change icon name
* Use button element instead
* Disable button instead
* Fix overlay title
* Simplify labels
* Add datalist for common headers
* Use Utilties function
* Events in plural form
* Cleanup and formatting
* Formatting
* More formatting
* Stop event bubbling when clicking delete button
* Sync tree node and show loading indicator
* Add webhook icon
* Remove globe icon to not confuse with languages
* Update logs
* Remove extra column with delete button which shouldn't be there
* Use umb-icon and update titles
* Use content type picker
(cherry picked from commit 29be27ba46)
* Update icons
* Update tree headers
* Cleanup and change icon name
* Use button element instead
* Disable button instead
* Fix overlay title
* Simplify labels
* Add datalist for common headers
* Use Utilties function
* Events in plural form
* Cleanup and formatting
* Formatting
* More formatting
* Stop event bubbling when clicking delete button
* Sync tree node and show loading indicator
* Add webhook icon
* Remove globe icon to not confuse with languages
* Update logs
* Remove extra column with delete button which shouldn't be there
* Use umb-icon and update titles
* Use content type picker
* insert umb rte block web component in rte
* First stab at moving the RTE markup to a nested "markup" property in the property value.
* initial work
* only rewrite markup
* transform RTE into component
* parse scope in grid.rte
* revert use a fallback instead
* block insertion and sync in place
* block picker partly impl
* remove test of old controller
* remove test of old controller
* block with block data
* proper block with api connection
* remove log
* styling
* Persist blocks data (still a temporary solution)
* styling allows for interaction
* block actions
* tinyMCE styling
* paste feature
* prevalue display Inline toggle
* inline mode in RTE
* todo note
* fixes wording
* preparation for editor communication
* remove val-server-match for now
* clean up blocks that does not belong in markup
* remove blocks not used in the markup
* liveEditing
* displayAsBlock formatting
* clean up
* TODO note
* Serverside handling for RTE blocks (incl. refactor of Block List and Block Grid)
* ensure rich text loads after block editor
* trigger resize on block init
* Handle RTE blocks output in Delivery API
* sanitize ng classes
* simplify calls to init blocks
* move sanitisation
* make validation work
* only warn when missing one
* clean up
* remove validation border as it does not work
* more clean up
* add unsupported block entry editor
* Revert breaking functionality for Block List and Grid
* prevent re-inits of blocks
* make sure delete blocks triggers an update
* Refactor RichTextPropertyIndexValueFactory to index values from blocks + clean up RichTextPropertyEditor dependencies
* first working cursor solution
* inline element approach
* Handle both inline and block level blocks
* Fix the RTE block parser regex so it handles multiple inline blocks.
* Fix reference and tags tracking, add tests, make the editor backwards compatible and make deploy happy
* Use RichTextPropertyEditorHelper serialization in tests
* Ensure correct model in Block Grid value converter (incl unit test to prove it)
* do not include umbblockpicker in grid
* make blocks the new default, instead of macros
* only send value of body from DOMParser
* Blocks of deleted ElementTypes shows unsupported
* do not edit a unsupported block
* remove trying to be smart on the init
* fix missing culture issue
* set dirty
* alert when no blocks
* Revert "make blocks the new default, instead of macros"
This reverts commit 283e8aa473fdfde075197d34aa47e35dfc64a8ae.
---------
Co-authored-by: kjac <kja@umbraco.dk>
* Temp commit.. Initial work on XPath alternative for dymamically finding start nodes
* First commit that goes all the way from ui to db for NearestAncestorOrSelf
* Added more filters + return null from controller instead of not found
* Bugfix
* rewrite query to make sqlserver happy?
* Added more tests
* clean up initial step
* Added tests and refactor
* Update endpoint to take model instead of json
* pick origin
* Use model for config instead of string
* append add filter button
* fix
* default filter
* rename json fields
* correct field names
* minor corrections
* Renaming..
* Rename endpoint
* initial work for appending query steps
* query steps ui
* more localization
* query step UI
* Use doc type keys instead of alias
* only for Documents
* change to send keys to anyOfDocTypeKeys
* Fix potential bug
* Fix when level is impossible to get
* correct prop to dynamicRoot
* noValidStartNode dialog
* custom query step
* Renaming
* Rollback unintended file change
* Fixed issue if no doc type is chosen
* Remove unintended file changes
* More unintended changes
* Renaming
* Optimizations
- IDE Recommendation for better source
- Renaming for better clarity
- Improving spacing/formatting
- Typo corrections
- Remove warnings concerning IEnumerable
* Fix failed attempt bug
---------
Co-authored-by: Niels Lyngsø <niels.lyngso@gmail.com>
Co-authored-by: Sven Geusens <sge@umbraco.dk>
* Create webhook models
* Define interfaces for service and repository
* Create Webhook dto and corresponding factory
* implement WebhookRepository.cs
* Remove entity name from models, as that should be resolved in mapping instead
* Add new table to schema creator
* Register repo for DI
* Remove more mentions of entityname
* Refactor repository to guids
* Implement WebhookService
* Use scopes in service
* Start creating tests for service
* Refactor delete to use Id and not entire entity
* Rework Webhooks to be able to have multiple entity keys
* Implement GetAll functionality
* Implement webhook controller
* Imeplement get all events action
* Add equalityComparer deletegate to Webhook
* Add datacontract attirbutes to properties
* Implement backoffice webhooks tree
* Implement first webhooks menu
* Make WebHookController authorized
* Update to have tabs with webhooks and logs
* Enable create overlay
* Push to entityKeys array
* Fix up pagination
* Implement delete functionality
* remove pagination
* add log view
* Fix create to be able to select more than one content type
* implement type name resolving for content
* Refactor to use less duplication
* Implement update functionality in frontend
* Rename database table
* Make multiple events possible
* create new event picker
* Refactor to actually add new database table with proper name
* Make it possible to select multiple events
* Fix updating current items
* Fix up update functionality after db rework
* Add webhook icon
* Switch to match heartcore icons
* Refactor to use bases instead of Enum
* Refactor to make IWebhookEvent to Collection, so it can be injected instead of using reflection
* Fix up frontend to match new models
* Fix integration tests
* Remove obsolete entity key from webhookdto
* Introduce constants instead of hard coded strings
* Start implementation of firing mechanism
* Add new GetByEventName method
* Add 1 to many list on WebhookDto
* Implement new repository pattern
* Implement GetByEventName
* Fix up repository to use all async
* Refactor events to fire
* Refactor WebhookEvents to be more DRY
* Add custom header
* Start implementing log repository
* Implement GetPaged
* Implement WebhookLogService
* Implement GetLogs
* Add url to webhook log
* Implement log overview
* Formatting
* Implement details view
* Refactor to get actual retry count
* Refactor firing to fire only when Enabled
* Add Status code to detailed view
* Add configuration to disable webhooks entirely
* Implement custom headers frontend
* Implement persistence of custom headers
* Refactor retry service to also retry on non success status codes.
* Refactor registration of Webhooks, to also register as NotificationHandler
* Add webhooks migration
* Add key for adding webhook headers
* Fix up test
* Change event icon to flag
* Remember event, when editing what events you have chosen
* Refactor reflection to check if INotificationAsyncHandler instead
* Formatting
* Refactor webhook model to no longer derive from EntityBase
* Rename entityKeys to content keys
* Rename controller to lowercase H
* Add null check before trying to access selectedEvents
* Add configuration for maximum number of retries
* Add index to date
* Add webhook Key to logs
* Check for SchedulingPublisher before sending webhooks
* rename requestObject to payload
* Refactor event to send appropriate payloads
* Refactor logging to happen for every try.
* Order date by descending
* Add todo
* Change firing service to use String not ByteContent
* Update Headers to Interface instead of concrete implementation
* Dont return if a table exists already
* Rename updateModel to webhook
* Annotate WebhookController.cs with PluginController attribute
* Add danish translations
* Do not check if fail
* Dont filter when selecting custom items
* Remove delay from WebhookFiringService
---------
Co-authored-by: Zeegaan <nge@umbraco.dk>
* Bump tinymce from 6.7.0 to 6.7.1
* Ensure PackageVersion is set correctly before transforming template.json
* rerun watchers every time we reinit the data
* handle variant content with only one language
---------
Co-authored-by: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com>
Co-authored-by: Ronald Barendse <ronald@barend.se>
* 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
* implement interface
* add build targets for login screen
* package lock
* move components to pages folder
* load logo and background from property
* styling
* move mocks around
* remove unused vars
* add backoffice handlers
* install rxjs
* add mock data
* add element and context for localization
* mock data
* use umb-localize
* remove the extra logic with check for section_
* change key for login button
* add base to vite environment
* login styling
* cleanup and button styling
* use correct reset url
* change body of reset request
* validate password reset code
* redirect to /login/new on reset password code verify
* add obsolete messages
* remove inline scripts for old backoffice
* remove shadowdom from localize element
* Revert "remove shadowdom from localize element"
This reverts commit 46ae282f7ce9235c15f160d57d54acd5d3378668.
* hook up reset password to api
* rename pages to state as it is not actually used as different pages
* reset password styling
* more styling
* add confirmation page to new password
* set router to firstUpdated to avoid rAF
* set a custom baseUrl on the router to make sure it works without trailing slash
* use route parameters to redirect on the login page to ensure correct escaping
* add server variables
* make sure auth layout uses the provided properties for images
* format
* redirect to code expired page
* add missing properties
* use allowPasswordReset and allowInvite properties in routing and layout
* make ts happy
* cleanup
* init invite page
* hook up usernameIsEmail
* init external login providers
* add mock provider
* add padding to buttons
* replace uui button with normal button
* add external login providers as slot
* add disableLocalLogin property
* add form to external login providers
* remove unused method
* fix build errors
* add attributes for external login
* add custom view to external login
* add new custom icon registry
* attach two icon registries
* use relative paths
* use relative paths
* use main registry instead of providing directly
* add look and color to external login
* implement getIcons() method
* use getIcons() to request icons
* install remixicon to supplement backoffice icons (replacing font-awesome eventually)
* move icon registries to auth element
* Revert "install remixicon to supplement backoffice icons (replacing font-awesome eventually)"
This reverts commit 0c6659d8d9dfe0664314ec6a3acaa8e20cb606ed.
* add icons for common external providers
* add more icons
* remove resetCode hack as it is no longer needed
* add validation to new password
* get gretting from translation file
* add hack to get text left aligned in uui-button
* add custom router
* WIP Use router
* also change the URL during an action
* update login action to redirect to /new when needed
* redirect to login from reset and new if not allowed
* fix new password button href
* use property on login element instead of context
* check for redirect on invite-user
* move fake external login providers to index.html for use in dev server
* allow password reset on dev server
* add look and color
* only set styles for default view buttons
* suppress vite import warning
* check and inform for errors and show 'nothing' if a custom view fails to load
* fix mock path for localizedtext
* fix build errors
* ensure that msw (and all its dependencies) do not end up in the production bundle (saved ~500 KB)
* Revert AngularValueExternalLoginInfoScriptAsync removal
* forward the providerName to custom views
* change default icon
* add button look and color to external login provider options
* add obsolete to ButtonStyle and add a mapper to new values
* add required xml comments
* map external login providers to <umb-login-external />
* fix typo
* only show external login layout if there are slotted children
* pass on name as "provider"
* send externalLoginUrl to custom views
* cleanup
* global import
* hide external logins completely when empty
* cleanup
* setup redirect to invite
* rename pages to name-page
* fix names and paths
* use new password layout for invite and new password
* add comments
* cleanup and use confirmation element
* set parameters after successful verifyinvite
* map display-name and provider-name to the external element
* map display-name
* set up external login to handle correct display- and provider-name with documentation
* add support for disabling local login
* update path to handlers
* add more localization
* add handlers for 2fa
* router should support a factory for component
* push login to ?flow=mfa on 402 codes
* add page to handle 2fa/mfa
* add support for custom routing
* add fallback for welcome greeting
* handle AngularJS silliness
* fix typo
* fix router and replace custom umbroute:statechange event with native pushState
* simplify code and cleanup
* a11y improvements
* you can now navigate to anywhere from anywhere with pushState
* access the "twoFactorView" from the backend
* set the default implemented twoFactorView to NULL
* add initial logic to handle a custom mfa view
* roll back custom pushState changes
* add mocks for 2fa custom view
* use router redirect
* re-enable click url change
* cleanup
* remove debug buttons
* add unsafeHTML to localize element
* load mfa custom views
* load custom view
* improve external login custom views
* using optimisation
* add current culture
* only show mfa page if 402 code has been encountered in same session
* format
* remove unnesesary action
* add new user invite password
* remove console log
* fix getting stuck at new password page if you've triggered custom validity
* unify layouts
* add styling to buttons in error layout
* remove unused css
* add error message to new password page
* add error message to reset password
* add error message to invite page
* fix invite page not being rendered
* cleanup
* add obsolete notice to PostSetInvitedUserPassword
* add request model to set a new password for an invited user
* add new method to handle invited user password
* add get password config api call
* fix password config parameters and add invite call
* get invited user
* get password config
* assign unique guid to login project
* add userId to get password config and use the config as validation
* fix
* add alerts
* fix the new password layout
* auth redirects invite error to error page
* use password config on new password page
* remove console log
* move file and remove unused extension
* make ts happy
* file structure
* rename login-extern to external-login-provider
* update element name
* update dependencies
* export custom-view.element.ts
* remove debug
* use umb-custom-view to load custom views
* build types
* move @umbraco/uui to the login app and import from there in backoffice
* make the ui library and icon registry generally available as exports from the login app
* add mock handler for icons
* cleanup package
* use uui for external login providers in the backoffice
* add imports and enable the backoffice icon registry globally
* disable shadowdom
* default background image
* use undefined
* revert angular values
* remove legacy sys variables
* add logic to handle mfa in an overlay scenario without routing
* add new login screen to replace the overlay when logged in to the backoffice
* update spec to work with locators
* cleanup of legacy context
* ViewData is not always required
* add method to solely return the default view of the backoffice to simply BackofficeController as well as unit tests
* add test for the login view
* cleanup usings
* Apply suggestions from code review
Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>
* remove 'remember me'
* add more contrast to external login divider
* update dependencies
* set "lang" attribute to lowercase
* remove default headline
* localize the "Or" divider and add aria-hidden
* remove Umbraco reference from logo and add aria-hidden
* add aria-hidden to uui-icon inside external login buttons
* format code
* update dependencies
* update dependencies
* add translations to invite user page
* use back to login button
* update localization-context.ts to match api from old LocalizeService in Angular
* add tsc to watch
* formatting
* add missing localizations
* fix a11y issues with muted text
* refresh current user after login
* remove unused variable
* add localization
* add localization for error messages
* remove unused var
* return user after login and set successful auth
* retry request queue after login
* add language keys for failed login
* add language keys for failed login
* render the views without a router so that it works inside a modal in the backoffice
* add autocomplete to reset password fields
* add autocomplete to login screen
* add generic error layout to new-password-page
* new-password-layout should be able to handle with and without username
* update language keys
* check for userId before trying to request invited user
* show error when no invited user is found
* place back-to-login button on all error layouts
* update lockfile
---------
Co-authored-by: Jesper Møller Jensen <26099018+JesmoDev@users.noreply.github.com>
Co-authored-by: Nikolaj Geisle <70372949+Zeegaan@users.noreply.github.com>
* add Audit Trail to the media info tab just alike the conten
* Change the tranlation from "content ..." to "Media ..."
---------
Co-authored-by: Lucas Bach Bisgaard <lom@novicell.dk>
currently checks the first group or tab (index 0) that was added to see if there are properties.
This doesn't work well when the tab has a single group, and the group is created after the tab, as the tab will be empty, even though the group has the properties.
there is also some interactions when composing tabs from other doc types, but I didn't have a good amount of time to test this.