Merge branch 'main' into feature/master-template-selector
This commit is contained in:
@@ -25,9 +25,6 @@ export default class UmbLoginElement extends LitElement {
|
||||
@state()
|
||||
private _loginError = '';
|
||||
|
||||
@state()
|
||||
private _isFormValid = false;
|
||||
|
||||
constructor() {
|
||||
super();
|
||||
if (this.isLegacy) {
|
||||
@@ -43,9 +40,7 @@ export default class UmbLoginElement extends LitElement {
|
||||
const form = e.target as HTMLFormElement;
|
||||
if (!form) return;
|
||||
|
||||
this._isFormValid = form.checkValidity();
|
||||
|
||||
if (!this._isFormValid) return;
|
||||
if (!form.checkValidity()) return;
|
||||
|
||||
const formData = new FormData(form);
|
||||
|
||||
@@ -114,7 +109,6 @@ export default class UmbLoginElement extends LitElement {
|
||||
<uui-form-layout-item>${this.#renderErrorMessage()}</uui-form-layout-item>
|
||||
|
||||
<uui-button
|
||||
?disabled=${!this._isFormValid}
|
||||
type="submit"
|
||||
label="Login"
|
||||
look="primary"
|
||||
|
||||
@@ -2,7 +2,5 @@ import { cpSync } from 'fs';
|
||||
|
||||
const srcDir = './dist-cms';
|
||||
const outputDir = '../Umbraco.Cms.StaticAssets/wwwroot/umbraco/backoffice';
|
||||
const outputWebDir = '../Umbraco.Web.UI.New';
|
||||
|
||||
cpSync(srcDir, outputDir, { recursive: true });
|
||||
cpSync(`${srcDir}/umbraco-package-schema.json`, `${outputWebDir}/umbraco-package-schema.json`);
|
||||
|
||||
18995
src/Umbraco.Web.UI.Client/package-lock.json
generated
18995
src/Umbraco.Web.UI.Client/package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@@ -104,7 +104,7 @@
|
||||
"lit": "^2.7.4",
|
||||
"lodash-es": "4.17.21",
|
||||
"monaco-editor": "^0.36.1",
|
||||
"router-slot": "file:router-slot-2.1.0.tgz",
|
||||
"router-slot": "file:router-slot-2.2.0.tgz",
|
||||
"rxjs": "^7.8.0",
|
||||
"uuid": "^9.0.0"
|
||||
},
|
||||
|
||||
Binary file not shown.
BIN
src/Umbraco.Web.UI.Client/router-slot-2.2.0.tgz
Normal file
BIN
src/Umbraco.Web.UI.Client/router-slot-2.2.0.tgz
Normal file
Binary file not shown.
@@ -61,11 +61,11 @@ export class UmbBackofficeMainElement extends UmbLitElement {
|
||||
}
|
||||
});
|
||||
|
||||
if (!this._routes.find((r) => r.path === '**')) {
|
||||
if (this._sections.length > 0) {
|
||||
this._routes.push({
|
||||
alias: '__redirect',
|
||||
path: '**',
|
||||
redirectTo: this._routePrefix + this._sections?.[0]?.meta.pathname,
|
||||
path: '/',
|
||||
redirectTo: 'section/content',
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { expect, fixture, defineCE } from '@open-wc/testing';
|
||||
import { UmbLitElement } from '@umbraco-cms/internal/lit-element';
|
||||
import { UmbContextConsumer } from '../consume/context-consumer.js';
|
||||
import { UmbContextProviderController } from './context-provider.controller.js';
|
||||
import { UmbLitElement } from '@umbraco-cms/internal/lit-element';
|
||||
|
||||
class UmbTestContextProviderControllerClass {
|
||||
prop = 'value from provider';
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { expect, fixture, html } from '@open-wc/testing';
|
||||
import { customElement } from '@umbraco-cms/backoffice/external/lit';
|
||||
import { UmbContextConsumerController } from '../consume/context-consumer.controller.js';
|
||||
import { UmbContextProviderElement } from './context-provider.element.js';
|
||||
import { customElement } from '@umbraco-cms/backoffice/external/lit';
|
||||
import { UmbControllerHostMixin } from '@umbraco-cms/backoffice/controller-api';
|
||||
|
||||
@customElement('umb-test-context')
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { expect, fixture, html } from '@open-wc/testing';
|
||||
import { customElement } from '@umbraco-cms/backoffice/external/lit';
|
||||
import { UmbControllerHostInitializerElement } from './controller-host-initializer.element.js';
|
||||
import { UmbControllerHostElement, UmbControllerHostMixin } from './controller-host.mixin.js';
|
||||
import { customElement } from '@umbraco-cms/backoffice/external/lit';
|
||||
import { UmbContextConsumerController, UmbContextProviderController } from '@umbraco-cms/backoffice/context-api';
|
||||
|
||||
@customElement('umb-test-controller-host-initializer-consumer')
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { expect } from '@open-wc/testing';
|
||||
import { customElement } from '@umbraco-cms/backoffice/external/lit';
|
||||
import { UmbControllerHostElement, UmbControllerHostMixin } from './controller-host.mixin.js';
|
||||
import { customElement } from '@umbraco-cms/backoffice/external/lit';
|
||||
import { UmbContextProviderController } from '@umbraco-cms/backoffice/context-api';
|
||||
|
||||
class UmbTestContext {
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import type { ManifestTypeMap, ManifestBase, SpecificManifestTypeOrManifestBase, ManifestKind } from '../types.js';
|
||||
import {
|
||||
BehaviorSubject,
|
||||
map,
|
||||
@@ -5,7 +6,6 @@ import {
|
||||
distinctUntilChanged,
|
||||
combineLatest,
|
||||
} from '@umbraco-cms/backoffice/external/rxjs';
|
||||
import type { ManifestTypeMap, ManifestBase, SpecificManifestTypeOrManifestBase, ManifestKind } from '../types.js';
|
||||
|
||||
function extensionArrayMemoization<T extends { alias: string }>(
|
||||
previousValue: Array<T>,
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { distinctUntilChanged, map, Observable, shareReplay } from '@umbraco-cms/backoffice/external/rxjs';
|
||||
import { MemoizationFunction } from './memoization-function.js';
|
||||
import { MappingFunction } from './mapping-function.js';
|
||||
import { defaultMemoization } from './default-memoization.js';
|
||||
import { distinctUntilChanged, map, Observable, shareReplay } from '@umbraco-cms/backoffice/external/rxjs';
|
||||
|
||||
/**
|
||||
* @export
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
import { BehaviorSubject } from '@umbraco-cms/backoffice/external/rxjs';
|
||||
import { createObservablePart } from './create-observable-part.function.js';
|
||||
import { deepFreeze } from './deep-freeze.function.js';
|
||||
import type { MappingFunction } from './mapping-function.js';
|
||||
import type { MemoizationFunction } from './memoization-function.js';
|
||||
import { naiveObjectComparison } from './naive-object-comparison.js';
|
||||
import { BehaviorSubject } from '@umbraco-cms/backoffice/external/rxjs';
|
||||
|
||||
/**
|
||||
* @export
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { Observable } from '@umbraco-cms/backoffice/external/rxjs';
|
||||
import { UmbObserver } from './observer.js';
|
||||
import { Observable } from '@umbraco-cms/backoffice/external/rxjs';
|
||||
import { UmbControllerInterface, UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api';
|
||||
|
||||
export class UmbObserverController<T = unknown> extends UmbObserver<T> implements UmbControllerInterface {
|
||||
|
||||
@@ -78,7 +78,7 @@ export class UmbCollectionElement extends UmbLitElement {
|
||||
}
|
||||
|
||||
this._routes.push({
|
||||
path: '**',
|
||||
path: '',
|
||||
redirectTo: views?.[0]?.meta.pathName ?? '/',
|
||||
});
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { css, html, customElement } from '@umbraco-cms/backoffice/external/lit';
|
||||
import { UmbSectionSidebarMenuElement } from '../section-sidebar-menu/section-sidebar-menu.element.js';
|
||||
import { css, html, customElement } from '@umbraco-cms/backoffice/external/lit';
|
||||
import {
|
||||
ManifestSectionSidebarAppMenuWithEntityActionsKind,
|
||||
UmbBackofficeManifestKind,
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { UmbSectionContext, UMB_SECTION_CONTEXT_TOKEN } from '../section.context.js';
|
||||
import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui';
|
||||
import { css, html, nothing , customElement, property, state } from '@umbraco-cms/backoffice/external/lit';
|
||||
import { css, html, nothing, customElement, property, state } from '@umbraco-cms/backoffice/external/lit';
|
||||
import { map, of } from '@umbraco-cms/backoffice/external/rxjs';
|
||||
import type { UmbRoute, UmbRouterSlotChangeEvent, UmbRouterSlotInitEvent } from '@umbraco-cms/backoffice/router';
|
||||
import {
|
||||
@@ -71,7 +71,7 @@ export class UmbSectionViewsElement extends UmbLitElement {
|
||||
});
|
||||
|
||||
const routes = [...dashboardRoutes, ...viewRoutes];
|
||||
this._routes = routes?.length > 0 ? [...routes, { path: '**', redirectTo: routes?.[0]?.path }] : [];
|
||||
this._routes = routes?.length > 0 ? [...routes, { path: '', redirectTo: routes?.[0]?.path }] : [];
|
||||
}
|
||||
|
||||
private _observeSectionAlias() {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { UmbDocumentTypeWorkspaceContext } from '../../document-type-workspace.context.js';
|
||||
import type { UmbDocumentTypeWorkspaceViewEditTabElement } from './document-type-workspace-view-edit-tab.element.js';
|
||||
import { css, html , customElement, state , repeat } from '@umbraco-cms/backoffice/external/lit';
|
||||
import { css, html, customElement, state, repeat } from '@umbraco-cms/backoffice/external/lit';
|
||||
import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui';
|
||||
import { UmbContentTypeContainerStructureHelper } from '@umbraco-cms/backoffice/content-type';
|
||||
import { encodeFolderName, UmbRouterSlotChangeEvent, UmbRouterSlotInitEvent } from '@umbraco-cms/backoffice/router';
|
||||
@@ -95,7 +95,7 @@ export class UmbDocumentTypeWorkspaceViewEditElement
|
||||
|
||||
if (routes.length !== 0) {
|
||||
routes.push({
|
||||
path: '**',
|
||||
path: '',
|
||||
redirectTo: routes[0]?.path,
|
||||
});
|
||||
}
|
||||
|
||||
@@ -97,7 +97,7 @@ export class UmbDocumentWorkspaceEditorElement extends UmbLitElement {
|
||||
if (routes.length !== 0) {
|
||||
// Using first single view as the default route for now (hence the math below):
|
||||
routes.push({
|
||||
path: '**',
|
||||
path: '',
|
||||
redirectTo: routes[this._availableVariants.length * this._availableVariants.length]?.path,
|
||||
});
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { UmbDocumentWorkspaceContext } from '../../document-workspace.context.js';
|
||||
import { css, html , customElement, state , repeat } from '@umbraco-cms/backoffice/external/lit';
|
||||
import { css, html, customElement, state, repeat } from '@umbraco-cms/backoffice/external/lit';
|
||||
import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui';
|
||||
import { UmbContentTypeContainerStructureHelper } from '@umbraco-cms/backoffice/content-type';
|
||||
import {
|
||||
@@ -97,7 +97,7 @@ export class UmbDocumentWorkspaceViewEditElement
|
||||
|
||||
if (routes.length !== 0) {
|
||||
routes.push({
|
||||
path: '**',
|
||||
path: '',
|
||||
redirectTo: routes[0]?.path,
|
||||
});
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { html , customElement, state } from '@umbraco-cms/backoffice/external/lit';
|
||||
import { html, customElement, state } from '@umbraco-cms/backoffice/external/lit';
|
||||
import type { UmbRoute } from '@umbraco-cms/backoffice/router';
|
||||
import {
|
||||
ManifestTree,
|
||||
@@ -52,7 +52,7 @@ export class UmbCreatedPackagesSectionViewElement extends UmbLitElement implemen
|
||||
});
|
||||
|
||||
routes.push({
|
||||
path: '**',
|
||||
path: '',
|
||||
redirectTo: 'overview',
|
||||
});
|
||||
this._routes = routes;
|
||||
|
||||
@@ -1,7 +1,15 @@
|
||||
import './components/index.js';
|
||||
import { UmbLogViewerWorkspaceContext, UMB_APP_LOG_VIEWER_CONTEXT_TOKEN } from '../logviewer.context.js';
|
||||
import { map } from '@umbraco-cms/backoffice/external/rxjs';
|
||||
import { PropertyValueMap, css, html, nothing , customElement, state , repeat } from '@umbraco-cms/backoffice/external/lit';
|
||||
import {
|
||||
PropertyValueMap,
|
||||
css,
|
||||
html,
|
||||
nothing,
|
||||
customElement,
|
||||
state,
|
||||
repeat,
|
||||
} from '@umbraco-cms/backoffice/external/lit';
|
||||
import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui';
|
||||
import { UmbLitElement } from '@umbraco-cms/internal/lit-element';
|
||||
import { createExtensionElement } from '@umbraco-cms/backoffice/extension-api';
|
||||
@@ -90,7 +98,7 @@ export class UmbLogViewerWorkspaceElement extends UmbLitElement {
|
||||
});
|
||||
|
||||
this._routes.push({
|
||||
path: '**',
|
||||
path: '',
|
||||
redirectTo: `${this._workspaceViews[0].meta.pathname}`,
|
||||
});
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { UmbDictionaryRepository } from '../../dictionary/repository/dictionary.repository.js';
|
||||
import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui';
|
||||
import { css, html , customElement, state , when } from '@umbraco-cms/backoffice/external/lit';
|
||||
import { css, html, customElement, state, when } from '@umbraco-cms/backoffice/external/lit';
|
||||
import { UmbTableConfig, UmbTableColumn, UmbTableItem } from '@umbraco-cms/backoffice/components';
|
||||
import { UmbLitElement } from '@umbraco-cms/internal/lit-element';
|
||||
import { DictionaryOverviewResponseModel, LanguageResponseModel } from '@umbraco-cms/backoffice/backend-api';
|
||||
@@ -80,13 +80,16 @@ export class UmbDashboardTranslationDictionaryElement extends UmbLitElement {
|
||||
#setTableItems() {
|
||||
this.#tableItems = this.#dictionaryItems.map((dictionary) => {
|
||||
// id is set to name to allow filtering on the displayed value
|
||||
// TODO: Generate URL for editing the dictionary item
|
||||
const tableItem: UmbTableItem = {
|
||||
id: dictionary.name ?? '',
|
||||
icon: 'umb:book-alt',
|
||||
data: [
|
||||
{
|
||||
columnAlias: 'name',
|
||||
value: html`<a style="font-weight:bold" href="/section/translation/dictionary-item/edit/${dictionary.id}">
|
||||
value: html`<a
|
||||
style="font-weight:bold"
|
||||
href="/section/translation/workspace/dictionary-item/edit/${dictionary.id}">
|
||||
${dictionary.name}</a
|
||||
> `,
|
||||
},
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui';
|
||||
import { css, html , customElement } from '@umbraco-cms/backoffice/external/lit';
|
||||
import { css, html, customElement } from '@umbraco-cms/backoffice/external/lit';
|
||||
|
||||
import { UmbLitElement } from '@umbraco-cms/internal/lit-element';
|
||||
import { UmbRoute } from '@umbraco-cms/backoffice/router';
|
||||
@@ -16,7 +16,7 @@ export class UmbUserGroupsSectionViewElement extends UmbLitElement {
|
||||
component: () => import('../workspace/user-group-workspace.element.js'),
|
||||
},
|
||||
{
|
||||
path: '**',
|
||||
path: '',
|
||||
redirectTo: 'collection',
|
||||
},
|
||||
];
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { UmbUserCollectionContext } from './user-collection.context.js';
|
||||
import { css, html , customElement, state } from '@umbraco-cms/backoffice/external/lit';
|
||||
import { css, html, customElement, state } from '@umbraco-cms/backoffice/external/lit';
|
||||
import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui';
|
||||
import { UMB_COLLECTION_CONTEXT_TOKEN } from '@umbraco-cms/backoffice/collection';
|
||||
import { UmbLitElement } from '@umbraco-cms/internal/lit-element';
|
||||
@@ -23,7 +23,7 @@ export class UmbUserCollectionElement extends UmbLitElement {
|
||||
component: () => import('./views/table/user-collection-table-view.element.js'),
|
||||
},
|
||||
{
|
||||
path: '**',
|
||||
path: '',
|
||||
redirectTo: 'grid',
|
||||
},
|
||||
];
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { css, html , customElement } from '@umbraco-cms/backoffice/external/lit';
|
||||
import { css, html, customElement } from '@umbraco-cms/backoffice/external/lit';
|
||||
import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui';
|
||||
import type { UmbRoute } from '@umbraco-cms/backoffice/router';
|
||||
|
||||
@@ -19,7 +19,7 @@ export class UmbSectionViewUsersElement extends UmbLitElement {
|
||||
component: () => import('../workspace/user-workspace.element.js'),
|
||||
},
|
||||
{
|
||||
path: '**',
|
||||
path: '',
|
||||
redirectTo: 'collection',
|
||||
},
|
||||
];
|
||||
|
||||
Reference in New Issue
Block a user