215 lines
11 KiB
HTML
215 lines
11 KiB
HTML
<div page-content>
|
|
<admin-tabs tab = "page" [portal]="selectedCommunityPid" header></admin-tabs>
|
|
<div inner class="admin-pages">
|
|
<div *ngIf="!errorMessage && !showLoading" class="filters" uk-sticky="offset:150">
|
|
<div class="show-options uk-float-right">
|
|
<button class="uk-button uk-button-primary " type="button">Bulk Actions</button>
|
|
<div uk-dropdown="mode: click">
|
|
<ul class="uk-nav uk-margin-left"
|
|
[attr.uk-tooltip]="getSelectedPages().length == 0 ? 'pos:left; cls: uk-active' : 'cls: uk-invisible'"
|
|
title="Select at least one page">
|
|
<li *ngIf="!isPortalAdministrator"><a [class]="getSelectedPages().length == 0 ? 'uk-disabled' : ''"
|
|
(click)="togglePages(true, getSelectedPages())"> Activate
|
|
</a></li>
|
|
<li *ngIf="!isPortalAdministrator"><a [class]="getSelectedPages().length == 0 ? 'uk-disabled' : ''"
|
|
(click)="togglePages(false, getSelectedPages())"> Deactivate
|
|
</a></li>
|
|
<li *ngIf="isPortalAdministrator"><a (click)="confirmDeleteSelectedPages()"> Delete </a></li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
<div class="uk-inline uk-width-medium uk-float-right uk-margin-right">
|
|
<div dashboard-input [formInput]="filterForm.controls.keyword" placeholder="search page" ></div>
|
|
</div>
|
|
<ul class="uk-subnav uk-subnav-pill subCategoriesTabs ignore admin " >
|
|
<li [class.uk-active]="filterForm.get('type').value === 'all'"><a
|
|
(click)="filterForm.get('type').setValue('all')"><span
|
|
class="title">All pages</span></a></li>
|
|
<li *ngFor="let type of typeOptions; let i=index"
|
|
[class.uk-active]="filterForm.get('type').value === type.value"><a
|
|
(click)="filterForm.get('type').setValue(type.value)"><span
|
|
class="title">{{type.label}}</span></a></li>
|
|
</ul>
|
|
<!-- <input class="uk-width-1-1 "-->
|
|
<!-- placeholder="SEARCH FOR A COUNTRY" type="text" autocomplete="off" role="combobox" aria-autocomplete="list" aria-expanded="false" aria-haspopup="true">-->
|
|
</div>
|
|
|
|
<div class="content-wrapper uk-margin-top" id="contentWrapper">
|
|
<a *ngIf="!showLoading && isPortalAdministrator && !errorMessage" (click)="newPage()"
|
|
class="uk-flex uk-flex-right uk-flex-middle uk-margin-small-bottom uk-width-1-1">
|
|
<div class="uk-button-default large uk-icon-button uk-margin-small-right" uk-icon="plus">
|
|
</div>
|
|
Add page
|
|
</a>
|
|
<div class="contentPanel ">
|
|
<div *ngIf="!isPortalAdministrator" class="uk-alert uk-alert-primary uk-margin-top-large">
|
|
<div>
|
|
<span class="uk-margin-small-right uk-icon" uk-icon="warning"></span>
|
|
Disable a page to hide it from community dashboard portal.
|
|
</div>
|
|
<div
|
|
class="uk-text-small">If the page is disabled, a message "Can't find that page" will appear in case the url of that page is loaded. If the disabled page belongs to the menu, the link will be removed from menu, too.
|
|
</div>
|
|
|
|
</div>
|
|
<div *ngIf="updateErrorMessage" class="uk-alert-danger" uk-alert>
|
|
<a class="uk-alert-close" uk-close></a>
|
|
{{updateErrorMessage}}
|
|
</div>
|
|
<div *ngIf="errorMessage" class="uk-alert uk-alert-danger uk-margin-large-top"
|
|
role="alert">{{errorMessage}}</div>
|
|
<div [style.display]="showLoading ? 'inline' : 'none'"
|
|
class="uk-animation-fade uk-margin-large-top uk-width-1-1" role="alert"><img
|
|
class="uk-align-center loading-gif"></div>
|
|
<div class="md-card uk-margin-medium-bottom" *ngIf="!errorMessage && !showLoading">
|
|
<div class="md-card-content">
|
|
<div class="uk-overflow-container">
|
|
<ul class="uk-list pages">
|
|
<li *ngFor="let check of checkboxes; let i=index" class="uk-card uk-card-default uk-margin-bottom">
|
|
<div class="uk-grid uk-padding">
|
|
<div class=""><input id="{{check.page._id}}" class="checkBox" type="checkbox"
|
|
name="pagescb[]" value="{{check.page._id}}" [(ngModel)]="check.checked">
|
|
</div>
|
|
<div class="uk-width-expand">
|
|
<div class="title uk-margin-medium-bottom">Name</div>
|
|
<div class="name uk-margin-medium-bottom" href="#">{{check.page.name}}</div>
|
|
<div *ngIf="check.page.entities && check.page.entities.length > 0"><span
|
|
class="title">Entities: </span>
|
|
{{check.page.entities.join(", ")}}</div>
|
|
<div class=" uk-margin-small-bottom"><span class="title">Route: </span> {{check.page.route}}</div>
|
|
<div *ngIf="!pagesType" class=" uk-margin-small-bottom"><span class="title">Type: </span> {{check.page.type}}</div>
|
|
<div *ngIf="!selectedCommunityPid" class=" uk-margin-small-bottom">
|
|
<span class="title" >Portal type: </span>{{check.page.portalType}}
|
|
</div>
|
|
</div>
|
|
<div *ngIf="isPortalAdministrator" class="uk-width-1-4">
|
|
<div class="title uk-margin-medium-bottom">Actions</div>
|
|
<div class="actions" href="#">
|
|
<i class="clickable " (click)="editPage(i)" uk-icon="pencil"></i>
|
|
<i class="clickable uk-text-danger"
|
|
(click)="confirmDeletePage(check.page._id)" uk-icon="trash"></i>
|
|
</div>
|
|
</div>
|
|
<div *ngIf="!isPortalAdministrator" class="uk-width-1-4">
|
|
<div class="title uk-margin-medium-bottom">Helptexts</div>
|
|
<div class=" uk-margin-small-bottom">
|
|
<a *ngIf="check.page.top || check.page.bottom || check.page.left || check.page.right"
|
|
class="helpContents"
|
|
[queryParams]="{communityId: selectedCommunityPid, pageId: check.page._id}"
|
|
routerLink="../../helptexts">
|
|
manage help texts
|
|
</a>
|
|
</div>
|
|
<div>
|
|
<a *ngIf="pageWithDivIds.includes(check.page._id)" class="classHelpContents"
|
|
[queryParams]="{communityId: selectedCommunityPid, pageId: check.page._id}"
|
|
routerLink="../../classContents">manage class contents</a>
|
|
</div>
|
|
</div>
|
|
<div *ngIf="!isPortalAdministrator" class="uk-width-1-4">
|
|
<div class="title uk-margin-medium-bottom">Enable/disable</div>
|
|
<mat-slide-toggle [checked]="check.page.isEnabled"
|
|
(change)="($event.source.checked = check.page.isEnabled);togglePages(!check.page.isEnabled,[check.page._id])"></mat-slide-toggle>
|
|
</div>
|
|
</div>
|
|
</li>
|
|
|
|
</ul>
|
|
|
|
<div *ngIf="checkboxes.length==0" class="col-md-12">
|
|
<div class="uk-alert-warning" uk-alert>No pages found</div>
|
|
</div>
|
|
<div *ngIf="isPortalAdministrator" class="uk-width-1-1 uk-flex uk-flex-center ">
|
|
<div class="uk-width-small uk-button uk-button-default" (click)="newPage()">
|
|
<i class="" uk-icon="plus"></i>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<modal-alert #AlertModalSavePage (alertOutput)="pageSaveConfirmed($event)" [okDisabled]="myForm && (myForm.invalid || !myForm.dirty)">
|
|
<div *ngIf="modalErrorMessage" class="uk-alert-danger" uk-alert aria-hidden="true">{{ modalErrorMessage }}</div>
|
|
<form [formGroup]="myForm">
|
|
|
|
<div dashboard-input class="uk-margin-small-left" [formInput]="myForm.get('route')"
|
|
type="text"
|
|
label="Page route">
|
|
</div>
|
|
|
|
<div dashboard-input class="uk-margin-small-left" [formInput]="myForm.get('name')"
|
|
type="text"
|
|
label="Page Name">
|
|
</div>
|
|
|
|
<div dashboard-input class="uk-margin-small-left" [formInput]="myForm.get('type')"
|
|
type="select"
|
|
label="Type" [options]="typeOptions">
|
|
</div>
|
|
<mat-form-field class="example-chip-list uk-width-1-1 uk-margin-small-left">
|
|
<mat-chip-list #chipList aria-label="Page selection">
|
|
<mat-chip
|
|
*ngFor="let entity of selectedEntities"
|
|
[selectable]="true"
|
|
[removable]="true">
|
|
{{entity.name}}
|
|
<span (click)="remove(entity)"
|
|
class=" notranslate mat-chip-remove mat-chip-trailing-icon " uk-icon="trash"></span>
|
|
</mat-chip>
|
|
<input placeholder="Add in pages..." #PageInput
|
|
[formControl]="entitiesSearchCtrl" [matAutocomplete]="auto" [matChipInputFor]="chipList">
|
|
</mat-chip-list>
|
|
<mat-autocomplete #auto="matAutocomplete" (optionSelected)="selected($event)">
|
|
<mat-option *ngFor="let entity of filteredEntities| async" [value]="entity">
|
|
{{entity.name}}
|
|
</mat-option>
|
|
</mat-autocomplete>
|
|
</mat-form-field>
|
|
|
|
<div class="form-group" >
|
|
<label class="uk-text-danger uk-margin-small-bottom">
|
|
By disabling a position, all contents in this position will be deleted.
|
|
</label>
|
|
<div class="title"> Select if this page exists in:</div>
|
|
<div class=" uk-grid">
|
|
<span dashboard-input class="" [formInput]="myForm.get('top')"
|
|
type="checkbox"
|
|
label="Top" >
|
|
</span>
|
|
<span dashboard-input class="uk-margin-small-left" [formInput]="myForm.get('right')"
|
|
type="checkbox"
|
|
label="Right">
|
|
</span>
|
|
<span dashboard-input class="uk-margin-small-left" [formInput]="myForm.get('bottom')"
|
|
type="checkbox"
|
|
label="Bottom">
|
|
</span>
|
|
<span dashboard-input class="uk-margin-small-left" [formInput]="myForm.get('left')"
|
|
type="checkbox"
|
|
label="Left">
|
|
</span>
|
|
</div>
|
|
</div>
|
|
<div [ngClass]="{'has-error':!myForm.controls.portalType.valid && myForm.controls.portalType.dirty}" class="form-group" >
|
|
<div class="uk-width-1-1 uk-margin-small-bottom uk-text-bold uk-form-label">
|
|
Page exists in:
|
|
</div>
|
|
<div class="uk-child-width-1-2 uk-grid">
|
|
<span *ngFor="let option of portalUtils.portalTypes" class="radio ">
|
|
<span class="uk-margin-small-right" style="font-weight: normal;">{{option.label}}</span>
|
|
<input type="radio" [value]="option.value" formControlName="portalType">
|
|
</span>
|
|
</div>
|
|
</div>
|
|
|
|
<input type="hidden" formControlName="_id">
|
|
</form>
|
|
|
|
</modal-alert>
|
|
|
|
<modal-alert #AlertModalDeletePages (alertOutput)="confirmedDeletePages($event)"></modal-alert>
|