Merge pull request #305 from umbraco/feature/user-section-v2

This commit is contained in:
Niels Lyngsø
2022-12-13 17:01:22 +01:00
committed by GitHub
8 changed files with 12 additions and 13 deletions

View File

@@ -5,9 +5,9 @@ import { UmbPickerData } from '../../../core/services/modal/layouts/modal-layout
import { UmbContextConsumerMixin } from '@umbraco-cms/context-api';
//TODO: These should probably be imported dynamically.
import '../input-section/picker-layout-section.element';
import '../input-user-group/picker-layout-user-group.element';
import '../input-user/picker-layout-user.element';
import '../../../core/services/modal/layouts/picker-section/picker-layout-section.element';
import '../../../core/services/modal/layouts/picker-user-group/picker-layout-user-group.element';
import '../../../core/services/modal/layouts/picker-user/picker-layout-user.element';
import { UmbModalService, UmbModalType } from '@umbraco-cms/services';
/** TODO: Make use of UUI FORM Mixin, to make it easily take part of a form. */

View File

@@ -6,7 +6,7 @@ export interface UmbPickerData<selectType = string> {
selection: Array<selectType>;
}
export class UmbPickerLayoutBase<selectType = string> extends UmbModalLayoutElement<UmbPickerData<selectType>> {
export class UmbModalLayoutPickerBase<selectType = string> extends UmbModalLayoutElement<UmbPickerData<selectType>> {
@state()
private _selection: Array<selectType> = [];
@@ -30,10 +30,11 @@ export class UmbPickerLayoutBase<selectType = string> extends UmbModalLayoutElem
}
}
/* TODO: Write test for this select/deselect method. */
protected _handleItemClick(key: selectType) {
if (this.data?.multiple) {
if (this._isSelected(key)) {
this._selection = this._selection.filter((key) => key !== key);
this._selection = this._selection.filter((selectedKey) => selectedKey !== key);
} else {
this._selection.push(key);
}

View File

@@ -1,14 +1,14 @@
import { UUITextStyles } from '@umbraco-ui/uui-css';
import { css, html } from 'lit';
import { customElement, state } from 'lit/decorators.js';
import { UmbPickerLayoutBase } from '../../../core/services/modal/layouts/modal-layout-picker-base';
import { UmbModalLayoutPickerBase } from '../modal-layout-picker-base';
import { UmbObserverMixin } from '@umbraco-cms/observable-api';
import { UmbContextConsumerMixin } from '@umbraco-cms/context-api';
import { umbExtensionsRegistry } from '@umbraco-cms/extensions-registry';
import type { ManifestSection } from '@umbraco-cms/models';
@customElement('umb-picker-layout-section')
export class UmbPickerLayoutSectionElement extends UmbContextConsumerMixin(UmbObserverMixin(UmbPickerLayoutBase)) {
export class UmbPickerLayoutSectionElement extends UmbContextConsumerMixin(UmbObserverMixin(UmbModalLayoutPickerBase)) {
static styles = [
UUITextStyles,
css`
@@ -65,8 +65,6 @@ export class UmbPickerLayoutSectionElement extends UmbContextConsumerMixin(UmbOb
});
}
//todo: save section aliasess in array
render() {
return html`
<umb-editor-entity-layout headline="Select sections">

View File

@@ -1,14 +1,14 @@
import { UUITextStyles } from '@umbraco-ui/uui-css';
import { css, html } from 'lit';
import { customElement, state } from 'lit/decorators.js';
import { UmbPickerLayoutBase } from '../../../core/services/modal/layouts/modal-layout-picker-base';
import { UmbModalLayoutPickerBase } from '../modal-layout-picker-base';
import { UmbContextConsumerMixin } from '@umbraco-cms/context-api';
import { UmbObserverMixin } from '@umbraco-cms/observable-api';
import type { UserGroupDetails } from '@umbraco-cms/models';
import { UmbUserGroupStore } from '@umbraco-cms/stores/user/user-group.store';
@customElement('umb-picker-layout-user-group')
export class UmbPickerLayoutUserGroupElement extends UmbContextConsumerMixin(UmbObserverMixin(UmbPickerLayoutBase)) {
export class UmbPickerLayoutUserGroupElement extends UmbContextConsumerMixin(UmbObserverMixin(UmbModalLayoutPickerBase)) {
static styles = [
UUITextStyles,
css`

View File

@@ -1,14 +1,14 @@
import { UUITextStyles } from '@umbraco-ui/uui-css';
import { css, html } from 'lit';
import { customElement, state } from 'lit/decorators.js';
import { UmbPickerLayoutBase } from '../../../core/services/modal/layouts/modal-layout-picker-base';
import { UmbModalLayoutPickerBase } from '../modal-layout-picker-base';
import type { UserDetails } from '@umbraco-cms/models';
import { UmbContextConsumerMixin } from '@umbraco-cms/context-api';
import { UmbObserverMixin } from '@umbraco-cms/observable-api';
import { UmbUserStore } from '@umbraco-cms/stores/user/user.store';
@customElement('umb-picker-layout-user')
export class UmbPickerLayoutUserElement extends UmbContextConsumerMixin(UmbObserverMixin(UmbPickerLayoutBase)) {
export class UmbPickerLayoutUserElement extends UmbContextConsumerMixin(UmbObserverMixin(UmbModalLayoutPickerBase)) {
static styles = [
UUITextStyles,
css`