Add WebCms
This commit is contained in:
@@ -0,0 +1,32 @@
|
||||
<div class="umb-editor">
|
||||
<div class="umb-nested-boolean">
|
||||
<label>
|
||||
<input type="checkbox" ng-model="model.value.allowBulkPublish" id="allowBulkPublish"/>
|
||||
<span>Allow bulk publish (content only)</span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="umb-nested-boolean">
|
||||
<label>
|
||||
<input type="checkbox" ng-model="model.value.allowBulkUnpublish" id="allowBulkUnpublish" />
|
||||
<span>Allow bulk unpublish (content only)</span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="umb-nested-boolean">
|
||||
<label>
|
||||
<input type="checkbox" ng-model="model.value.allowBulkCopy" id="allowBulkCopy" />
|
||||
<span>Allow bulk copy (content only)</span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="umb-nested-boolean">
|
||||
<label>
|
||||
<input type="checkbox" ng-model="model.value.allowBulkMove" id="allowBulkMove" />
|
||||
<span>Allow bulk move</span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="umb-nested-boolean">
|
||||
<label>
|
||||
<input type="checkbox" ng-model="model.value.allowBulkDelete" id="allowBulkDelete" />
|
||||
<span>Allow bulk delete</span>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,55 @@
|
||||
<div class="umb-editor" ng-controller="Umbraco.PrevalueEditors.IncludePropertiesListViewController">
|
||||
<div class="control-group">
|
||||
|
||||
<select ng-model="selectedField">
|
||||
<option ng-repeat="field in systemFields" value="_system_{{field.value}}">{{field.name}}</option>
|
||||
<option class="select-dash" disabled="disabled">----</option>
|
||||
<option ng-repeat="alias in propertyAliases" value="{{alias}}">{{alias}}</option>
|
||||
</select>
|
||||
<button type="button" class="btn" ng-click="addField()">
|
||||
<localize key="general_add">Add</localize>
|
||||
</button>
|
||||
</div>
|
||||
<div class="control-group">
|
||||
<table ng-show="model.value.length > 0" class="table">
|
||||
<thead>
|
||||
<tr>
|
||||
<td style="width:20px;"></td>
|
||||
<th style="width:220px;">Alias</th>
|
||||
<th>Header</th>
|
||||
<td style="width:100px;"></td>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody ui-sortable="sortableOptions">
|
||||
<tr ng-repeat="val in model.value">
|
||||
<td>
|
||||
<i class="icon icon-navigation handle"></i>
|
||||
</td>
|
||||
<td>
|
||||
<span class="alias-value" ng-if="!val.isSystem">{{val.alias}}</span>
|
||||
<span class="alias-value" ng-if="val.isSystem == 1">
|
||||
{{val.alias}}
|
||||
</span>
|
||||
<em ng-show="val.isSystem == 1"><small>(system field)</small></em>
|
||||
</td>
|
||||
<td>
|
||||
<ng-form name="headerForm" ng-if="!val.isSystem">
|
||||
<input type="text" name="header" ng-model="val.header" required />
|
||||
<span class="help-inline" val-msg-for="header" val-toggle-msg="required">Required</span>
|
||||
</ng-form>
|
||||
|
||||
<span ng-if="val.isSystem">
|
||||
<localize key="{{getLocalizedKey(val.alias)}}">{{val.alias}}</localize>
|
||||
</span>
|
||||
</td>
|
||||
<td>
|
||||
<button type="button" class="btn btn-danger" ng-click="removeField(val)">Remove</button>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
|
||||
</table>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
@@ -0,0 +1,57 @@
|
||||
<div ng-controller="Umbraco.PrevalueEditors.ListViewLayoutsPreValsController as vm">
|
||||
|
||||
<div class="list-view-layouts" ui-sortable="vm.layoutsSortableOptions" ng-model="model.value">
|
||||
|
||||
<div class="list-view-layout" ng-repeat="layout in model.value">
|
||||
|
||||
<i class="icon-navigation list-view-layout__sort-handle"></i>
|
||||
|
||||
<div>
|
||||
|
||||
<a ng-if="layout.isSystem !== 1" href="" ng-click="vm.openIconPicker(layout)" class="list-view-layout__icon" umb-auto-focus>
|
||||
<i class="{{ layout.icon }}"></i>
|
||||
</a>
|
||||
|
||||
<div ng-if="layout.isSystem === 1" class="list-view-layout__icon">
|
||||
<i class="{{ layout.icon }}"></i>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="list-view-layout__name">
|
||||
<input ng-if="layout.isSystem !== 1" type="text" ng-model="layout.name" placeholder="Name..." class="-full-width-input" focus-when="{{ vm.focusLayoutName }}" />
|
||||
<span ng-if="layout.isSystem === 1" class="list-view-layout__name-text">{{ layout.name }}</span>
|
||||
<span ng-if="layout.isSystem === 1" class="list-view-layout__system">(system layout)</span>
|
||||
</div>
|
||||
|
||||
<div class="list-view-layout__path">
|
||||
<input ng-if="layout.isSystem !== 1" type="text" ng-model="layout.path" placeholder="Layout path..." class="-full-width-input" />
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<input ng-if="layout.isSystem === 1" type="checkbox" ng-model="layout.selected" />
|
||||
<div class="list-view-layout__remove" ng-if="layout.isSystem !== 1">
|
||||
<i class="icon-trash" ng-click="vm.showPrompt(layout)"></i>
|
||||
<umb-confirm-action
|
||||
ng-if="layout.deletePrompt"
|
||||
direction="left"
|
||||
on-confirm="vm.removeLayout($index, layout)"
|
||||
on-cancel="vm.hidePrompt(layout)">
|
||||
</umb-confirm-action>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<a href="" class="list-view-add-layout" ng-click="vm.addLayout()">Add layout</a>
|
||||
|
||||
</div>
|
||||
|
||||
<umb-overlay
|
||||
ng-if="vm.iconPickerDialog.show"
|
||||
model="vm.iconPickerDialog"
|
||||
view="vm.iconPickerDialog.view"
|
||||
position="right">
|
||||
</umb-overlay>
|
||||
|
||||
</div>
|
||||
@@ -0,0 +1,91 @@
|
||||
<div ng-controller="Umbraco.PropertyEditors.ListView.GridLayoutController as vm">
|
||||
|
||||
<div
|
||||
ng-if="entityType !== 'media'">
|
||||
|
||||
<umb-content-grid
|
||||
ng-if="items"
|
||||
content="items"
|
||||
content-properties="options.includeProperties"
|
||||
on-click="vm.selectContentItem"
|
||||
on-click-name="vm.goToItem">
|
||||
</umb-content-grid>
|
||||
|
||||
<umb-empty-state
|
||||
ng-if="!items && options.filter.length === 0 && !vm.isRecycleBin"
|
||||
position="center">
|
||||
<div ng-if="entityType === 'content'">No content has been added</div>
|
||||
<div ng-if="entityType === 'member'">No members have been added</div>
|
||||
</umb-empty-state>
|
||||
|
||||
<umb-empty-state
|
||||
ng-if="!items && options.filter.length > 0"
|
||||
position="center">
|
||||
<localize key="general_searchNoResult"></localize>
|
||||
</umb-empty-state>
|
||||
|
||||
<umb-empty-state
|
||||
ng-if="!items && options.filter.length == 0 && vm.isRecycleBin"
|
||||
position="center">
|
||||
<localize key="general_recycleBinEmpty"></localize>
|
||||
</umb-empty-state>
|
||||
|
||||
</div>
|
||||
|
||||
<div
|
||||
ng-if="entityType === 'media'"
|
||||
on-drag-leave="vm.dragLeave()"
|
||||
on-drag-end="vm.dragLeave()"
|
||||
on-drag-enter="vm.dragEnter()">
|
||||
|
||||
<umb-file-dropzone
|
||||
ng-if="!vm.isRecycleBin"
|
||||
parent-id="{{vm.nodeId}}"
|
||||
files-uploaded="vm.onUploadComplete"
|
||||
accept="{{vm.acceptedFileTypes}}"
|
||||
max-file-size="{{vm.maxFileSize}}"
|
||||
hide-dropzone="{{ options.filter.length > 0 }}"
|
||||
compact="{{ items.length > 0 }}"
|
||||
files-queued="vm.onFilesQueue">
|
||||
</umb-file-dropzone>
|
||||
|
||||
<umb-folder-grid
|
||||
ng-if="folders.length > 0 && !vm.isRecycleBin"
|
||||
folders="folders"
|
||||
on-click="vm.selectFolder"
|
||||
on-click-name="vm.goToItem">
|
||||
</umb-folder-grid>
|
||||
|
||||
<umb-media-grid
|
||||
items="vm.itemsWithoutFolders"
|
||||
on-details-hover="vm.hoverMediaItemDetails"
|
||||
on-click="vm.selectItem"
|
||||
on-click-name="vm.goToItem">
|
||||
</umb-media-grid>
|
||||
|
||||
<umb-tooltip
|
||||
ng-if="vm.mediaDetailsTooltip.show"
|
||||
event="vm.mediaDetailsTooltip.event">
|
||||
<ul class="umb-tooltip-list">
|
||||
<li class="umb-tooltip-list__item" ng-repeat="property in options.includeProperties">
|
||||
<div class="umb-tooltip-list__item-label">{{ property.header }}</div>
|
||||
<div class="umb-tooltip-list__item-value">{{ vm.mediaDetailsTooltip.item[property.alias] }}</div>
|
||||
</li>
|
||||
</ul>
|
||||
</umb-tooltip>
|
||||
|
||||
<umb-empty-state
|
||||
ng-if="vm.itemsWithoutFolders.length === 0 && options.filter.length == 0 && vm.isRecycleBin"
|
||||
position="center">
|
||||
<localize key="general_recycleBinEmpty"></localize>
|
||||
</umb-empty-state>
|
||||
|
||||
<umb-empty-state
|
||||
ng-if="vm.itemsWithoutFolders.length === 0 && options.filter.length > 0"
|
||||
position="center">
|
||||
<localize key="general_searchNoResult"></localize>
|
||||
</umb-empty-state>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@@ -0,0 +1,73 @@
|
||||
<div
|
||||
ng-class="{'-content':(entityType === 'content')}"
|
||||
ng-controller="Umbraco.PropertyEditors.ListView.ListLayoutController as vm">
|
||||
|
||||
<div
|
||||
ng-if="entityType === 'media'"
|
||||
on-drag-leave="vm.dragLeave()"
|
||||
on-drag-end="vm.dragLeave()"
|
||||
on-drag-enter="vm.dragEnter()">
|
||||
|
||||
<umb-file-dropzone
|
||||
ng-if="!vm.isRecycleBin"
|
||||
parent-id="{{vm.nodeId}}"
|
||||
files-uploaded="vm.onUploadComplete"
|
||||
accept="{{vm.acceptedFileTypes}}"
|
||||
max-file-size="{{vm.maxFileSize}}"
|
||||
hide-dropzone="{{options.filter.length > 0}}"
|
||||
compact="{{ items.length > 0 }}"
|
||||
files-queued="vm.onFilesQueue">
|
||||
</umb-file-dropzone>
|
||||
|
||||
<umb-table
|
||||
ng-if="items"
|
||||
items="items"
|
||||
allow-select-all="options.bulkActionsAllowed"
|
||||
item-properties="options.includeProperties"
|
||||
on-select="vm.selectItem"
|
||||
on-click="vm.clickItem"
|
||||
on-select-all="vm.selectAll"
|
||||
on-selected-all="vm.isSelectedAll"
|
||||
on-sorting-direction="vm.isSortDirection"
|
||||
on-sort="vm.sort">
|
||||
</umb-table>
|
||||
|
||||
</div>
|
||||
|
||||
<div ng-if="entityType !== 'media'">
|
||||
|
||||
<umb-table
|
||||
ng-if="items"
|
||||
items="items"
|
||||
allow-select-all="options.bulkActionsAllowed"
|
||||
item-properties="options.includeProperties"
|
||||
on-select="vm.selectItem"
|
||||
on-click="vm.clickItem"
|
||||
on-select-all="vm.selectAll"
|
||||
on-selected-all="vm.isSelectedAll"
|
||||
on-sorting-direction="vm.isSortDirection"
|
||||
on-sort="vm.sort">
|
||||
</umb-table>
|
||||
|
||||
<umb-empty-state
|
||||
ng-if="!items && options.filter.length === 0 && !vm.isRecycleBin"
|
||||
position="center">
|
||||
<div ng-if="entityType === 'content'">No content has been added</div>
|
||||
<div ng-if="entityType === 'member'">No members have been added</div>
|
||||
</umb-empty-state>
|
||||
|
||||
</div>
|
||||
|
||||
<umb-empty-state
|
||||
ng-if="!items && options.filter.length > 0"
|
||||
position="center">
|
||||
<localize key="general_searchNoResult"></localize>
|
||||
</umb-empty-state>
|
||||
|
||||
<umb-empty-state
|
||||
ng-if="!items && options.filter.length == 0 && vm.isRecycleBin"
|
||||
position="center">
|
||||
<localize key="general_recycleBinEmpty"></localize>
|
||||
</umb-empty-state>
|
||||
|
||||
</div>
|
||||
@@ -0,0 +1,199 @@
|
||||
<div class="umb-editor umb-listview" ng-controller="Umbraco.PropertyEditors.ListViewController" ng-switch="isNew">
|
||||
|
||||
<div class="row-fluid" ng-switch-when="true">
|
||||
|
||||
</div>
|
||||
|
||||
<div class="row-fluid" ng-switch-when="false">
|
||||
|
||||
<umb-editor-sub-header>
|
||||
|
||||
<umb-editor-sub-header-content-left>
|
||||
|
||||
<umb-editor-sub-header-section ng-if="(listViewAllowedTypes && listViewAllowedTypes.length > 0 && !isAnythingSelected()) && currentNodePermissions.canCreate">
|
||||
<div class="btn-group" ng-show="listViewAllowedTypes.length > 1">
|
||||
<a class="btn dropdown-toggle" data-toggle="dropdown" href="#">
|
||||
<localize key="actions_create">Create</localize>
|
||||
<span class="caret"></span>
|
||||
</a>
|
||||
<ul class="dropdown-menu">
|
||||
<li ng-repeat="contentType in listViewAllowedTypes">
|
||||
<a href="#/{{entityType}}/{{entityType}}/edit/{{contentId}}?doctype={{contentType.alias}}&create=true">
|
||||
<i class="icon-{{contentType.cssClass}}"></i>
|
||||
{{contentType.name}}
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="btn-group" ng-show="listViewAllowedTypes.length === 1">
|
||||
<a class="btn" href="#/{{entityType}}/{{entityType}}/edit/{{contentId}}?doctype={{listViewAllowedTypes[0].alias}}&create=true">
|
||||
<i class="icon-{{listViewAllowedTypes[0].cssClass}}"></i>
|
||||
<localize key="actions_create">Create</localize> {{ listViewAllowedTypes[0].name }}
|
||||
</a>
|
||||
</div>
|
||||
</umb-editor-sub-header-section>
|
||||
|
||||
<umb-editor-sub-header-section ng-if="isAnythingSelected()">
|
||||
<umb-button
|
||||
type="button"
|
||||
label="Clear selection"
|
||||
label-key="buttons_clearSelection"
|
||||
action="clearSelection()"
|
||||
disabled="actionInProgress">
|
||||
</umb-button>
|
||||
</umb-editor-sub-header-section>
|
||||
|
||||
<umb-editor-sub-header-section ng-if="isAnythingSelected()">
|
||||
<strong ng-show="!actionInProgress">{{ selectedItemsCount() }} <localize key="general_of">of</localize> {{ listViewResultSet.items.length }} <localize key="general_selected">selected</localize></strong>
|
||||
<strong ng-show="actionInProgress" ng-bind="bulkStatus"></strong>
|
||||
|
||||
<div class="umb-loader-wrapper -bottom" ng-show="actionInProgress">
|
||||
<div class="umb-loader"></div>
|
||||
</div>
|
||||
</umb-editor-sub-header-section>
|
||||
|
||||
</umb-editor-sub-header-content-left>
|
||||
|
||||
|
||||
<umb-editor-sub-header-content-right>
|
||||
|
||||
<umb-editor-sub-header-section ng-if="!isAnythingSelected()">
|
||||
|
||||
<umb-layout-selector
|
||||
ng-if="options.layout.layouts"
|
||||
layouts="options.layout.layouts"
|
||||
active-layout="options.layout.activeLayout"
|
||||
on-layout-select="selectLayout">
|
||||
</umb-layout-selector>
|
||||
|
||||
</umb-editor-sub-header-section>
|
||||
|
||||
<umb-editor-sub-header-section ng-if="!isAnythingSelected()">
|
||||
<form class="form-search -no-margin-bottom pull-right" novalidate>
|
||||
<div class="inner-addon left-addon">
|
||||
<i class="icon icon-search" ng-click="enterSearch($event)"></i>
|
||||
<input
|
||||
class="form-control search-input"
|
||||
type="text"
|
||||
localize="placeholder"
|
||||
placeholder="@general_typeToSearch"
|
||||
ng-model="options.filter"
|
||||
ng-change="enterSearch()"
|
||||
ng-keydown="forceSearch($event)"
|
||||
prevent-enter-submit
|
||||
no-dirty-check>
|
||||
</div>
|
||||
</form>
|
||||
</umb-editor-sub-header-section>
|
||||
|
||||
<umb-editor-sub-header-section ng-if="isAnythingSelected()">
|
||||
|
||||
<umb-button
|
||||
ng-if="options.allowBulkPublish && (buttonPermissions == null || buttonPermissions.canPublish)"
|
||||
type="button"
|
||||
button-style="link"
|
||||
label="Publish"
|
||||
label-key="actions_publish"
|
||||
icon="icon-globe"
|
||||
action="publish()"
|
||||
disabled="actionInProgress">
|
||||
</umb-button>
|
||||
|
||||
<umb-button
|
||||
ng-if="options.allowBulkUnpublish && (buttonPermissions == null || buttonPermissions.canUnpublish)"
|
||||
type="button"
|
||||
button-style="link"
|
||||
label="Unpublish"
|
||||
label-key="actions_unpublish"
|
||||
icon="icon-block"
|
||||
action="unpublish()"
|
||||
disabled="actionInProgress">
|
||||
</umb-button>
|
||||
|
||||
<umb-button
|
||||
ng-if="options.allowBulkCopy && (buttonPermissions == null || buttonPermissions.canCopy)"
|
||||
type="button"
|
||||
button-style="link"
|
||||
label="Copy"
|
||||
label-key="actions_copy"
|
||||
icon="icon-documents"
|
||||
action="copy()"
|
||||
disabled="actionInProgress">
|
||||
</umb-button>
|
||||
|
||||
<umb-button
|
||||
ng-if="options.allowBulkMove && (buttonPermissions == null || buttonPermissions.canMove)"
|
||||
type="button"
|
||||
button-style="link"
|
||||
label="Move"
|
||||
label-key="actions_move"
|
||||
icon="icon-enter"
|
||||
action="move()"
|
||||
disabled="actionInProgress">
|
||||
</umb-button>
|
||||
|
||||
<umb-button
|
||||
ng-if="options.allowBulkDelete && (buttonPermissions == null || buttonPermissions.canDelete)"
|
||||
type="button"
|
||||
button-style="link"
|
||||
label="Delete"
|
||||
label-key="actions_delete"
|
||||
icon="icon-trash"
|
||||
action="delete()"
|
||||
disabled="actionInProgress">
|
||||
</umb-button>
|
||||
|
||||
</umb-editor-sub-header-section>
|
||||
|
||||
</umb-editor-sub-header-content-right>
|
||||
|
||||
</umb-editor-sub-header>
|
||||
|
||||
<umb-list-view-layout
|
||||
ng-if="viewLoaded"
|
||||
content-id="contentId"
|
||||
folders="folders"
|
||||
items="listViewResultSet.items"
|
||||
selection="selection"
|
||||
options="options"
|
||||
entity-type="{{entityType}}"
|
||||
on-get-content="reloadView">
|
||||
</umb-list-view-layout>
|
||||
|
||||
<umb-load-indicator ng-show="!viewLoaded"></umb-load-indicator>
|
||||
|
||||
<div class="flex justify-center">
|
||||
<umb-pagination
|
||||
ng-if="listViewResultSet.totalPages"
|
||||
page-number="options.pageNumber"
|
||||
total-pages="listViewResultSet.totalPages"
|
||||
on-next="next"
|
||||
on-prev="prev"
|
||||
on-go-to-page="goToPage">
|
||||
</umb-pagination>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<umb-overlay
|
||||
ng-if="moveDialog.show"
|
||||
model="moveDialog"
|
||||
position="right"
|
||||
view="moveDialog.view">
|
||||
</umb-overlay>
|
||||
|
||||
<umb-overlay
|
||||
ng-if="copyDialog.show"
|
||||
model="copyDialog"
|
||||
position="right"
|
||||
view="copyDialog.view">
|
||||
</umb-overlay>
|
||||
|
||||
<umb-overlay
|
||||
ng-if="ysodOverlay.show"
|
||||
model="ysodOverlay"
|
||||
position="right"
|
||||
view="ysodOverlay.view">
|
||||
</umb-overlay>
|
||||
|
||||
</div>
|
||||
@@ -0,0 +1,12 @@
|
||||
<div>
|
||||
<label class="radio">
|
||||
<input type="radio" name="orderDirection" value="asc" ng-model="model.value" />
|
||||
Ascending <code>[a-z]</code>
|
||||
</label>
|
||||
<label class="radio">
|
||||
<input type="radio" name="orderDirection" value="desc" ng-model="model.value" />
|
||||
Descending <code>[z-a]</code>
|
||||
</label>
|
||||
|
||||
<span class="help-inline" val-msg-for="orderDirection" val-toggle-msg="required">Required</span>
|
||||
</div>
|
||||
@@ -0,0 +1,4 @@
|
||||
<select ng-model="model.value"
|
||||
ng-controller="Umbraco.PrevalueEditors.SortByListViewController"
|
||||
ng-options="field.value as field.name for field in sortByFields">
|
||||
</select>
|
||||
Reference in New Issue
Block a user