Update Umbraco to 7.12.2
This commit is contained in:
@@ -0,0 +1,19 @@
|
||||
<div class="umb-backdrop" ng-click="clickBackdrop($event)">
|
||||
|
||||
<!-- Backdrop with highlight -->
|
||||
<div ng-if="highlightElement && !loading" class="umb-backdrop__backdrop">
|
||||
<div class="umb-backdrop__rect umb-backdrop__rect--top" ng-style="rectTopCss"></div>
|
||||
<div class="umb-backdrop__rect umb-backdrop__rect--right" ng-style="rectRightCss"></div>
|
||||
<div class="umb-backdrop__rect umb-backdrop__rect--bottom" ng-style="rectBottomCss"></div>
|
||||
<div class="umb-backdrop__rect umb-backdrop__rect--left" ng-style="rectLeftCss"></div>
|
||||
</div>
|
||||
|
||||
<!-- Full screen backdrop -->
|
||||
<div ng-if="!highlightElement || loading" class="umb-backdrop__backdrop">
|
||||
<div class="umb-backdrop__rect" ng-style="{'opacity': backdropOpacity }"></div>
|
||||
</div>
|
||||
|
||||
<!-- Prevent clicks in highlighted area -->
|
||||
<div ng-if="highlightPreventClick" class="umb-backdrop__highlight-prevent-click"></div>
|
||||
|
||||
</div>
|
||||
@@ -5,9 +5,8 @@
|
||||
|
||||
<div class='umb-modalcolumn-body'>
|
||||
<ul class="umb-actions">
|
||||
<li class="action" ng-class="{sep:action.seperator}" ng-repeat="action in menuActions">
|
||||
<a prevent-default
|
||||
ng-click="executeMenuItem(action)">
|
||||
<li data-element="action-{{action.alias}}" ng-click="executeMenuItem(action)" class="action" ng-class="{sep:action.seperator}" ng-repeat="action in menuActions">
|
||||
<a prevent-default>
|
||||
<i class="icon icon-{{action.cssclass}}"></i>
|
||||
<span class="menu-label">{{action.name}}</span>
|
||||
</a>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<div id="leftcolumn" ng-controller="Umbraco.NavigationController"
|
||||
ng-mouseleave="leaveTree($event)" ng-mouseenter="enterTree($event)">
|
||||
ng-mouseleave="leaveTree($event)" ng-mouseenter="enterTree($event)">
|
||||
|
||||
<umb-sections sections="sections" ng-if="authenticated">
|
||||
</umb-sections>
|
||||
@@ -13,19 +13,21 @@
|
||||
<div ng-controller="Umbraco.SearchController" ng-if="authenticated">
|
||||
|
||||
<!-- Search form -->
|
||||
<div id="search-form">
|
||||
<div data-element="global-search" id="search-form">
|
||||
<div class="umb-modalcolumn-header">
|
||||
|
||||
<form class="form-search" novalidate>
|
||||
<i class="icon-search"></i>
|
||||
<input type="text"
|
||||
hotkey="ctrl+space"
|
||||
id="search-field"
|
||||
ng-model="searchTerm"
|
||||
class="umb-search-field search-query search-input"
|
||||
localize="placeholder"
|
||||
placeholder="@placeholders_search"
|
||||
ng-keydown="navigateResults($event)"/>
|
||||
<input data-element="global-search-field"
|
||||
type="text"
|
||||
hotkey="ctrl+space"
|
||||
id="search-field"
|
||||
ng-model="searchTerm"
|
||||
class="umb-search-field search-query search-input"
|
||||
localize="placeholder"
|
||||
placeholder="@placeholders_search"
|
||||
ng-keydown="navigateResults($event)"
|
||||
no-dirty-check />
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
@@ -33,31 +35,42 @@
|
||||
<!-- Search results -->
|
||||
<div id="search-results" class="umb-modalcolumn-body" ng-show="showSearchResults">
|
||||
|
||||
<ul class="umb-tree">
|
||||
<umb-load-indicator ng-if="isSearching"></umb-load-indicator>
|
||||
|
||||
<umb-empty-state ng-if="!hasResults && !isSearching"
|
||||
position="center">
|
||||
<localize key="general_searchNoResult"></localize>
|
||||
</umb-empty-state>
|
||||
|
||||
<ul class="umb-tree" ng-if="!isSearching && hasResults">
|
||||
<li class="root">
|
||||
<div>
|
||||
<h5 class="umb-tree-header"><localize key="general_searchResults">Search results</localize></h5>
|
||||
</div>
|
||||
|
||||
<ul class="umb-search-group" ng-repeat="group in groups">
|
||||
<li ng-repeat="result in group.results" ng-class="{'current':selectedItem == result}">
|
||||
<div class="umb-search-group-item">
|
||||
<a class="umb-search-group-item-link" ng-class="{'first':$first}" ng-click="searchHide()" ng-href="#/{{result.editorPath}}">
|
||||
<div class="umb-search-group" ng-repeat="(key, group) in groups">
|
||||
<h6 class="umb-tree-header">{{key}}</h6>
|
||||
<ul>
|
||||
<li ng-repeat="result in group.results" ng-class="{'current':selectedItem == result}">
|
||||
<div class="umb-search-group-item">
|
||||
<a class="umb-search-group-item-link" ng-class="{'first':$first}" ng-click="searchHide()" ng-href="#/{{result.editorPath}}">
|
||||
|
||||
<div class="umb-search-group-item-name">
|
||||
<i class="icon umb-tree-icon sprTree {{result.icon}}"></i>
|
||||
{{result.name}}
|
||||
</div>
|
||||
<div class="umb-search-group-item-name">
|
||||
<i class="icon umb-tree-icon sprTree {{result.icon}}"></i>
|
||||
{{result.name}}
|
||||
</div>
|
||||
|
||||
<small class="search-subtitle" ng-show="result.subTitle">
|
||||
{{result.subTitle}}
|
||||
</small>
|
||||
</a>
|
||||
<small class="search-subtitle" ng-show="result.subTitle">
|
||||
{{result.subTitle}}
|
||||
</small>
|
||||
</a>
|
||||
|
||||
<a href ng-click="searchShowMenu($event, {node: result})" class="umb-options"><i></i><i></i><i></i></a>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
<a href ng-hide="!result.menuUrl" ng-click="searchShowMenu($event, {node: result})" class="umb-options"><i></i><i></i><i></i></a>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
@@ -67,10 +80,9 @@
|
||||
|
||||
<!-- the tree -->
|
||||
<div id="tree" class="umb-modalcolumn-body" ng-if="authenticated">
|
||||
<umb-tree
|
||||
cachekey="_"
|
||||
eventhandler="treeEventHandler"
|
||||
section="{{currentSection}}" >
|
||||
<umb-tree cachekey="_"
|
||||
eventhandler="treeEventHandler"
|
||||
section="{{currentSection}}">
|
||||
</umb-tree>
|
||||
</div>
|
||||
</div>
|
||||
@@ -79,19 +91,18 @@
|
||||
|
||||
<!-- The context menu -->
|
||||
<div id='contextMenu' class="umb-modalcolumn fill shadow" ng-swipe-left="nav.hideMenu()" ng-show="showContextMenu" ng-animate="'slide'">
|
||||
<umb-context-menu
|
||||
menu-dialog-title="{{menuDialogTitle}}"
|
||||
current-section="{{currentSection}}"
|
||||
current-node="menuNode"
|
||||
menu-actions="menuActions">
|
||||
<umb-context-menu menu-dialog-title="{{menuDialogTitle}}"
|
||||
current-section="{{currentSection}}"
|
||||
current-node="menuNode"
|
||||
menu-actions="menuActions">
|
||||
</umb-context-menu>
|
||||
</div>
|
||||
|
||||
|
||||
<!-- Tree dialogs -->
|
||||
<div id="dialog" class='umb-modalcolumn fill shadow'
|
||||
ng-swipe-left="nav.hideDialog()"
|
||||
ng-show="showContextMenuDialog" ng-animate="'slide'">
|
||||
ng-swipe-left="nav.hideDialog()"
|
||||
ng-show="showContextMenuDialog" ng-animate="'slide'">
|
||||
<div class='umb-modalcolumn-header'>
|
||||
<h1>{{menuDialogTitle}}</h1>
|
||||
</div>
|
||||
|
||||
@@ -1,16 +1,18 @@
|
||||
<div>
|
||||
<div id="applications" ng-class="{faded:stickyNavigation}">
|
||||
<ul class="sections">
|
||||
<li class="avatar">
|
||||
<li data-element="section-user" id="section-avatar" class="avatar">
|
||||
<a href="#" ng-click="avatarClick()" hotkey="ctrl+shift+u" title="{{user.name}}" prevent-default>
|
||||
<umb-avatar
|
||||
size="xs"
|
||||
color="secondary"
|
||||
name="{{user.name}}"
|
||||
img-src="{{avatar[0].value}}"
|
||||
img-srcset="{{avatar[1].value}} 2x, {{avatar[2].value}} 3x">
|
||||
</umb-avatar>
|
||||
</a>
|
||||
</li>
|
||||
<li ng-repeat="section in sections | limitTo: maxSections" ng-class="{current: section.alias == currentSection}">
|
||||
<li data-element="section-{{section.alias}}" ng-repeat="section in sections | limitTo: maxSections" ng-class="{current: section.alias == currentSection}">
|
||||
<a href="#/{{section.alias}}"
|
||||
ng-dblclick="sectionDblClick(section)"
|
||||
ng-click="sectionClick($event, section)"
|
||||
@@ -20,13 +22,13 @@
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="expand" ng-class="{ 'open': showTray === true }" ng-show="needTray">
|
||||
<li data-element="section-expand" class="expand" ng-class="{ 'open': showTray === true }" ng-show="needTray">
|
||||
<a href ng-click="trayClick()">
|
||||
<i class="icon icon-arrow-right"></i>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li class="help">
|
||||
<li data-element="section-help" class="help">
|
||||
<a href class="help" hotkey="ctrl+shift+h" ng-click="helpClick()" prevent-default>
|
||||
<i class="icon-help-alt"></i>
|
||||
<span><localize key="sections_help">Help</localize></span>
|
||||
@@ -50,17 +52,19 @@
|
||||
</div>
|
||||
|
||||
<umb-overlay
|
||||
ng-if="helpDialog.show"
|
||||
model="helpDialog"
|
||||
view="helpDialog.view"
|
||||
position="left">
|
||||
data-element="overlay-help"
|
||||
ng-if="helpDialog.show"
|
||||
model="helpDialog"
|
||||
view="helpDialog.view"
|
||||
position="left">
|
||||
</umb-overlay>
|
||||
|
||||
<umb-overlay
|
||||
ng-if="userDialog.show"
|
||||
model="userDialog"
|
||||
view="userDialog.view"
|
||||
position="left">
|
||||
data-element="overlay-user"
|
||||
ng-if="userDialog.show"
|
||||
model="userDialog"
|
||||
view="userDialog.view"
|
||||
position="left">
|
||||
</umb-overlay>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -0,0 +1,86 @@
|
||||
<div class="umb-tour">
|
||||
|
||||
<div class="umb-loader umb-tour__loader" ng-if="loadingStep"></div>
|
||||
<div class="umb-tour__pulse"></div>
|
||||
|
||||
<div class="umb-tour__popover shadow-depth-2" ng-class="{'umb-tour__popover--l': model.currentStep.type === 'intro' || model.currentStepIndex === model.steps.length}">
|
||||
|
||||
<div ng-if="!configuredView && !elementNotFound">
|
||||
|
||||
<!-- Regular steps -->
|
||||
<umb-tour-step ng-if="model.currentStepIndex < model.steps.length" on-close="model.endTour()">
|
||||
|
||||
<umb-tour-step-header
|
||||
title="model.currentStep.title">
|
||||
</umb-tour-step-header>
|
||||
|
||||
<umb-tour-step-content
|
||||
content="model.currentStep.content">
|
||||
</umb-tour-step-content>
|
||||
|
||||
<umb-tour-step-footer>
|
||||
|
||||
<div class="flex justify-between items-center">
|
||||
|
||||
<div>
|
||||
<umb-tour-step-counter
|
||||
current-step="model.currentStepIndex + 1"
|
||||
total-steps="model.steps.length">
|
||||
</umb-tour-step-counter>
|
||||
<div ng-if="model.allowDisable && model.currentStep.type === 'intro'" style="font-size: 13px;"><a href="" class="underline" ng-click="model.disableTour()">Don't show this tour again</a></div>
|
||||
</div>
|
||||
|
||||
<div ng-if="model.currentStep.type !== 'intro'">
|
||||
<umb-button size="xs" ng-if="!model.currentStep.event" button-style="success" type="button" action="model.nextStep()" label="Next"></umb-button>
|
||||
</div>
|
||||
|
||||
<div ng-if="model.currentStep.type === 'intro'">
|
||||
<umb-button size="m" button-style="success" type="button" action="model.nextStep()" label="Start tour"></umb-button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</umb-tour-step-footer>
|
||||
|
||||
</umb-tour-step>
|
||||
|
||||
<!-- Outro step -->
|
||||
<umb-tour-step ng-if="model.currentStepIndex === model.steps.length" class="tc" hide-close="model.currentStepIndex === model.steps.length">
|
||||
|
||||
<umb-tour-step-content>
|
||||
<div class="flex items-center justify-center">
|
||||
<umb-checkmark size="xl" checked="true"></umb-checkmark>
|
||||
</div>
|
||||
<h3 class="bold">Congratulations!</h3>
|
||||
<p>You have reached the end of the <b>{{model.name}}</b> tour - way to go!</p>
|
||||
</umb-tour-step-content>
|
||||
|
||||
<umb-tour-step-footer>
|
||||
<umb-button type="button" button-style="success" size="m" action="model.completeTour()" label="Complete"></umb-button>
|
||||
</umb-tour-step-footer>
|
||||
|
||||
</umb-tour-step>
|
||||
|
||||
</div>
|
||||
|
||||
<!-- Custom step view -->
|
||||
<div ng-if="configuredView && !loadingStep && !elementNotFound" ng-include="configuredView"></div>
|
||||
|
||||
<!-- Dom element not found error -->
|
||||
<div ng-if="elementNotFound && !loadingStep">
|
||||
<umb-tour-step class="tc">
|
||||
<umb-tour-step-header>
|
||||
<h4 class="bold color-red">Oh, we got lost!</h4>
|
||||
</umb-tour-step-header>
|
||||
<umb-tour-step-content>
|
||||
<p>We lost the next step <b>{{ model.currentStep.title }}</b> and don't know where to go.</p>
|
||||
<p>Please go back and start the tour again.</p>
|
||||
</umb-tour-step-content>
|
||||
<umb-tour-step-footer>
|
||||
<umb-button size="s" button-style="success" type="button" action="model.endTour()" label="End tour"></umb-button>
|
||||
</umb-tour-step-footer>
|
||||
</umb-tour-step>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@@ -0,0 +1 @@
|
||||
<div class="umb-drawer-content" ng-transclude></div>
|
||||
@@ -0,0 +1 @@
|
||||
<div class="umb-drawer-footer" ng-transclude></div>
|
||||
@@ -0,0 +1,4 @@
|
||||
<div class="umb-drawer-header">
|
||||
<div class="umb-drawer-header__title">{{ title }}</div>
|
||||
<div class="umb-drawer-header__subtitle">{{ description }}</div>
|
||||
</div>
|
||||
@@ -0,0 +1 @@
|
||||
<div class="umb-drawer-view" ng-transclude></div>
|
||||
@@ -0,0 +1,3 @@
|
||||
<div class="umb-drawer">
|
||||
<div style="height: 100%;" ng-if="configuredView" ng-include="configuredView"></div>
|
||||
</div>
|
||||
@@ -0,0 +1,4 @@
|
||||
<div class="umb-tour-step__content">
|
||||
<div ng-bind-html="content"></div>
|
||||
<div ng-transclude></div>
|
||||
</div>
|
||||
@@ -0,0 +1 @@
|
||||
<div class="umb-tour-step__counter">{{ currentStep }}/{{ totalSteps }}</div>
|
||||
@@ -0,0 +1 @@
|
||||
<div class="umb-tour-step__footer" ng-transclude></div>
|
||||
@@ -0,0 +1,4 @@
|
||||
<div class="umb-tour-step__header">
|
||||
<div class="umb-tour-step__title">{{title}}</div>
|
||||
<div ng-transclude></div>
|
||||
</div>
|
||||
@@ -0,0 +1,10 @@
|
||||
<div class="umb-tour-step umb-tour-step--{{size}}">
|
||||
|
||||
|
||||
<div ng-if="hideClose !== true">
|
||||
<i class="icon-wrong umb-tour-step__close" ng-click="close()"></i>
|
||||
</div>
|
||||
|
||||
<div ng-transclude></div>
|
||||
|
||||
</div>
|
||||
@@ -1,6 +1,8 @@
|
||||
<div class="btn-group umb-button-group" ng-class="{'dropup': direction === 'up'}">
|
||||
|
||||
|
||||
<umb-button
|
||||
ng-if="defaultButton"
|
||||
alias="{{defaultButton.alias ? defaultButton.alias : 'groupPrimary' }}"
|
||||
type="button"
|
||||
action="defaultButton.handler()"
|
||||
button-style="success"
|
||||
@@ -11,13 +13,13 @@
|
||||
shortcut-when-hidden="{{defaultButton.hotKeyWhenHidden}}">
|
||||
</umb-button>
|
||||
|
||||
<a class="btn btn-success dropdown-toggle umb-button-group__toggle" data-toggle="dropdown" ng-if="subButtons.length > 0">
|
||||
<a data-element="button-group-toggle" class="btn btn-success dropdown-toggle umb-button-group__toggle" data-toggle="dropdown" ng-if="subButtons.length > 0">
|
||||
<span class="caret"></span>
|
||||
</a>
|
||||
|
||||
<ul aria-labelledby="dLabel" class="dropdown-menu bottom-up umb-button-group__sub-buttons" ng-if="subButtons.length > 0" role="menu" ng-class="{'-align-right': float === 'right'}">
|
||||
<li ng-repeat="subButton in subButtons">
|
||||
<a href="#" ng-click="subButton.handler()" hotkey="{{subButton.hotKey}}" hotkey-when-hidden="{{subButton.hotKeyWhenHidden}}" prevent-default>
|
||||
<a data-element="{{subButton.alias ? 'button-' + subButton.alias : 'button-group-secondary-' + $index }}" href="#" ng-click="subButton.handler()" hotkey="{{subButton.hotKey}}" hotkey-when-hidden="{{subButton.hotKeyWhenHidden}}" prevent-default>
|
||||
<localize key="{{subButton.labelKey}}">{{subButton.labelKey}}</localize>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
@@ -1,32 +1,32 @@
|
||||
<div class="btn-group umb-button">
|
||||
<div class="umb-button" ng-class="{'umb-button--block': blockElement}" data-element="{{ alias ? 'button-' + alias : '' }}">
|
||||
|
||||
<div class="icon-check umb-button__success" ng-class="{'-hidden': state !== 'success', '-white': style}"></div>
|
||||
<div class="icon-check umb-button__success" ng-class="{'-hidden': innerState !== 'success', '-white': style}"></div>
|
||||
|
||||
<div class="icon-delete umb-button__error" ng-class="{'-hidden': state !== 'error', '-white': style}"></div>
|
||||
<div class="icon-delete umb-button__error" ng-class="{'-hidden': innerState !== 'error', '-white': style}"></div>
|
||||
|
||||
<div class="umb-button__progress" ng-class="{'-hidden': state !== 'busy', '-white': style}"></div>
|
||||
<div class="umb-button__progress" ng-class="{'-hidden': innerState !== 'busy', '-white': style}"></div>
|
||||
|
||||
<div ng-if="state !== 'init'" class="umb-button__overlay"></div>
|
||||
<div ng-if="innerState !== 'init'" class="umb-button__overlay"></div>
|
||||
|
||||
<a ng-if="type === 'link'" href="{{href}}" class="btn umb-button__button {{style}}" ng-click="action(model)" hotkey="{{shortcut}}" hotkey-when-hidden="{{shortcutWhenHidden}}">
|
||||
<span class="umb-button__content" ng-class="{'-hidden': state !== 'init'}">
|
||||
<i ng-if="icon && buttonStyle==='link'" class="{{icon}} umb-button__icon"></i>
|
||||
<a ng-if="type === 'link'" href="{{href}}" class="btn umb-button__button {{style}} umb-button--{{size}}" ng-click="action(model)" hotkey="{{shortcut}}" hotkey-when-hidden="{{shortcutWhenHidden}}">
|
||||
<span class="umb-button__content" ng-class="{'-hidden': innerState !== 'init'}">
|
||||
<i ng-if="icon" class="{{icon}} umb-button__icon"></i>
|
||||
<localize ng-if="labelKey" key="{{labelKey}}">{{label}}</localize>
|
||||
<span ng-if="!labelKey">{{label}}</span>
|
||||
</span>
|
||||
</a>
|
||||
|
||||
<button ng-if="type === 'button'" type="button" class="btn umb-button__button {{style}}" ng-click="action(model)" hotkey="{{shortcut}}" hotkey-when-hidden="{{shortcutWhenHidden}}" ng-disabled="disabled">
|
||||
<span class="umb-button__content" ng-class="{'-hidden': state !== 'init'}">
|
||||
<i ng-if="icon && buttonStyle==='link'" class="{{icon}} umb-button__icon"></i>
|
||||
<button ng-if="type === 'button'" type="button" class="btn umb-button__button {{style}} umb-button--{{size}}" ng-click="action(model)" hotkey="{{shortcut}}" hotkey-when-hidden="{{shortcutWhenHidden}}" ng-disabled="disabled">
|
||||
<span class="umb-button__content" ng-class="{'-hidden': innerState !== 'init'}">
|
||||
<i ng-if="icon" class="{{icon}} umb-button__icon"></i>
|
||||
<localize ng-if="labelKey" key="{{labelKey}}">{{label}}</localize>
|
||||
<span ng-if="!labelKey">{{label}}</span>
|
||||
</span>
|
||||
</button>
|
||||
|
||||
<button ng-if="type === 'submit'" type="submit" class="btn umb-button__button {{style}}" hotkey="{{shortcut}}" hotkey-when-hidden="{{shortcutWhenHidden}}" ng-disabled="disabled">
|
||||
<span class="umb-button__content" ng-class="{'-hidden': state !== 'init'}">
|
||||
<i ng-if="icon && buttonStyle==='link'" class="{{icon}} umb-button__icon"></i>
|
||||
<button ng-if="type === 'submit'" type="submit" class="btn umb-button__button {{style}} umb-button--{{size}}" hotkey="{{shortcut}}" hotkey-when-hidden="{{shortcutWhenHidden}}" ng-disabled="disabled">
|
||||
<span class="umb-button__content" ng-class="{'-hidden': innerState !== 'init'}">
|
||||
<i ng-if="icon" class="{{icon}} umb-button__icon"></i>
|
||||
<localize ng-if="labelKey" key="{{labelKey}}">{{label}}</localize>
|
||||
<span ng-if="!labelKey">{{label}}</span>
|
||||
</span>
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
<button ng-click="click()" type="button" class="umb-toggle dib" ng-class="{'umb-toggle--checked': checked}">
|
||||
|
||||
<span ng-if="!labelPosition && showLabels === 'true' || labelPosition === 'left' && showLabels === 'true'">
|
||||
<span ng-if="!checked" class="umb-toggle__label umb-toggle__label--left">{{ displayLabelOff }}</span>
|
||||
<span ng-if="checked" class="umb-toggle__label umb-toggle__label--left">{{ displayLabelOn }}</span>
|
||||
</span>
|
||||
|
||||
<div class="umb-toggle__toggle">
|
||||
<i ng-show="checked && !hideIcons" class="umb-toggle__icon umb-toggle__icon--left icon-check"></i>
|
||||
<div class="umb-toggle__handler shadow-depth-1"></div>
|
||||
<i ng-show="!checked && !hideIcons" class="umb-toggle__icon umb-toggle__icon--right icon-wrong"></i>
|
||||
</div>
|
||||
|
||||
<span ng-if="labelPosition === 'right' && showLabels === 'true'">
|
||||
<span ng-if="!checked" class="umb-toggle__label umb-toggle__label--right">{{ displayLabelOff }}</span>
|
||||
<span ng-if="checked" class="umb-toggle__label umb-toggle__label--right">{{ displayLabelOn }}</span>
|
||||
</span>
|
||||
|
||||
</button>
|
||||
@@ -0,0 +1,108 @@
|
||||
<div>
|
||||
|
||||
<umb-load-indicator ng-if="page.loading"></umb-load-indicator>
|
||||
|
||||
<form name="contentForm"
|
||||
ng-submit="save()"
|
||||
novalidate
|
||||
val-form-manager>
|
||||
|
||||
<umb-editor-view ng-if="!page.loading" umb-tabs>
|
||||
|
||||
<umb-editor-header
|
||||
menu="page.menu"
|
||||
name="content.name"
|
||||
tabs="content.tabs"
|
||||
hide-icon="true"
|
||||
hide-description="true"
|
||||
hide-alias="true">
|
||||
</umb-editor-header>
|
||||
|
||||
<umb-editor-container>
|
||||
<umb-tabs-content class="form-horizontal" view="true">
|
||||
|
||||
<umb-tab id="tab{{tab.id}}" ng-repeat="tab in content.tabs" rel="{{tab.id}}">
|
||||
|
||||
<!-- Other tabs than info -->
|
||||
<div ng-if="tab.id !== -1 && tab.alias !== '_umb_infoTab'">
|
||||
<umb-property data-element="property-{{property.alias}}" ng-repeat="property in tab.properties" property="property">
|
||||
<umb-editor model="property"></umb-editor>
|
||||
</umb-property>
|
||||
</div>
|
||||
|
||||
<!-- Info tab -->
|
||||
<div ng-if="tab.id === -1 && tab.alias === '_umb_infoTab'">
|
||||
<umb-content-node-info
|
||||
ng-if="content"
|
||||
node="content">
|
||||
</umb-content-node-info>
|
||||
</div>
|
||||
|
||||
</umb-tab>
|
||||
|
||||
</umb-tabs-content>
|
||||
|
||||
</umb-editor-container>
|
||||
|
||||
|
||||
<umb-editor-footer>
|
||||
|
||||
<umb-editor-footer-content-left>
|
||||
|
||||
<umb-breadcrumbs
|
||||
ng-if="ancestors && ancestors.length > 0"
|
||||
ancestors="ancestors"
|
||||
entity-type="content">
|
||||
</umb-breadcrumbs>
|
||||
|
||||
</umb-editor-footer-content-left>
|
||||
|
||||
|
||||
<umb-editor-footer-content-right>
|
||||
|
||||
<umb-button
|
||||
alias="returnToListView"
|
||||
ng-if="page.listViewPath"
|
||||
type="link"
|
||||
href="#{{page.listViewPath}}"
|
||||
label="Return to list"
|
||||
label-key="buttons_returnToList">
|
||||
</umb-button>
|
||||
|
||||
<umb-button
|
||||
alias="preview"
|
||||
ng-if="!page.isNew && content.allowPreview"
|
||||
type="button"
|
||||
button-style="info"
|
||||
action="preview(content)"
|
||||
label="Preview page"
|
||||
label-key="buttons_showPage">
|
||||
</umb-button>
|
||||
|
||||
<umb-button-group
|
||||
ng-if="defaultButton && !content.trashed"
|
||||
default-button="defaultButton"
|
||||
sub-buttons="subButtons"
|
||||
state="page.buttonGroupState"
|
||||
direction="up"
|
||||
float="right">
|
||||
</umb-button-group>
|
||||
|
||||
<umb-button
|
||||
alias="restore"
|
||||
ng-if="content.trashed"
|
||||
type="button"
|
||||
button-style="primary"
|
||||
action="restore(content)"
|
||||
state="page.buttonRestore"
|
||||
label="Restore">
|
||||
</umb-button>
|
||||
|
||||
</umb-editor-footer-content-right>
|
||||
|
||||
</umb-editor-footer>
|
||||
|
||||
</umb-editor-view>
|
||||
|
||||
</form>
|
||||
</div>
|
||||
@@ -0,0 +1,212 @@
|
||||
<div class="umb-package-details">
|
||||
|
||||
<div class="umb-package-details__main-content">
|
||||
|
||||
<umb-box data-element="node-info-urls">
|
||||
<umb-box-header title-key="general_links"></umb-box-header>
|
||||
<umb-box-content class="block-form">
|
||||
<ul class="nav nav-stacked" style="margin-bottom: 0;">
|
||||
<li ng-repeat="url in node.urls">
|
||||
<a ng-if="node.hasPublishedVersion" href="{{url}}" target="_blank">
|
||||
<i class="icon icon-window-popin"></i>
|
||||
<span>{{url}}</span>
|
||||
</a>
|
||||
<div ng-if="!node.hasPublishedVersion">
|
||||
<i class="icon icon-window-popin"></i>
|
||||
<span>{{url}}</span>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</umb-box-content>
|
||||
</umb-box>
|
||||
|
||||
<umb-box data-element="node-info-history">
|
||||
<umb-box-header title-key="general_history"></umb-box-header>
|
||||
<umb-box-content class="block-form">
|
||||
|
||||
<div style="position: relative;">
|
||||
|
||||
<div ng-if="loadingAuditTrail" style="background: rgba(255, 255, 255, 0.8); position: absolute; top: 0; left: 0; right: 0; bottom: 0;"></div>
|
||||
<umb-load-indicator ng-if="loadingAuditTrail"></umb-load-indicator>
|
||||
|
||||
<div ng-if="auditTrail.length === 0" style="padding: 10px;">
|
||||
<umb-empty-state position="center"
|
||||
size="small">
|
||||
<localize key="content_noChanges"></localize>
|
||||
</umb-empty-state>
|
||||
</div>
|
||||
|
||||
<div class="history">
|
||||
|
||||
<div ng-if="auditTrail.length > 1" class="history-line"></div>
|
||||
|
||||
<div class="history-item" ng-repeat="item in auditTrail">
|
||||
|
||||
<div class="history-item__break">
|
||||
<div class="history-item__avatar">
|
||||
<umb-avatar color="secondary"
|
||||
size="xs"
|
||||
name="{{item.userName}}"
|
||||
img-src="{{item.userAvatars[3]}}"
|
||||
img-srcset="{{item.userAvatars[4]}} 2x, {{item.userAvatars[4]}} 3x">
|
||||
</umb-avatar>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<div>{{ item.userName }}</div>
|
||||
<div class="history-item__date">{{item.timestampFormatted}}</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="history-item__break">
|
||||
<umb-badge size="xs"
|
||||
color="{{item.logTypeColor}}">
|
||||
<!--{{ item.logType }}-->
|
||||
<localize key="auditTrails_small{{ item.logType }}">{{ item.logType }}</localize>
|
||||
</umb-badge>
|
||||
<span>
|
||||
<localize key="auditTrails_{{ item.logType | lowercase }}">{{ item.comment }}</localize>
|
||||
</span>
|
||||
|
||||
<!--<span>{{ item.comment }}</span>-->
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="flex justify-center">
|
||||
<umb-pagination ng-if="auditTrailOptions.totalPages > 1"
|
||||
page-number="auditTrailOptions.pageNumber"
|
||||
total-pages="auditTrailOptions.totalPages"
|
||||
on-change="auditTrailPageChange(pageNumber)">
|
||||
</umb-pagination>
|
||||
</div>
|
||||
|
||||
</umb-box-content>
|
||||
</umb-box>
|
||||
</div>
|
||||
|
||||
<div class="umb-package-details__sidebar">
|
||||
<umb-box data-element="node-info-scheduled-publishing">
|
||||
<umb-box-header title-key="general_scheduledPublishing"></umb-box-header>
|
||||
<umb-box-content class="block-form">
|
||||
|
||||
<div class="date-wrapper">
|
||||
|
||||
<div class="flex items-center flex-column">
|
||||
|
||||
|
||||
<umb-date-time-picker data-element="node-info-publish"
|
||||
options="datePickerConfig"
|
||||
on-change="datePickerChange(event, 'publish')">
|
||||
|
||||
<div class="date-container">
|
||||
|
||||
<div class="date-container__title">
|
||||
<localize key="content_releaseDate"></localize>
|
||||
</div>
|
||||
|
||||
<div class="date-container__date" ng-if="node.releaseDate">
|
||||
<div class="date-wrapper__date">{{node.releaseDateMonth}} {{node.releaseDateYear}}</div>
|
||||
<div class="date-wrapper__number">{{node.releaseDateDayNumber}}</div>
|
||||
<div class="date-wrapper__date">{{node.releaseDateDay}} {{node.releaseDateTime}}</div>
|
||||
</div>
|
||||
|
||||
<a href="" ng-if="!node.releaseDate" class="bold" style="color: #00aea2; text-decoration: underline;"><localize key="content_setDate">Set date</localize></a>
|
||||
|
||||
</div>
|
||||
|
||||
</umb-date-time-picker>
|
||||
|
||||
<a ng-if="node.releaseDate" ng-click="clearPublishDate()" href="" style="text-decoration: underline;">
|
||||
<small><localize key="content_removeDate">Clear date</localize></small>
|
||||
</a>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="date-separate"></div>
|
||||
|
||||
<div class="flex items-center flex-column">
|
||||
<umb-date-time-picker data-element="node-info-unpublish"
|
||||
options="datePickerConfig"
|
||||
on-change="datePickerChange(event, 'unpublish')">
|
||||
|
||||
<div class="date-container">
|
||||
|
||||
<div class="date-container__title">
|
||||
<localize key="content_unpublishDate"></localize>
|
||||
</div>
|
||||
|
||||
<div class="date-container__date" ng-if="node.removeDate">
|
||||
<div class="date-wrapper__date">{{node.removeDateMonth}} {{node.removeDateYear}}</div>
|
||||
<div class="date-wrapper__number">{{node.removeDateDayNumber}}</div>
|
||||
<div class="date-wrapper__date">{{node.removeDateDay}} {{node.removeDateTime}}</div>
|
||||
</div>
|
||||
|
||||
<a href="" ng-if="!node.removeDate" class="bold" style="color: #00aea2; text-decoration: underline;"><localize key="content_setDate">Set date</localize></a>
|
||||
|
||||
</div>
|
||||
|
||||
</umb-date-time-picker>
|
||||
|
||||
<a ng-if="node.removeDate" ng-click="clearUnpublishDate()" href="" style="text-decoration: underline;">
|
||||
<small><localize key="content_removeDate">Clear date</localize></small>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
</umb-box-content>
|
||||
</umb-box>
|
||||
<umb-box data-element="node-info-general">
|
||||
<umb-box-header title-key="general_general"></umb-box-header>
|
||||
<umb-box-content class="block-form">
|
||||
|
||||
<umb-control-group data-element="node-info-status" label="@general_status">
|
||||
<umb-badge size="xs" color="{{publishStatus.color}}">
|
||||
{{publishStatus.label}}
|
||||
</umb-badge>
|
||||
</umb-control-group>
|
||||
|
||||
<umb-control-group data-element="node-info-create-date" label="@template_createdDate">
|
||||
{{node.createDateFormatted}} <localize key="general_by">by</localize> {{ node.owner.name }}
|
||||
</umb-control-group>
|
||||
|
||||
<umb-control-group data-element="node-info-document-type" label="@content_documentType">
|
||||
<umb-node-preview
|
||||
style="max-width: 100%; margin-bottom: 0;"
|
||||
icon="node.icon"
|
||||
name="node.contentTypeName"
|
||||
allow-open="allowOpen"
|
||||
on-open="openDocumentType(documentType)"
|
||||
open-url="previewOpenUrl">
|
||||
</umb-node-preview>
|
||||
</umb-control-group>
|
||||
|
||||
<umb-control-group ng-if="disableTemplates == false" data-element="node-info-template" label="@template_template">
|
||||
|
||||
<div class="flex items-center">
|
||||
<select class="input-block-level"
|
||||
ng-model="node.template"
|
||||
ng-options="key as value for (key, value) in availableTemplates"
|
||||
ng-change="updateTemplate(node.template)">
|
||||
<option value=""><localize key="general_choose">Choose</localize>...</option>
|
||||
</select>
|
||||
<a href="" class="umb-node-preview__action" style="margin-left:15px;" ng-click="openTemplate()" ng-if="node.template !== null && allowOpen">
|
||||
<localize key="general_open">Open</localize>
|
||||
</a>
|
||||
</div>
|
||||
</umb-control-group>
|
||||
|
||||
<umb-control-group data-element="node-info-id" label="Id">
|
||||
<div>{{ node.id }}</div>
|
||||
<small>{{ node.key }}</small>
|
||||
</umb-control-group>
|
||||
|
||||
</umb-box-content>
|
||||
</umb-box>
|
||||
</div>
|
||||
</div>
|
||||
@@ -1,10 +1,15 @@
|
||||
<ul class="umb-breadcrumbs">
|
||||
<li class="umb-breadcrumbs__ancestor" ng-repeat="ancestor in ancestors">
|
||||
<li class="umb-breadcrumbs__ancestor" ng-repeat="ancestor in ancestors">
|
||||
|
||||
<!-- go to node on click -->
|
||||
<a ng-if="!$last && !allowOnOpen" href="#/{{entityType}}/{{entityType}}/edit/{{ancestor.id}}" class="umb-breadcrumbs__ancestor-link" title="{{ancestor.name}}">{{ancestor.name}}</a>
|
||||
|
||||
<a ng-if="!$last" href="#/{{entityType}}/{{entityType}}/edit/{{ancestor.id}}" class="umb-breadcrumbs__ancestor-link" title="{{ancestor.name}}">{{ancestor.name}}</a>
|
||||
<span ng-if="!$last" class="umb-breadcrumbs__seperator">/</span>
|
||||
<!-- use callback to handle click -->
|
||||
<a ng-if="!$last && allowOnOpen" href="#" ng-click="open(ancestor)" class="umb-breadcrumbs__ancestor-link" title="{{ancestor.name}}" prevent-default>{{ancestor.name}}</a>
|
||||
|
||||
<span class="umb-breadcrumbs__ancestor-text" ng-if="$last" title="{{ancestor.name}}">{{ancestor.name}}</span>
|
||||
<span ng-if="!$last" class="umb-breadcrumbs__seperator">/</span>
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
<span class="umb-breadcrumbs__ancestor-text" ng-if="$last" title="{{ancestor.name}}">{{ancestor.name}}</span>
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
@@ -1,4 +1,4 @@
|
||||
<div class="umb-editor-container umb-panel-body umb-scrollable row-fluid" ng-class="{'-stop-scrolling': numberOfOverlays > 0}">
|
||||
<div data-element="editor-container" class="umb-editor-container umb-panel-body umb-scrollable row-fluid" ng-class="{'-stop-scrolling': numberOfOverlays > 0}">
|
||||
<umb-overlay-backdrop></umb-overlay-backdrop>
|
||||
<div class="umb-pane">
|
||||
<div ng-transclude></div>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<div class="umb-tab-buttons umb-editor-drawer">
|
||||
<div data-element="editor-footer" class="umb-tab-buttons umb-editor-drawer">
|
||||
|
||||
<div class="umb-editor-drawer-content" ng-transclude>
|
||||
|
||||
|
||||
@@ -1,22 +1,26 @@
|
||||
<div class="umb-editor-header umb-panel-header">
|
||||
<div data-element="editor-header" class="umb-editor-header umb-panel-header">
|
||||
|
||||
<div class="umb-panel-header-content-wrapper">
|
||||
|
||||
<div class="umb-panel-header-content">
|
||||
|
||||
<div class="umb-panel-header-left-side" ng-class="{'-top-position': tabs || !icon }">
|
||||
|
||||
<div class="umb-panel-header-icon" ng-if="!hideIcon" ng-click="openIconPicker()" ng-class="{'-placeholder': $parent.icon==='' || $parent.icon===null}" title="{{$parent.icon}}">
|
||||
<i class="icon {{$parent.icon}}" ng-if="$parent.icon!=='' && $parent.icon!==null"></i>
|
||||
<div class="umb-panel-header-icon-text" ng-if="$parent.icon==='' || $parent.icon===null">
|
||||
<localize key="settings_addIcon"></localize>
|
||||
</div>
|
||||
</div>
|
||||
<div class="umb-panel-header-left-side" ng-class="{'-top-position': tabs || !icon && hideDescription}">
|
||||
|
||||
<ng-form data-element="editor-icon" name="iconForm">
|
||||
<div class="umb-panel-header-icon" ng-if="!hideIcon" ng-click="openIconPicker()" ng-class="{'-placeholder': $parent.icon==='' || $parent.icon===null}" title="{{$parent.icon}}">
|
||||
<i class="icon {{$parent.icon}}" ng-if="$parent.icon!=='' && $parent.icon!==null"></i>
|
||||
<div class="umb-panel-header-icon-text" ng-if="$parent.icon==='' || $parent.icon===null">
|
||||
<localize key="settings_addIcon"></localize>
|
||||
</div>
|
||||
</div>
|
||||
</ng-form>
|
||||
|
||||
<div class="umb-panel-header-title-wrapper">
|
||||
|
||||
<ng-form name="headerNameForm">
|
||||
<input
|
||||
data-element="editor-name-field"
|
||||
title="{{key}}"
|
||||
type="text"
|
||||
class="umb-panel-header-name-input"
|
||||
localize="placeholder"
|
||||
@@ -26,38 +30,50 @@
|
||||
ng-model="name"
|
||||
ng-class="{'name-is-empty': $parent.name===null || $parent.name===''}"
|
||||
umb-auto-focus
|
||||
val-server-field="Name"
|
||||
required />
|
||||
</ng-form>
|
||||
|
||||
<div class="umb-panel-header-name" ng-if="nameLocked">{{ name }}</div>
|
||||
<div class="umb-panel-header-name" ng-if="nameLocked" title="{{key}}">{{ name }}</div>
|
||||
|
||||
<umb-generate-alias class="umb-panel-header-alias"
|
||||
ng-if="!hideAlias"
|
||||
alias="$parent.alias"
|
||||
alias-from="$parent.name"
|
||||
enable-lock="true"
|
||||
server-validation-field="Alias"></umb-generate-alias>
|
||||
<umb-generate-alias
|
||||
data-element="editor-alias"
|
||||
class="umb-panel-header-alias"
|
||||
ng-if="!hideAlias"
|
||||
alias="$parent.alias"
|
||||
alias-from="$parent.name"
|
||||
enable-lock="true"
|
||||
server-validation-field="Alias">
|
||||
</umb-generate-alias>
|
||||
|
||||
|
||||
<input
|
||||
data-element="editor-description"
|
||||
type="text"
|
||||
class="umb-panel-header-description"
|
||||
localize="placeholder"
|
||||
placeholder="@placeholders_enterDescription"
|
||||
ng-if="!hideDescription && !descriptionLocked"
|
||||
ng-model="$parent.description" />
|
||||
|
||||
<div class="umb-panel-header-locked-description" ng-show="descriptionLocked">{{ description }}</div>
|
||||
|
||||
<input
|
||||
type="text"
|
||||
class="umb-panel-header-description"
|
||||
localize="placeholder"
|
||||
placeholder="@placeholders_enterDescription"
|
||||
ng-if="!hideDescription"
|
||||
ng-model="$parent.description" />
|
||||
|
||||
</div>
|
||||
|
||||
<umb-editor-menu
|
||||
class="umb-editor-header__actions-menu"
|
||||
ng-if="menu.currentNode"
|
||||
current-node="menu.currentNode"
|
||||
current-section="{{menu.currentSection}}">
|
||||
</umb-editor-menu>
|
||||
<div class="umb-editor-header__actions-menu">
|
||||
<umb-editor-menu
|
||||
data-element="editor-actions"
|
||||
ng-if="menu.currentNode"
|
||||
current-node="menu.currentNode"
|
||||
current-section="{{menu.currentSection}}">
|
||||
</umb-editor-menu>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<umb-editor-navigation
|
||||
data-element="editor-sub-views"
|
||||
ng-if="navigation"
|
||||
navigation="navigation">
|
||||
</umb-editor-navigation>
|
||||
@@ -65,6 +81,7 @@
|
||||
</div>
|
||||
|
||||
<umb-tabs-nav
|
||||
data-element="editor-tabs"
|
||||
ng-if="tabs"
|
||||
model="tabs">
|
||||
</umb-tabs-nav>
|
||||
@@ -72,10 +89,11 @@
|
||||
</div>
|
||||
|
||||
<umb-overlay
|
||||
ng-if="dialogModel.show"
|
||||
model="dialogModel"
|
||||
position="right"
|
||||
view="dialogModel.view">
|
||||
data-element="editor-overlay-icon-picker"
|
||||
ng-if="dialogModel.show"
|
||||
model="dialogModel"
|
||||
position="right"
|
||||
view="dialogModel.view">
|
||||
</umb-overlay>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<div class="btn-group pull-right">
|
||||
<div class="pull-right" style="position: relative;">
|
||||
|
||||
<!-- options button -->
|
||||
<a class="btn" href="#" ng-click="getOptions()" prevent-default data-toggle="dropdown">
|
||||
<a class="btn btn-info" href="#" ng-click="getOptions()" prevent-default data-toggle="dropdown">
|
||||
<localize key="general_actions">Actions</localize>
|
||||
<span class="caret"></span>
|
||||
</a>
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
<div>
|
||||
<ul class="umb-sub-views-nav" ng-if="showNavigation">
|
||||
<li ng-repeat="item in navigation">
|
||||
<a tabindex="-1"
|
||||
<a data-element="sub-view-{{item.alias}}"
|
||||
tabindex="-1"
|
||||
class="umb-sub-views-nav-item"
|
||||
href=""
|
||||
ng-click="clickNavigationItem(item)"
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<div class="umb-panel umb-editor-wrapper"
|
||||
<div class="umb-panel umb-editor-wrapper"
|
||||
ng-class="{
|
||||
'-no-footer': footer === 'false'
|
||||
}"
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
<div class="umb-box-content" ng-transclude></div>
|
||||
@@ -0,0 +1,10 @@
|
||||
<div class="umb-box-header" ng-transclude>
|
||||
<div class="umb-box-header-title" ng-if="title || titleKey">
|
||||
<localize ng-if="titleKey" key="{{titleKey}}"></localize>
|
||||
<span ng-if="title">{{title}}</span>
|
||||
</div>
|
||||
<div class="umb-box-header-description" ng-if="description || descriptionKey">
|
||||
<localize ng-if="descriptionKey" key="{{descriptionKey}}"></localize>
|
||||
<span ng-if="description">{{description}}</span>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1 @@
|
||||
<div class="umb-box" ng-transclude></div>
|
||||
@@ -2,12 +2,13 @@
|
||||
<div class="control-group umb-control-group" ng-class="{error: !formValid(), hidelabel:hideLabel=='true'}">
|
||||
<div class="umb-el-wrap">
|
||||
<label ng-if="hideLabel!=='true'" class="control-label" for="{{alias}}">
|
||||
{{labelstring}}
|
||||
<small>{{descriptionstring}}</small>
|
||||
<span ng-bind-html="labelstring"></span>
|
||||
<span ng-if="required">
|
||||
<strong class="umb-control-required">*</strong>
|
||||
</span>
|
||||
<small ng-if="descriptionstring">{{descriptionstring}}</small>
|
||||
</label>
|
||||
|
||||
<div class="controls controls-row" ng-transclude>
|
||||
</div>
|
||||
<div class="controls controls-row" ng-transclude></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -0,0 +1,59 @@
|
||||
<div class="umb-package-details">
|
||||
<div class="umb-package-details__main-content">
|
||||
<umb-box data-element="node-info-urls">
|
||||
<umb-box-header title-key="general_links"></umb-box-header>
|
||||
<umb-box-content class="block-form">
|
||||
|
||||
<umb-empty-state
|
||||
ng-if="!nodeUrl"
|
||||
size="small">
|
||||
<localize key="content_noMediaLink"></localize>
|
||||
</umb-empty-state>
|
||||
|
||||
<ul ng-if="nodeUrl" class="nav nav-stacked" style="margin-bottom: 0;">
|
||||
<li>
|
||||
<a href="{{nodeUrl}}" target="_blank">
|
||||
<i class="icon icon-window-popin"></i>
|
||||
<span>{{nodeUrl}}</span>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
</umb-box-content>
|
||||
</umb-box>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="umb-package-details__sidebar">
|
||||
<umb-box data-element="node-info-general">
|
||||
<umb-box-header title-key="general_general"></umb-box-header>
|
||||
<umb-box-content class="block-form">
|
||||
|
||||
<umb-control-group data-element="node-info-create-date" label="@content_createDate">
|
||||
{{node.createDateFormatted}} by {{ node.owner.name }}
|
||||
</umb-control-group>
|
||||
|
||||
<umb-control-group data-element="node-info-update-date" label="@content_updateDate">
|
||||
{{node.updateDateFormatted}}
|
||||
</umb-control-group>
|
||||
|
||||
<umb-control-group data-element="node-info-media-type" label="@content_mediatype">
|
||||
<umb-node-preview
|
||||
style="max-width: 100%; margin-bottom: 0px;"
|
||||
icon="node.icon"
|
||||
name="node.contentTypeName"
|
||||
allow-open="allowOpen"
|
||||
on-open="openMediaType(mediaType)">
|
||||
</umb-node-preview>
|
||||
</umb-control-group>
|
||||
|
||||
<umb-control-group data-element="node-info-id" label="Id">
|
||||
<div>{{ node.id }}</div>
|
||||
<small>{{ node.key }}</small>
|
||||
</umb-control-group>
|
||||
|
||||
</umb-box-content>
|
||||
</umb-box>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@@ -1,12 +1,12 @@
|
||||
<div class="umb-overlay umb-overlay-{{position}}" on-outside-click="closeOverLay()">
|
||||
<div data-element="overlay" class="umb-overlay umb-overlay-{{position}}" on-outside-click="closeOverLay()">
|
||||
<ng-form class="umb-overlay__form" name="overlayForm" novalidate val-form-manager>
|
||||
|
||||
<div class="umb-overlay-header">
|
||||
<div data-element="overlay-header" class="umb-overlay-header">
|
||||
<h4 class="umb-overlay__title">{{model.title}}</h4>
|
||||
<p class="umb-overlay__subtitle">{{model.subtitle}}</p>
|
||||
</div>
|
||||
|
||||
<div class="umb-overlay-container form-horizontal" ng-transclude>
|
||||
<div data-element="overlay-content" class="umb-overlay-container form-horizontal" ng-transclude>
|
||||
<div ng-if="view" ng-include="view"></div>
|
||||
</div>
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
|
||||
</div>
|
||||
|
||||
<div class="umb-overlay-drawer" ng-class="{'-auto-height': model.confirmSubmit.show}">
|
||||
<div data-element="overlay-footer" class="umb-overlay-drawer" ng-class="{'-auto-height': model.confirmSubmit.show}">
|
||||
|
||||
<div ng-if="model.confirmSubmit.show">
|
||||
|
||||
@@ -35,6 +35,7 @@
|
||||
|
||||
<div class="umb-overlay-drawer__align-right">
|
||||
<umb-button
|
||||
alias="overlayCancelSubmit"
|
||||
action="cancelConfirmSubmit()"
|
||||
button-style="link"
|
||||
label="Cancel"
|
||||
@@ -42,6 +43,7 @@
|
||||
</umb-button>
|
||||
|
||||
<umb-button
|
||||
data-element="overlay-confirm-submit"
|
||||
button-style="success"
|
||||
label="Confirm"
|
||||
type="button"
|
||||
@@ -53,6 +55,7 @@
|
||||
|
||||
<div class="umb-overlay-drawer__align-right" ng-if="!model.confirmSubmit.show">
|
||||
<umb-button
|
||||
alias="overlayClose"
|
||||
action="closeOverLay()"
|
||||
button-style="link"
|
||||
label-key="{{model.closeButtonLabelKey}}"
|
||||
@@ -61,6 +64,7 @@
|
||||
</umb-button>
|
||||
|
||||
<umb-button
|
||||
alias="overlaySubmit"
|
||||
button-style="success"
|
||||
label-key="{{model.submitButtonLabelKey}}"
|
||||
label="{{model.submitButtonLabel}}"
|
||||
|
||||
@@ -1,14 +1,17 @@
|
||||
<div class="umb-property">
|
||||
<ng-form name="propertyForm">
|
||||
<div class="control-group umb-control-group" ng-class="{hidelabel:property.hideLabel}" >
|
||||
|
||||
<div class="control-group umb-control-group" ng-class="{hidelabel:property.hideLabel}">
|
||||
|
||||
<val-property-msg property="property"></val-property-msg>
|
||||
|
||||
|
||||
<div class="umb-el-wrap">
|
||||
|
||||
|
||||
<label class="control-label" ng-hide="property.hideLabel" for="{{property.alias}}" ng-attr-title="{{propertyAlias}}">
|
||||
{{property.label}}
|
||||
<small ng-bind-html="property.description"></small>
|
||||
<span ng-if="property.validation.mandatory">
|
||||
<strong class="umb-control-required">*</strong>
|
||||
</span>
|
||||
<small ng-bind-html="property.description | preserveNewLineInHtml"></small>
|
||||
</label>
|
||||
|
||||
<div class="controls" ng-transclude>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<ul class="nav nav-tabs umb-nav-tabs">
|
||||
<li ng-class="{'tab-error': tabHasError}" ng-repeat="tab in model" val-tab>
|
||||
<a data-toggle="tab" href="#tab{{tab.id}}">{{ tab.label }}</a>
|
||||
<li data-element="tab-{{tab.alias}}" ng-class="{'tab-error': tabHasError}" ng-repeat="tab in model" val-tab>
|
||||
<a data-toggle="tab" href="#tab{{tab.id}}{{idSuffix}}">{{ tab.label }}</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
<a class="icon icon-arrow-left" ng-if="showSearch == 'true'" title="Back" ng-click="hideSearch()"></a>
|
||||
<input type="text"
|
||||
ng-model="term"
|
||||
class="umb-search-field search-query"
|
||||
class="umb-search-field search-query -full-width-input"
|
||||
placeholder="{{searchPlaceholderText}}"
|
||||
focus-when="{{showSearch}}">
|
||||
<h4 ng-if="showSearch && searchFromName">
|
||||
|
||||
@@ -1,23 +1,26 @@
|
||||
<ul class="umb-tree">
|
||||
<div>
|
||||
<umb-empty-state ng-if="results.length === 0" position="center">
|
||||
<localize key="general_searchNoResult"></localize>
|
||||
</umb-empty-state>
|
||||
|
||||
<ul class="umb-tree">
|
||||
<li class="root">
|
||||
<ul class="umb-search-group">
|
||||
|
||||
<li ng-repeat="result in results">
|
||||
|
||||
<div style="padding-left: 20px" ng-class="{'umb-tree-node-checked' : result.selected}">
|
||||
<a class="umb-search-group-item-link" ng-class="{first:$first}" ng-click="selectResultCallback($event, result)">
|
||||
<div class="umb-search-group-item-name">
|
||||
<i class="icon umb-tree-icon sprTree {{result.icon}}"></i>
|
||||
{{result.name}}
|
||||
</div>
|
||||
<small class="search-subtitle" ng-if="result.subTitle">{{result.subTitle}}</small>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
<ul class="umb-search-group">
|
||||
<li ng-repeat="result in results">
|
||||
<div style="padding-left: 20px" ng-class="{'umb-tree-node-checked' : result.selected}">
|
||||
<a class="umb-search-group-item-link" ng-class="{first:$first}" ng-click="selectResultCallback($event, result)">
|
||||
<div class="umb-search-group-item-name">
|
||||
<i class="icon umb-tree-icon sprTree {{result.icon}}"></i>
|
||||
{{result.name}}
|
||||
</div>
|
||||
<small class="search-subtitle" ng-if="result.subTitle">{{result.subTitle}}</small>
|
||||
</a>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
</ul>
|
||||
|
||||
@@ -1 +1,7 @@
|
||||
<img class="umb-avatar -{{size}}" ng-src="{{imgSrc}}" ng-srcset="{{imgSrcset}}" />
|
||||
<div>
|
||||
<img class="umb-avatar umb-avatar--{{size}}" ng-if="imgSrc" ng-src="{{imgSrc}}" ng-srcset="{{imgSrcset}}" />
|
||||
<div class="umb-avatar umb-avatar--{{size}} umb-avatar--{{color}}" ng-if="!imgSrc">
|
||||
<span ng-if="name">{{ initials }}</span>
|
||||
<span ng-if="!name">{{unknownChar}}</span>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1 @@
|
||||
<span class="umb-badge umb-badge--{{color}} umb-badge--{{size}}" ng-transclude></span>
|
||||
@@ -0,0 +1 @@
|
||||
<i class="icon-check umb-checkmark umb-checkmark--{{size}}" ng-class="{'umb-checkmark--checked': checked}"></i>
|
||||
@@ -0,0 +1,9 @@
|
||||
<div class="umb-color-swatches">
|
||||
|
||||
<button class="umb-color-box umb-color-box--{{size}} btn-{{color.value}}" ng-repeat="color in colors" title="{{color.name}}" ng-class="{active:color.value === selectedColor}" ng-click="setColor(color.value)">
|
||||
<div class="check_circle">
|
||||
<i class="icon icon-check small"></i>
|
||||
</div>
|
||||
</button>
|
||||
|
||||
</div>
|
||||
@@ -6,11 +6,11 @@
|
||||
'-left': direction === 'left'}"
|
||||
on-outside-click="clickCancel()">
|
||||
|
||||
<a class="umb_confirm-action__overlay-action -confirm" href="" ng-click="clickConfirm()">
|
||||
<a class="umb_confirm-action__overlay-action -confirm" href="" ng-click="clickConfirm()" localize="title" title="@buttons_confirmActionConfirm">
|
||||
<i class="icon-check"></i>
|
||||
</a>
|
||||
|
||||
<a class="umb_confirm-action__overlay-action -cancel" href="" ng-click="clickCancel()">
|
||||
<a class="umb_confirm-action__overlay-action -cancel" href="" ng-click="clickCancel()" localize="title" title="@buttons_confirmActionCancel">
|
||||
<i class="icon-delete"></i>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
@@ -3,8 +3,8 @@
|
||||
|
||||
<div class="umb-pane btn-toolbar umb-btn-toolbar">
|
||||
<div class="control-group umb-control-group">
|
||||
<a href class="btn btn-link" ng-click="onCancel()"><localize key="general_cancel">Cancel</localize></a>
|
||||
<a href class="btn btn-primary" ng-click="onConfirm()"><localize key="general_ok">Ok</localize></a>
|
||||
<a ng-if="showCancel" href class="btn btn-link" ng-click="onCancel()"><localize key="general_cancel">Cancel</localize></a>
|
||||
<a ng-if="showConfirm" href class="btn btn-primary" ng-click="onConfirm()"><localize key="general_ok">Ok</localize></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
<div class="datepicker" style="position: relative;">
|
||||
|
||||
<div ng-hide="hasTranscludedContent" class="input-append date">
|
||||
<input data-format="{{ options.format }}" type="text" class="datepickerinput" />
|
||||
<span class="add-on">
|
||||
<i class="icon-calendar"></i>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<div class="js-datePicker__transcluded-content" ng-transclude></div>
|
||||
|
||||
</div>
|
||||
@@ -0,0 +1 @@
|
||||
<li ng-transclude></li>
|
||||
@@ -0,0 +1 @@
|
||||
<ul class="dropdown-menu db" on-outside-click="close()" ng-transclude></ul>
|
||||
@@ -6,6 +6,7 @@
|
||||
<div class="umb-grid-selector__item-content">
|
||||
<i class="umb-grid-selector__item-icon {{ defaultItem.icon }}"></i>
|
||||
<div class="umb-grid-selector__item-label">{{ defaultItem.name }}</div>
|
||||
<div><a href="" class="umb-grid-selector__item-default-label -blue" ng-click="openTemplate(defaultItem)"><localize key="general_open">Open</localize></a></div>
|
||||
<span class="umb-grid-selector__item-default-label">(<localize key="general_default">Default</localize> {{itemLabel}})</span>
|
||||
</div>
|
||||
<i class="umb-grid-selector__item-remove icon-trash" ng-if="selectedItems.length === 1" ng-click="removeDefaultItem()"></i>
|
||||
@@ -15,7 +16,8 @@
|
||||
<div class="umb-grid-selector__item-content">
|
||||
<i class="umb-grid-selector__item-icon {{ selectedItem.icon }}"></i>
|
||||
<div class="umb-grid-selector__item-label">{{ selectedItem.name }}</div>
|
||||
<a href="" class="umb-grid-selector__item-default-label -blue" ng-click="setAsDefaultItem(selectedItem)"><localize key="grid_setAsDefault">Set as default</localize></a>
|
||||
<div><a href="" class="umb-grid-selector__item-default-label -blue" ng-click="openTemplate(selectedItem)"><localize key="general_open">Open</localize></a></div>
|
||||
<div><a href="" class="umb-grid-selector__item-default-label -blue" ng-click="setAsDefaultItem(selectedItem)"><localize key="grid_setAsDefault">Set as default</localize></a></div>
|
||||
</div>
|
||||
<i class="umb-grid-selector__item-remove icon-trash" ng-click="removeItem(selectedItem)"></i>
|
||||
</div>
|
||||
@@ -33,11 +35,10 @@
|
||||
<small><localize key="general_all">Akk</localize> {{itemLabel}}s <localize key="grid_areAdded">are added</localize></small>
|
||||
</div>
|
||||
|
||||
<umb-overlay
|
||||
ng-if="dialogModel.show"
|
||||
model="dialogModel"
|
||||
position="target"
|
||||
view="dialogModel.view">
|
||||
<umb-overlay ng-if="dialogModel.show"
|
||||
model="dialogModel"
|
||||
position="target"
|
||||
view="dialogModel.view">
|
||||
</umb-overlay>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -1,10 +1,11 @@
|
||||
<div class="clearfix">
|
||||
<div data-element="groups-builder" class="clearfix">
|
||||
|
||||
<umb-editor-sub-header>
|
||||
|
||||
<umb-editor-sub-header-content-right>
|
||||
|
||||
<umb-button
|
||||
alias="compositions"
|
||||
ng-if="compositions !== false"
|
||||
type="button"
|
||||
button-style="link"
|
||||
@@ -14,6 +15,7 @@
|
||||
</umb-button>
|
||||
|
||||
<umb-button
|
||||
alias="reorder"
|
||||
ng-if="sorting !== false"
|
||||
type="button"
|
||||
button-style="link"
|
||||
@@ -32,10 +34,10 @@
|
||||
|
||||
<ul class="umb-group-builder__groups" ui-sortable="sortableOptionsGroup" ng-model="model.groups">
|
||||
|
||||
<li ng-repeat="tab in model.groups" ng-class="{'umb-group-builder__group-sortable': sortingMode}">
|
||||
<li ng-repeat="tab in model.groups" ng-class="{'umb-group-builder__group-sortable': sortingMode}" data-element="group-{{tab.name}}">
|
||||
|
||||
<!-- TAB INIT STATE -->
|
||||
<a href="" class="umb-group-builder__group -placeholder" hotkey="alt+shift+t" ng-click="addGroup(tab)" ng-if="tab.tabState=='init' && !sortingMode">
|
||||
<a href="" class="umb-group-builder__group -placeholder" hotkey="alt+shift+t" ng-click="addGroup(tab)" ng-if="tab.tabState=='init' && !sortingMode" data-element="group-add">
|
||||
|
||||
<div class="umb-group-builder__group-title-wrapper -placeholder">
|
||||
<div class="umb-group-builder__group-title -placeholder"></div>
|
||||
@@ -61,10 +63,11 @@
|
||||
|
||||
<div class="umb-group-builder__group-title-wrapper">
|
||||
|
||||
<ng-form name="groupNameForm">
|
||||
<ng-form name="groupNameForm" data-element="group-name">
|
||||
<div class="umb-group-builder__group-title control-group -no-margin" ng-class="{'-active':tab.tabState=='active', '-inherited': tab.inherited}">
|
||||
<i class="umb-group-builder__group-title-icon icon-navigation" ng-if="sortingMode && !tab.inherited"></i>
|
||||
<input class="umb-group-builder__group-title-input"
|
||||
<input data-element="group-name-field"
|
||||
class="umb-group-builder__group-title-input"
|
||||
type="text"
|
||||
localize="placeholder"
|
||||
placeholder="@placeholders_entername"
|
||||
@@ -87,7 +90,7 @@
|
||||
|
||||
<ng-form name="groupSortOrderForm">
|
||||
<div class="umb-group-builder__group-sort-order" ng-if="sortingMode">
|
||||
<input name="groupSortOrder" type="number" class="umb-group-builder__group-sort-value" ng-model="tab.sortOrder" ng-disabled="tab.inherited" on-blur="changeSortOrderValue(tab)" required />
|
||||
<input name="groupSortOrder" type="number" class="umb-editor-tiny" style="margin-bottom: 0;" ng-model="tab.sortOrder" ng-disabled="tab.inherited" on-blur="changeSortOrderValue(tab)" required />
|
||||
<div class="umb-validation-label -arrow-left" ng-if="groupSortOrderForm.groupSortOrder.$error.required && tab.showSortOrderMissing"><localize key="required"></localize></div>
|
||||
<div class="umb-validation-label -arrow-left" ng-if="!tab.showSortOrderMissing" val-msg-for="groupSortOrder" val-toggle-msg="required"><localize key="required"></localize></div>
|
||||
</div>
|
||||
@@ -98,7 +101,7 @@
|
||||
<localize key="contentTypeEditor_inheritedFrom"></localize> {{ tab.inheritedFromName }}
|
||||
|
||||
<span ng-repeat="contentTypeName in tab.parentTabContentTypeNames">
|
||||
{{ contentTypeName }}
|
||||
<a href="#/settings/documentTypes/edit/{{tab.contentTypeId}}">{{ contentTypeName }}</a>
|
||||
<span ng-if="!$last">, </span>
|
||||
</span>
|
||||
</div>
|
||||
@@ -107,10 +110,11 @@
|
||||
|
||||
<ul class="umb-group-builder__properties" ui-sortable="sortableOptionsProperty" ng-model="tab.properties">
|
||||
|
||||
<li ng-class="{'umb-group-builder__property-sortable': sortingMode && !property.inherited}" ng-repeat="property in tab.properties">
|
||||
<li data-element="property-{{property.alias}}" ng-class="{'umb-group-builder__property-sortable': sortingMode && !property.inherited}" ng-repeat="property in tab.properties">
|
||||
|
||||
<!-- Init property / Property placeholder / add new property -->
|
||||
<a href=""
|
||||
data-element="property-add"
|
||||
class="umb-group-builder__property -placeholder"
|
||||
ng-if="property.propertyState=='init' && !sortingMode"
|
||||
ng-class="{'-placeholder': property.propertyState=='init'}"
|
||||
@@ -187,6 +191,7 @@
|
||||
<i class="icon icon-navigation" ng-if="!property.inherited"></i>
|
||||
<span class="umb-group-builder__property-meta-label">{{ property.label }}</span>
|
||||
<span class="umb-group-builder__property-meta-alias">({{ property.alias }})</span>
|
||||
<span ng-show="sortingMode"><input name="propertySortOrder" type="number" class="umb-group-builder__group-sort-value umb-editor-tiny" ng-model="property.sortOrder" ng-disabled="property.inherited" /></span>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@@ -216,6 +221,11 @@
|
||||
<localize key="contentTypeEditor_memberCanEdit"></localize>
|
||||
</div>
|
||||
|
||||
<div class="umb-group-builder__property-tag -white" ng-if="property.isSensitiveData">
|
||||
<i class="icon-lock umb-group-builder__property-tag-icon"></i>
|
||||
<localize key="contentTypeEditor_isSensitiveData"></localize>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="umb-group-builder__property-tags -right">
|
||||
@@ -246,7 +256,7 @@
|
||||
<!-- row tools -->
|
||||
<div class="umb-group-builder__property-actions" ng-if="!sortingMode">
|
||||
|
||||
<div ng-if="!property.inherited && !property.locked">
|
||||
<div ng-if="!property.inherited">
|
||||
|
||||
<!-- settings for property -->
|
||||
<div class="umb-group-builder__property-action" ng-click="editPropertyTypeSettings(property, tab)">
|
||||
@@ -254,7 +264,7 @@
|
||||
</div>
|
||||
|
||||
<!-- delete property -->
|
||||
<div class="umb-group-builder__property-action">
|
||||
<div ng-if="!property.locked" class="umb-group-builder__property-action">
|
||||
<i class="icon-trash" ng-click="togglePrompt(property)"></i>
|
||||
<umb-confirm-action
|
||||
ng-if="property.deletePrompt"
|
||||
@@ -283,17 +293,19 @@
|
||||
</ul>
|
||||
|
||||
<umb-overlay
|
||||
ng-if="compositionsDialogModel.show"
|
||||
model="compositionsDialogModel"
|
||||
position="right"
|
||||
view="compositionsDialogModel.view">
|
||||
data-element="overlay-compositions"
|
||||
ng-if="compositionsDialogModel.show"
|
||||
model="compositionsDialogModel"
|
||||
position="right"
|
||||
view="compositionsDialogModel.view">
|
||||
</umb-overlay>
|
||||
|
||||
<umb-overlay
|
||||
ng-if="propertySettingsDialogModel.show"
|
||||
model="propertySettingsDialogModel"
|
||||
position="right"
|
||||
view="propertySettingsDialogModel.view">
|
||||
data-element="overlay-property-settings"
|
||||
ng-if="propertySettingsDialogModel.show"
|
||||
model="propertySettingsDialogModel"
|
||||
position="right"
|
||||
view="propertySettingsDialogModel.view">
|
||||
</umb-overlay>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="umb-keyboard-shortcuts-overview__overlay" ng-if="shortcutOverlay">
|
||||
<div class="umb-keyboard-shortcuts-overview__overlay" ng-if="showOverlay">
|
||||
|
||||
<a href="" class="umb-keyboard-shortcuts-overview__overlay-close" ng-click="toggleShortcutsOverlay()" data-hotkey="esc" hotkey-when-hidden="true">
|
||||
<i class="icon-delete"></i>
|
||||
@@ -35,7 +35,7 @@
|
||||
<div class="umb-keyboard-shortcuts-overview__description">{{ keyboardShortcut.description }}</div>
|
||||
<div class="umb-keyboard-keys">
|
||||
|
||||
<div ng-repeat="key in keyboardShortcut.keys">
|
||||
<div ng-repeat="key in keyboardShortcut.platformKeys">
|
||||
|
||||
<div class="umb-keyboard-key-wrapper">
|
||||
<div class="umb-keyboard-key">{{ key.key }}</div>
|
||||
|
||||
@@ -1,9 +1,11 @@
|
||||
<div class="umb-list-view-settings">
|
||||
|
||||
<div class="umb-list-view-settings__trigger">
|
||||
<label class="checkbox no-indent">
|
||||
<input type="checkbox" ng-model="enableListView" hotkey="alt+shift+l" />
|
||||
<localize key="general_yes"></localize> - <localize key="contentTypeEditor_enableListViewHeading"></localize>
|
||||
<umb-toggle
|
||||
checked="enableListView"
|
||||
on-click="toggle()"
|
||||
hotkey="alt+shift+l">
|
||||
</umb-toggle>
|
||||
</div>
|
||||
|
||||
<!-- list view enabled -->
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
<div class="umb-media-grid">
|
||||
<div class="umb-media-grid__item" ng-click="clickItem(item, $event, $index)" ng-repeat="item in items | filter:filterBy" ng-style="item.flexStyle" ng-class="{'-selected': item.selected, '-file': !item.thumbnail, '-svg': item.extension == 'svg'}">
|
||||
<div data-element="media-grid" class="umb-media-grid">
|
||||
<div data-element="media-grid-item-{{$index}}" class="umb-media-grid__item" title="{{item.name}}" ng-click="clickItem(item, $event, $index)" ng-repeat="item in items | filter:filterBy" ng-style="item.flexStyle" ng-class="{'-selected': item.selected, '-file': !item.thumbnail, '-svg': item.extension == 'svg'}">
|
||||
<div>
|
||||
<i ng-show="item.selected" class="icon-check umb-media-grid__checkmark"></i>
|
||||
|
||||
<div class="umb-media-grid__item-overlay" ng-class="{'-locked': item.selected}" ng-click="clickItemName(item, $event, $index)">
|
||||
<div data-element="media-grid-item-edit" class="umb-media-grid__item-overlay" ng-class="{'-locked': item.selected}" ng-click="clickItemName(item, $event, $index)">
|
||||
<i ng-if="onDetailsHover" class="icon-info umb-media-grid__info" ng-mouseover="hoverItemDetails(item, $event, true)" ng-mouseleave="hoverItemDetails(item, $event, false)"></i>
|
||||
<div class="umb-media-grid__item-name">{{item.name}}</div>
|
||||
</div>
|
||||
@@ -12,10 +12,10 @@
|
||||
<div class="umb-media-grid__image-background" ng-if="item.thumbnail || item.extension == 'svg'"></div>
|
||||
|
||||
<!-- Image thumbnail -->
|
||||
<img class="umb-media-grid__item-image" width="{{item.width}}" height="{{item.height}}" ng-if="item.thumbnail" ng-src="{{item.thumbnail}}" alt="{{item.name}}" title="{{item.name}}" draggable="false" />
|
||||
<img class="umb-media-grid__item-image" width="{{item.width}}" height="{{item.height}}" ng-if="item.thumbnail" ng-src="{{item.thumbnail}}" alt="{{item.name}}" draggable="false" />
|
||||
|
||||
<!-- SVG -->
|
||||
<img class="umb-media-grid__item-image" width="{{item.width}}" height="{{item.height}}" ng-if="!item.thumbnail && item.extension == 'svg'" ng-src="{{item.file}}" alt="{{item.name}}" title="{{item.name}}" draggable="false" />
|
||||
<img class="umb-media-grid__item-image" width="{{item.width}}" height="{{item.height}}" ng-if="!item.thumbnail && item.extension == 'svg'" ng-src="{{item.image}}" alt="{{item.name}}" draggable="false" />
|
||||
|
||||
<!-- Transparent image - fallback - used to keep image proportions on wrapper-->
|
||||
<img class="umb-media-grid__item-image-placeholder" ng-if="!item.thumbnail && item.extension != 'svg'" src="assets/img/transparent.png" alt="{{item.name}}" draggable="false" />
|
||||
|
||||
@@ -0,0 +1,101 @@
|
||||
<div>
|
||||
|
||||
<div ng-repeat="miniListView in miniListViews" ng-animate="getMiniListViewAnimation()">
|
||||
|
||||
<div class="umb-mini-list-view__title">
|
||||
<i class="umb-mini-list-view__title-icon {{ miniListView.node.icon }}"></i>
|
||||
<h4 class="umb-mini-list-view__title-text">{{ miniListView.node.name }}</h4>
|
||||
</div>
|
||||
|
||||
<div class="flex" style="margin-bottom: 10px;">
|
||||
|
||||
<a ng-if="showBackButton()" href="" class="umb-mini-list-view__back" ng-click="exitMiniListView()">
|
||||
<i class="icon-arrow-left umb-mini-list-view__back-icon"></i>
|
||||
<span class="umb-mini-list-view__back-text"><localize key="general_back">Back</localize></span> /
|
||||
</a>
|
||||
|
||||
<umb-breadcrumbs
|
||||
ng-if="breadcrumb && breadcrumb.length > 0"
|
||||
ancestors="breadcrumb"
|
||||
entity-type="content"
|
||||
on-open="clickBreadcrumb(ancestor)">
|
||||
</umb-breadcrumbs>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="umb-table umb-table--condensed">
|
||||
|
||||
<!-- Head -->
|
||||
<div class="umb-table-head">
|
||||
<div class="umb-table-row">
|
||||
<div class="umb-table-cell" style="display: none;"></div>
|
||||
<div class="umb-table-cell" style="padding-top: 8px; padding-bottom: 8px;">
|
||||
<form class="form-search -no-margin-bottom" style="width: 100%; margin-right: 0;" novalidate>
|
||||
<div class="inner-addon left-addon">
|
||||
<i class="icon icon-search" style="font-size: 14px;"></i>
|
||||
<input
|
||||
style="width: 100%;"
|
||||
class="form-control search-input"
|
||||
type="text"
|
||||
localize="placeholder"
|
||||
placeholder="@general_typeToSearch"
|
||||
ng-model="search"
|
||||
ng-change="searchMiniListView(search, miniListView)"
|
||||
prevent-enter-submit
|
||||
no-dirty-check>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Body -->
|
||||
<div class="umb-table-body">
|
||||
|
||||
<!-- Load indicator when the list has items -->
|
||||
<div class="umb-table__loading-overlay" ng-if="miniListView.loading && miniListView.children.length > 0">
|
||||
<umb-load-indicator></umb-load-indicator>
|
||||
</div>
|
||||
|
||||
<!-- Items -->
|
||||
<div class="umb-table-row"
|
||||
ng-repeat="child in miniListView.children"
|
||||
ng-click="selectNode(child)"
|
||||
ng-class="{'-selected':child.selected}">
|
||||
<div class="umb-table-cell umb-table-cell--auto-width" ng-class="{'umb-table-cell--faded':child.published === false}">
|
||||
<div class="flex items-center">
|
||||
<ins class="icon-navigation-right umb-table__row-expand" ng-click="openNode($event, child)" ng-class="{'umb-table__row-expand--hidden': child.hasChildren !== true}"> </ins>
|
||||
<i class="umb-table-body__icon umb-table-body__fileicon {{child.icon}}"></i>
|
||||
<i class="umb-table-body__icon umb-table-body__checkicon icon-check"></i>
|
||||
</div>
|
||||
</div>
|
||||
<div class="umb-table-cell black" ng-class="{'umb-table-cell--faded':child.published === false}">{{ child.name }}</div>
|
||||
</div>
|
||||
|
||||
<!-- Load indicator when the list doesn't have items -->
|
||||
<div ng-if="!miniListView.loading && !miniListView.children" class="umb-table-row umb-table-row--empty">
|
||||
<span ng-if="search === ''"><localize key="general_noItemsInList"></localize></span>
|
||||
<span ng-if="search !== ''"><localize key="general_searchNoResult"></localize></span>
|
||||
</div>
|
||||
|
||||
<!-- Load indicator when the list doesn't have items -->
|
||||
<div ng-if="miniListView.loading && !miniListView.children" class="umb-table-row umb-table-row--empty">
|
||||
<umb-load-indicator></umb-load-indicator>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="flex justify-center">
|
||||
<umb-pagination
|
||||
ng-if="miniListView.pagination.totalPages > 0 && !miniListView.loading"
|
||||
page-number="miniListView.pagination.pageNumber"
|
||||
total-pages="miniListView.pagination.totalPages"
|
||||
on-change="goToPage(pageNumber, miniListView)">
|
||||
</umb-pagination>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@@ -0,0 +1,21 @@
|
||||
<div class="umb-node-preview" ng-class="{'umb-node-preview--sortable': sortable, 'umb-node-preview--unpublished': published === false }">
|
||||
<i ng-if="icon" class="umb-node-preview__icon {{ icon }}"></i>
|
||||
<div class="umb-node-preview__content">
|
||||
|
||||
<div class="umb-node-preview__name" ng-attr-title="{{alias}}">{{ name }}</div>
|
||||
<div class="umb-node-preview__description" ng-if="description">{{ description }}</div>
|
||||
|
||||
<div class="umb-user-group-preview__permission" ng-if="permissions">
|
||||
<span>
|
||||
<span class="bold"><localize key="general_rights">Permissions</localize>:</span>
|
||||
<span ng-repeat="permission in permissions">{{ permission.name }}<span ng-if="!$last">, </span></span>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="umb-node-preview__actions">
|
||||
<a class="umb-node-preview__action" title="Edit" href="{{editUrl}}" ng-if="allowEdit" ng-click="onEdit()"><localize key="general_edit">Edit</localize></a>
|
||||
<a class="umb-node-preview__action" title="Open" href="{{openUrl}}" ng-if="allowOpen" ng-click="onOpen()"><localize key="general_open">Open</localize></a>
|
||||
<a class="umb-node-preview__action umb-node-preview__action--red" title="Remove" href="{{removeUrl}}" ng-if="allowRemove" ng-click="onRemove()"><localize key="general_remove">Remove</localize></i></a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@@ -1,4 +1,4 @@
|
||||
<div class="pagination" ng-show="pagination.length > 1">
|
||||
<div class="umb-pagination pagination" ng-show="pagination.length > 1">
|
||||
|
||||
<ul>
|
||||
<li ng-class="{disabled:pageNumber <= 1}">
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
<div class="umb-progress-bar">
|
||||
<div class="umb-progress-bar umb-progress-bar--{{size}}">
|
||||
<span class="umb-progress-bar__progress" style="width: {{percentage}}%"></span>
|
||||
</div>
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
<div class="umb-progress-circle" ng-style="{'width': size, 'height': size, 'line-height': size + 'px' }">
|
||||
<svg class="umb-progress-circle__view-box" viewBox="0 0 100 100">
|
||||
<circle class="umb-progress-circle__bg" cx="50" cy="50" r="47" fill="none" stroke-width="6"/>
|
||||
<circle class="umb-progress-circle__highlight umb-progress-circle__highlight--{{ color }}" cx="50" cy="50" r="47" fill="none" stroke-width="6" stroke-dasharray="{{ strokeDashArray }}" stroke-dashoffset="{{ strokeDashOffset }}" />
|
||||
</svg>
|
||||
<div ng-style="{'font-size': percentageSize}" class="umb-progress-circle__percentage">{{ percentage }}%</div>
|
||||
</div>
|
||||
@@ -47,7 +47,17 @@
|
||||
</a>
|
||||
</div>
|
||||
<div class="umb-table-cell" ng-repeat="column in itemProperties">
|
||||
<span title="{{column.header}}: {{item[column.alias]}}">{{item[column.alias]}}</span>
|
||||
<span title="{{column.header}}: {{item[column.alias]}}">
|
||||
|
||||
<div ng-if="!column.isSensitive">
|
||||
{{item[column.alias]}}
|
||||
</div>
|
||||
|
||||
<em ng-show="column.isSensitive" class="muted">
|
||||
<localize key="content_isSensitiveValue_short"></localize>
|
||||
</em>
|
||||
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<div class="umb-file-dropzone-directive">
|
||||
<div data-element="dropzone" class="umb-file-dropzone-directive">
|
||||
|
||||
<ng-form name="uploadForm">
|
||||
|
||||
@@ -23,7 +23,9 @@
|
||||
|
||||
|
||||
<!-- Select files -->
|
||||
<div class="file-select"
|
||||
<div
|
||||
data-element="button-uploadMedia"
|
||||
class="file-select"
|
||||
ngf-select
|
||||
ng-model="filesHolder"
|
||||
ngf-change="handleFiles($files, $event)"
|
||||
@@ -35,6 +37,12 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div ng-show="hideDropzone" ngf-drag-over-class="hide" class="text-center">
|
||||
<small>
|
||||
<localize key="media_dragFilesHereToUpload">You can drag files here to upload</localize>
|
||||
</small>
|
||||
</div>
|
||||
|
||||
<!-- List of uploading/uploaded files -->
|
||||
<ul class="file-list" ng-show="done.length > 0 || queue.length > 0 || rejected.length > 0 || filesHolder.length > 0">
|
||||
|
||||
|
||||
@@ -0,0 +1,67 @@
|
||||
<div>
|
||||
<div class="alert alert-success text-center" ng-hide="!passwordValues.generatedPassword">
|
||||
<small>Password has been reset to:</small>
|
||||
<br />
|
||||
<strong>{{passwordValues.generatedPassword}}</strong>
|
||||
</div>
|
||||
<div ng-switch="changing">
|
||||
<div ng-switch-when="false">
|
||||
<a href="" ng-click="doChange()" class="btn btn-small">
|
||||
<localize key="general_changePassword">Change password</localize>
|
||||
</a>
|
||||
</div>
|
||||
<div ng-switch-when="true">
|
||||
<ng-form name="passwordForm">
|
||||
<umb-control-group alias="resetPassword" label="@user_resetPassword" ng-show="$parent.config.enableReset">
|
||||
<input type="checkbox" ng-model="$parent.passwordValues.reset"
|
||||
id="Checkbox1"
|
||||
name="resetPassword"
|
||||
val-server-field="resetPassword"
|
||||
no-dirty-check
|
||||
ng-change="$parent.$parent.showReset = !$parent.$parent.showReset"/>
|
||||
<span class="help-inline" val-msg-for="resetPassword" val-toggle-msg="valServerField"></span>
|
||||
</umb-control-group>
|
||||
|
||||
<!-- we need to show the old pass field when the provider cannot retrieve the password -->
|
||||
<umb-control-group alias="oldPassword" label="@user_oldPassword" ng-if="$parent.showOldPass()" required="true">
|
||||
<input type="password" name="oldPassword" ng-model="$parent.passwordValues.oldPassword"
|
||||
class="input-block-level umb-textstring textstring"
|
||||
required
|
||||
val-server-field="oldPassword"
|
||||
no-dirty-check />
|
||||
<span class="help-inline" val-msg-for="oldPassword" val-toggle-msg="required">Required</span>
|
||||
<span class="help-inline" val-msg-for="oldPassword" val-toggle-msg="valServerField"></span>
|
||||
</umb-control-group>
|
||||
|
||||
<umb-control-group alias="password" label="@user_newPassword" ng-if="!$parent.showReset" required="true">
|
||||
<input type="password" name="password" ng-model="$parent.passwordValues.newPassword"
|
||||
class="input-block-level umb-textstring textstring"
|
||||
required
|
||||
val-server-field="password"
|
||||
ng-minlength="{{$parent.config.minPasswordLength}}"
|
||||
no-dirty-check />
|
||||
<span class="help-inline" val-msg-for="password" val-toggle-msg="required">Required</span>
|
||||
<span class="help-inline" val-msg-for="password" val-toggle-msg="minlength">Minimum {{$parent.config.minPasswordLength}} characters</span>
|
||||
<span class="help-inline" val-msg-for="password" val-toggle-msg="valServerField"></span>
|
||||
</umb-control-group>
|
||||
|
||||
<umb-control-group alias="confirmpassword" label="@user_confirmNewPassword" ng-if="!$parent.showReset" required="true">
|
||||
<input type="password" name="confirmpassword" ng-model="$parent.passwordValues.confirm"
|
||||
class="input-block-level umb-textstring textstring"
|
||||
val-compare="password"
|
||||
no-dirty-check />
|
||||
|
||||
<span class="help-inline" val-msg-for="confirmpassword" val-toggle-msg="valCompare">
|
||||
<localize key="user_passwordMismatch">The confirmed password doesn't match the new password!</localize>
|
||||
</span>
|
||||
</umb-control-group>
|
||||
|
||||
<a href="" ng-click="cancelChange()" ng-show="showCancelBtn()" class="btn btn-small">
|
||||
<localize key="general_cancel">Cancel</localize>
|
||||
</a>
|
||||
|
||||
</ng-form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@@ -0,0 +1,11 @@
|
||||
<div class="umb-permission">
|
||||
<umb-toggle
|
||||
class="umb-permission__toggle"
|
||||
checked="selected"
|
||||
on-click="change(checked)">
|
||||
</umb-toggle>
|
||||
<div class="umb-permission__content" ng-click="change(checked)">
|
||||
<div>{{ name }} </div>
|
||||
<div class="umb-permission__description">{{ description }}</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,46 @@
|
||||
<div class="umb-user-group-preview">
|
||||
|
||||
<i ng-if="icon" class="umb-user-group-preview__icon {{ icon }}"></i>
|
||||
|
||||
<div class="umb-user-group-preview__content">
|
||||
<div class="umb-user-group-preview__name">{{ name }}</div>
|
||||
|
||||
<div class="umb-user-group-preview__permission" ng-if="sections">
|
||||
<span>
|
||||
<span class="bold"><localize key="main_sections">Sections</localize>:</span>
|
||||
<span ng-repeat="section in sections">{{ section.name }}<span ng-if="!$last">, </span></span>
|
||||
<span ng-if="sections.length === 0">All sections</span>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<div class="umb-user-group-preview__permission" ng-if="!hideContentStartNode">
|
||||
<span>
|
||||
<span class="bold"><localize key="user_startnode">Content start node</localize>:</span>
|
||||
<span ng-if="!contentStartNode"><localize key="user_noStartNode">No start node selected</localize></span>
|
||||
<span ng-if="contentStartNode">{{ contentStartNode.name }}</span>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<div class="umb-user-group-preview__permission" ng-if="!hideMediaStartNode">
|
||||
<span>
|
||||
<span class="bold"><localize key="user_mediastartnode">Media start node</localize>:</span>
|
||||
<span ng-if="!mediaStartNode"><localize key="user_noStartNode">No start node selected</localize></span>
|
||||
<span ng-if="mediaStartNode">{{ mediaStartNode.name }}</span>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<div class="umb-user-group-preview__permission" ng-if="permissions">
|
||||
<span>
|
||||
<span class="bold"><localize key="general_rights">Permissions</localize>:</span>
|
||||
<span ng-repeat="permission in permissions">{{ permission.name }}<span ng-if="!$last">, </span></span>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="umb-user-group-preview__actions">
|
||||
<a class="umb-user-group-preview__action" title="Edit" href="" ng-if="allowEdit" ng-click="onEdit()"><localize key="general_edit">Edit</localize></a>
|
||||
<a class="umb-user-group-preview__action umb-user-group-preview__action--red" title="Remove" href="" ng-if="allowRemove" ng-click="onRemove()"><localize key="general_remove">Remove</localize></a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@@ -0,0 +1,21 @@
|
||||
<div class="umb-user-preview">
|
||||
|
||||
<div class="umb-user-preview__avatar">
|
||||
<umb-avatar
|
||||
size="xxs"
|
||||
color="secondary"
|
||||
name="{{name}}"
|
||||
img-src="{{avatars[0]}}"
|
||||
img-srcset="{{avatars[1]}} 2x, {{avatars[2]}} 3x">
|
||||
</umb-avatar>
|
||||
</div>
|
||||
|
||||
<div class="umb-user-preview__content">
|
||||
<div class="umb-user-preview__name">{{ name }}</div>
|
||||
</div>
|
||||
|
||||
<div class="umb-user-preview__actions">
|
||||
<a class="umb-user-preview__action umb-user-preview__action--red" title="Remove" href="" ng-if="allowRemove" ng-click="onRemove()"><localize key="general_remove">Remove</localize></a>
|
||||
<div>
|
||||
|
||||
</div>
|
||||
Reference in New Issue
Block a user