Files
Umbraco-CMS/src/Umbraco.Web.UI.Client/src/views/propertyeditors/grid/grid.html

307 lines
16 KiB
HTML
Raw Normal View History

<div ng-controller="Umbraco.PropertyEditors.GridController" class="umb-grid umb-property-editor clearfix" id="umb-grid">
2015-12-15 14:34:13 +01:00
<umb-editor-sub-header ng-if="showReorderButton()" appearance="white">
2015-12-15 14:34:13 +01:00
<umb-editor-sub-header-content-right>
<umb-button
type="button"
icon="icon-navigation"
button-style="link"
label-key="{{reorderKey}}"
action="toggleSortMode()">
</umb-button>
</umb-editor-sub-header-content-right>
</umb-editor-sub-header>
2014-11-12 13:58:12 +01:00
<div ng-if="contentReady">
<!-- Template picker -->
<div class="templates-preview"
ng-show="!model.value || model.value == ''">
<p><strong><localize key="grid_chooseLayout" /></strong></p>
2014-11-12 13:58:12 +01:00
<div class="preview-rows layout"
ng-repeat="template in model.config.items.templates"
ng-click="addTemplate(template)">
<div class="preview-row">
<div class="preview-col"
ng-repeat="section in template.sections"
ng-style="{width: percentage(section.grid) + '%'}">
<div class="preview-cell">
</div>
2014-09-23 16:30:27 +02:00
</div>
2014-11-12 13:58:12 +01:00
</div>
2014-11-12 13:58:12 +01:00
<div class="preview-overlay">
</div>
2015-11-11 15:57:34 +01:00
<small>{{template.name}}</small>
2014-11-12 13:58:12 +01:00
</div> <!-- .templates-preview-rows -->
2014-11-12 13:58:12 +01:00
</div> <!-- .templates-preview -->
<!-- template picker end -->
2014-11-12 13:58:12 +01:00
<!-- Grids -->
2015-11-11 15:57:34 +01:00
<div class="umb-grid-width">
2014-11-12 13:58:12 +01:00
<div class="tb">
2014-09-23 16:30:27 +02:00
2014-11-12 13:58:12 +01:00
<!-- for each column in model -->
2015-11-11 15:57:34 +01:00
<div class="umb-column td"
2014-11-12 13:58:12 +01:00
ng-repeat="section in model.value.sections"
ng-init="initSection(section)"
ng-style="{width: section.$percentage + '%'}">
2014-09-23 16:30:27 +02:00
<div ui-sortable="sortableOptionsRow" ng-model="section.rows">
2014-09-23 16:30:27 +02:00
2014-11-12 13:58:12 +01:00
<!-- for each row in template section -->
2015-11-12 09:53:21 +01:00
<!-- ng-mouseenter="setCurrentRow(row)" -->
<!-- ng-mouseleave="disableCurrentRow()" -->
<div class="umb-row"
ng-repeat="row in section.rows"
2019-02-13 13:20:01 +01:00
ng-click="clickRow($index, section.rows, $event)"
ng-class="{
'-has-config': row.hasConfig,
2019-02-13 13:20:01 +01:00
'-active': row === active,
'-active-child': row === currentRowWithActiveChild}"
bind-click-on="{{row === active || row === currentRowWithActiveChild}}"
data-rowid="{{row.$uniqueId}}">
2015-11-12 09:53:21 +01:00
2015-11-12 15:17:10 +01:00
<div class="umb-row-title-bar">
<div class=".umb-grid-right">
<div class="umb-row-title">{{row.label || row.name}}</div>
2015-12-15 14:34:13 +01:00
<div class="umb-grid-has-config" ng-if="row.hasConfig && !sortMode">
2015-12-08 13:42:05 +01:00
<localize key="grid_settingsApplied" />
</div>
</div>
2015-11-12 09:53:21 +01:00
<!-- Row tool -->
2019-02-13 13:20:01 +01:00
<div class="umb-tools row-tools" ng-show="(row === active || row === currentRowWithActiveChild) && !sortMode">
<div class="cell-tools-edit row-tool" ng-if="hasSettings">
<i class="icon icon-settings" title="@grid_settings" localize="title" ng-click="editGridItemSettings(row, 'row')"></i>
2015-11-23 13:05:41 +01:00
</div>
2015-11-12 09:53:21 +01:00
<div class="cell-tools-remove row-tool">
<i class="icon-trash" ng-click="togglePrompt(row)" localize="title" title="@delete"></i>
<umb-confirm-action
ng-if="row.deletePrompt"
direction="left"
on-confirm="removeRow(section, $index)"
on-cancel="hidePrompt(row)">
</umb-confirm-action>
</div>
2015-11-12 09:53:21 +01:00
</div>
2014-09-23 16:30:27 +02:00
</div>
2014-11-12 13:58:12 +01:00
<!-- row container -->
<div class="{{row.cssClass}} umb-row-inner">
2015-03-19 12:29:05 +01:00
2014-11-12 13:58:12 +01:00
<div class="mainTb">
<div class="tb">
<div>
2014-11-12 13:58:12 +01:00
<!-- Areas in row -->
<div class="umb-cell td mainTd"
2015-11-12 09:53:21 +01:00
ng-repeat="area in row.areas"
ng-style="{width: area.$percentage + '%'}"
ng-class="{
'-has-config': area.hasConfig,
2019-02-13 13:20:01 +01:00
'-active': area === active,
'-active-child': area === currentCellWithActiveChild}"
ng-model="area.controls"
2019-02-13 13:20:01 +01:00
ng-click="clickCell($index, row.areas, row, $event)"
bind-click-on="{{area === active}}">
2015-12-02 15:19:09 +01:00
<!-- Cell -->
<div class="umb-cell-content"
2015-12-15 14:34:13 +01:00
ng-class="
2019-02-13 13:20:01 +01:00
{'-active': area === active,
2015-12-15 14:34:13 +01:00
'-has-editors': area.controls.length > 0,
'-collapsed': sortMode}">
<!-- disable drop overlay -->
2015-12-02 17:23:59 +01:00
<div class="drop-overlay -disable" ng-if="area.dropNotAllowed">
<i class="icon-delete drop-icon"></i>
2015-12-04 13:23:24 +01:00
<localize key="grid_contentNotAllowed" />
</div>
2015-12-02 17:23:59 +01:00
<!-- allow drop overlay -->
<div class="drop-overlay -allow" ng-if="area.dropOnEmpty">
<i class="icon-download drop-icon"></i>
2015-12-04 13:23:24 +01:00
<localize key="grid_contentAllowed" />
2015-12-02 17:23:59 +01:00
</div>
2015-12-15 14:34:13 +01:00
<div class="umb-grid-has-config" ng-if="area.hasConfig && !sortMode">
2015-12-08 13:42:05 +01:00
<localize key="grid_settingsApplied" />
</div>
2019-02-13 13:20:01 +01:00
<div class="cell-tools" ng-if="(area === active || area === currentCellWithActiveChild) && !sortMode">
2015-11-16 20:58:47 +01:00
<div class="cell-tool" ng-click="editGridItemSettings(area, 'cell')">
<i class="icon-settings"></i>
</div>
</div>
<div class="umb-cell-inner" ui-sortable="sortableOptionsCell" umb-grid-hack-scope ng-model="area.controls">
2015-12-02 17:23:59 +01:00
2015-12-02 15:19:09 +01:00
<!-- Control placeholder -->
2015-12-02 21:21:54 +01:00
<div class="umb-cell-placeholder" ng-if="area.controls.length === 0" ng-click="openEditorOverlay($event, area, 0, area.$uniqueId);">
2015-12-15 14:34:13 +01:00
<div class="cell-tools-add -center">
<localize ng-if="!sortMode" key="grid_addElement" />
<localize ng-if="sortMode" key="grid_dropElement" />
</div>
2015-12-02 15:19:09 +01:00
</div>
<!-- for each control in areas -->
<div class="umb-control"
umb-grid-hack-scope
ng-repeat="control in area.controls"
2019-02-13 13:20:01 +01:00
ng-click="clickControl($index, area.controls, area, $event)"
ng-class="{'-active': control === active}"
bind-click-on="{{control === active}}"
umb-set-dirty-on-change="{{control.value}}"
data-itemid="{{control.$uniqueId}}">
2019-02-13 13:20:01 +01:00
<div class="umb-control-click-overlay" ng-show="control !== active && !sortMode"></div>
2015-12-15 14:34:13 +01:00
<div class="umb-control-collapsed umb-control-handle" ng-show="sortMode">
{{ getTemplateName(control) }}
2015-12-15 14:34:13 +01:00
</div>
2015-12-15 14:34:13 +01:00
<div class="umb-control-inner" ng-hide="sortMode">
<div class="umb-control-bar umb-control-handle">
2019-02-13 13:20:01 +01:00
<div class="umb-control-title" ng-if="control === active">
{{ getTemplateName(control) }}
</div>
2019-02-13 13:20:01 +01:00
<div class="umb-tools" ng-if="control === active">
<div class="umb-control-tool" ng-if="control.editor.config.settings">
<i class="umb-control-tool-icon icon-settings" ng-click="editGridItemSettings(control, 'control')"></i>
</div>
<div class="umb-control-tool">
<i class="umb-control-tool-icon icon-trash" ng-click="togglePrompt(control)" localize="title" title="@delete"></i>
<umb-confirm-action ng-if="control.deletePrompt"
direction="left"
on-confirm="removeControl(area, $index)"
on-cancel="hidePrompt(control)">
</umb-confirm-action>
</div>
</div>
</div>
<!-- Redering the editor for specific control -->
<div ng-if="control && control.$editorPath"
ng-include="control.$editorPath"
class="umb-cell-{{control.editor.view}}">
</div>
</div>
</div>
</div>
<!-- Controls repeat end -->
<!-- if area is empty tools -->
<div class="umb-grid-add-more-content" ng-if="area.controls.length > 0 && !sortMode && (area.maxItems == undefined || area.maxItems == '' || area.maxItems == 0 || area.maxItems > area.controls.length)">
<div class="cell-tools-add -bar newbtn" ng-click="openEditorOverlay($event, area, 0, area.$uniqueId);"><localize key="grid_addElement" /></div>
</div>
</div>
2014-11-12 13:58:12 +01:00
</div>
<!-- cells repeat end -->
2014-09-23 16:30:27 +02:00
</div>
</div>
</div>
</div>
2014-11-12 13:58:12 +01:00
<!-- row container end -->
2014-09-23 16:30:27 +02:00
</div>
2014-11-12 13:58:12 +01:00
<!-- row repeat -->
2014-09-23 16:30:27 +02:00
</div>
2014-11-12 13:58:12 +01:00
<!-- row sortable end -->
<!-- column tools -->
2015-12-15 14:34:13 +01:00
<div class="umb-add-row" ng-if="!sortMode">
2015-11-12 09:53:21 +01:00
<a href=""
class="iconBox"
ng-click="toggleAddRow()"
ng-if="!showRowConfigurations">
<i class=" icon icon-add" title="@general_add" localize="title"></i>
</a>
</div>
<div class="templates-preview" ng-if="showRowConfigurations">
2014-11-12 13:58:12 +01:00
2015-12-04 13:23:24 +01:00
<p ng-hide="section.rows.length > 0"><strong><localize key="grid_addRows" /></strong></p>
2014-11-12 13:58:12 +01:00
<div class="preview-rows columns"
ng-repeat="layout in section.$allowedLayouts"
ng-show="layout.areas.length > 0"
ng-click="addRow(section, layout)">
<div class="preview-row">
<div class="preview-col" ng-style="{width: percentage(area.grid) + '%'}" ng-repeat="area in layout.areas">
<div class="preview-cell">
</div>
2014-09-23 16:30:27 +02:00
</div>
2014-11-12 13:58:12 +01:00
</div>
2014-11-12 13:58:12 +01:00
<div class="preview-overlay">
</div>
<small>{{layout.label || layout.name}}</small>
2014-11-12 13:58:12 +01:00
</div> <!-- .templates-preview-rows -->
2014-11-12 13:58:12 +01:00
</div> <!-- .templates-preview -->
<!-- column tools end -->
2014-09-23 16:30:27 +02:00
2014-11-12 13:58:12 +01:00
</div>
<!-- column repeat end -->
2014-09-23 16:30:27 +02:00
</div>
</div>
</div>
<umb-overlay
ng-if="editorOverlay.show"
model="editorOverlay"
view="editorOverlay.view"
position="target">
</umb-overlay>
2015-11-11 15:57:34 +01:00
</div>