Browse Source

Mark already selected items in content selector.

pull/361/head
Sebastian Stehle 7 years ago
parent
commit
f20e430941
  1. 3
      src/Squidex/app/features/content/shared/content-item.component.html
  2. 3
      src/Squidex/app/features/content/shared/content-item.component.ts
  3. 3
      src/Squidex/app/features/content/shared/contents-selector.component.html
  4. 10
      src/Squidex/app/features/content/shared/contents-selector.component.ts
  5. 1
      src/Squidex/app/features/content/shared/field-editor.component.html
  6. 2
      src/Squidex/app/features/content/shared/references-editor.component.html
  7. 3
      src/Squidex/app/features/content/shared/references-editor.component.ts
  8. 2
      src/Squidex/app/features/schemas/pages/schema/types/references-ui.component.html

3
src/Squidex/app/features/content/shared/content-item.component.html

@ -1,7 +1,8 @@
<td class="cell-select" (click)="stop($event)">
<ng-container *ngIf="!isReference; else referenceTemplate">
<input type="checkbox" class="form-check"
[ngModel]="selected"
[disabled]="!selectable"
[ngModel]="selected || !selectable"
(ngModelChange)="selectedChange.emit($event)" />
</ng-container>

3
src/Squidex/app/features/content/shared/content-item.component.ts

@ -58,6 +58,9 @@ export class ContentItemComponent implements OnChanges {
@Input()
public selected = false;
@Input()
public selectable = false;
@Input()
public language: AppLanguageDto;

3
src/Squidex/app/features/content/shared/contents-selector.component.html

@ -16,7 +16,7 @@
</sqx-search-form>
</div>
<div class="col pl-1" *ngIf="languages.length > 1">
<div class="-auto pl-1" *ngIf="languages.length > 1">
<sqx-language-selector class="languages-buttons" (selectedLanguageChange)="selectLanguage($event)" [languages]="languages"></sqx-language-selector>
</div>
</div>
@ -57,6 +57,7 @@
<table class="table table-items table-fixed" *ngIf="contentsState.contents | async; let contents">
<tbody *ngFor="let content of contents; trackBy: trackByContent">
<tr [sqxContent]="content"
[selectable]="!isItemAlreadySelected(content)"
[selected]="isItemSelected(content)"
(selectedChange)="selectContent(content)"
[language]="language"

10
src/Squidex/app/features/content/shared/contents-selector.component.ts

@ -32,6 +32,12 @@ export class ContentsSelectorComponent implements OnInit {
@Input()
public languages: LanguageDto[];
@Input()
public allowDuplicates: boolean;
@Input()
public alreadySelected: ContentDto[];
@Input()
public schema: SchemaDetailsDto;
@ -76,6 +82,10 @@ export class ContentsSelectorComponent implements OnInit {
return this.selectedItems[content.id];
}
public isItemAlreadySelected(content: ContentDto) {
return !this.allowDuplicates && this.alreadySelected && !!this.alreadySelected.find(x => x.id === content.id);
}
public emitComplete() {
this.select.emit([]);
}

1
src/Squidex/app/features/content/shared/field-editor.component.html

@ -128,6 +128,7 @@
<ng-container *ngSwitchCase="'List'">
<sqx-references-editor
[formControl]="control"
[allowDuplicates]="field.properties['allowDuplicated']"
[language]="language"
[languages]="languages"
[schemaId]="field.properties['schemaId']"

2
src/Squidex/app/features/content/shared/references-editor.component.html

@ -29,6 +29,8 @@
<ng-container *sqxModalView="selectorDialog;onRoot:true;closeAuto:false">
<sqx-contents-selector
[allowDuplicates]="allowDuplicates"
[alreadySelected]="snapshot.contentItems"
[language]="language"
[languages]="languages"
[schema]="snapshot.schema"

3
src/Squidex/app/features/content/shared/references-editor.component.ts

@ -53,6 +53,9 @@ export class ReferencesEditorComponent extends StatefulControlComponent<State, s
@Input()
public isCompact = false;
@Input()
public allowDuplicates = true;
public selectorDialog = new DialogModel();
constructor(changeDetector: ChangeDetectorRef,

2
src/Squidex/app/features/schemas/pages/schema/types/references-ui.component.html

@ -4,7 +4,7 @@
<div class="col-9">
<label class="btn btn-radio" [class.active]="editForm.controls['editor'].value === 'List'">
<input type="radio" class="radio-input" name="editor" formControlName="editor" value="Checkbox" />
<input type="radio" class="radio-input" name="editor" formControlName="editor" value="List" />
<i class="icon-control-Checkboxes"></i>

Loading…
Cancel
Save