Headless CMS and Content Managment Hub
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.
 
 
 
 
 

86 lines
4.2 KiB

<sqx-title message="i18n:common.contributors"></sqx-title>
<sqx-panel desiredWidth="50rem" showSidebar="true" grid="true" closeQueryParamsHandling="none">
<ng-container title>
{{ 'common.contributors' | sqxTranslate }}
</ng-container>
<ng-container menu>
<sqx-notifo topic="apps/{{contributorsState.appId}}/settings/contributors"></sqx-notifo>
<button type="button" class="btn btn-text-secondary mr-2" (click)="reload()" title="i18n:contributors.refreshTooltip">
<i class="icon-reset"></i> {{ 'common.refresh' | sqxTranslate }}
</button>
<sqx-shortcut keys="ctrl+shift+r" (trigger)="reload()"></sqx-shortcut>
<div class="form-inline">
<input class="form-control" placeholder="{{ 'contributors.search' | sqxTranslate }}" [ngModel]="contributorsState.query | async" (ngModelChange)="search($event)">
</div>
</ng-container>
<ng-container content>
<sqx-list-view [isLoading]="contributorsState.isLoading | async">
<ng-container topHeader>
<ng-container *ngIf="rolesState.roles | async; let roles">
<ng-container *ngIf="contributorsState.maxContributors | async; let maxContributors">
<div class="panel-alert panel-alert-success" *ngIf="maxContributors > 0">
{{ 'contributors.planHint' | sqxTranslate: { maxContributors: maxContributors } }}
</div>
</ng-container>
<ng-container *ngIf="contributorsState.canCreate | async">
<sqx-contributor-add-form [roles]="roles">
</sqx-contributor-add-form>
</ng-container>
<div class="import-hint">
<sqx-form-hint class="text-right">
{{ 'contributors.importHintg' | sqxTranslate }} <a class="force" (click)="importDialog.show()">{{ 'contributors.importButton' | sqxTranslate }}</a>
</sqx-form-hint>
</div>
</ng-container>
</ng-container>
<div content>
<ng-container *ngIf="contributorsState.contributorsPaged | async; let contributors">
<ng-container *ngIf="rolesState.roles | async; let roles">
<ng-container *ngIf="contributors.length > 0; else noContributors">
<table class="table table-items table-fixed">
<tbody *ngFor="let contributor of contributors; trackBy: trackByContributor" [sqxContributor]="contributor" [search]="contributorsState.queryRegex | async" [roles]="roles">
</tbody>
</table>
</ng-container>
<ng-template #noContributors>
<div class="table-items-row table-items-row-empty">
{{ 'contributors.empty' | sqxTranslate }}
</div>
</ng-template>
</ng-container>
</ng-container>
</div>
<ng-container footer>
<sqx-pager [pager]="contributorsState.contributorsPager | async" (pagerChange)="contributorsState.setPager($event)"></sqx-pager>
</ng-container>
</sqx-list-view>
</ng-container>
<ng-container sidebar>
<div class="panel-nav">
<a class="panel-link" routerLink="history" routerLinkActive="active" queryParamsHandling="preserve" queryParamsHandling="preserve" title="i18n:common.history" titlePosition="left">
<i class="icon-time"></i>
</a>
<a class="panel-link" routerLink="help" routerLinkActive="active" queryParamsHandling="preserve" queryParamsHandling="preserve" title="i18n:common.help" titlePosition="left">
<i class="icon-help2"></i>
</a>
</div>
</ng-container>
</sqx-panel>
<ng-container *sqxModal="importDialog">
<sqx-import-contributors-dialog [roles]="rolesState.roles | async" (close)="importDialog.hide()">
</sqx-import-contributors-dialog>
</ng-container>
<router-outlet></router-outlet>