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.
 
 
 
 
 

147 lines
6.8 KiB

<sqx-title message="{app} | {schema} | Content" parameter1="app" parameter2="schema" [value1]="appsState.appName" [value2]="schema.displayName"></sqx-title>
<form [formGroup]="contentForm.form" (ngSubmit)="saveAndPublish()">
<sqx-panel desiredWidth="*" minWidth="60rem" [showSidebar]="content">
<ng-container title>
<a class="btn btn-text" (click)="back()" *ngIf="!schema.isSingleton">
<i class="icon-angle-left"></i>
</a>
<ng-container *ngIf="!content">
New Content
</ng-container>
<ng-container *ngIf="content && content.status !== 'Archived'">
Edit Content
</ng-container>
<ng-container *ngIf="content && content.status === 'Archived'">
Show Content
</ng-container>
</ng-container>
<ng-container menu>
<ng-container *ngIf="!content; else notNew">
<button type="button" class="btn btn-secondary" (click)="save()">
Save as Draft
</button>
<button type="submit" class="btn btn-primary ml-1" title="CTRL + S">
Save and Publish
</button>
<sqx-shortcut keys="ctrl+s" (trigger)="saveAndPublish()"></sqx-shortcut>
</ng-container>
<ng-template #notNew>
<div class="dropdown dropdown-options ml-1" *ngIf="content">
<sqx-preview-button [schema]="schema" [content]="content"></sqx-preview-button>
<button type="button" class="btn btn-outline-secondary btn-status" (click)="dropdown.toggle()" [disabled]="schema.isSingleton && !content.isPending"
[class.active]="dropdown.isOpen | async" #optionsButton>
<sqx-content-status
[status]="content.status"
[scheduledTo]="content.scheduleJob?.status"
[scheduledAt]="content.scheduleJob?.dueTime"
[isPending]="content.isPending"
showLabel="true">
</sqx-content-status>
</button>
<ng-container *ngIf="content.isPending || !schema.isSingleton">
<div class="dropdown-menu" *sqxModalView="dropdown;closeAlways:true" [sqxModalTarget]="optionsButton" @fade>
<ng-container *ngIf="content.isPending">
<a class="dropdown-item" (click)="discardChanges()">
Discard changes
</a>
<div class="dropdown-divider"></div>
<a class="dropdown-item" (click)="publishChanges()">
Publish changes
</a>
</ng-container>
<ng-container *ngIf="!schema.isSingleton">
<a class="dropdown-item" (click)="publish()" *ngIf="content.status === 'Draft'">
Publish
</a>
<a class="dropdown-item" (click)="unpublish()" *ngIf="content.status === 'Published'">
Unpublish
</a>
<a class="dropdown-item" (click)="archive()" *ngIf="content.status !== 'Archived'">
Archive
</a>
<a class="dropdown-item" (click)="restore()" *ngIf="content.status === 'Archived'">
Restore
</a>
<div class="dropdown-divider"></div>
<a class="dropdown-item dropdown-item-delete"
(sqxConfirmClick)="delete()"
confirmTitle="Delete content"
confirmText="Do you really want to delete the content?">
Delete
</a>
</ng-container>
</div>
</ng-container>
</div>
<ng-container *ngIf="content.status !== 'Archived'">
<button type="button" class="btn btn-secondary ml-1" (click)="saveAsProposal()" *ngIf="content.status === 'Published'">
Save as Draft
</button>
<button type="submit" class="btn btn-primary ml-1" title="CTRL + S">
Save
</button>
<sqx-shortcut keys="ctrl+s" (trigger)="saveAndPublish()"></sqx-shortcut>
</ng-container>
</ng-template>
</ng-container>
<ng-container content>
<div class="panel-alert panel-alert-danger" *ngIf="contentVersion; let version">
<div class="float-right">
<a class="force" (click)="showLatest()">View latest</a>
</div>
Viewing <strong>version {{version.value}}</strong>.
</div>
<ng-container *ngFor="let field of schema.fields; trackBy: trackByField.bind(this)">
<sqx-content-field
[form]="contentForm"
[field]="field"
[fieldForm]="contentForm.form.get(field.name)"
[fieldFormCompare]="contentFormCompare?.form.get(field.name)"
[schema]="schema"
[languages]="languages.mutableValues"
[(language)]="language">
</sqx-content-field>
</ng-container>
</ng-container>
<ng-container sidebar>
<div class="panel-nav">
<a class="panel-link" routerLink="comments" routerLinkActive="active" title="Comments" titlePosition="left">
<i class="icon-comments"></i>
</a>
<a class="panel-link" routerLink="history" routerLinkActive="active" title="History" titlePosition="left" #historyLink>
<i class="icon-time"></i>
</a>
<sqx-onboarding-tooltip helpId="history" [for]="historyLink" position="left-top" after="120000">
The sidebar navigation contains useful context specific links. Here you can view the history how this schema has changed over time.
</sqx-onboarding-tooltip>
</div>
</ng-container>
</sqx-panel>
</form>
<router-outlet></router-outlet>
<sqx-due-time-selector #dueTimeSelector></sqx-due-time-selector>