core/select-modal/select-modal.component.ts
| selector | c8y-select-modal |
| templateUrl | ./select-modal.component.html |
Properties |
Methods |
Inputs |
Outputs |
Accessors |
constructor(bsModalRef: BsModalRef)
|
||||||
|
Parameters :
|
| additionalFilterTemplate |
Type : TemplateRef<any>
|
| areMoreEntries |
Type : boolean
|
Default value : false
|
| disableSelected |
Type : boolean
|
Default value : true
|
| icon |
Type : string
|
| items |
Type : ISelectModalInternalObject[]
|
| labels |
| mode |
Type : ModalSelectionMode
|
Default value : ModalSelectionMode.MULTI
|
| showFilter |
Type : boolean
|
Default value : true
|
| subTitle |
Type : string
|
Default value : gettext('Select from the list of items matching the device type')
|
| title |
Type : string
|
| onChoiceUpdated |
Type : EventEmitter<IIdentified>
|
| result |
Type : EventEmitter<IIdentified[]>
|
| search |
Type : EventEmitter<string>
|
| dismiss |
dismiss()
|
|
Returns :
void
|
| Async ngOnChanges | ||||||
ngOnChanges(changes: SimpleChanges)
|
||||||
|
Parameters :
Returns :
any
|
| ngOnDestroy |
ngOnDestroy()
|
|
Returns :
void
|
| select |
select()
|
|
Returns :
void
|
| updateChoice | |||
updateChoice(undefined)
|
|||
|
Parameters :
Returns :
void
|
| updatePipe | ||||||
updatePipe(filterTerm: string)
|
||||||
|
Parameters :
Returns :
void
|
| filterTerm |
Type : string
|
Default value : ''
|
| listItems |
Type : []
|
Default value : []
|
| selected |
Default value : false
|
| labels | ||||||
getlabels()
|
||||||
setlabels(labels: ModalLabels)
|
||||||
|
Parameters :
Returns :
void
|
<div class="viewport-modal">
<div class="modal-header dialog-header">
<span c8yIcon="{{ icon }}"></span>
<h4 class="text-uppercase">
{{ title | translate }}
</h4>
</div>
<div class="p-16 text-center separator-bottom min-height-fit">
<p class="m-b-8">{{ subTitle | translate }}</p>
<div class="row">
<div
*ngIf="showFilter"
[ngClass]="{
'col-xs-6': showFilter && additionalFilterTemplate,
'col-xs-12': !showFilter || !additionalFilterTemplate
}"
>
<c8y-filter [icon]="'search'" (onSearch)="updatePipe($event)"></c8y-filter>
</div>
<div
*ngIf="additionalFilterTemplate"
[ngClass]="{
'col-xs-6': showFilter && additionalFilterTemplate,
'col-xs-12': !showFilter || !additionalFilterTemplate
}"
>
<ng-container *ngTemplateOutlet="additionalFilterTemplate"></ng-container>
</div>
</div>
</div>
<div class="modal-inner-scroll">
<div class="p-l-16 p-r-16">
<div class="panel m-t-8 m-b-8" *ngIf="!items || items.length === 0">
<div class="c8y-empty-state text-left">
<h1 c8yIcon="{{ icon }} " class="c8y-icon-duocolor"></h1>
<p translate>No items to display.</p>
</div>
</div>
</div>
<c8y-list-group>
<c8y-li *ngFor="let item of listItems | selectModalFilterPipe: filterTerm">
<c8y-li-icon>
<i c8yIcon="{{ icon }}"></i>
</c8y-li-icon>
<c8y-li-body class="content-flex-30">
<div class="col-9">
<div *ngFor="let bodyPart of item.body" [ngClass]="bodyPart.class">
<c8y-highlight
[title]="bodyPart.value"
[pattern]="filterTerm"
[text]="bodyPart.value"
></c8y-highlight>
</div>
</div>
<div class="col-3 text-right" *ngIf="item.additionalInformation">
<div [ngClass]="item.additionalInformation.class">
{{ item.additionalInformation.value }}
</div>
</div>
</c8y-li-body>
<c8y-li-collapse>
<c8y-list-group>
<c8y-li *ngFor="let option of item.options">
<c8y-li-radio
[name]="mode === 'single' ? 'single' : item.groupId"
(onSelect)="updateChoice({ item: item, id: option.obj.id })"
[disabled]="option.disabled"
[selected]="option.selected"
>
</c8y-li-radio>
<c8y-li-body class="content-flex-20">
<div
*ngFor="let optionPart of option.body; let i = index"
[ngClass]="optionPart.class"
>
<c8y-highlight [pattern]="filterTerm" [text]="optionPart.value"></c8y-highlight>
</div>
<ng-container
*ngIf="option.template"
[ngTemplateOutlet]="option.template"
[ngTemplateOutletContext]="{ $implicit: item, option: option }"
></ng-container>
</c8y-li-body>
</c8y-li>
</c8y-list-group>
</c8y-li-collapse>
</c8y-li>
<div *ngIf="areMoreEntries">
<div class="alert alert-info m-t-16 m-r-8 m-l-8" translate>
Some entries might not be shown. Try narrowing search criteria.
</div>
</div>
</c8y-list-group>
</div>
<div class="modal-footer">
<button
title="{{ labels.cancel | translate }}"
*ngIf="labels.cancel"
class="btn btn-default"
(click)="dismiss()"
>
{{ labels.cancel | translate }}
</button>
<button
title="{{ labels.ok | translate }}"
class="btn btn-primary"
(click)="select()"
[disabled]="!selected"
>
{{ labels.ok | translate }}
</button>
</div>
</div>