163 lines
12 KiB
HTML
163 lines
12 KiB
HTML
{{VERSION_HTML}}
|
|
<div class="archetypeEditor ng-class:model.config.customCssClass">
|
|
<textarea class="archetypeDeveloperModel" ng-show="model.config.developerMode" ng-model="model.value"></textarea>
|
|
|
|
<!-- Mandatory validation. -->
|
|
<input type="hidden" name="archetypeMandatory" ng-model="model.mandatoryValidation" ng-required="model.validation.mandatory" />
|
|
<div><span class="help-inline" val-msg-for="archetypeMandatory" val-toggle-msg="required"><archetype-localize key="required">Required</archetype-localize></span></div>
|
|
|
|
<!-- Min fieldsets validation. -->
|
|
<input type="hidden" name="archetypeMinFieldsets" ng-model="model.mandatoryMinFieldsets" ng-required="!minFieldsetsFulfilled()" />
|
|
<div><span class="help-inline" val-msg-for="archetypeMinFieldsets" val-toggle-msg="required">{{minFieldsetsMessage}}</span></div>
|
|
|
|
<!-- Fieldsets. -->
|
|
<ul ui-sortable="sortableOptions" class="archetypeSortable" ng-class="{archetypeEmpty: model.value.fieldsets.length === 0 || sortingLastItem(), archetypeCrossDraggable: model.config.enableCrossDragging}" ng-model="model.value.fieldsets">
|
|
<li ng-repeat="fieldset in model.value.fieldsets">
|
|
<fieldset ng-class="['archetype-fieldset-' + fieldset.alias, (getFieldsetValidity(fieldset) == false ? 'archetypeFieldsetError' : ''), (isCollapsed(fieldset) ? '' : 'is-open')]" ng-init="fieldsetConfigModel = getConfigFieldsetByAlias(fieldset.alias)">
|
|
<div class="archetypeFieldsetLabel" ng-class="{enableCollapsing: model.config.enableCollapsing, dimmed: isDisabled(fieldset)}">
|
|
<div ng-click="focusFieldset(fieldset)" class="label-sub module-label">
|
|
<span class="caret" ng-class="{'caret-right': isCollapsed(fieldset)}" ng-show="model.config.enableCollapsing"></span>
|
|
<label>
|
|
<i class="fieldsetIcon icon ng-class:fieldsetConfigModel.icon"></i>
|
|
<span ng-bind="getFieldsetTitle(fieldsetConfigModel, $index)"></span>
|
|
</label>
|
|
</div>
|
|
<div class="archetypeEditorControls label-sub" ng-hide="model.config.hideFieldsetControls">
|
|
<i class="icon icon-add" ng-show="canAdd()" ng-click="openFieldsetPicker($index, $event)"></i>
|
|
<i class="icon icon-navigation handle" ng-show="canSort()"></i>
|
|
<i class="icon icon-documents" ng-click="cloneRow($index)" ng-show="canClone()"></i>
|
|
<i class="icon icon-eye" ng-class="{'icon-active': fieldset.disabled}" ng-click="enableDisable(fieldset)" ng-show="showDisableIcon(fieldset)"></i>
|
|
<i class="icon icon-time icon-disabled" ng-class="{'icon-active': isDisabledByPublishing(fieldset)}" ng-show="showPublishingIcon(fieldset)"></i>
|
|
<i class="icon icon-trash" ng-click="removeRow($index)" ng-show="canRemove()"></i>
|
|
</div>
|
|
</div>
|
|
<div class="archetypeCollapser animate-hide" ng-hide="model.config.enableCollapsing && isCollapsed(fieldset)" ng-if="isLoaded(fieldset)">
|
|
<form class="form-inline">
|
|
<div ng-class="[('archetype-property-' + property.alias), (getPropertyValidity($parent.$index, property.alias) === false ? 'archetypePropertyError' : '')]" class="archetypeProperty control-group" ng-repeat="property in fieldsetConfigModel.properties">
|
|
<label ng-hide="model.config.hidePropertyLabels == '1'" class="control-label" for="archetype-property-{{model.alias}}-f{{$parent.$index}}-{{property.alias}}-p{{$index}}" ng-attr-title="{{ isDebuggingEnabled || model.config.developerMode ? property.alias : null }}">
|
|
<span>{{property.label}}</span>
|
|
<div class="archetypeFieldsetHelpText" ng-show="property.helpText">
|
|
<small>{{property.helpText}}</small>
|
|
</div>
|
|
</label>
|
|
|
|
<div ng-class="[(model.config.hidePropertyLabels == '1' ? 'controls-no-label' : 'controls')]">
|
|
<archetype-property class="archetypeEditor" property="property" property-editor-alias="model.alias" fieldset-index="$parent.$index" fieldset="fieldset" archetype-config="model.config" property-config-index="$index" archetype-render-model="model.value" umbraco-form="form"></archetype-property>
|
|
<archetype-submit-watcher active-submit-watcher="activeSubmitWatcher" load-callback="submitWatcherOnLoad" submit-callback="submitWatcherOnSubmit"></archetype-submit-watcher>
|
|
</div>
|
|
</div>
|
|
<div class="control-group archetypeProperty settingsWrapper" ng-show="canConfigure()">
|
|
<div ng-click="showSettings = !showSettings" class="settingsHeader">
|
|
<span class="caret" ng-show="showSettings"></span>
|
|
<span class="caret caret-right" ng-hide="showSettings"></span>
|
|
<label>
|
|
<span><archetype-localize key="settings">Settings</archetype-localize></span>
|
|
</label>
|
|
</div>
|
|
<div class="settings" ng-show="showSettings">
|
|
<!-- misc fieldset settings go here -->
|
|
<div ng-if="fieldset.releaseDateModel" ng-show="canPublish()" class="control-group">
|
|
<label ng-hide="model.config.hidePropertyLabels == '1'" class="control-label">
|
|
<span><archetype-localize key="publish">Publishing</archetype-localize></span>
|
|
<div class="archetypeFieldsetHelpText">
|
|
<small><archetype-localize key="publishHelpText">Configure automatic publishing and/or unpublishing of this item</archetype-localize></small>
|
|
</div>
|
|
</label>
|
|
<div class="publishOptions" ng-class="[(model.config.hidePropertyLabels == '1' ? 'controls-no-label' : 'controls')]">
|
|
<div class="publishDate">
|
|
<label for="{{fieldset.releaseDateModel.alias}}">
|
|
<archetype-localize key="publishReleaseDate">Publish at</archetype-localize>
|
|
</label>
|
|
<umb-editor model="fieldset.releaseDateModel"></umb-editor>
|
|
</div>
|
|
<div class="publishDate">
|
|
<label for="{{fieldset.expireDateModel.alias}}">
|
|
<archetype-localize key="publishExpireDate">Unpublish at</archetype-localize>
|
|
</label>
|
|
<umb-editor model="fieldset.expireDateModel"></umb-editor>
|
|
</div>
|
|
<!-- we need a submit watcher here to make sure the publish dates are saved back to their models -->
|
|
<archetype-submit-watcher active-submit-watcher="activeSubmitWatcher" load-callback="submitWatcherOnLoad" submit-callback="submitWatcherOnSubmit"></archetype-submit-watcher>
|
|
</div>
|
|
</div>
|
|
<div ng-if="fieldset.allowedMemberGroupsModel" ng-show="canUseMemberGroups()" class="control-group allowedGroups">
|
|
<label ng-hide="model.config.hidePropertyLabels == '1'" class="control-label">
|
|
<span><archetype-localize key="allowedMemberGroups">Allowed member groups</archetype-localize></span>
|
|
<div class="archetypeFieldsetHelpText">
|
|
<small><archetype-localize key="allowedMemberGroupsHelpText">Choose the member groups that should be allowed to see this item. Leave empty to allow all member groups.</archetype-localize></small>
|
|
</div>
|
|
</label>
|
|
<div ng-class="[(model.config.hidePropertyLabels == '1' ? 'controls-no-label' : 'controls')]">
|
|
<umb-editor model="fieldset.allowedMemberGroupsModel"></umb-editor>
|
|
</div>
|
|
<!-- we need a submit watcher here to make sure the allowed member groups are saved back to the model -->
|
|
<archetype-submit-watcher active-submit-watcher="activeSubmitWatcher" load-callback="submitWatcherOnLoad" submit-callback="submitWatcherOnSubmit"></archetype-submit-watcher>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
</fieldset>
|
|
</li>
|
|
</ul>
|
|
|
|
<!-- Empty content display. -->
|
|
<div class="archetypeEmptyContent" ng-show="showEmptyContentHint()">
|
|
<span>
|
|
<archetype-localize key="addFieldset">Add an item</archetype-localize>
|
|
</span>
|
|
</div>
|
|
|
|
<!-- "Add" button. -->
|
|
<div class="archetypeFooter" ng-show="showAddButton()">
|
|
<a class="archetypeAddButton" ng-click="openFieldsetPicker(model.value.fieldsets.length, $event)" prevent-default>
|
|
<i class="icon icon-add"></i>
|
|
</a>
|
|
</div>
|
|
|
|
<!-- Fieldset picker. -->
|
|
<div class="usky-grid fieldsetPicker" ng-class="{withGroups: overlayMenu.fieldsetGroups.length > 1}" ng-if="overlayMenu.show">
|
|
<div class="cell-tools-menu" ng-style="overlayMenu.style" delayed-mouseleave="closeFieldsetPicker()" archetype-click-outside="closeFieldsetPicker()">
|
|
<div ng-show="!overlayMenu.fieldsetPreview">
|
|
<h5>
|
|
<archetype-localize key="addFieldset">Add an item</archetype-localize>
|
|
</h5>
|
|
<ul class="groups" ng-show="overlayMenu.fieldsetGroups.length > 1">
|
|
<li ng-repeat="fieldsetGroup in overlayMenu.fieldsetGroups" ng-class="{active: fieldsetGroup == overlayMenu.activeFieldsetGroup}">
|
|
<a ng-click="overlayMenu.activeFieldsetGroup = fieldsetGroup">
|
|
{{fieldsetGroup.name}}
|
|
</a>
|
|
</li>
|
|
</ul>
|
|
<ul class="elements">
|
|
<li ng-repeat="fieldset in overlayMenu.activeFieldsetGroup.fieldsets">
|
|
<a ng-click="pickFieldset(fieldset.alias, overlayMenu.index)" href>
|
|
<i class="icon {{fieldset.icon}}"></i>
|
|
{{fieldset.label}}
|
|
</a>
|
|
<div class="fieldsetPreviewOpen" ng-if="fieldset.previewImage">
|
|
<a href ng-click="openFieldsetPreview(fieldset)"><archetype-localize key="previewFieldsetOpen">(see preview)</archetype-localize></a>
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
<div ng-show="overlayMenu.fieldsetPreview" class="fieldsetPreview">
|
|
<h5>
|
|
<archetype-localize key="previewFieldsetHeader">Preview: </archetype-localize>{{overlayMenu.fieldsetPreview.label}}
|
|
</h5>
|
|
<div class="fieldsetPreviewClose">
|
|
<a href ng-click="closeFieldsetPreview()"><archetype-localize key="previewFieldsetClose">(close preview)</archetype-localize></a>
|
|
</div>
|
|
<div class="fieldsetPreviewImage">
|
|
<a href="{{overlayMenu.fieldsetPreview.previewImage}}" target="_blank">
|
|
<img ng-src="{{overlayMenu.fieldsetPreview.previewImage}}" />
|
|
</a>
|
|
</div>
|
|
<div class="fieldsetPreviewClose">
|
|
<a href ng-click="closeFieldsetPreview()"><archetype-localize key="previewFieldsetClose">(close preview)</archetype-localize></a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|