mirror of https://github.com/Squidex/squidex.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
87 lines
2.9 KiB
87 lines
2.9 KiB
/*
|
|
* Squidex Headless CMS
|
|
*
|
|
* @license
|
|
* Copyright (c) Squidex UG (haftungsbeschränkt). All rights reserved.
|
|
*/
|
|
|
|
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
|
|
import { Queries } from '@app/shared/internal';
|
|
import { SavedQuery } from '../state/queries';
|
|
|
|
@Component({
|
|
selector: 'sqx-shared-queries',
|
|
template: `
|
|
<div class="sidebar-section">
|
|
<h3>Shared queries</h3>
|
|
|
|
<ng-container *ngIf="queries.queriesShared | async; let queryList">
|
|
<ng-container *ngIf="queryList.length > 0; else noQuery">
|
|
<a class="sidebar-item" *ngFor="let saved of queryList; trackBy: trackByQuery" (click)="search.emit(saved)"
|
|
[class.active]="isSelectedQuery(saved)">
|
|
|
|
{{saved.name}}
|
|
|
|
<a class="sidebar-item-remove float-right" (click)="queries.removeShared(saved)" sqxStopClick>
|
|
<i class="icon-close"></i>
|
|
</a>
|
|
</a>
|
|
</ng-container>
|
|
|
|
<ng-template #noQuery>
|
|
<div class="sidebar-item inactive text-muted">
|
|
Search for {{types}} and use <i class="icon-star-empty"></i> icon in search form to save query for all contributors.
|
|
</div>
|
|
</ng-template>
|
|
</ng-container>
|
|
</div>
|
|
|
|
<hr />
|
|
|
|
<div class="sidebar-section">
|
|
<h3>My queries</h3>
|
|
|
|
<ng-container *ngIf="queries.queriesUser | async; let queryList">
|
|
<ng-container *ngIf="queryList.length > 0; else noQuery">
|
|
<a class="sidebar-item" *ngFor="let saved of queryList; trackBy: trackByQuery" (click)="search.emit(saved)"
|
|
[class.active]="isSelectedQuery(saved)">
|
|
|
|
{{saved.name}}
|
|
|
|
<a class="sidebar-item-remove float-right" (click)="queries.removeUser(saved)" sqxStopClick>
|
|
<i class="icon-close"></i>
|
|
</a>
|
|
</a>
|
|
</ng-container>
|
|
|
|
<ng-template #noQuery>
|
|
<div class="sidebar-item inactive text-muted">
|
|
Search for {{types}} and use <i class="icon-star-empty"></i> icon in search form to save query for yourself.
|
|
</div>
|
|
</ng-template>
|
|
</ng-container>
|
|
</div>
|
|
`
|
|
})
|
|
export class SavedQueriesComponent {
|
|
@Output()
|
|
public search = new EventEmitter<SavedQuery>();
|
|
|
|
@Input()
|
|
public queryUsed: (saved: SavedQuery) => boolean;
|
|
|
|
@Input()
|
|
public queries: Queries;
|
|
|
|
@Input()
|
|
public types: string;
|
|
|
|
public isSelectedQuery(saved: SavedQuery) {
|
|
return this.queryUsed && this.queryUsed(saved);
|
|
}
|
|
|
|
public trackByQuery(index: number, query: { name: string }) {
|
|
return query.name;
|
|
}
|
|
}
|