Update Umbraco to 7.12.2
This commit is contained in:
@@ -1,19 +1,10 @@
|
||||
@using System.Collections
|
||||
@using System.Net.Http
|
||||
@using System.Web.Mvc.Html
|
||||
@using Umbraco.Core
|
||||
@using Umbraco.Core
|
||||
@using ClientDependency.Core
|
||||
@using ClientDependency.Core.Mvc
|
||||
@using Microsoft.Owin.Security
|
||||
@using Newtonsoft.Json
|
||||
@using Newtonsoft.Json.Linq
|
||||
@using Umbraco.Core.IO
|
||||
@using Umbraco.Web
|
||||
@using Umbraco.Web.Editors
|
||||
@using umbraco
|
||||
|
||||
@inherits System.Web.Mvc.WebViewPage
|
||||
|
||||
@{
|
||||
var isDebug = false;
|
||||
if (Request.RawUrl.IndexOf('?') >= 0)
|
||||
@@ -32,9 +23,7 @@
|
||||
.RequiresCss("lib/bootstrap-social/bootstrap-social.css", "Umbraco")
|
||||
.RequiresCss("lib/font-awesome/css/font-awesome.min.css", "Umbraco");
|
||||
}
|
||||
|
||||
<!DOCTYPE html>
|
||||
|
||||
<html lang="en">
|
||||
<head>
|
||||
<base href="@GlobalSettings.Path.EnsureEndsWith('/')" />
|
||||
@@ -43,49 +32,55 @@
|
||||
<meta name="apple-mobile-web-app-capable" content="yes">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
||||
<meta name="robots" content="noindex, nofollow">
|
||||
<meta name="pinterest" content="nopin" />
|
||||
|
||||
<title ng-bind="$root.locationTitle">Umbraco</title>
|
||||
|
||||
@Html.RenderCssHere(
|
||||
new BasicPath("Umbraco", IOHelper.ResolveUrl(SystemDirectories.Umbraco)),
|
||||
new BasicPath("UmbracoClient", IOHelper.ResolveUrl(SystemDirectories.UmbracoClient)))
|
||||
|
||||
|
||||
</head>
|
||||
<noscript><h5><strong> JavaScript is disabled. Please enable to continue!</strong></h5></noscript>
|
||||
<body ng-class="{touch:touchDevice,emptySection:emptySection}" ng-controller="Umbraco.MainController" id="umbracoMainPageBody">
|
||||
<div ng-hide="!authenticated" ng-cloak id="mainwrapper" class="clearfix" ng-click="closeDialogs($event)">
|
||||
<body ng-class="{'touch':touchDevice, 'emptySection':emptySection, 'umb-drawer-is-visible':drawer.show}" ng-controller="Umbraco.MainController" id="umbracoMainPageBody">
|
||||
|
||||
<umb-navigation></umb-navigation>
|
||||
<div ng-hide="!authenticated" ng-cloak>
|
||||
|
||||
<section id="contentwrapper">
|
||||
<div id="contentcolumn" ng-view>
|
||||
</div>
|
||||
</section>
|
||||
<!-- help dialog controller by the help button - this also forces the backoffice UI to shift 400px -->
|
||||
<umb-drawer data-element="drawer" ng-if="drawer.show" model="drawer.model" view="drawer.view"></umb-drawer>
|
||||
|
||||
<umb-notifications></umb-notifications>
|
||||
<div id="mainwrapper" class="clearfix" ng-click="closeDialogs($event)">
|
||||
|
||||
<umb-navigation></umb-navigation>
|
||||
|
||||
<section id="contentwrapper">
|
||||
<div id="contentcolumn" ng-view>
|
||||
<noscript>
|
||||
<div>
|
||||
<h3><img src="assets/img/application/logo.png" alt="Umbraco logo" style="vertical-align: text-bottom;" /> Umbraco</h3>
|
||||
<p>For full functionality of Umbraco CMS it is necessary to enable JavaScript.</p>
|
||||
<p>Here are the <a href="https://www.enable-javascript.com/" target="_blank" style="text-decoration: underline;">instructions how to enable JavaScript in your web browser</a>.</p>
|
||||
</div>
|
||||
</noscript>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<umb-tour
|
||||
ng-if="tour.show"
|
||||
model="tour">
|
||||
</umb-tour>
|
||||
|
||||
<umb-notifications></umb-notifications>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@Html.BareMinimumServerVariablesScript(Url, Url.Action("ExternalLogin", "BackOffice", new { area = ViewBag.UmbracoPath }))
|
||||
|
||||
<script type="text/javascript">
|
||||
document.angularReady = function(app) {
|
||||
|
||||
@Html.AngularValueExternalLoginInfoScript((IEnumerable<string>)ViewBag.ExternalSignInError)
|
||||
@Html.AngularValueResetPasswordCodeInfoScript(ViewData["PasswordResetCode"])
|
||||
}
|
||||
</script>
|
||||
|
||||
|
||||
@*And finally we can load in our angular app*@
|
||||
<script type="text/javascript" src="lib/rgrove-lazyload/lazyload.js"></script>
|
||||
<script type="text/javascript" src="@Url.GetUrlWithCacheBust("Application", "BackOffice")"></script>
|
||||
|
||||
@if (isDebug)
|
||||
{
|
||||
@Html.RenderProfiler()
|
||||
}
|
||||
<umb-backdrop
|
||||
ng-if="backdrop.show"
|
||||
backdrop-opacity="backdrop.opacity"
|
||||
highlight-element="backdrop.element"
|
||||
highlight-prevent-click="backdrop.elementPreventClick"
|
||||
disable-events-on-click="backdrop.disableEventsOnClick">
|
||||
</umb-backdrop>
|
||||
|
||||
<umb-overlay
|
||||
ng-if="ysodOverlay.show"
|
||||
@@ -94,5 +89,22 @@
|
||||
view="ysodOverlay.view">
|
||||
</umb-overlay>
|
||||
|
||||
@Html.BareMinimumServerVariablesScript(Url, ApplicationContext.Current, Url.Action("ExternalLogin", "BackOffice", new { area = ViewBag.UmbracoPath }))
|
||||
|
||||
<script>
|
||||
document.angularReady = function(app) {
|
||||
@Html.AngularValueExternalLoginInfoScript((IEnumerable<string>)ViewBag.ExternalSignInError)
|
||||
@Html.AngularValueResetPasswordCodeInfoScript(ViewData["PasswordResetCode"])
|
||||
}
|
||||
</script>
|
||||
|
||||
<script src="lib/rgrove-lazyload/lazyload.js"></script>
|
||||
<script src="@Url.GetUrlWithCacheBust("Application", "BackOffice")"></script>
|
||||
|
||||
@if (isDebug)
|
||||
{
|
||||
<script src="lib/jquery/jquery.min.js"></script>
|
||||
@Html.RenderProfiler()
|
||||
}
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -0,0 +1,57 @@
|
||||
@inherits System.Web.Mvc.WebViewPage
|
||||
<div ng-controller="Umbraco.canvasdesigner.background">
|
||||
|
||||
<div class="box-slider">
|
||||
<div colorpicker ng-model="item.values.color"></div>
|
||||
</div>
|
||||
|
||||
<div class="box-slider">
|
||||
<div class="imagePickerPreview" ng-click="open(item.values)" style="background-image:{{ item.values.imageorpattern }}">
|
||||
<i ng-if="item.values.imageorpattern == ''" class="icon icon-picture"></i>
|
||||
<i ng-if="item.values.imageorpattern != ''" class="icon icon-delete" ng-click="item.values.imageorpattern = ''"></i>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<script type="text/ng-template" id="mediaPickerModal.html">
|
||||
|
||||
<div ng-controller="canvasdesigner.mediaPickerModal">
|
||||
|
||||
<div class="modal-header bodyCanvasdesignerImagePicker ng-scope">
|
||||
<ul class="breadcrumb">
|
||||
<li ng-if="startNodeId == -1">
|
||||
<a href="" ng-click="gotoFolder()">Media</a>
|
||||
</li>
|
||||
|
||||
<!-- ngRepeat: item in path -->
|
||||
<li ng-repeat="item in currentPath" class="ng-scope">
|
||||
/ <a ng-if="currentFolder.id == item.id" href="" ng-class="{disabled:currentFolder.id == item.id}">{{ item.name }}</a>
|
||||
<a ng-if="currentFolder.id != item.id" ng-click="gotoFolder(item)">{{ item.name }}</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="modal-body bodyCanvasdesignerImagePicker">
|
||||
<ul class="canvasdesignerImagePicker">
|
||||
<li>
|
||||
<ul class="media-items">
|
||||
<li ng-repeat="child in currentFolder.children | orderBy:'isFolder':true">
|
||||
<div ng-if="!child.isFolder" class="media-preview" ng-class="{selected:selectedMedia.id == child.id}" ng-click="selectMedia(child)" style="background-image: url({{ child.thumbnail }})"></div>
|
||||
<div ng-if="child.isFolder" class="media-preview" ng-click="selectMedia(child)">
|
||||
<i class="icon icon-folder folder"><p class="folder-name">{{child.name}}</p></i>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="right">
|
||||
<a class="btn" href="#" ng-click="cancelAndClose()">Cancel</a>
|
||||
<a class="btn btn-success" href="#" ng-click="submitAndClose()">Done</a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</script>
|
||||
@@ -0,0 +1,20 @@
|
||||
@inherits System.Web.Mvc.WebViewPage
|
||||
<div ng-controller="Umbraco.canvasdesigner.border" class="bordereditor">
|
||||
|
||||
<div class="box-slider">
|
||||
<ul class="box-preview">
|
||||
<li ng-repeat="border in borderList" class="border-{{border}}" ng-class="{selected: selectedBorder.name == border}" ng-click="setselectedBorder(border)"></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="box-slider" ng-repeat="border in borderList" ng-show="selectedBorder.name == border">
|
||||
<div colorpicker ng-model="item.values[(border !== 'all' ? border : '') + 'bordercolor']"></div>
|
||||
<select class="borderStyleSelect" ng-model="selectedBorder.type" ng-options="bordertype for bordertype in bordertypes"></select>
|
||||
<!--<i ng-if="selectedBorder.color != ''" ng-click="selectedBorder.color= ''" class="icon icon-delete colorPickerDelete"></i>-->
|
||||
</div>
|
||||
|
||||
<div class="box-slider">
|
||||
<div ui-slider min="0" max="40" step="1" ng-model="selectedBorder.size"></div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@@ -0,0 +1,4 @@
|
||||
@inherits System.Web.Mvc.WebViewPage
|
||||
<div class="box-slider">
|
||||
<div colorpicker ng-model="item.values.color"></div>
|
||||
</div>
|
||||
@@ -0,0 +1,34 @@
|
||||
@inherits System.Web.Mvc.WebViewPage
|
||||
<div ng-controller="Umbraco.canvasdesigner.googlefontpicker">
|
||||
|
||||
<div class="box-slider">
|
||||
<div class="fontFamilyPickerPreview" ng-click="open(item.values)" ng-style="setStyleVariant()">
|
||||
<span>Aa</span>
|
||||
{{ item.values.fontFamily }}
|
||||
<i ng-if="item.values.fontFamily != ''" ng-click="item.values.fontFamily = ''" class="icon icon-delete fontPickerDelete"></i>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<script type="text/ng-template" id="googlefontdialog.html">
|
||||
|
||||
<div ng-controller="googlefontdialog.controller">
|
||||
|
||||
<div class="modal-header canvasdesigner-fontfamilypicker">
|
||||
<select class="font-list" ng-model="selectedFont" ng-change="showFontPreview(selectedFont)" ng-options="font as font.fontFamily group by font.fontType for font in fonts"></select>
|
||||
<select class="variant-list" ng-model="selectedFont.variant" ng-change="showFontPreview(selectedFont,selectedFont.variant)" ng-options="variant for variant in selectedFont.variants" />
|
||||
</div>
|
||||
|
||||
<div class="modal-body canvasdesigner-fontfamilypicker">
|
||||
<span class="show" ng-style="setStyleVariant()">Aa Bb Cc 1 2 3 4… <br />The quick brown fox jumps over the lazy dog…</span>
|
||||
</div>
|
||||
|
||||
<div class="right">
|
||||
<a class="btn" href="#" ng-click="cancelAndClose()">Cancel</a>
|
||||
<a class="btn btn-success" href="#" ng-click="submitAndClose()">Done</a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</script>
|
||||
@@ -0,0 +1,8 @@
|
||||
@inherits System.Web.Mvc.WebViewPage
|
||||
<div ng-controller="Umbraco.canvasdesigner.gridRow">
|
||||
|
||||
<div class="box-slider">
|
||||
<input type="checkbox" ng-model="item.values.fullsize" /><label>Full size</label>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@@ -0,0 +1,151 @@
|
||||
@using System.Web.Mvc.Html
|
||||
@inherits System.Web.Mvc.WebViewPage<Umbraco.Web.Models.ContentEditing.BackOfficePreview>
|
||||
@{
|
||||
var disableDevicePreview = Model.DisableDevicePreview.ToString().ToLowerInvariant();
|
||||
}
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<title>Umbraco Canvas Designer</title>
|
||||
<link href="../assets/css/canvasdesigner.css" type="text/css" rel="stylesheet" />
|
||||
<link href="../lib/spectrum/spectrum.css" type="text/css" rel="stylesheet" />
|
||||
<link href="../lib/jquery-ui/jquery-ui-1.10.4.custom.min.css" type="text/css" rel="stylesheet" />
|
||||
<meta name="robots" content="noindex, nofollow">
|
||||
</head>
|
||||
<body id="canvasdesignerPanel" ng-mouseover="outlinePositionHide()" ng-class="{ leftOpen: (showStyleEditor || showPalettePicker) && !showDevicesPreview }" ng-controller="Umbraco.canvasdesignerController">
|
||||
<div class="wait" ng-show="!frameLoaded"></div>
|
||||
|
||||
@if (string.IsNullOrWhiteSpace(Model.PreviewExtendedHeaderView) == false)
|
||||
{
|
||||
@Html.Partial(Model.PreviewExtendedHeaderView)
|
||||
}
|
||||
|
||||
<div id="demo-iframe-wrapper" ng-show="frameLoaded" class="{{previewDevice.css}}">
|
||||
<iframe id="resultFrame" ng-src="{{pageUrl}}" frameborder="0" iframe-is-loaded></iframe>
|
||||
</div>
|
||||
<div class="canvasdesigner" ng-init="showDevicesPreview = true; showDevices = !@(disableDevicePreview); showPalettePicker = true" ng-mouseenter="positionSelectedHide()">
|
||||
<div class="fix-left-menu selected">
|
||||
<div class="avatar">
|
||||
<img ng-src="../assets/img/application/logo.png"
|
||||
ng-srcset="../assets/img/application/logo@2x.png 2x,
|
||||
../assets/img/application/logo@3x.png 3x" />
|
||||
</div>
|
||||
<ul class="sections" ng-class="{selected: showDevicesPreview && showDevices}">
|
||||
<li ng-repeat="device in devices" ng-class="{ current:previewDevice==device }" ng-click="updatePreviewDevice(device)">
|
||||
<a href="#"><i class="icon {{device.icon}}" title="{{device.title}}"></i><span></span></a>
|
||||
</li>
|
||||
<li ng-click="closePreviewDevice()" ng-if="enableCanvasdesigner > 0">
|
||||
<a href="" class="more-options">
|
||||
<i></i>
|
||||
<i></i>
|
||||
<i></i>
|
||||
</a>
|
||||
</li>
|
||||
<li ng-click="exitPreview()">
|
||||
<a href="#" title="Exit Preview"><i class="icon icon-wrong"></i><span> </span></a>
|
||||
</li>
|
||||
</ul>
|
||||
<ul class="sections" ng-class="{selected: !showDevicesPreview}" ng-if="enableCanvasdesigner > 0">
|
||||
<li ng-click="openPreviewDevice()">
|
||||
<a href="#"><i class="icon {{previewDevice.icon}}"></i><span>Preview</span></a>
|
||||
</li>
|
||||
<li ng-click="openPalettePicker()" ng-class=" { current:showPalettePicker }">
|
||||
<a href="#"><i class="icon icon-palette"></i><span>Palette</span></a>
|
||||
</li>
|
||||
<li ng-click="openStyleEditor()" ng-class=" { current:showStyleEditor }">
|
||||
<a href="#"><i class="icon icon-paint-roller"></i><span>UI Designer</span></a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="main-panel" ng-class="{selected: !showDevicesPreview && ( showPalettePicker || showStyleEditor )}">
|
||||
<div class="header">
|
||||
<h3>Palette Style</h3>
|
||||
</div>
|
||||
<div class="content">
|
||||
<ul class="samples">
|
||||
<li ng-repeat="palette in canvasdesignerPalette">
|
||||
<a href="#" ng-click="refreshCanvasdesignerByPalette(palette)">
|
||||
<h4>{{palette.name}}</h4>
|
||||
<ul class="samples">
|
||||
<li style="background-color:{{palette.color1}}"></li>
|
||||
<li style="background-color:{{palette.color2}}"></li>
|
||||
<li style="background-color:{{palette.color3}}"></li>
|
||||
<li style="background-color:{{palette.color4}}"></li>
|
||||
<li style="background-color:{{palette.color5}}"></li>
|
||||
</ul>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="btn-group">
|
||||
<a class="btn btn-success" ng-click="saveStyle()">Save Style</a>
|
||||
<a class="btn btn-success dropdown-toggle" ng-click="opendropdown = !opendropdown">
|
||||
<span class="caret"></span>
|
||||
</a>
|
||||
<ul class="dropdown-menu" ng-init="opendropdown = false" ng-show="opendropdown">
|
||||
<li><a ng-click="createStyle();opendropdown = false">Create Page Style</a></li>
|
||||
<li><a ng-click="deleteCanvasdesigner();opendropdown = false">Reset page style</a></li>
|
||||
<li><a ng-click="makePreset();opendropdown = false">Make preset</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="main-panel" ng-class="{selected: !showDevicesPreview && showStyleEditor}">
|
||||
<div ng-show="!currentSelected">
|
||||
<div class="header">
|
||||
<h3>Select</h3>
|
||||
</div>
|
||||
<div class="content">
|
||||
<ul class="samples">
|
||||
<li ng-repeat="configItem in canvasdesignerModel.configs"
|
||||
ng-mousemove="refreshOutlinePosition(configItem)"
|
||||
ng-class="{hover: configItem.highlighted == true}"
|
||||
ng-mouseenter="setCurrentHighlighted(configItem)"
|
||||
ng-mouseleave="configItem.highlighted = false"
|
||||
ng-click="setCurrentSelected(configItem)">
|
||||
{{configItem.name}}
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div ng-repeat="configItem in canvasdesignerModel.configs" ng-show="currentSelected && currentSelected.name.toLowerCase() == configItem.name.toLowerCase()
|
||||
&& currentSelected.schema.toLowerCase() == configItem.schema.toLowerCase()" on-finish-render-filters>
|
||||
<div class="header">
|
||||
<h3><i class="icon icon-list" ng-click="outlineSelectedHide()"></i> {{configItem.name}}</h3>
|
||||
</div>
|
||||
<div class="content">
|
||||
<div class="editor-category" ng-repeat="category in getCategories(configItem)" ng-show="hasEditor(configItem.editors, category)">
|
||||
<h4 class="panel-title" ng-click="setSelectedCategory(category)">
|
||||
{{category}}
|
||||
<i class="icon icon-remove small right" ng-show="categoriesVisibility[category] === true"></i>
|
||||
<i class="icon icon-add small right" ng-hide="categoriesVisibility[category] === true"></i>
|
||||
</h4>
|
||||
<div class="canvasdesigner-panel-container" ng-show="categoriesVisibility[category] === true">
|
||||
<div class="canvasdesigner-panel-property" ng-repeat="item in configItem.editors" ng-show="item.category == category">
|
||||
<h5>{{item.name}} <i class="icon icon-help-alt"></i></h5>
|
||||
<div ng-include="'../preview/editors/' + item.type + '.html'"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="btn-group">
|
||||
<a class="btn btn-success" ng-click="saveStyle()">Save Style</a>
|
||||
<a class="btn btn-success dropdown-toggle" ng-click="opendropdown = !opendropdown">
|
||||
<span class="caret"></span>
|
||||
</a>
|
||||
<ul class="dropdown-menu" ng-init="opendropdown = false" ng-show="opendropdown">
|
||||
<li><a ng-click="createStyle();opendropdown = false">Create Page Style</a></li>
|
||||
<li><a ng-click="deleteCanvasdesigner();opendropdown = false">Reset page style</a></li>
|
||||
<li><a ng-click="makePreset();opendropdown = false">Make preset</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="float-panel"></div>
|
||||
</div>
|
||||
<div id="speechbubble">
|
||||
<p>Styles saved and published</p>
|
||||
</div>
|
||||
<script src="../lib/rgrove-lazyload/lazyload.js"></script>
|
||||
<script src="../js/canvasdesigner.loader.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,10 @@
|
||||
@inherits System.Web.Mvc.WebViewPage
|
||||
<div ng-controller="Umbraco.canvasdesigner.layout">
|
||||
|
||||
<div class="box-slider">
|
||||
<input type="radio" ng-model="item.values.layout" value="box"> Box
|
||||
<input type="radio" ng-model="item.values.layout" value="wide"> Wide
|
||||
<input type="radio" ng-model="item.values.layout" value="full"> Full
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@@ -0,0 +1,14 @@
|
||||
@inherits System.Web.Mvc.WebViewPage
|
||||
<div ng-controller="Umbraco.canvasdesigner.margin">
|
||||
|
||||
<div class="box-slider">
|
||||
<ul class="box-preview">
|
||||
<li ng-repeat="margin in marginList" class="border-{{margin}}" ng-class="{selected: selectedmargin.name == margin}" ng-click="setSelectedmargin(margin)"></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="box-slider">
|
||||
<div ui-slider min="0" max="400" step="1" ng-model="selectedmargin.value"></div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@@ -0,0 +1,14 @@
|
||||
@inherits System.Web.Mvc.WebViewPage
|
||||
<div ng-controller="Umbraco.canvasdesigner.padding">
|
||||
|
||||
<div class="box-slider">
|
||||
<ul class="box-preview">
|
||||
<li ng-repeat="padding in paddingList" class="border-{{padding}}" ng-class="{selected: selectedpadding.name == padding}" ng-click="setSelectedpadding(padding)"></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="box-slider">
|
||||
<div ui-slider min="0" max="400" step="1" ng-model="selectedpadding.value"></div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@@ -0,0 +1,21 @@
|
||||
@inherits System.Web.Mvc.WebViewPage
|
||||
<div ng-controller="Umbraco.canvasdesigner.radius">
|
||||
|
||||
<div class="box-slider">
|
||||
<ul class="box-preview">
|
||||
|
||||
<li ng-repeat="radius in radiusList" ng-class="{selected: selectedradius.name == radius}" ng-click="setSelectedradius(radius)">
|
||||
<span ng-show="radius == 'topleft' || radius == 'all'" class="radius-top-left"></span>
|
||||
<span ng-show="radius == 'topright' || radius == 'all'" class="radius-top-right"></span>
|
||||
<span ng-show="radius == 'bottomleft' || radius == 'all'" class="radius-bottom-left"></span>
|
||||
<span ng-show="radius == 'bottomright' || radius == 'all'" class="radius-bottom-right"></span>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="box-slider">
|
||||
<div ui-slider min="0" max="40" step="1" ng-model="selectedradius.value"></div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@@ -0,0 +1,8 @@
|
||||
@inherits System.Web.Mvc.WebViewPage
|
||||
<div ng-controller="Umbraco.canvasdesigner.shadow">
|
||||
|
||||
<div class="box-slider">
|
||||
<div ui-slider min="0" max="100" step="1" ng-model="item.values.shadow"></div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@@ -0,0 +1,8 @@
|
||||
@inherits System.Web.Mvc.WebViewPage
|
||||
<div ng-controller="Umbraco.canvasdesigner.slider">
|
||||
|
||||
<div class="box-slider">
|
||||
<div ui-slider min="{{item.min}}" max="{{item.max}}" step="1" ng-model="item.values.slider"></div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@@ -0,0 +1,41 @@
|
||||
<?xml version="1.0"?>
|
||||
|
||||
<configuration>
|
||||
<configSections>
|
||||
<sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
|
||||
<section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
|
||||
<section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
|
||||
</sectionGroup>
|
||||
</configSections>
|
||||
|
||||
<system.web.webPages.razor>
|
||||
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
|
||||
<pages pageBaseType="System.Web.Mvc.WebViewPage">
|
||||
<namespaces>
|
||||
<add namespace="System.Web.Mvc" />
|
||||
<add namespace="System.Web.Mvc.Ajax" />
|
||||
<add namespace="System.Web.Mvc.Html" />
|
||||
<add namespace="System.Web.Routing" />
|
||||
</namespaces>
|
||||
</pages>
|
||||
</system.web.webPages.razor>
|
||||
|
||||
<appSettings>
|
||||
<add key="webpages:Enabled" value="false" />
|
||||
</appSettings>
|
||||
|
||||
<system.webServer>
|
||||
<handlers>
|
||||
<remove name="BlockViewHandler"/>
|
||||
<add name="BlockViewHandler" path="*" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler" />
|
||||
</handlers>
|
||||
</system.webServer>
|
||||
|
||||
<system.web>
|
||||
<compilation>
|
||||
<assemblies>
|
||||
<add assembly="System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
|
||||
</assemblies>
|
||||
</compilation>
|
||||
</system.web>
|
||||
</configuration>
|
||||
@@ -2,7 +2,8 @@
|
||||
ng-controller="Umbraco.Dialogs.Content.EditController"
|
||||
ng-show="loaded"
|
||||
ng-submit="save()"
|
||||
val-form-manager>
|
||||
val-form-manager
|
||||
class="umb-mini-editor">
|
||||
|
||||
<div class="umb-panel">
|
||||
<div class="umb-panel-header">
|
||||
@@ -12,15 +13,33 @@
|
||||
</div>
|
||||
|
||||
<div class="umb-panel-body with-footer">
|
||||
<div id="tab{{tab.id}}" ng-repeat="tab in content.tabs">
|
||||
<div class="umb-pane" ng-if="!tab.hide">
|
||||
<h5>{{tab.label}}</h5>
|
||||
<umb-property property="property"
|
||||
ng-repeat="property in tab.properties">
|
||||
<umb-editor model="property"></umb-editor>
|
||||
</umb-property>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="umb-pane" ng-if="content">
|
||||
|
||||
<umb-tabs-nav
|
||||
model="content.tabs"
|
||||
id-suffix="-mini-editor">
|
||||
</umb-tabs-nav>
|
||||
|
||||
<umb-tabs-content>
|
||||
|
||||
<umb-tab
|
||||
id="tab{{tab.id}}-mini-editor"
|
||||
ng-repeat="tab in content.tabs"
|
||||
rel="{{tab.id}}-mini-editor">
|
||||
|
||||
<umb-property
|
||||
property="property"
|
||||
ng-repeat="property in tab.properties">
|
||||
<umb-editor model="property"></umb-editor>
|
||||
</umb-property>
|
||||
|
||||
</umb-tab>
|
||||
|
||||
</umb-tabs-content>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
@@ -22,8 +22,8 @@
|
||||
<ul class="unstyled list-icons">
|
||||
<li>
|
||||
<i class="icon icon-favorite"></i>
|
||||
<a target="_blank" href="http://our.umbraco.org?utm_source=core&utm_medium=help&utm_content=link&utm_campaign=our">
|
||||
<localize key="help_goTo">go to</localize> our.umbraco.org
|
||||
<a target="_blank" href="https://our.umbraco.com?utm_source=core&utm_medium=help&utm_content=link&utm_campaign=our">
|
||||
<localize key="help_goTo">go to</localize> our.umbraco.com
|
||||
</a>
|
||||
<small class="umb-detail">The friendliest community</small>
|
||||
</li>
|
||||
@@ -46,7 +46,7 @@
|
||||
<ul class="unstyled list-icons">
|
||||
<li>
|
||||
<i class="icon icon-tv-old"></i>
|
||||
<a target="_blank" href="http://umbraco.tv?utm_source=core&utm_medium=help&utm_content=link&utm_campaign=tv">
|
||||
<a target="_blank" href="https://umbraco.tv?utm_source=core&utm_medium=help&utm_content=link&utm_campaign=tv">
|
||||
<localize key="help_goTo">go to</localize> umbraco.tv
|
||||
</a>
|
||||
<small class="umb-detail"><localize key="help_theBestUmbracoVideoTutorials">The best Umbraco video tutorials</localize></small>
|
||||
@@ -55,4 +55,4 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -1,57 +1,57 @@
|
||||
<div class="umb-panel" ng-controller="Umbraco.Dialogs.IconPickerController">
|
||||
<div class="umb-panel-header">
|
||||
<div class="umb-el-wrap umb-panel-buttons">
|
||||
<div class="form-search">
|
||||
<div class="umb-panel-header">
|
||||
<div class="umb-el-wrap umb-panel-buttons">
|
||||
<div class="form-search">
|
||||
<i class="icon-search"></i>
|
||||
<input type="text"
|
||||
style="width: 100%"
|
||||
ng-model="searchTerm"
|
||||
class="umb-search-field search-query input-block-level"
|
||||
placeholder="Filter..."
|
||||
no-dirty-check>
|
||||
localize="placeholder"
|
||||
placeholder="@placeholders_filter"
|
||||
no-dirty-check />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="umb-panel-body with-footer">
|
||||
<div class="umb-panel-body with-footer">
|
||||
|
||||
<div class="umb-control-group">
|
||||
<select ng-model="color" class="input-block-level">
|
||||
<option value="">Black</option>
|
||||
<option value="color-green">Green</option>
|
||||
<option value="color-yellow">Yellow</option>
|
||||
<option value="color-orange">Orange</option>
|
||||
<option value="color-blue">Blue</option>
|
||||
<option value="color-red">Red</option>
|
||||
</select>
|
||||
<select ng-model="color" class="input-block-level">
|
||||
<option value=""><localize key="colors_black">Black</localize></option>
|
||||
<option value="color-green"><localize key="colors_green">Green</localize></option>
|
||||
<option value="color-yellow"><localize key="colors_yellow">Yellow</localize></option>
|
||||
<option value="color-orange"><localize key="colors_orange">Orange</localize></option>
|
||||
<option value="color-blue"><localize key="colors_blue">Blue</localize></option>
|
||||
<option value="color-red"><localize key="colors_red">Red</localize></option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<umb-load-indicator ng-if="loading"></umb-load-indicator>
|
||||
|
||||
<div class="umb-control-group" ng-show="!loading">
|
||||
<ul class="umb-iconpicker" ng-class="color" ng-show="icons">
|
||||
<li class="umb-iconpicker-item" ng-repeat="icon in filtered = (icons | filter: searchTerm) track by $id(icon)">
|
||||
<a href="#" title="{{icon}}" ng-click="submitClass(icon)" prevent-default>
|
||||
<i class="{{icon}} large"></i>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<ul class="umb-iconpicker" ng-class="color" ng-show="icons">
|
||||
<li class="umb-iconpicker-item" ng-repeat="icon in filtered = (icons | filter: searchTerm) track by $id(icon)">
|
||||
<a href="#" title="{{icon}}" ng-click="submitClass(icon)" prevent-default>
|
||||
<i class="{{icon}} large"></i>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<umb-empty-state
|
||||
ng-if="filtered.length === 0"
|
||||
position="center">
|
||||
<localize key="defaultdialogs_noIconsFound">No icons were found.</localize>
|
||||
</umb-empty-state>
|
||||
</div>
|
||||
<umb-empty-state ng-if="filtered.length === 0"
|
||||
position="center">
|
||||
<localize key="defaultdialogs_noIconsFound">No icons were found.</localize>
|
||||
</umb-empty-state>
|
||||
</div>
|
||||
|
||||
<div class="umb-panel-footer" >
|
||||
<div class="umb-el-wrap umb-panel-buttons">
|
||||
<div class="btn-toolbar umb-btn-toolbar pull-right">
|
||||
<a href ng-click="close()" class="btn btn-link">
|
||||
<localize key="general_cancel">Cancel</localize>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="umb-panel-footer">
|
||||
<div class="umb-el-wrap umb-panel-buttons">
|
||||
<div class="btn-toolbar umb-btn-toolbar pull-right">
|
||||
<a href ng-click="close()" class="btn btn-link">
|
||||
<localize key="general_cancel">Cancel</localize>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<form novalidate name="insertMacroForm" ng-submit="submitForm()" ng-controller="Umbraco.Dialogs.InsertMacroController" val-form-manager>
|
||||
<form novalidate name="insertMacroForm" ng-controller="Umbraco.Dialogs.InsertMacroController" val-form-manager>
|
||||
<div class="umb-panel">
|
||||
|
||||
<div class="umb-panel-footer">
|
||||
@@ -6,8 +6,8 @@
|
||||
<a href class="btn btn-link" ng-click="close()">
|
||||
<localize key="cancel" />
|
||||
</a>
|
||||
<button type="submit" class="btn btn-primary">
|
||||
<localize key="buttons_select"/>
|
||||
<button type="button" ng-click="submitForm()" class="btn btn-primary">
|
||||
<localize key="buttons_select" />
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
|
||||
<div class="umb-pane">
|
||||
<p>
|
||||
Are you sure you want to delete <strong>{{currentNode.name}}</strong> ?
|
||||
<localize key="defaultdialogs_confirmdelete">Are you sure you want to delete</localize> <strong>{{currentNode.name}}</strong> ?
|
||||
</p>
|
||||
|
||||
|
||||
|
||||
@@ -1,17 +1,29 @@
|
||||
<div class="umb-panel" ng-controller="Umbraco.Dialogs.LinkPickerController">
|
||||
<div class="umb-panel-body no-header with-footer compact">
|
||||
<umb-pane>
|
||||
<umb-control-group label="@content_urls">
|
||||
<input type="text"
|
||||
localize="placeholder"
|
||||
placeholder="@general_url"
|
||||
class="umb-editor umb-textstring"
|
||||
ng-model="target.url"
|
||||
ng-disabled="target.id"
|
||||
/>
|
||||
</umb-control-group>
|
||||
<umb-control-group label="@defaultdialogs_urlLinkPicker" class="umb-property--pull">
|
||||
<input type="text"
|
||||
localize="placeholder"
|
||||
placeholder="@general_url"
|
||||
class="umb-editor umb-textstring"
|
||||
ng-model="target.url"
|
||||
ng-disabled="target.id || target.udi" />
|
||||
</umb-control-group>
|
||||
|
||||
<umb-control-group label="@content_nodeName">
|
||||
<umb-control-group label="@defaultdialogs_anchorLinkPicker" class="umb-property--push">
|
||||
<input type="text"
|
||||
list="anchors"
|
||||
localize="placeholder"
|
||||
placeholder="@placeholders_anchor"
|
||||
class="umb-editor umb-textstring"
|
||||
ng-model="target.anchor" />
|
||||
|
||||
<datalist id="anchors">
|
||||
<option value="{{a}}" ng-repeat="a in anchorValues"></option>
|
||||
</datalist>
|
||||
</umb-control-group>
|
||||
|
||||
<umb-control-group label="@defaultdialogs_nodeNameLinkPicker">
|
||||
<input type="text"
|
||||
localize="placeholder"
|
||||
placeholder="@placeholders_entername"
|
||||
@@ -22,9 +34,7 @@
|
||||
<umb-control-group label="@content_target">
|
||||
<select class="umb-editor umb-dropdown" ng-model="target.target">
|
||||
<option value=""></option>
|
||||
<option value="_blank">Opens the linked document in a new window or tab</option>
|
||||
<option value="_top">Opens the linked document in the full body of the window</option>
|
||||
<option value="_parent">Opens the linked document in the parent frame</option>
|
||||
<option value="_blank"><localize key="defaultdialogs_openInNewWindow">Opens the linked document in a new window or tab</localize></option>
|
||||
</select>
|
||||
</umb-control-group>
|
||||
</umb-pane>
|
||||
@@ -62,9 +72,9 @@
|
||||
<a href ng-click="close()" class="btn btn-link">
|
||||
<localize key="general_cancel">Cancel</localize>
|
||||
</a>
|
||||
|
||||
<a href ng-click="switchToMediaPicker()" class="btn">Link to file</a>
|
||||
|
||||
<a href ng-click="switchToMediaPicker()" class="btn">
|
||||
<localize key="defaultdialogs_selectMedia">Select media</localize>
|
||||
</a>
|
||||
<button
|
||||
class="btn btn-primary"
|
||||
ng-click="submit(target)">
|
||||
@@ -73,4 +83,4 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -1,135 +1,253 @@
|
||||
<div ng-controller="Umbraco.Dialogs.LoginController">
|
||||
<div ng-controller="Umbraco.Dialogs.LoginController">
|
||||
|
||||
<div id="login" class="umb-modalcolumn umb-dialog" ng-class="{'show-validation': loginForm.$invalid}" ng-cloak konami-code="activateKonamiMode()">
|
||||
<div class="form">
|
||||
<h1>{{greeting}}</h1>
|
||||
|
||||
<div ng-show="view == 'login'">
|
||||
<div class="login-overlay__background-image" ng-if="backgroundImage" ng-style="{'background-image':'url(' + backgroundImage + ')'}"></div>
|
||||
|
||||
<p>
|
||||
<span ng-show="dialogData.isTimedOut"><localize key="login_timeout">Log in below</localize>.</span>
|
||||
<localize key="login_instruction">Log in below</localize>
|
||||
<div class="login-overlay__logo">
|
||||
<img ng-src="assets/img/application/logo.png" ng-srcset="assets/img/application/logo@2x.png 2x, assets/img/application/logo@3x.png 3x">
|
||||
</div>
|
||||
|
||||
<div ng-show="invitedUser != null" class="umb-login-container">
|
||||
|
||||
<form name="inviteUserPasswordForm" novalidate="" ng-submit="inviteSavePassword()" val-form-manager>
|
||||
<div class="form" ng-if="inviteStep === 1">
|
||||
<h1 style="margin-bottom: 10px; text-align: left;">Hi, {{invitedUser.name}}</h1>
|
||||
<p style="line-height: 1.6; margin-bottom: 25px;">
|
||||
<localize key="user_userinviteWelcomeMessage">Welcome to Umbraco! Just need to get your password and avatar setup and then you're good to go</localize>
|
||||
</p>
|
||||
|
||||
<div class="control-group" ng-class="{error: setPasswordForm.password.$invalid}">
|
||||
<label>
|
||||
<localize key="user_newPassword">New password</localize>
|
||||
<small style="font-size: 13px;">{{invitedUserPasswordModel.passwordPolicyText}}</small>
|
||||
</label>
|
||||
<input type="password" ng-model="invitedUserPasswordModel.password" name="password" class="-full-width-input" umb-auto-focus required val-server-field="value" ng-minlength="{{invitedUserPasswordModel.passwordPolicies.minPasswordLength}}" />
|
||||
<span class="help-inline" val-msg-for="password" val-toggle-msg="required"><localize key="user_passwordIsBlank">Your new password cannot be blank!</localize></span>
|
||||
<span class="help-inline" val-msg-for="password" val-toggle-msg="minlength">Minimum {{invitedUserPasswordModel.passwordPolicies.minPasswordLength}} characters</span>
|
||||
<span class="help-inline" val-msg-for="password" val-toggle-msg="valServerField"></span>
|
||||
</div>
|
||||
|
||||
<div class="control-group" ng-class="{error: setPasswordForm.confirmPassword.$invalid}">
|
||||
<label><localize key="user_confirmNewPassword">Confirm new password</localize></label>
|
||||
<input type="password" ng-model="invitedUserPasswordModel.confirmPassword" name="confirmPassword" class="-full-width-input" required val-compare="password" />
|
||||
<span class="help-inline" val-msg-for="confirmPassword" val-toggle-msg="required"><localize key="general_required">Required</localize></span>
|
||||
<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>
|
||||
</div>
|
||||
|
||||
<div class="flex justify-between items-center">
|
||||
<umb-button type="submit"
|
||||
button-style="success"
|
||||
state="invitedUserPasswordModel.buttonState"
|
||||
label="Save password">
|
||||
</umb-button>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<div class="form" ng-if="inviteStep === 2">
|
||||
|
||||
<div class="flex justify-center items-center">
|
||||
|
||||
<ng-form name="avatarForm">
|
||||
|
||||
<umb-progress-bar style="max-width: 100px; margin-bottom: 5px;"
|
||||
ng-show="avatarFile.uploadStatus === 'uploading'"
|
||||
progress="{{ avatarFile.uploadProgress }}"
|
||||
size="s">
|
||||
</umb-progress-bar>
|
||||
|
||||
<div class="umb-info-local-item text-error mt3" ng-if="avatarFile.uploadStatus === 'error'">
|
||||
{{ avatarFile.serverErrorMessage }}
|
||||
</div>
|
||||
|
||||
<a class="umb-avatar-btn"
|
||||
ngf-select
|
||||
ng-model="avatarFile.filesHolder"
|
||||
ngf-change="changeAvatar($files, $event)"
|
||||
ngf-multiple="false"
|
||||
ngf-pattern="{{avatarFile.acceptedFileTypes}}"
|
||||
ngf-max-size="{{ avatarFile.maxFileSize }}">
|
||||
|
||||
<umb-avatar color="gray"
|
||||
size="xl"
|
||||
unknown-char="+"
|
||||
img-src="{{invitedUser.avatars[3]}}"
|
||||
img-srcset="{{invitedUser.avatars[4]}} 2x, {{invitedUser.avatars[4]}} 3x">
|
||||
</umb-avatar>
|
||||
</a>
|
||||
|
||||
</ng-form>
|
||||
</div>
|
||||
|
||||
<h1 style="margin-bottom: 10px;">Upload a photo</h1>
|
||||
<p style="text-align: center; margin-bottom: 25px; line-height: 1.6em;">
|
||||
<localize key="user_userinviteAvatarMessage"></localize>
|
||||
</p>
|
||||
<div class="flex justify-center items-center">
|
||||
<umb-button type="button"
|
||||
button-style="success"
|
||||
label="Get started"
|
||||
action="getStarted()">
|
||||
</umb-button>
|
||||
<umb-button ng-if="!avatarFile.uploaded"
|
||||
type="button"
|
||||
button-style="link"
|
||||
label="Skip"
|
||||
action="getStarted()">
|
||||
</umb-button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="external-logins" ng-if="externalLoginProviders.length > 0">
|
||||
</div>
|
||||
|
||||
<div class="text-error" ng-repeat="error in externalLoginInfo.errors">
|
||||
<div ng-show="invitedUser == null" class="umb-login-container">
|
||||
|
||||
<div class="form">
|
||||
<h1>{{greeting}}</h1>
|
||||
|
||||
<div ng-show="view == 'login'">
|
||||
|
||||
<p>
|
||||
<span ng-show="dialogData.isTimedOut"><localize key="login_timeout">Log in below</localize>.</span>
|
||||
</p>
|
||||
|
||||
<div class="external-logins" ng-if="externalLoginProviders.length > 0">
|
||||
|
||||
<div class="text-error" ng-repeat="error in externalLoginInfo.errors">
|
||||
<span>{{error}}</span>
|
||||
</div>
|
||||
|
||||
<form method="POST" name="externalLoginForm" action="{{externalLoginFormAction}}">
|
||||
|
||||
<div ng-repeat="login in externalLoginProviders">
|
||||
|
||||
<button type="submit" class="btn btn-block btn-social"
|
||||
ng-class="login.properties.SocialStyle"
|
||||
id="{{login.authType}}" name="provider" value="{{login.authType}}"
|
||||
title="Log in using your {{login.caption}} account">
|
||||
<i class="fa" ng-class="login.properties.SocialIcon"></i>
|
||||
<localize key="login_signInWith">Sign in with</localize> {{login.caption}}
|
||||
</button>
|
||||
|
||||
</div>
|
||||
</form>
|
||||
|
||||
</div>
|
||||
|
||||
<form method="POST" name="loginForm" ng-submit="loginSubmit(login, password)">
|
||||
|
||||
<div class="control-group" ng-show="loginForm.$invalid">
|
||||
<div class="text-error">{{errorMsg}}</div>
|
||||
</div>
|
||||
|
||||
<div class="control-group" ng-class="{error: loginForm.username.$invalid}">
|
||||
<label><localize key="general_username">Username</localize></label>
|
||||
<input type="text" ng-model="login" name="username" class="-full-width-input" localize="placeholder" placeholder="@placeholders_usernameHint" />
|
||||
</div>
|
||||
|
||||
<div class="control-group" ng-class="{error: loginForm.password.$invalid}">
|
||||
<label><localize key="general_password">Password</localize></label>
|
||||
<input type="password" ng-model="password" name="password" class="-full-width-input" localize="placeholder" placeholder="@placeholders_password" />
|
||||
<div class="password-toggle">
|
||||
<a href="#" prevent-default ng-click="togglePassword()">
|
||||
<span class="password-text show"><localize key="login_showPassword">Show password</localize></span>
|
||||
<span class="password-text hide"><localize key="login_hidePassword">Hide password</localize></span>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="flex justify-between items-center">
|
||||
<umb-button button-style="success"
|
||||
size="m"
|
||||
label-key="general_login"
|
||||
state="loginStates.submitButton"
|
||||
type="submit">
|
||||
</umb-button>
|
||||
<div ng-show="allowPasswordReset">
|
||||
<a class="muted" style="text-decoration: underline;" href="#" prevent-default ng-click="showRequestPasswordReset()"><localize key="login_forgottenPassword">Forgotten password?</localize></a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<div ng-show="view == 'request-password-reset'">
|
||||
<p>
|
||||
<localize key="login_forgottenPasswordInstruction">An email will be sent to the address specified with a link to reset your password</localize>
|
||||
</p>
|
||||
|
||||
<form method="POST" name="requestPasswordResetForm" ng-submit="requestPasswordResetSubmit(email)">
|
||||
<div class="control-group" ng-class="{error: requestPasswordResetForm.email.$invalid}">
|
||||
<label><localize key="general_email">Email</localize></label>
|
||||
<input type="email" val-email ng-model="email" name="email" class="-full-width-input" localize="placeholder" placeholder="@placeholders_email" />
|
||||
</div>
|
||||
|
||||
<div class="control-group" ng-show="requestPasswordResetForm.$invalid">
|
||||
<div class="text-error">{{errorMsg}}</div>
|
||||
</div>
|
||||
|
||||
<div class="control-group" ng-show="showEmailResetConfirmation">
|
||||
<div class="text-info">
|
||||
<localize key="login_requestPasswordResetConfirmation">An email with password reset instructions will be sent to the specified address if it matched our records</localize>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="flex justify-between items-center">
|
||||
<button type="submit" class="btn btn-success" val-trigger-change="#login .form input"><localize key="general_submit">Submit</localize></button>
|
||||
<a class="muted" href="#" prevent-default ng-click="showLogin()" style="text-decoration: underline;"><localize key="login_returnToLogin">Return to login form</localize></a>
|
||||
</div>
|
||||
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<div ng-show="view == 'set-password'">
|
||||
|
||||
<p ng-hide="resetComplete">
|
||||
<localize key="login_setPasswordInstruction">Please provide a new password.</localize>
|
||||
</p>
|
||||
|
||||
<form method="POST" name="setPasswordForm" ng-submit="setPasswordSubmit(password, confirmPassword)">
|
||||
|
||||
<div ng-hide="resetComplete" class="control-group" ng-class="{error: setPasswordForm.password.$invalid}">
|
||||
<label><localize key="user_newPassword">New password</localize></label>
|
||||
<input type="password" ng-model="password" name="password" class="-full-width-input" localize="placeholder" placeholder="@placeholders_password" />
|
||||
</div>
|
||||
|
||||
<div ng-hide="resetComplete" class="control-group" ng-class="{error: setPasswordForm.confirmPassword.$invalid}">
|
||||
<label><localize key="user_confirmNewPassword">Confirm new password</localize></label>
|
||||
<input type="password" ng-model="confirmPassword" name="confirmPassword" class="-full-width-input" localize="placeholder" placeholder="@placeholders_confirmPassword" />
|
||||
</div>
|
||||
|
||||
<div ng-hide="resetComplete" class="control-group" ng-show="setPasswordForm.$invalid">
|
||||
<div class="text-error">{{errorMsg}}</div>
|
||||
</div>
|
||||
|
||||
<div class="control-group" ng-show="showSetPasswordConfirmation">
|
||||
<div class="text-info">
|
||||
<localize key="login_setPasswordConfirmation">Your new password has been set and you may now use it to log in.</localize>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="flex justify-between items-center">
|
||||
<button ng-hide="resetComplete" type="submit" class="btn btn-success" val-trigger-change="#login .form input"><localize key="general_submit">Submit</localize></button>
|
||||
<a class="muted" href="#" prevent-default ng-click="showLogin()"><localize key="login_returnToLogin">Return to login form</localize></a>
|
||||
</div>
|
||||
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<div ng-show="view == 'password-reset-code-expired'">
|
||||
<div class="text-error" ng-repeat="error in resetPasswordCodeInfo.errors">
|
||||
<span>{{error}}</span>
|
||||
</div>
|
||||
|
||||
<form method="POST" name="externalLoginForm" action="{{externalLoginFormAction}}">
|
||||
|
||||
<div ng-repeat="login in externalLoginProviders">
|
||||
|
||||
<button type="submit" class="btn btn-block btn-social"
|
||||
ng-class="login.properties.SocialStyle"
|
||||
id="{{login.authType}}" name="provider" value="{{login.authType}}"
|
||||
title="Log in using your {{login.caption}} account">
|
||||
<i class="fa" ng-class="login.properties.SocialIcon"></i>
|
||||
<localize key="login_signInWith">Sign in with</localize> {{login.caption}}
|
||||
</button>
|
||||
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<div id="hrOr">
|
||||
<hr />
|
||||
<div><localize key="general_or">or</localize></div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<form method="POST" name="loginForm" ng-submit="loginSubmit(login, password)">
|
||||
<div class="control-group" ng-class="{error: loginForm.username.$invalid}">
|
||||
<input type="text" ng-model="login" name="username" class="input-xlarge" localize="placeholder" placeholder="@placeholders_username" />
|
||||
</div>
|
||||
|
||||
<div class="control-group" ng-class="{error: loginForm.password.$invalid}">
|
||||
<input type="password" ng-model="password" name="password" class="input-xlarge" localize="placeholder" placeholder="@placeholders_password" autocomplete="off" />
|
||||
</div>
|
||||
|
||||
<div class="control-group" ng-show="loginForm.$invalid">
|
||||
<div class="text-error">{{errorMsg}}</div>
|
||||
</div>
|
||||
|
||||
<button type="submit" class="btn" val-trigger-change="#login .form input"><localize key="general_login">Login</localize></button>
|
||||
|
||||
<div class="switch-view" ng-show="allowPasswordReset">
|
||||
<a class="muted" href="#" prevent-default ng-click="showRequestPasswordReset()"><localize key="login_forgottenPassword">Forgotten password?</localize></a>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<div ng-show="view == 'request-password-reset'">
|
||||
<p>
|
||||
<localize key="login_forgottenPasswordInstruction">An email will be sent to the address specified with a link to reset your password</localize>
|
||||
</p>
|
||||
|
||||
<form method="POST" name="requestPasswordResetForm" ng-submit="requestPasswordResetSubmit(email)">
|
||||
<div class="control-group" ng-class="{error: requestPasswordResetForm.email.$invalid}">
|
||||
<input type="text" ng-model="email" name="email" class="input-xlarge" localize="placeholder" placeholder="@placeholders_email" />
|
||||
</div>
|
||||
|
||||
<div class="control-group" ng-show="requestPasswordResetForm.$invalid">
|
||||
<div class="text-error">{{errorMsg}}</div>
|
||||
</div>
|
||||
|
||||
<div class="control-group" ng-show="showEmailResetConfirmation">
|
||||
<div class="text-info">
|
||||
<localize key="login_requestPasswordResetConfirmation">An email with password reset instructions will be sent to the specified address if it matched our records</localize>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<button type="submit" class="btn" val-trigger-change="#login .form input"><localize key="general_submit">Submit</localize></button>
|
||||
|
||||
<div class="switch-view">
|
||||
<a class="muted" href="#" prevent-default ng-click="showLogin()"><localize key="login_returnToLogin">Return to login form</localize></a>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<div ng-show="view == 'set-password'">
|
||||
|
||||
<p ng-hide="resetComplete">
|
||||
<localize key="login_setPasswordInstruction">Please provide a new password.</localize>
|
||||
</p>
|
||||
|
||||
<form method="POST" name="setPasswordForm" ng-submit="setPasswordSubmit(password, confirmPassword)">
|
||||
|
||||
<div ng-hide="resetComplete" class="control-group" ng-class="{error: setPasswordForm.password.$invalid}">
|
||||
<input type="password" ng-model="password" name="password" class="input-xlarge" localize="placeholder" placeholder="@placeholders_password" />
|
||||
</div>
|
||||
|
||||
<div ng-hide="resetComplete" class="control-group" ng-class="{error: setPasswordForm.confirmPassword.$invalid}">
|
||||
<input type="password" ng-model="confirmPassword" name="confirmPassword" class="input-xlarge" localize="placeholder" placeholder="@placeholders_confirmPassword" />
|
||||
</div>
|
||||
|
||||
<div ng-hide="resetComplete" class="control-group" ng-show="setPasswordForm.$invalid">
|
||||
<div class="text-error">{{errorMsg}}</div>
|
||||
</div>
|
||||
|
||||
<div class="control-group" ng-show="showSetPasswordConfirmation">
|
||||
<div class="text-info">
|
||||
<localize key="login_setPasswordConfirmation">Your new password has been set and you may now use it to log in.</localize>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<button ng-hide="resetComplete" type="submit" class="btn" val-trigger-change="#login .form input"><localize key="general_submit">Submit</localize></button>
|
||||
|
||||
<div class="switch-view">
|
||||
<a class="muted" href="#" prevent-default ng-click="showLogin()"><localize key="login_returnToLogin">Return to login form</localize></a>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<div ng-show="view == 'password-reset-code-expired'">
|
||||
<div class="text-error" ng-repeat="error in resetPasswordCodeInfo.errors">
|
||||
<span>{{error}}</span>
|
||||
</div>
|
||||
|
||||
<div class="switch-view">
|
||||
<a class="muted" href="#" prevent-default ng-click="showLogin()"><localize key="login_returnToLogin">Return to login form</localize></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -61,21 +61,23 @@
|
||||
|
||||
|
||||
<div class="umb-panel umb-dialogs-mediapicker browser"
|
||||
on-drag-leave="dragLeave()"
|
||||
on-drag-end="dragLeave()"
|
||||
on-drag-enter="dragEnter()"
|
||||
ng-hide="target">
|
||||
on-drag-leave="dragLeave()"
|
||||
on-drag-end="dragLeave()"
|
||||
on-drag-enter="dragEnter()"
|
||||
ng-hide="target">
|
||||
|
||||
|
||||
|
||||
<div class="umb-panel-header">
|
||||
|
||||
<div class="umb-el-wrap umb-panel-buttons umb-mediapicker-upload">
|
||||
<div class="form-search">
|
||||
<i class="icon-search"></i>
|
||||
<input type="text"
|
||||
ng-model="searchTerm"
|
||||
class="umb-search-field search-query"
|
||||
placeholder="Filter...">
|
||||
<div class="form-search">
|
||||
<i class="icon-search"></i>
|
||||
<input type="text"
|
||||
ng-model="searchTerm"
|
||||
class="umb-search-field search-query"
|
||||
localize="placeholder"
|
||||
placeholder="@placeholders_filter"
|
||||
no-dirty-check />
|
||||
</div>
|
||||
|
||||
<div class="upload-button">
|
||||
@@ -96,7 +98,7 @@
|
||||
<li ng-repeat="item in path">
|
||||
<a href ng-click="gotoFolder(item)" prevent-default>{{item.name}}</a> /
|
||||
</li>
|
||||
|
||||
|
||||
<li>
|
||||
<a href ng-hide="showFolderInput" ng-click="showFolderInput = true">
|
||||
<i class="icon icon-add small"></i>
|
||||
@@ -113,28 +115,26 @@
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="umb-panel-body with-footer">
|
||||
|
||||
<umb-file-dropzone
|
||||
ng-if="acceptedMediatypes.length > 0"
|
||||
accepted-mediatypes="acceptedMediatypes"
|
||||
hide-dropzone="{{!activeDrag && images.length > 0}}"
|
||||
parent-id="{{currentFolder.id}}"
|
||||
files-uploaded="onUploadComplete"
|
||||
files-queued="onFilesQueue">
|
||||
|
||||
<umb-file-dropzone ng-if="acceptedMediatypes.length > 0"
|
||||
accepted-mediatypes="acceptedMediatypes"
|
||||
hide-dropzone="{{!activeDrag && images.length > 0}}"
|
||||
parent-id="{{currentFolder.id}}"
|
||||
files-uploaded="onUploadComplete"
|
||||
files-queued="onFilesQueue">
|
||||
</umb-file-dropzone>
|
||||
|
||||
<umb-photo-folder
|
||||
min-height="105"
|
||||
min-width="150"
|
||||
max-height="250"
|
||||
ideal-items-per-row="3"
|
||||
on-click="clickHandler"
|
||||
ng-model="images"
|
||||
images-only="{{onlyImages}}"
|
||||
filter-by="searchTerm" />
|
||||
<umb-photo-folder min-height="105"
|
||||
min-width="150"
|
||||
max-height="250"
|
||||
ideal-items-per-row="3"
|
||||
on-click="clickHandler"
|
||||
ng-model="images"
|
||||
images-only="{{onlyImages}}"
|
||||
filter-by="searchTerm" />
|
||||
</div>
|
||||
|
||||
|
||||
@@ -158,4 +158,4 @@
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</form>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<div class="umb-panel" ng-controller="Umbraco.Dialogs.MemberGroupPickerController">
|
||||
|
||||
|
||||
<div class="umb-panel-body with-footer no-header">
|
||||
|
||||
|
||||
<div>
|
||||
<umb-tree section="member"
|
||||
treealias="memberGroups"
|
||||
@@ -14,21 +14,21 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="umb-panel-footer" >
|
||||
<div class="umb-el-wrap umb-panel-buttons">
|
||||
<div class="btn-toolbar umb-btn-toolbar pull-right">
|
||||
<div class="umb-panel-footer">
|
||||
<div class="umb-el-wrap umb-panel-buttons">
|
||||
<div class="btn-toolbar umb-btn-toolbar pull-right">
|
||||
|
||||
<a href ng-click="close()" class="btn btn-link">
|
||||
<localize key="general_cancel">Cancel</localize>
|
||||
</a>
|
||||
<a href ng-click="close()" class="btn btn-link">
|
||||
<localize key="general_cancel">Cancel</localize>
|
||||
</a>
|
||||
|
||||
<button class="btn btn-primary"
|
||||
ng-click="submit(dialogData.selection)">
|
||||
<localize key="buttons_select">Select</localize>
|
||||
({{dialogData.selection.length}})
|
||||
</button>
|
||||
<button class="btn btn-primary"
|
||||
ng-click="submit(dialogData.selection)">
|
||||
<localize key="buttons_select">Select</localize>
|
||||
({{dialogData.selection.length}})
|
||||
</button>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -1,17 +1,17 @@
|
||||
<form ng-controller="Umbraco.Dialogs.RteEmbedController" val-form-manager>
|
||||
<form ng-controller="Umbraco.Dialogs.RteEmbedController" val-form-manager>
|
||||
<div class="umb-panel">
|
||||
<div class="umb-panel-body no-header with-footer">
|
||||
<umb-pane>
|
||||
<umb-control-group label="Url">
|
||||
<umb-control-group label="@general_url">
|
||||
<input id="url" class="umb-editor input-block-level" type="text" ng-model="form.url" ng-keyup="$event.keyCode == 13 ? showPreview() : null" required />
|
||||
<input type="button" ng-click="showPreview()" class="btn" value="Retrieve" />
|
||||
<input type="button" ng-click="showPreview()" class="btn" localize="value" value="@general_retrieve" />
|
||||
</umb-control-group>
|
||||
|
||||
<div ng-show="form.supportsDimensions">
|
||||
<umb-control-group label="Size">
|
||||
<umb-control-group label="@general_size">
|
||||
<input type="text" ng-model="form.width" on-blur="changeSize('width')" style="width:50px"/> x <input type="text" ng-model="form.height" on-blur="changeSize('height')" style="width:50px"/>
|
||||
|
||||
<label for="constrain" style="display:inline">Constrain:</label>
|
||||
<label for="constrain" style="display:inline"><localize key="general_constrain">Constrain</localize>:</label>
|
||||
<input id="constrain" type="checkbox" ng-model="form.constrain" style="margin-bottom: 10px;"/>
|
||||
</umb-control-group>
|
||||
</div>
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
<div class="umb-panel">
|
||||
|
||||
<div class="umb-panel-header">
|
||||
<h1 class="headline" style="margin: 10px 0 0 0">Build a query</h1>
|
||||
<h1 class="headline" style="margin: 10px 0 0 0"><localize key="template_buildQuery">Build a query</localize></h1>
|
||||
</div>
|
||||
|
||||
<div class="umb-panel-body with-footer umb-querybuilder">
|
||||
@@ -149,10 +149,10 @@
|
||||
<localize key="general_close">Close</localize>
|
||||
</a>
|
||||
|
||||
<a href ng-click="submit(result.queryExpression)" class="btn btn-primary">Insert</a>
|
||||
<a href ng-click="submit(result.queryExpression)" class="btn btn-primary"><localize key="general_insert">Insert</localize></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</form>
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
<a href ng-click="close()" class="btn btn-link">
|
||||
<localize key="general_close">Close</localize>
|
||||
</a>
|
||||
<a href ng-click="submit(section)" class="btn btn-primary">Insert</a>
|
||||
<a href ng-click="submit(section)" class="btn btn-primary"><localize key="general_insert">Insert</localize></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
|
||||
<h5><localize key="user_yourProfile" /></h5>
|
||||
|
||||
<a href="#/users/framed/%252Fumbraco%252Fusers%252Fedituser.aspx%253Fid%253D{{user.id}}"
|
||||
<a href="#/users/users/user/{{user.id}}"
|
||||
class="btn btn-primary"
|
||||
ng-click="close()"
|
||||
ng-if="canEditProfile">
|
||||
@@ -42,7 +42,7 @@
|
||||
|
||||
<div class="umb-pane external-logins" ng-if="externalLoginProviders.length > 0 && !showPasswordFields">
|
||||
|
||||
<h5>External login providers</h5>
|
||||
<h5><localize key="defaultdialogs_externalLoginProviders">External login providers</localize></h5>
|
||||
|
||||
<div ng-repeat="login in externalLoginProviders">
|
||||
|
||||
@@ -55,7 +55,7 @@
|
||||
onclick="document.forms.oauthloginform.submit();">
|
||||
|
||||
<i class="fa" ng-class="login.properties.SocialIcon"></i>
|
||||
Link your {{login.caption}} account
|
||||
<localize key="defaultdialogs_linkYour">Link your</localize> {{login.caption}} <localize key="defaultdialogs_account">account</localize>
|
||||
</button>
|
||||
</form>
|
||||
|
||||
@@ -67,7 +67,7 @@
|
||||
name="provider"
|
||||
value="{{login.authType}}">
|
||||
<i class="fa" ng-class="login.properties.SocialIcon"></i>
|
||||
Un-link your {{login.caption}} account
|
||||
<localize key="defaultdialogs_unLinkYour">Un-link your</localize> {{login.caption}} <localize key="defaultdialogs_account">account</localize>
|
||||
</button>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<div class="umb-panel" ng-controller="Umbraco.Dialogs.YsodController">
|
||||
<div class="umb-panel" ng-controller="Umbraco.Dialogs.YsodController">
|
||||
|
||||
<div class="umb-panel-body with-footer no-header">
|
||||
|
||||
|
||||
@@ -0,0 +1,131 @@
|
||||
<umb-drawer-view ng-controller="Umbraco.Drawers.Help as vm">
|
||||
|
||||
<umb-drawer-header
|
||||
title="{{ vm.title }}"
|
||||
description="{{ vm.subtitle }}">
|
||||
</umb-drawer-header>
|
||||
|
||||
<umb-drawer-content>
|
||||
|
||||
<!-- Tours -->
|
||||
<div class="umb-help-section" ng-if="vm.tours" data-element="help-tours">
|
||||
|
||||
<h5 class="umb-help-section__title">Tours</h5>
|
||||
|
||||
<div ng-repeat="tourGroup in vm.tours | orderBy:'groupOrder'">
|
||||
|
||||
<div class="umb-help-list">
|
||||
|
||||
<a href="" class="umb-help-list-item umb-help-list-item__content flex items-center justify-between" ng-click="tourGroup.open = !tourGroup.open">
|
||||
<h5 class="umb-help-list-item__group-title">
|
||||
<i ng-class="{'icon-navigation-right': !tourGroup.open, 'icon-navigation-down': tourGroup.open}"></i>
|
||||
<span ng-if="tourGroup.group !== 'undefined'">{{tourGroup.group}}</span>
|
||||
<span ng-if="tourGroup.group === 'undefined'">Other</span>
|
||||
</h5>
|
||||
<umb-progress-circle
|
||||
percentage="{{tourGroup.completedPercentage}}"
|
||||
size="40">
|
||||
</umb-progress-circle>
|
||||
</a>
|
||||
|
||||
<div ng-if="tourGroup.open">
|
||||
<div data-element="tour-{{tour.alias}}" class="umb-help-list-item" ng-repeat="tour in tourGroup.tours">
|
||||
<div class="umb-help-list-item__content justify-between">
|
||||
<div class="flex items-center">
|
||||
<div ng-if="!tour.completed" class="umb-number-badge umb-number-badge--xs umb-help-list-item__icon">{{ $index + 1 }}</div>
|
||||
<umb-checkmark ng-if="tour.completed" size="xs" checked="tour.completed" class="umb-help-list-item__icon"></umb-checkmark>
|
||||
<span ng-class="{'strike': tour.completed}" class="umb-help-list-item__title">{{ tour.name }}</span>
|
||||
</div>
|
||||
<div>
|
||||
<umb-button ng-if="!tour.completed && vm.showTourButton($index, tourGroup)" button-style="primary" size="xxs" type="button" label="Start" action="vm.startTour(tour)"></umb-button>
|
||||
<umb-button ng-if="tour.completed" size="xxs" type="button" label="Rerun" action="vm.startTour(tour)"></umb-button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<!-- Show in custom help dashboard -->
|
||||
<div class="umb-help-section" data-element="help-custom-dashboard" ng-if="vm.customDashboard.length > 0">
|
||||
<div ng-repeat="tab in vm.customDashboard">
|
||||
<div ng-repeat="property in tab.properties">
|
||||
<div>
|
||||
<h5 ng-if="property.caption">{{property.caption}}</h5>
|
||||
<div ng-include="property.path"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Help Content -->
|
||||
<div class="umb-help-section" data-element="help-articles" ng-if="vm.topics.length > 0">
|
||||
<h5 class="umb-help-section__title">Articles</h5>
|
||||
<ul class="umb-help-list">
|
||||
<li class="umb-help-list-item" ng-repeat="topic in vm.topics track by $index">
|
||||
<a class="umb-help-list-item__content" data-element="help-article-{{topic.name}}" target="_blank" ng-href="{{topic.url}}?utm_source=core&utm_medium=help&utm_content=link&utm_campaign=tv">
|
||||
<span>
|
||||
<span class="umb-help-list-item__title">
|
||||
<span class="bold">{{topic.name}}</span>
|
||||
<span class="umb-help-list-item__open-icon icon-out"></span>
|
||||
</span>
|
||||
<span class="umb-help-list-item__description">{{topic.description}}</span>
|
||||
</span>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<!-- Umbraco tv content -->
|
||||
<div class="umb-help-section" data-element="help-videos" ng-if="vm.hasAccessToSettings">
|
||||
<h5 class="umb-help-section__title" ng-if="vm.videos.length > 0">Videos</h5>
|
||||
<ul class="umb-help-list">
|
||||
<li class="umb-help-list-item" ng-repeat="video in vm.videos track by $index">
|
||||
<a class="umb-help-list-item__content" data-element="help-article-{{video.title}}" target="_blank" ng-href="{{video.link}}?utm_source=core&utm_medium=help&utm_content=link&utm_campaign=tv">
|
||||
<i class="umb-help-list-item__icon icon-tv-old"></i>
|
||||
<span class="umb-help-list-item__title">{{video.title}}</span>
|
||||
<i class="umb-help-list-item__open-icon icon-out"></i>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<!-- Links -->
|
||||
<div class="umb-help-section" data-element="help-links" ng-if="vm.hasAccessToSettings">
|
||||
<a data-element="help-link-umbraco-tv" class="umb-help-badge" target="_blank" href="https://umbraco.tv?utm_source=core&utm_medium=help&utm_content=link&utm_campaign=tv">
|
||||
<i class="umb-help-badge__icon icon-tv-old"></i>
|
||||
<div class="umb-help-badge__title">Visit umbraco.tv</div>
|
||||
<small>
|
||||
<localize key="help_theBestUmbracoVideoTutorials">The best Umbraco video tutorials</localize>
|
||||
</small>
|
||||
</a>
|
||||
|
||||
<a data-element="help-link-our-umbraco" class="umb-help-badge" target="_blank" href="https://our.umbraco.com?utm_source=core&utm_medium=help&utm_content=link&utm_campaign=our">
|
||||
<i class="umb-help-badge__icon icon-favorite"></i>
|
||||
<div class="umb-help-badge__title">Visit our.umbraco.com</div>
|
||||
<small>
|
||||
<localize key="defaultdialogs_theFriendliestCommunity">The friendliest community</localize>
|
||||
</small>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
</umb-drawer-content>
|
||||
|
||||
<umb-drawer-footer>
|
||||
|
||||
<div class="flex justify-end">
|
||||
<umb-button
|
||||
alias="close"
|
||||
type="button"
|
||||
button-style="link"
|
||||
label="Close"
|
||||
action="vm.closeDrawer()">
|
||||
</umb-button>
|
||||
</div>
|
||||
|
||||
</umb-drawer-footer>
|
||||
|
||||
</umb-drawer-view>
|
||||
@@ -1,3 +1,3 @@
|
||||
<div ng-controller="Umbraco.LoginController">
|
||||
<div ng-controller="Umbraco.LoginController">
|
||||
|
||||
</div>
|
||||
@@ -2,6 +2,6 @@
|
||||
<h4><localize key="prompt_unsavedChanges">You have unsaved changes</localize></h4>
|
||||
<p><localize key="prompt_unsavedChangesWarning">Are you sure you want to navigate away from this page? - you have unsaved changes</localize></p>
|
||||
|
||||
<button class="btn btn-warning" ng-click="discard(notification)"><localize key="prompt_discardChanges">Discard changes</localize></button>
|
||||
<button class="btn" ng-click="stay(notification)" umb-auto-focus><localize key="prompt_stay">Stay</localize></button>
|
||||
</div>
|
||||
<button class="btn" ng-click="discard(notification)"><localize key="prompt_discardChanges">Discard changes</localize></button>
|
||||
<button class="btn btn-success" ng-click="stay(notification)" umb-auto-focus><localize key="prompt_stay">Stay</localize></button>
|
||||
</div>
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
<div ng-controller="Umbraco.Notifications.ConfirmUnpublishController">
|
||||
<h4><localize key="general_areyousure">Are you sure?</localize></h4>
|
||||
<p><localize key="prompt_confirmUnpublish">Unpublishing will remove this page and all its descendants from the site</localize></p>
|
||||
<button class="btn btn-warning" ng-click="confirm(notification, true)"><localize key="actions_unpublish">Unpublish</localize></button>
|
||||
<button class="btn btn-default" ng-click="confirm(notification, false)" umb-auto-focus><localize key="general_cancel">Cancel</localize></button>
|
||||
</div>
|
||||
@@ -1,34 +1,48 @@
|
||||
<div ng-controller="Umbraco.Overlays.TreePickerController" ng-init="init('content')">
|
||||
|
||||
<div class="umb-control-group">
|
||||
<umb-tree-search-box
|
||||
hide-search-callback="hideSearch"
|
||||
search-callback="onSearchResults"
|
||||
search-from-id="{{searchInfo.searchFromId}}"
|
||||
search-from-name="{{searchInfo.searchFromName}}"
|
||||
show-search="{{searchInfo.showSearch}}"
|
||||
section="content">
|
||||
</umb-tree-search-box>
|
||||
</div>
|
||||
<div ng-hide="miniListView">
|
||||
|
||||
<umb-tree-search-results
|
||||
ng-if="searchInfo.showSearch"
|
||||
results="searchInfo.results"
|
||||
select-result-callback="selectResult">
|
||||
</umb-tree-search-results>
|
||||
<div class="umb-control-group">
|
||||
<umb-tree-search-box
|
||||
hide-search-callback="hideSearch"
|
||||
search-callback="onSearchResults"
|
||||
search-from-id="{{searchInfo.searchFromId}}"
|
||||
search-from-name="{{searchInfo.searchFromName}}"
|
||||
show-search="{{searchInfo.showSearch}}"
|
||||
section="content">
|
||||
</umb-tree-search-box>
|
||||
</div>
|
||||
|
||||
<div ng-hide="searchInfo.showSearch" ng-animate="'tree-fade-out'">
|
||||
<umb-tree
|
||||
section="content"
|
||||
treealias="content"
|
||||
hideheader="{{hideHeader}}"
|
||||
hideoptions="true"
|
||||
isdialog="true"
|
||||
customtreeparams="{{customTreeParams}}"
|
||||
eventhandler="dialogTreeEventHandler"
|
||||
enablelistviewsearch="true"
|
||||
enablecheckboxes="{{multiPicker}}">
|
||||
</umb-tree>
|
||||
</div>
|
||||
<umb-tree-search-results
|
||||
ng-if="searchInfo.showSearch"
|
||||
results="searchInfo.results"
|
||||
select-result-callback="selectResult">
|
||||
</umb-tree-search-results>
|
||||
|
||||
</div>
|
||||
<div ng-hide="searchInfo.showSearch" ng-animate="'tree-fade-out'">
|
||||
<umb-tree
|
||||
section="content"
|
||||
treealias="content"
|
||||
hideheader="{{hideHeader}}"
|
||||
hideoptions="true"
|
||||
isdialog="true"
|
||||
customtreeparams="{{customTreeParams}}"
|
||||
eventhandler="dialogTreeEventHandler"
|
||||
enablelistviewsearch="true"
|
||||
enablelistviewexpand="true"
|
||||
enablecheckboxes="{{multiPicker}}">
|
||||
</umb-tree>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<umb-mini-list-view
|
||||
ng-if="miniListView"
|
||||
node="miniListView"
|
||||
entity-type="{{entityType}}"
|
||||
start-node-id="model.startNodeId"
|
||||
on-select="selectListViewNode(node)"
|
||||
on-close="closeMiniListView()">
|
||||
</umb-mini-list-view>
|
||||
|
||||
</div>
|
||||
+19
-16
@@ -7,30 +7,33 @@
|
||||
style="width: 100%"
|
||||
ng-model="searchTerm"
|
||||
class="umb-search-field search-query input-block-level"
|
||||
localize="placeholder"
|
||||
placeholder="@placeholders_filter"
|
||||
umb-auto-focus>
|
||||
localize="placeholder"
|
||||
placeholder="@placeholders_filter"
|
||||
umb-auto-focus
|
||||
no-dirty-check />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="umb-control-group">
|
||||
<small><localize key="contentTypeEditor_compositionsDescription"></localize></small>
|
||||
<localize key="contentTypeEditor_compositionsDescription"></localize>
|
||||
</div>
|
||||
|
||||
<umb-empty-state
|
||||
ng-if="model.availableCompositeContentTypes.length === 0 && model.totalContentTypes <= 1"
|
||||
position="center">
|
||||
<localize key="contentTypeEditor_noAvailableCompositions"></localize>
|
||||
<umb-empty-state ng-if="model.availableCompositeContentTypes.length === 0 && model.totalContentTypes <= 1"
|
||||
position="center">
|
||||
<localize key="contentTypeEditor_noAvailableCompositions"></localize>
|
||||
</umb-empty-state>
|
||||
<umb-empty-state
|
||||
ng-if="model.availableCompositeContentTypes.length === 0 && model.totalContentTypes > 1"
|
||||
position="center">
|
||||
<localize key="contentTypeEditor_compositionInUse"></localize>
|
||||
<umb-empty-state ng-if="model.availableCompositeContentTypes.length === 0 && model.totalContentTypes > 1">
|
||||
<localize key="contentTypeEditor_compositionInUse"></localize>
|
||||
</umb-empty-state>
|
||||
|
||||
<div ng-if="model.availableCompositeContentTypes.length === 0 && model.totalContentTypes > 1 && model.whereCompositionUsed.length > 0">
|
||||
<h5><localize key="contentTypeEditor_compositionUsageHeading"></localize></h5>
|
||||
<p><localize key="contentTypeEditor_compositionUsageSpecification"></localize></p>
|
||||
<ul class="umb-checkbox-list">
|
||||
<li class="umb-checkbox-list__item" ng-repeat="contentTypeEntity in model.whereCompositionUsed"><a ng-click="vm.openContentType(contentTypeEntity.contentType, model.section)"><i class="{{contentTypeEntity.contentType.icon}}"></i> {{contentTypeEntity.contentType.name}}</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<ul class="umb-checkbox-list">
|
||||
<li class="umb-checkbox-list__item"
|
||||
|
||||
ng-repeat="compositeContentType in model.availableCompositeContentTypes | filter:searchTerm"
|
||||
ng-class="{'-disabled': compositeContentType.allowed===false || compositeContentType.inherited, '-selected': vm.isSelected(compositeContentType.contentType.alias)}">
|
||||
|
||||
@@ -41,7 +44,7 @@
|
||||
checklist-model="model.compositeContentTypes"
|
||||
checklist-value="compositeContentType.contentType.alias"
|
||||
ng-change="model.selectCompositeContentType(compositeContentType.contentType)"
|
||||
ng-disabled="compositeContentType.allowed===false || compositeContentType.inherited"/>
|
||||
ng-disabled="compositeContentType.allowed===false || compositeContentType.inherited" />
|
||||
</div>
|
||||
|
||||
<label for="umb-overlay-comp-{{compositeContentType.contentType.key}}" class="umb-checkbox-list__item-text" ng-class="{'-faded': compositeContentType.allowed===false}">
|
||||
@@ -52,4 +55,4 @@
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
+101
-115
@@ -1,117 +1,103 @@
|
||||
<div class="umb-overlay-body" ng-controller="Umbraco.Overlays.EditorPickerOverlay as vm">
|
||||
|
||||
<!-- FILTER -->
|
||||
<div class="umb-control-group -no-border">
|
||||
<div class="form-search">
|
||||
<i class="icon-search"></i>
|
||||
<input type="text"
|
||||
style="width: 100%"
|
||||
ng-change="vm.filterItems()"
|
||||
ng-model="vm.searchTerm"
|
||||
class="umb-search-field search-query search-input input-block-level"
|
||||
localize="placeholder"
|
||||
placeholder="@placeholders_filter"
|
||||
umb-auto-focus>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<umb-load-indicator ng-if="vm.loading"></umb-load-indicator>
|
||||
|
||||
<!-- TABS -->
|
||||
<div ng-if="vm.showTabs">
|
||||
|
||||
<umb-tabs-nav model="vm.tabs"></umb-tabs-nav>
|
||||
|
||||
<umb-tabs-content>
|
||||
|
||||
<umb-tab id="tab{{tab.id}}" ng-repeat="tab in vm.tabs" rel="{{tab.id}}">
|
||||
|
||||
<div ng-if="tab.alias==='Default'">
|
||||
<div ng-repeat="(key,value) in tab.typesAndEditors">
|
||||
<h5>{{key}}</h5>
|
||||
<ul class="umb-card-grid" ng-mouseleave="vm.hideDetailsOverlay()">
|
||||
<li ng-repeat="systemDataType in value | orderBy:'name'"
|
||||
ng-mouseover="vm.showDetailsOverlay(systemDataType)"
|
||||
ng-click="vm.pickEditor(systemDataType)"
|
||||
class="-four-in-row">
|
||||
<a class="umb-card-grid-item" href="" title="{{ systemDataType.name }}">
|
||||
<i class="{{ systemDataType.icon }}" ng-class="{'icon-autofill': systemDataType.icon == null}"></i>
|
||||
{{ systemDataType.name }}
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div ng-if="tab.alias==='Reuse'">
|
||||
<div ng-repeat="(key,value) in tab.userConfigured">
|
||||
<h5>{{key}}</h5>
|
||||
<ul class="umb-card-grid" ng-mouseleave="vm.hideDetailsOverlay()">
|
||||
<li ng-repeat="dataType in value | orderBy:'name'"
|
||||
ng-mouseover="vm.showDetailsOverlay(dataType)"
|
||||
ng-click="vm.pickDataType(dataType)"
|
||||
class="-four-in-row">
|
||||
<a class="umb-card-grid-item" href="" title="{{ dataType.name }}">
|
||||
<i class="{{ dataType.icon }}" ng-class="{'icon-autofill': dataType.icon == null}"></i>
|
||||
{{ dataType.name }}
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</umb-tab>
|
||||
|
||||
</umb-tabs-content>
|
||||
|
||||
</div>
|
||||
|
||||
<!-- FILTER RESULTS -->
|
||||
<div ng-if="vm.showFilterResult">
|
||||
|
||||
<h5 class="-border-bottom -black"><localize key="contentTypeEditor_reuse"></localize></h5>
|
||||
<div ng-repeat="(key,value) in vm.userConfigured">
|
||||
<div ng-if="(value | filter:vm.searchTerm).length > 0">
|
||||
<h5>{{key}}</h5>
|
||||
<ul class="umb-card-grid" ng-mouseleave="vm.hideDetailsOverlay()">
|
||||
<li ng-repeat="dataType in value | orderBy:'name' | filter: vm.searchTerm"
|
||||
ng-mouseover="vm.showDetailsOverlay(dataType)"
|
||||
ng-click="vm.pickDataType(dataType)"
|
||||
class="-four-in-row">
|
||||
<a class="umb-card-grid-item" href="" title="{{ dataType.name }}">
|
||||
<i class="{{ dataType.icon }}" ng-class="{'icon-autofill': dataType.icon == null}"></i>
|
||||
{{ dataType.name }}
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<h5 class="-border-bottom -black"><localize key="contentTypeEditor_availableEditors"></localize></h5>
|
||||
<div ng-repeat="(key,value) in vm.typesAndEditors">
|
||||
<div ng-if="(value | filter:vm.searchTerm).length > 0">
|
||||
<h5>{{key}}</h5>
|
||||
<ul class="umb-card-grid" ng-mouseleave="vm.hideDetailsOverlay()">
|
||||
<li ng-repeat="systemDataType in value | orderBy:'name' | filter: vm.searchTerm"
|
||||
ng-mouseover="vm.showDetailsOverlay(systemDataType)"
|
||||
ng-click="vm.pickEditor(systemDataType)"
|
||||
class="-four-in-row">
|
||||
<a class="umb-card-grid-item" href="" title="{{ systemDataType.name }}">
|
||||
<i class="{{ systemDataType.icon }}" ng-class="{'icon-autofill': systemDataType.icon == null}"></i>
|
||||
{{ systemDataType.name }}
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<umb-overlay
|
||||
ng-if="vm.editorSettingsOverlay.show"
|
||||
model="vm.editorSettingsOverlay"
|
||||
position="right"
|
||||
view="vm.editorSettingsOverlay.view">
|
||||
</umb-overlay>
|
||||
|
||||
<!-- FILTER -->
|
||||
<div class="umb-control-group -no-border">
|
||||
<div class="form-search">
|
||||
<i class="icon-search"></i>
|
||||
<input type="text"
|
||||
style="width: 100%"
|
||||
ng-change="vm.filterItems()"
|
||||
ng-model="vm.searchTerm"
|
||||
class="umb-search-field search-query search-input input-block-level"
|
||||
localize="placeholder"
|
||||
placeholder="@placeholders_filter"
|
||||
umb-auto-focus
|
||||
no-dirty-check />
|
||||
</div>
|
||||
</div>
|
||||
<umb-load-indicator ng-if="vm.loading"></umb-load-indicator>
|
||||
<!-- TABS -->
|
||||
<div ng-if="vm.showTabs">
|
||||
<umb-tabs-nav model="vm.tabs"></umb-tabs-nav>
|
||||
<umb-tabs-content>
|
||||
<umb-tab id="tab{{tab.id}}" ng-repeat="tab in vm.tabs" rel="{{tab.id}}">
|
||||
<div ng-if="tab.alias==='Default'">
|
||||
<div ng-repeat="(key,value) in tab.typesAndEditors">
|
||||
<h5>{{key}}</h5>
|
||||
<ul class="umb-card-grid" ng-mouseleave="vm.hideDetailsOverlay()">
|
||||
<li ng-repeat="systemDataType in value | orderBy:'name'"
|
||||
data-element="editor-{{systemDataType.name}}"
|
||||
ng-mouseover="vm.showDetailsOverlay(systemDataType)"
|
||||
ng-click="vm.pickEditor(systemDataType)"
|
||||
class="-four-in-row">
|
||||
<a class="umb-card-grid-item" href="" title="{{ systemDataType.name }}">
|
||||
<i class="{{ systemDataType.icon }}" ng-class="{'icon-autofill': systemDataType.icon == null}"></i>
|
||||
{{ systemDataType.name }}
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div ng-if="tab.alias==='Reuse'">
|
||||
<div ng-repeat="(key,value) in tab.userConfigured">
|
||||
<h5>{{key}}</h5>
|
||||
<ul class="umb-card-grid" ng-mouseleave="vm.hideDetailsOverlay()">
|
||||
<li ng-repeat="dataType in value | orderBy:'name'"
|
||||
data-element="editor-{{dataType.name}}"
|
||||
ng-mouseover="vm.showDetailsOverlay(dataType)"
|
||||
ng-click="vm.pickDataType(dataType)"
|
||||
class="-four-in-row">
|
||||
<a class="umb-card-grid-item" href="" title="{{ dataType.name }}">
|
||||
<i class="{{ dataType.icon }}" ng-class="{'icon-autofill': dataType.icon == null}"></i>
|
||||
{{ dataType.name }}
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</umb-tab>
|
||||
</umb-tabs-content>
|
||||
</div>
|
||||
<!-- FILTER RESULTS -->
|
||||
<div ng-if="vm.showFilterResult">
|
||||
<h5 class="-border-bottom -black"><localize key="contentTypeEditor_reuse"></localize></h5>
|
||||
<div ng-repeat="(key,value) in vm.userConfigured">
|
||||
<div ng-if="(value | filter:vm.searchTerm).length > 0">
|
||||
<h5>{{key}}</h5>
|
||||
<ul class="umb-card-grid" ng-mouseleave="vm.hideDetailsOverlay()">
|
||||
<li ng-repeat="dataType in value | orderBy:'name' | filter: vm.searchTerm"
|
||||
ng-mouseover="vm.showDetailsOverlay(dataType)"
|
||||
ng-click="vm.pickDataType(dataType)"
|
||||
class="-four-in-row">
|
||||
<a class="umb-card-grid-item" href="" title="{{ dataType.name }}">
|
||||
<i class="{{ dataType.icon }}" ng-class="{'icon-autofill': dataType.icon == null}"></i>
|
||||
{{ dataType.name }}
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<h5 class="-border-bottom -black"><localize key="contentTypeEditor_availableEditors"></localize></h5>
|
||||
<div ng-repeat="(key,value) in vm.typesAndEditors">
|
||||
<div ng-if="(value | filter:vm.searchTerm).length > 0">
|
||||
<h5>{{key}}</h5>
|
||||
<ul class="umb-card-grid" ng-mouseleave="vm.hideDetailsOverlay()">
|
||||
<li ng-repeat="systemDataType in value | orderBy:'name' | filter: vm.searchTerm"
|
||||
ng-mouseover="vm.showDetailsOverlay(systemDataType)"
|
||||
ng-click="vm.pickEditor(systemDataType)"
|
||||
class="-four-in-row">
|
||||
<a class="umb-card-grid-item" href="" title="{{ systemDataType.name }}">
|
||||
<i class="{{ systemDataType.icon }}" ng-class="{'icon-autofill': systemDataType.icon == null}"></i>
|
||||
{{ systemDataType.name }}
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<umb-overlay ng-if="vm.editorSettingsOverlay.show"
|
||||
data-element="overlay-editor-settings"
|
||||
model="vm.editorSettingsOverlay"
|
||||
position="right"
|
||||
view="vm.editorSettingsOverlay.view">
|
||||
</umb-overlay>
|
||||
</div>
|
||||
|
||||
+21
-20
@@ -1,21 +1,22 @@
|
||||
<div class="umb-control-group" ng-if="model.dataType.id !== 0">
|
||||
<i class="icon-alert red"></i>
|
||||
<strong class="red"><localize key="contentTypeEditor_allDocumentTypes"></localize></strong> using this editor will get updated with the new settings.
|
||||
<div>
|
||||
|
||||
<div class="umb-control-group" ng-if="model.dataType.id !== 0">
|
||||
<i class="icon-alert red"></i>
|
||||
<strong class="red"><localize key="contentTypeEditor_allDocumentTypes"></localize></strong> using this editor will get updated with the new settings.
|
||||
</div>
|
||||
|
||||
<div class="control-group umb-control-group">
|
||||
<div class="umb-el-wrap">
|
||||
<div class="controls">
|
||||
<input type="text" ng-model="model.dataType.name" class="umb-editor" umb-auto-focus focus-on-filled="true" required />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<h5><localize key="contentTypeEditor_configuration"></localize></h5>
|
||||
|
||||
<umb-property property="preValue" ng-repeat="preValue in model.dataType.preValues">
|
||||
<umb-editor model="preValue" is-pre-value="true"></umb-editor>
|
||||
</umb-property>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="control-group umb-control-group">
|
||||
<div class="umb-el-wrap">
|
||||
<label class="control-label" for="dataTypeName">
|
||||
<localize key="name"></localize>
|
||||
</label>
|
||||
<div class="controls">
|
||||
<input type="text" ng-model="model.dataType.name" class="umb-editor" umb-auto-focus focus-on-filled="true" required />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<h5><localize key="contentTypeEditor_configuration"></localize></h5>
|
||||
|
||||
<umb-property property="preValue" ng-repeat="preValue in model.dataType.preValues">
|
||||
<umb-editor model="preValue" is-pre-value="true"></umb-editor>
|
||||
</umb-property>
|
||||
|
||||
+27
-14
@@ -1,8 +1,9 @@
|
||||
<div class="content-type-editor-dialog edit-property-settings" ng-controller="Umbraco.Overlay.PropertySettingsOverlay as vm">
|
||||
|
||||
<div class="umb-control-group">
|
||||
<div class="umb-control-group" ng-if="!model.property.locked">
|
||||
<div class="control-group">
|
||||
<textarea class="editor-label"
|
||||
data-element="property-name"
|
||||
name="propertyLabel"
|
||||
ng-model="model.property.label"
|
||||
localize="placeholder"
|
||||
@@ -22,6 +23,7 @@
|
||||
|
||||
<div class="umb-control-group control-group">
|
||||
<textarea
|
||||
data-element="property-description"
|
||||
class="editor-description"
|
||||
ng-model="model.property.description"
|
||||
localize="placeholder"
|
||||
@@ -31,9 +33,9 @@
|
||||
</textarea>
|
||||
</div>
|
||||
|
||||
<div class="editor-wrapper umb-control-group control-group" ng-model="model.property.editor" val-require-component>
|
||||
<div class="editor-wrapper umb-control-group control-group" ng-model="model.property.editor" val-require-component ng-if="!model.property.locked">
|
||||
|
||||
<a href="" ng-if="!model.property.editor" class="editor-placeholder" hotkey="alt+shift+e" ng-click="vm.openEditorPickerOverlay(model.property)">
|
||||
<a data-element="editor-add" href="" ng-if="!model.property.editor" class="editor-placeholder" hotkey="alt+shift+e" ng-click="vm.openEditorPickerOverlay(model.property)">
|
||||
<localize key="shortcuts_addEditor"></localize>
|
||||
</a>
|
||||
|
||||
@@ -59,7 +61,7 @@
|
||||
|
||||
</div>
|
||||
|
||||
<div class="umb-control-group clearfix">
|
||||
<div class="umb-control-group clearfix" ng-if="!model.property.locked">
|
||||
|
||||
<h5><localize key="validation_validation"></localize></h5>
|
||||
|
||||
@@ -69,12 +71,13 @@
|
||||
</label>
|
||||
|
||||
<select class="umb-dropdown" ng-options="validationType.name for validationType in vm.validationTypes" ng-model="vm.selectedValidationType" ng-change="vm.changeValidationType(vm.selectedValidationType)">
|
||||
<option value="">Validation</option>
|
||||
<option value=""><localize key="validation_validation">Validation</localize></option>
|
||||
</select>
|
||||
|
||||
<textarea
|
||||
class="editor-validation-pattern"
|
||||
placeholder="Enter a regular expression"
|
||||
localize="placeholder"
|
||||
placeholder="@validation_validationRegExp"
|
||||
ng-model="model.property.validation.pattern"
|
||||
ng-change="vm.changeValidationPattern()"
|
||||
ng-if="vm.showValidationPattern"
|
||||
@@ -87,21 +90,30 @@
|
||||
|
||||
<div class="umb-control-group clearfix" ng-if="model.contentType === 'memberType'">
|
||||
|
||||
<h5><localize key="general_rights"></localize></h5>
|
||||
|
||||
<h5><localize key="general_options"></localize></h5>
|
||||
|
||||
<label class="checkbox no-indent">
|
||||
<input type="checkbox" ng-model="model.property.showOnMemberProfile">
|
||||
<localize key="contentTypeEditor_showOnMemberProfile"></localize>
|
||||
<input type="checkbox" ng-model="model.property.showOnMemberProfile">
|
||||
<localize key="contentTypeEditor_showOnMemberProfile"></localize>
|
||||
<small><localize key="contentTypeEditor_showOnMemberProfileDescription"></localize></small>
|
||||
</label>
|
||||
|
||||
<label class="checkbox no-indent">
|
||||
<input type="checkbox" ng-model="model.property.memberCanEdit">
|
||||
<localize key="contentTypeEditor_memberCanEdit"></localize>
|
||||
</label>
|
||||
<label class="checkbox no-indent">
|
||||
<input type="checkbox" ng-model="model.property.memberCanEdit">
|
||||
<localize key="contentTypeEditor_memberCanEdit"></localize>
|
||||
<small><localize key="contentTypeEditor_memberCanEditDescription"></localize></small>
|
||||
</label>
|
||||
|
||||
<label ng-if="vm.showSensitiveData" class="checkbox no-indent">
|
||||
<input type="checkbox" ng-model="model.property.isSensitiveData">
|
||||
<localize key="contentTypeEditor_isSensitiveData"></localize>
|
||||
<small><localize key="contentTypeEditor_isSensitiveDataDescription"></localize></small>
|
||||
</label>
|
||||
|
||||
</div>
|
||||
|
||||
<umb-overlay
|
||||
data-element="overlay-editor-picker"
|
||||
ng-if="vm.editorPickerOverlay.show"
|
||||
model="vm.editorPickerOverlay"
|
||||
position="right"
|
||||
@@ -109,6 +121,7 @@
|
||||
</umb-overlay>
|
||||
|
||||
<umb-overlay
|
||||
data-element="overlay-editor-settings"
|
||||
ng-if="vm.editorSettingsOverlay.show"
|
||||
model="vm.editorSettingsOverlay"
|
||||
position="right"
|
||||
|
||||
@@ -1,34 +1,47 @@
|
||||
<div ng-controller="Umbraco.Overlays.CopyOverlay as vm">
|
||||
|
||||
<div class="umb-control-group">
|
||||
<umb-tree-search-box
|
||||
hide-search-callback="vm.hideSearch"
|
||||
search-callback="vm.onSearchResults"
|
||||
search-from-id="{{vm.searchInfo.searchFromId}}"
|
||||
search-from-name="{{vm.searchInfo.searchFromName}}"
|
||||
show-search="{{vm.searchInfo.showSearch}}"
|
||||
section="{{model.section}}">
|
||||
</umb-tree-search-box>
|
||||
</div>
|
||||
<div ng-hide="miniListView">
|
||||
<div class="umb-control-group">
|
||||
<umb-tree-search-box
|
||||
hide-search-callback="vm.hideSearch"
|
||||
search-callback="vm.onSearchResults"
|
||||
search-from-id="{{vm.searchInfo.searchFromId}}"
|
||||
search-from-name="{{vm.searchInfo.searchFromName}}"
|
||||
show-search="{{vm.searchInfo.showSearch}}"
|
||||
section="{{model.section}}">
|
||||
</umb-tree-search-box>
|
||||
</div>
|
||||
|
||||
<div class="umb-control-group" ng-show="vm.searchInfo.showSearch">
|
||||
<umb-tree-search-results
|
||||
ng-if="vm.searchInfo.showSearch"
|
||||
results="vm.searchInfo.results"
|
||||
select-result-callback="vm.selectResult">
|
||||
</umb-tree-search-results>
|
||||
</div>
|
||||
<div class="umb-control-group" ng-show="vm.searchInfo.showSearch">
|
||||
<umb-tree-search-results
|
||||
ng-if="vm.searchInfo.showSearch"
|
||||
results="vm.searchInfo.results"
|
||||
select-result-callback="vm.selectResult">
|
||||
</umb-tree-search-results>
|
||||
</div>
|
||||
|
||||
<div class="umb-control-group -no-border" ng-hide="vm.searchInfo.showSearch">
|
||||
<umb-tree
|
||||
section="{{model.section}}"
|
||||
hideheader="false"
|
||||
hideoptions="true"
|
||||
isdialog="true"
|
||||
eventhandler="dialogTreeEventHandler"
|
||||
enablelistviewexpand="true"
|
||||
enablecheckboxes="true">
|
||||
</umb-tree>
|
||||
</div>
|
||||
|
||||
<div class="umb-control-group -no-border" ng-hide="vm.searchInfo.showSearch">
|
||||
<umb-tree
|
||||
section="{{model.section}}"
|
||||
hideheader="false"
|
||||
hideoptions="true"
|
||||
isdialog="true"
|
||||
eventhandler="dialogTreeEventHandler"
|
||||
enablecheckboxes="true">
|
||||
</umb-tree>
|
||||
</div>
|
||||
|
||||
<div ng-if="miniListView" class="umb-control-group">
|
||||
<umb-mini-list-view
|
||||
node="miniListView"
|
||||
entity-type="{{entityType}}"
|
||||
on-select="selectListViewNode(node)"
|
||||
on-close="closeMiniListView()">
|
||||
</umb-mini-list-view>
|
||||
</div>
|
||||
|
||||
<div class="umb-control-group -no-border">
|
||||
<label>
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
<form ng-controller="Umbraco.Overlays.EmbedOverlay as vm">
|
||||
|
||||
<umb-control-group label="Url">
|
||||
<umb-control-group label="@general_url">
|
||||
<input id="url" class="umb-editor input-block-level" type="text" style="margin-bottom: 10px;" ng-model="model.embed.url" ng-keyup="$event.keyCode == 13 ? vm.showPreview() : null" required />
|
||||
<input type="button" ng-click="vm.showPreview()" class="btn" value="Retrieve" />
|
||||
<input type="button" ng-click="vm.showPreview()" class="btn" value="@general_retrieve" localize="value" />
|
||||
</umb-control-group>
|
||||
|
||||
<umb-control-group>
|
||||
@@ -11,16 +11,16 @@
|
||||
</umb-control-group>
|
||||
|
||||
<div ng-show="model.embed.supportsDimensions">
|
||||
<umb-control-group label="Width">
|
||||
<input type="text" ng-model="model.embed.width" on-blur="vm.changeSize('width')" />
|
||||
<umb-control-group label="@general_width">
|
||||
<input type="number" pattern="[0-9]*" min="0" ng-model="model.embed.width" on-blur="vm.changeSize('width')" />
|
||||
</umb-control-group>
|
||||
|
||||
<umb-control-group label="Height">
|
||||
<input type="text" ng-model="model.embed.height" on-blur="vm.changeSize('height')" />
|
||||
<umb-control-group label="@general_height">
|
||||
<input type="number" pattern="[0-9]*" min="0" ng-model="model.embed.height" on-blur="vm.changeSize('height')" />
|
||||
</umb-control-group>
|
||||
|
||||
<umb-control-group label="Constrain:">
|
||||
<input id="constrain" type="checkbox" ng-model="model.embed.constrain" />
|
||||
<umb-control-group label="@general_constrain">
|
||||
<input id="constrain" type="checkbox" ng-model="model.embed.constrain" />
|
||||
</umb-control-group>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -15,8 +15,8 @@
|
||||
<ul class="unstyled list-icons">
|
||||
<li>
|
||||
<i class="icon icon-favorite"></i>
|
||||
<a target="_blank" href="http://our.umbraco.org?utm_source=core&utm_medium=help&utm_content=link&utm_campaign=our">
|
||||
<localize key="help_goTo">go to</localize> our.umbraco.org
|
||||
<a target="_blank" href="https://our.umbraco.com?utm_source=core&utm_medium=help&utm_content=link&utm_campaign=our">
|
||||
<localize key="help_goTo">go to</localize> our.umbraco.com
|
||||
</a>
|
||||
<small class="umb-detail">
|
||||
<localize key="defaultdialogs_theFriendliestCommunity">The friendliest community</localize>
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
|
||||
|
||||
<div ng-controller="Umbraco.Overlays.IconPickerOverlay">
|
||||
|
||||
<div class="umb-control-group">
|
||||
@@ -10,38 +12,19 @@
|
||||
localize="placeholder"
|
||||
placeholder="@placeholders_filter"
|
||||
umb-auto-focus
|
||||
no-dirty-check>
|
||||
no-dirty-check />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="umb-control-group">
|
||||
<select ng-model="color" class="input-block-level">
|
||||
<option value="">
|
||||
<localize key="color_black">Black</localize>
|
||||
</option>
|
||||
<option value="color-green">
|
||||
<localize key="color_green">Green</localize>
|
||||
</option>
|
||||
<option value="color-yellow">
|
||||
<localize key="color_yellow">Yellow</localize>
|
||||
</option>
|
||||
<option value="color-orange">
|
||||
<localize key="color_orange">Orange</localize>
|
||||
</option>
|
||||
<option value="color-blue">
|
||||
<localize key="color_blue">Blue</localize>
|
||||
</option>
|
||||
<option value="color-red">
|
||||
<localize key="color_red">Red</localize>
|
||||
</option>
|
||||
</select>
|
||||
<umb-color-swatches colors="colors" selected-color="color" size="s"></umb-color-swatches>
|
||||
</div>
|
||||
|
||||
<umb-load-indicator ng-if="loading"></umb-load-indicator>
|
||||
|
||||
<div class="umb-control-group" ng-show="!loading && filtered.length > 0 ">
|
||||
<ul class="umb-iconpicker" ng-class="color" ng-show="icons">
|
||||
<li class="umb-iconpicker-item" ng-repeat="icon in filtered = (icons | filter: searchTerm) track by $id(icon)">
|
||||
<li class="umb-iconpicker-item" ng-class="{'-selected': icon == model.icon}" ng-repeat="icon in filtered = (icons | filter: searchTerm) track by $id(icon)">
|
||||
<a href="#" title="{{icon}}" ng-click="selectIcon(icon, color)" prevent-default>
|
||||
<i class="{{icon}} large"></i>
|
||||
</a>
|
||||
|
||||
@@ -0,0 +1,46 @@
|
||||
<div ng-controller="Umbraco.Overlays.InsertOverlay as vm">
|
||||
<div class="umb-insert-code-boxes">
|
||||
<div ng-if="model.allowedTypes.umbracoField" class="umb-insert-code-box" ng-click="vm.openPageFieldOverlay()">
|
||||
<div class="umb-insert-code-box__title"><localize key="template_insertPageField" /></div>
|
||||
<div class="umb-insert-code-box__description"><localize key="template_insertPageFieldDesc" /></div>
|
||||
</div>
|
||||
<div ng-if="model.allowedTypes.partial" class="umb-insert-code-box" ng-click="vm.openPartialOverlay()">
|
||||
<div class="umb-insert-code-box__title"><localize key="template_insertPartialView" /></div>
|
||||
<div class="umb-insert-code-box__description">
|
||||
<localize key="template_insertPartialViewDesc" />
|
||||
</div>
|
||||
</div>
|
||||
<div ng-if="model.allowedTypes.macro" class="umb-insert-code-box" ng-click="vm.openMacroPicker()">
|
||||
<div class="umb-insert-code-box__title"><localize key="template_insertMacro" /></div>
|
||||
<div class="umb-insert-code-box__description">
|
||||
<localize key="template_insertMacroDesc" />
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div ng-if="model.allowedTypes.dictionary" class="umb-insert-code-box" ng-click="vm.openDictionaryItemOverlay()">
|
||||
<div class="umb-insert-code-box__title"><localize key="template_insertDictionaryItem" /></div>
|
||||
<div class="umb-insert-code-box__description"><localize key="template_insertDictionaryItemDesc" /></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<umb-overlay ng-if="vm.macroPickerOverlay.show"
|
||||
model="vm.macroPickerOverlay"
|
||||
view="vm.macroPickerOverlay.view"
|
||||
position="right">
|
||||
</umb-overlay>
|
||||
<umb-overlay ng-if="vm.pageFieldOverlay.show"
|
||||
model="vm.pageFieldOverlay"
|
||||
position="right"
|
||||
view="vm.pageFieldOverlay.view">
|
||||
</umb-overlay>
|
||||
<umb-overlay ng-if="vm.dictionaryItemOverlay.show"
|
||||
model="vm.dictionaryItemOverlay"
|
||||
position="right"
|
||||
view="vm.dictionaryItemOverlay.view">
|
||||
</umb-overlay>
|
||||
<umb-overlay ng-if="vm.partialItemOverlay.show"
|
||||
model="vm.partialItemOverlay"
|
||||
view="vm.partialItemOverlay.view"
|
||||
position="right">
|
||||
</umb-overlay>
|
||||
</div>
|
||||
@@ -0,0 +1,184 @@
|
||||
<div ng-controller="Umbraco.Overlays.InsertFieldController as vm">
|
||||
|
||||
<!-- select field -->
|
||||
<div class="control-group umb-control-group -no-border">
|
||||
<div class="umb-el-wrap">
|
||||
<label class="control-label" for="chooseField"><localize key="templateEditor_chooseField">Choose field</localize></label>
|
||||
<div class="controls">
|
||||
<select ng-model="vm.field">
|
||||
<optgroup localize="label" label="@templateEditor_customFields">
|
||||
<option ng-repeat="(key, value) in vm.properties" value="{{value}}">{{value}}</option>
|
||||
</optgroup>
|
||||
<optgroup localize="label" label="@templateEditor_standardFields">
|
||||
<option ng-repeat="(key, value) in vm.standardFields" value="{{value}}">{{value}}</option>
|
||||
</optgroup>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="advanced" style="position:relative">
|
||||
|
||||
<!-- Overlay -->
|
||||
<div class="hideAdvanced" style="position:absolute;height:100%;width:100%;background-color:white;opacity:.7;" ng-hide="vm.field"></div>
|
||||
|
||||
<!-- Fallback field -->
|
||||
<div>
|
||||
<i class="icon icon-add blue" ng-hide="vm.showAltField"></i>
|
||||
<a href="" ng-click="vm.showAltField=true" ng-hide="vm.showAltField"><localize key="templateEditor_addFallbackField">Add fallback field</localize></a>
|
||||
|
||||
<div class="control-group umb-control-group -no-border" ng-hide="!vm.showAltField">
|
||||
<div class="umb-el-wrap">
|
||||
<label class="control-label" for="altField"><localize key="templateEditor_fallbackField">Fallback field</localize></label>
|
||||
<div class="controls">
|
||||
<select ng-model="vm.altField" id="altField">
|
||||
<optgroup localize="label" label="@templateEditor_customFields">
|
||||
<option ng-repeat="(key, value) in vm.properties" value="{{value}}">{{value}}</option>
|
||||
</optgroup>
|
||||
<optgroup localize="label" label="@templateEditor_standardFields">
|
||||
<option ng-repeat="(key, value) in vm.standardFields" value="{{value}}">{{value}}</option>
|
||||
</optgroup>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Default value -->
|
||||
<div>
|
||||
<div style="margin-bottom: 20px;">
|
||||
<i class="icon icon-add blue" ng-hide="vm.showAltText"></i>
|
||||
<a href="" ng-click="vm.showAltText=true" ng-hide="vm.showAltText"><localize key="templateEditor_addDefaultValue">Add default value</localize></a>
|
||||
</div>
|
||||
|
||||
<div class="control-group umb-control-group -no-border" ng-hide="!vm.showAltText">
|
||||
<div class="umb-el-wrap">
|
||||
<label class="control-label" for="altText"><localize key="templateEditor_defaultValue">Default value</localize></label>
|
||||
<div class="controls">
|
||||
<input type="text" id="altText" name="altText" ng-model="vm.altText" umb-auto-focus>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Recursive -->
|
||||
<div class="control-group umb-control-group">
|
||||
<div class="umb-el-wrap">
|
||||
<div class="controls">
|
||||
<label>
|
||||
<localize key="templateEditor_recursive">Recursive</localize>
|
||||
<input id="recursive" type="checkbox" name="recursive" ng-model="vm.recursive">
|
||||
<localize key="templateEditor_recursiveDescr">Yes, make it recursive</localize>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<h5><localize key="templateEditor_formatAndEncoding">Format and encoding</localize></h5>
|
||||
|
||||
<!-- Format as date -->
|
||||
<div class="control-group umb-control-group">
|
||||
<div class="umb-el-wrap">
|
||||
<div class="controls">
|
||||
<div>
|
||||
<label class="control-label">
|
||||
<localize key="templateEditor_formatAsDate">Format as date</localize>
|
||||
<small><localize key="templateEditor_formatAsDateDescr">Format the value as a date, or a date with time, accoring to the active culture</localize>.</small>
|
||||
</label>
|
||||
</div>
|
||||
<a href ng-click="vm.setDateOption('date')" class="btn"><i class="icon icon-check" ng-if="vm.date"></i> <localize key="templateEditor_dateOnly">Date only</localize></a>
|
||||
<a href ng-click="vm.setDateOption('dateWithTime')" class="btn"><i class="icon icon-check" ng-if="vm.dateTime"></i> <localize key="templateEditor_withTime">Date and time</localize></a>
|
||||
<input type="text" ng-model="vm.dateTimeSeparator" ng-hide="!vm.dateTime" localize="placeholder" placeholder="@templateEditor_separator">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Format casing -->
|
||||
<div class="control-group umb-control-group">
|
||||
<div class="umb-el-wrap">
|
||||
<div class="controls">
|
||||
<div>
|
||||
<label class="control-label">
|
||||
<localize key="templateEditor_casing">Casing</localize>
|
||||
</label>
|
||||
</div>
|
||||
<a href ng-click="vm.setCasingOption('uppercase')" class="btn" style="text-transform: uppercase;"><i class="icon icon-check" ng-if="vm.casingUpper"></i> <localize key="templateEditor_uppercase">Uppercase</localize></a>
|
||||
<a href ng-click="vm.setCasingOption('lowercase')" class="btn"style="text-transform: lowercase;"><i class="icon icon-check" ng-if="vm.casingLower"></i> <localize key="templateEditor_lowercase">Lowercase</localize></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Format encoding -->
|
||||
<div class="control-group umb-control-group">
|
||||
<div class="umb-el-wrap">
|
||||
<div class="controls">
|
||||
<div>
|
||||
<label class="control-label">
|
||||
<localize key="templateEditor_encoding">Encoding</localize>
|
||||
<small><localize key="templateEditor_urlEncodeHelp">Will format special characters in URLs</localize></small>
|
||||
</label>
|
||||
</div>
|
||||
<a href ng-click="vm.setEncodingOption('html')" class="btn"><i class="icon icon-check" ng-if="vm.encodeHtml"></i> HTML</a>
|
||||
<a href ng-click="vm.setEncodingOption('url')" class="btn"><i class="icon icon-check" ng-if="vm.encodeUrl"></i> URL</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<h5><localize key="templateEditor_modifyOutput">Modify output</localize></h5>
|
||||
|
||||
<!-- Insert Before -->
|
||||
<div class="control-group umb-control-group -no-border ng-scope">
|
||||
<div class="umb-el-wrap">
|
||||
<label class="control-label" for="insertBefore">
|
||||
<localize key="templateEditor_preContent">Insert before field</localize>
|
||||
<small><localize key="templateEditor_insertedBefore">Will be inserted before the field value</localize></small>
|
||||
</label>
|
||||
<div class="controls">
|
||||
<input type="text" id="insertBefore" name="insertBefore" class="-full-width-input" ng-model="vm.insertBefore">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Insert after -->
|
||||
<div class="control-group umb-control-group">
|
||||
<div class="umb-el-wrap">
|
||||
<label class="control-label" for="insertAfter">
|
||||
<localize key="templateEditor_postContent">Insert after field</localize>
|
||||
<small><localize key="templateEditor_insertedAfter">Will be inserted after the field value</localize></small>
|
||||
</label>
|
||||
<div class="controls">
|
||||
<input type="text" id="insertAfter" name="insertAfter" class="-full-width-input" ng-model="vm.insertAfter">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Line breaks -->
|
||||
<div class="control-group umb-control-group">
|
||||
<div class="umb-el-wrap">
|
||||
<div class="controls">
|
||||
<label>
|
||||
<span class="control-label">
|
||||
<localize key="templateEditor_convertLineBreaks">Convert line breaks</localize>
|
||||
<small><localize key="templateEditor_convertLineBreaksHelp">Replaces line breaks with break html tag</localize></small>
|
||||
</span>
|
||||
<input type="checkbox" id="linebreaks" name="linebreaks" ng-model="vm.convertLinebreaks">
|
||||
<localize key="templateEditor_convertLineBreaksDescription">Yes, convert line breaks</localize>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Output -->
|
||||
<div class="control-group umb-control-group -no-border">
|
||||
<div class="umb-el-wrap">
|
||||
<div class="controls">
|
||||
<label class="control-label"><localize key="templateEditor_outputSample">Output sample</localize></label>
|
||||
<pre>{{ vm.generateOutputSample() }}</pre>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@@ -1,26 +1,25 @@
|
||||
<div ng-controller="Umbraco.Overlays.ItemPickerOverlay">
|
||||
|
||||
<div class="form-search" ng-hide="model.filter === false">
|
||||
<i class="icon-search"></i>
|
||||
<input type="text"
|
||||
style="width: 100%"
|
||||
ng-model="searchTerm"
|
||||
class="umb-search-field search-query input-block-level"
|
||||
localize="placeholder"
|
||||
placeholder="@placeholders_filter"
|
||||
umb-auto-focus />
|
||||
<div class="form-search" ng-hide="model.filter === false" style="margin-bottom: 15px;">
|
||||
<i class="icon-search"></i>
|
||||
<input type="text"
|
||||
ng-model="searchTerm"
|
||||
class="umb-search-field search-query input-block-level -full-width-input"
|
||||
localize="placeholder"
|
||||
placeholder="@placeholders_filter"
|
||||
umb-auto-focus
|
||||
no-dirty-check />
|
||||
</div>
|
||||
|
||||
<ul class="umb-card-grid">
|
||||
<li
|
||||
ng-repeat="availableItem in model.availableItems | compareArrays:model.selectedItems:'alias' | orderBy:'name' | filter:searchTerm"
|
||||
ng-click="selectItem(availableItem)"
|
||||
class="-three-in-row">
|
||||
<a class="umb-card-grid-item" href="" title="{{ availableItem.name }}">
|
||||
<i class="{{ availableItem.icon }}"></i>
|
||||
{{ availableItem.name }}
|
||||
</a>
|
||||
</li>
|
||||
<li ng-repeat="availableItem in model.availableItems | compareArrays:model.selectedItems:'alias' | orderBy:'name' | filter:searchTerm"
|
||||
ng-click="selectItem(availableItem)"
|
||||
class="-three-in-row">
|
||||
<a class="umb-card-grid-item" href="" title="{{ availableItem.name }}">
|
||||
<i class="{{ availableItem.icon }}"></i>
|
||||
{{ availableItem.name }}
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -1,25 +1,41 @@
|
||||
<div ng-controller="Umbraco.Overlays.LinkPickerController">
|
||||
|
||||
<umb-control-group label="@content_urls">
|
||||
<umb-control-group label="@defaultdialogs_urlLinkPicker" class="umb-property--pull">
|
||||
<input type="text"
|
||||
localize="placeholder"
|
||||
placeholder="@general_url"
|
||||
class="umb-editor umb-textstring"
|
||||
ng-model="model.target.url"
|
||||
ng-disabled="model.target.id"/>
|
||||
localize="placeholder"
|
||||
placeholder="@general_url"
|
||||
class="umb-editor umb-textstring"
|
||||
ng-model="model.target.url"
|
||||
ng-disabled="model.target.id || model.target.udi" />
|
||||
</umb-control-group>
|
||||
|
||||
<umb-control-group label="@content_nodeName">
|
||||
<umb-control-group label="@defaultdialogs_anchorLinkPicker" class="umb-property--push">
|
||||
<input type="text"
|
||||
localize="placeholder"
|
||||
placeholder="@placeholders_entername"
|
||||
class="umb-editor umb-textstring"
|
||||
ng-model="model.target.name" />
|
||||
list="anchors"
|
||||
localize="placeholder"
|
||||
placeholder="@placeholders_anchor"
|
||||
class="umb-editor umb-textstring"
|
||||
ng-model="model.target.anchor" />
|
||||
|
||||
<datalist id="anchors">
|
||||
<option value="{{a}}" ng-repeat="a in anchorValues"></option>
|
||||
</datalist>
|
||||
</umb-control-group>
|
||||
|
||||
<umb-control-group label="@content_target">
|
||||
<umb-control-group label="@defaultdialogs_nodeNameLinkPicker">
|
||||
<input type="text"
|
||||
localize="placeholder"
|
||||
placeholder="@placeholders_entername"
|
||||
class="umb-editor umb-textstring"
|
||||
ng-model="model.target.name" />
|
||||
</umb-control-group>
|
||||
|
||||
<umb-control-group ng-if="showTarget" label="@content_target">
|
||||
<label class="checkbox no-indent">
|
||||
<input type="checkbox" ng-model="model.target.target" ng-true-value="_blank" ng-false-value="" /> <localize key="defaultdialogs_openInNewWindow">Opens the linked document in a new window or tab</localize>
|
||||
<input type="checkbox"
|
||||
ng-model="model.target.target"
|
||||
ng-true-value="_blank"
|
||||
ng-false-value="" /> <localize key="defaultdialogs_openInNewWindow">Opens the linked document in a new window or tab</localize>
|
||||
</label>
|
||||
</umb-control-group>
|
||||
|
||||
@@ -28,34 +44,41 @@
|
||||
<localize key="defaultdialogs_linkToPage">Link to page</localize>
|
||||
</h5>
|
||||
|
||||
<umb-tree-search-box
|
||||
hide-search-callback="hideSearch"
|
||||
search-callback="onSearchResults"
|
||||
search-from-id="{{searchInfo.searchFromId}}"
|
||||
search-from-name="{{searchInfo.searchFromName}}"
|
||||
show-search="{{searchInfo.showSearch}}"
|
||||
section="{{section}}">
|
||||
</umb-tree-search-box>
|
||||
<div ng-hide="miniListView">
|
||||
<umb-tree-search-box hide-search-callback="hideSearch"
|
||||
search-callback="onSearchResults"
|
||||
search-from-id="{{searchInfo.searchFromId}}"
|
||||
search-from-name="{{searchInfo.searchFromName}}"
|
||||
show-search="{{searchInfo.showSearch}}"
|
||||
section="{{section}}">
|
||||
</umb-tree-search-box>
|
||||
|
||||
<br/>
|
||||
<br />
|
||||
|
||||
<umb-tree-search-results
|
||||
ng-if="searchInfo.showSearch"
|
||||
results="searchInfo.results"
|
||||
select-result-callback="selectResult">
|
||||
</umb-tree-search-results>
|
||||
<umb-tree-search-results ng-if="searchInfo.showSearch"
|
||||
results="searchInfo.results"
|
||||
select-result-callback="selectResult">
|
||||
</umb-tree-search-results>
|
||||
|
||||
<div ng-hide="searchInfo.showSearch">
|
||||
<umb-tree
|
||||
section="content"
|
||||
hideheader="true"
|
||||
hideoptions="true"
|
||||
eventhandler="dialogTreeEventHandler"
|
||||
isdialog="true"
|
||||
enablecheckboxes="true">
|
||||
</umb-tree>
|
||||
<div ng-hide="searchInfo.showSearch">
|
||||
<umb-tree section="content"
|
||||
hideheader="true"
|
||||
hideoptions="true"
|
||||
eventhandler="dialogTreeEventHandler"
|
||||
enablelistviewexpand="true"
|
||||
isdialog="true"
|
||||
enablecheckboxes="true">
|
||||
</umb-tree>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<umb-mini-list-view ng-if="miniListView"
|
||||
node="miniListView"
|
||||
entity-type="Document"
|
||||
on-select="selectListViewNode(node)"
|
||||
on-close="closeMiniListView()">
|
||||
</umb-mini-list-view>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="umb-control-group">
|
||||
@@ -67,11 +90,10 @@
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<umb-overlay
|
||||
ng-if="mediaPickerOverlay.show"
|
||||
model="mediaPickerOverlay"
|
||||
view="mediaPickerOverlay.view"
|
||||
position="right">
|
||||
<umb-overlay ng-if="mediaPickerOverlay.show"
|
||||
model="mediaPickerOverlay"
|
||||
view="mediaPickerOverlay.view"
|
||||
position="right">
|
||||
</umb-overlay>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -2,17 +2,39 @@
|
||||
|
||||
<div ng-switch="wizardStep">
|
||||
|
||||
<umb-control-group label="Choose a macro" ng-switch-when="macroSelect">
|
||||
<select class="umb-editor" ng-change="changeMacro()"
|
||||
name="selectedMacro"
|
||||
ng-model="model.selectedMacro"
|
||||
ng-options="m as m.name for m in macros"
|
||||
required>
|
||||
<option value=""><localize key="choose" />...</option>
|
||||
</select>
|
||||
<span class="help-inline" val-msg-for="selectedMacro" val-toggle-msg="required"><localize key="required" /></span>
|
||||
</umb-control-group>
|
||||
|
||||
<div ng-switch-when="macroSelect">
|
||||
|
||||
<div class="form-search">
|
||||
<i class="icon-search"></i>
|
||||
<input type="text"
|
||||
style="width: 100%"
|
||||
ng-model="searchTerm"
|
||||
class="umb-search-field search-query input-block-level"
|
||||
localize="placeholder"
|
||||
placeholder="@placeholders_filter"
|
||||
umb-auto-focus
|
||||
no-dirty-check />
|
||||
</div>
|
||||
|
||||
<ul class="umb-card-grid">
|
||||
<li ng-repeat="availableItem in macros | orderBy:'name' | filter:searchTerm"
|
||||
ng-click="selectMacro(availableItem)"
|
||||
class="-three-in-row">
|
||||
<a class="umb-card-grid-item" href="" title="{{ availableItem.name }}">
|
||||
<i class="icon-settings-alt"></i>
|
||||
{{ availableItem.name }}
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<umb-empty-state ng-if="nomacros"
|
||||
position="center">
|
||||
<localize key="defaultdialogs_noMacros">
|
||||
There are no macros available to insert
|
||||
</localize>
|
||||
</umb-empty-state>
|
||||
</div>
|
||||
|
||||
<div ng-switch-when="paramSelect">
|
||||
|
||||
@@ -30,9 +52,8 @@
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<umb-empty-state
|
||||
ng-if="noMacroParams"
|
||||
position="center">
|
||||
<umb-empty-state ng-if="noMacroParams"
|
||||
position="center">
|
||||
<localize key="defaultdialogs_noMacroParams">There are no parameters for this macro</localize>
|
||||
</umb-empty-state>
|
||||
|
||||
|
||||
@@ -3,140 +3,149 @@
|
||||
enctype="multipart/form-data"
|
||||
umb-image-upload="options">
|
||||
|
||||
<div
|
||||
on-drag-leave="dragLeave()"
|
||||
on-drag-end="dragLeave()"
|
||||
on-drag-enter="dragEnter()">
|
||||
<div on-drag-leave="dragLeave()"
|
||||
on-drag-end="dragLeave()"
|
||||
on-drag-enter="dragEnter()">
|
||||
|
||||
<div class="umb-control-group umb-mediapicker-upload">
|
||||
<div class="umb-control-group umb-mediapicker-upload">
|
||||
|
||||
<div class="form-search">
|
||||
<i class="icon-search"></i>
|
||||
<input
|
||||
class="umb-search-field search-query"
|
||||
ng-model="searchTerm"
|
||||
localize="placeholder"
|
||||
placeholder="@placeholders_filter"
|
||||
type="text">
|
||||
</div>
|
||||
<umb-load-indicator ng-if="loading">
|
||||
</umb-load-indicator>
|
||||
|
||||
<div class="upload-button">
|
||||
<umb-button
|
||||
type="button"
|
||||
key="general_upload"
|
||||
label="Upload"
|
||||
action="upload()"
|
||||
disabled="disabled">
|
||||
</umb-button>
|
||||
</div>
|
||||
<div class="form-search">
|
||||
<i class="icon-search"></i>
|
||||
<input class="umb-search-field search-query -full-width-input"
|
||||
ng-model="searchOptions.filter"
|
||||
localize="placeholder"
|
||||
placeholder="@placeholders_search"
|
||||
ng-change="changeSearch()"
|
||||
type="text"
|
||||
no-dirty-check />
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="upload-button">
|
||||
<umb-button type="button"
|
||||
label-key="general_upload"
|
||||
action="upload()"
|
||||
disabled="lockedFolder"
|
||||
button-style="info"
|
||||
ng-if="acceptedMediatypes.length > 0">
|
||||
</umb-button>
|
||||
</div>
|
||||
|
||||
<div class="row umb-control-group">
|
||||
<ul class="umb-breadcrumbs">
|
||||
<li ng-hide="startNodeId != -1" class="umb-breadcrumbs__ancestor">
|
||||
<a href ng-click="gotoFolder()" prevent-default>Media</a>
|
||||
<span class="umb-breadcrumbs__seperator">/</span>
|
||||
</li>
|
||||
</div>
|
||||
|
||||
<li ng-repeat="item in path" class="umb-breadcrumbs__ancestor">
|
||||
<a href ng-click="gotoFolder(item)" prevent-default>{{item.name}}</a>
|
||||
<span class="umb-breadcrumbs__seperator">/</span>
|
||||
</li>
|
||||
<div class="row umb-control-group" ng-show="!searchOptions.filter">
|
||||
<ul class="umb-breadcrumbs">
|
||||
<li ng-hide="startNodeId != -1" class="umb-breadcrumbs__ancestor">
|
||||
<a href ng-click="gotoFolder()" prevent-default>Media</a>
|
||||
<span class="umb-breadcrumbs__seperator">/</span>
|
||||
</li>
|
||||
|
||||
<li class="umb-breadcrumbs__ancestor">
|
||||
<a href ng-hide="showFolderInput" ng-click="showFolderInput = true">
|
||||
<i class="icon icon-add small"></i>
|
||||
</a>
|
||||
<li ng-repeat="item in path" class="umb-breadcrumbs__ancestor">
|
||||
<a href ng-click="gotoFolder(item)" prevent-default>{{item.name}}</a>
|
||||
<span class="umb-breadcrumbs__seperator">/</span>
|
||||
</li>
|
||||
|
||||
<input
|
||||
type="text"
|
||||
class="input-foldername input-mini inline"
|
||||
ng-show="showFolderInput"
|
||||
ng-model="newFolderName"
|
||||
ng-keydown="enterSubmitFolder($event)"
|
||||
on-blur="submitFolder()"
|
||||
focus-when="{{showFolderInput}}" />
|
||||
</li>
|
||||
</ul>
|
||||
<li class="umb-breadcrumbs__ancestor" ng-show="!lockedFolder">
|
||||
<a href ng-hide="showFolderInput" ng-click="showFolderInput = true">
|
||||
<i class="icon icon-add small"></i>
|
||||
</a>
|
||||
|
||||
</div>
|
||||
<input type="text"
|
||||
class="umb-breadcrumbs__add-ancestor"
|
||||
ng-show="showFolderInput"
|
||||
ng-model="newFolderName"
|
||||
ng-keydown="enterSubmitFolder($event)"
|
||||
on-blur="submitFolder()"
|
||||
focus-when="{{showFolderInput}}" />
|
||||
</li>
|
||||
</ul>
|
||||
<div class="umb-loader" ng-if="creatingFolder"></div>
|
||||
</div>
|
||||
|
||||
<umb-file-dropzone
|
||||
ng-if="acceptedMediatypes.length > 0"
|
||||
accepted-mediatypes="acceptedMediatypes"
|
||||
parent-id="{{currentFolder.id}}"
|
||||
files-uploaded="onUploadComplete"
|
||||
files-queued="onFilesQueue"
|
||||
accept="{{acceptedFileTypes}}"
|
||||
max-file-size="{{maxFileSize}}"
|
||||
hide-dropzone="{{!activeDrag && images.length > 0 }}"
|
||||
compact="{{ images.length > 0 }}">
|
||||
</umb-file-dropzone>
|
||||
<umb-file-dropzone ng-if="acceptedMediatypes.length > 0 && !loading && !lockedFolder"
|
||||
accepted-mediatypes="acceptedMediatypes"
|
||||
parent-id="{{currentFolder.id}}"
|
||||
files-uploaded="onUploadComplete"
|
||||
files-queued="onFilesQueue"
|
||||
accept="{{acceptedFileTypes}}"
|
||||
max-file-size="{{maxFileSize}}"
|
||||
hide-dropzone="{{!activeDrag && images.length > 0 || searchOptions.filter }}"
|
||||
compact="{{ images.length > 0 }}">
|
||||
</umb-file-dropzone>
|
||||
|
||||
<umb-media-grid
|
||||
items="images"
|
||||
filter-by="searchTerm"
|
||||
on-click="clickHandler"
|
||||
on-click-name="clickItemName"
|
||||
item-max-width="150"
|
||||
item-max-height="150"
|
||||
item-min-width="100"
|
||||
item-min-height="100"
|
||||
only-images={{onlyImages}}>
|
||||
</umb-media-grid>
|
||||
<umb-media-grid ng-if="!loading"
|
||||
items="images"
|
||||
on-click="clickHandler"
|
||||
on-click-name="clickItemName"
|
||||
item-max-width="150"
|
||||
item-max-height="150"
|
||||
item-min-width="100"
|
||||
item-min-height="100"
|
||||
only-images={{onlyImages}}>
|
||||
</umb-media-grid>
|
||||
|
||||
</div>
|
||||
<div class="flex justify-center">
|
||||
<umb-pagination ng-if="searchOptions.totalPages > 0 && !loading"
|
||||
page-number="searchOptions.pageNumber"
|
||||
total-pages="searchOptions.totalPages"
|
||||
on-change="changePagination(pageNumber)">
|
||||
</umb-pagination>
|
||||
</div>
|
||||
|
||||
<umb-overlay
|
||||
ng-if="mediaPickerDetailsOverlay.show"
|
||||
model="mediaPickerDetailsOverlay"
|
||||
position="right">
|
||||
<umb-empty-state ng-if="searchOptions.filter && images.length === 0 && !loading"
|
||||
position="center">
|
||||
<localize key="general_searchNoResult"></localize>
|
||||
</umb-empty-state>
|
||||
|
||||
<div class="umb-control-group">
|
||||
</div>
|
||||
|
||||
<div ng-if="target.url">
|
||||
<umb-image-gravity
|
||||
src="target.url"
|
||||
center="target.focalPoint">
|
||||
</umb-image-gravity>
|
||||
</div>
|
||||
<umb-overlay ng-if="mediaPickerDetailsOverlay.show"
|
||||
model="mediaPickerDetailsOverlay"
|
||||
position="right">
|
||||
|
||||
<div ng-if="cropSize">
|
||||
<div class="umb-control-group">
|
||||
|
||||
<h5>
|
||||
<localize key="general_preview">Preview</localize>
|
||||
</h5>
|
||||
<div ng-if="target.url">
|
||||
<umb-image-gravity src="target.url"
|
||||
center="target.focalPoint">
|
||||
</umb-image-gravity>
|
||||
</div>
|
||||
|
||||
<umb-image-thumbnail
|
||||
center="target.focalPoint"
|
||||
src="target.url"
|
||||
height="{{cropSize.height}}"
|
||||
width="{{cropSize.width}}"
|
||||
max-size="400">
|
||||
</umb-image-thumbnail>
|
||||
<div ng-if="cropSize">
|
||||
|
||||
</div>
|
||||
<h5>
|
||||
<localize key="general_preview">Preview</localize>
|
||||
</h5>
|
||||
|
||||
</div>
|
||||
<umb-image-thumbnail center="target.focalPoint"
|
||||
src="target.url"
|
||||
height="{{cropSize.height}}"
|
||||
width="{{cropSize.width}}"
|
||||
max-size="400">
|
||||
</umb-image-thumbnail>
|
||||
|
||||
<div class="umb-control-group">
|
||||
<label><localize key="@general_url"></localize></label>
|
||||
<input
|
||||
type="text"
|
||||
localize="placeholder"
|
||||
placeholder="@general_url"
|
||||
class="umb-editor umb-textstring"
|
||||
ng-model="target.url"
|
||||
ng-disabled="target.id" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="umb-control-group">
|
||||
<label><localize key="@content_altTextOptional"></localize></label>
|
||||
<input type="text" class="umb-editor umb-textstring" ng-model="target.altText" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="umb-control-group">
|
||||
<label><localize key="@general_url"></localize></label>
|
||||
<input type="text"
|
||||
localize="placeholder"
|
||||
placeholder="@general_url"
|
||||
class="umb-editor umb-textstring"
|
||||
ng-model="target.url"
|
||||
ng-disabled="target.id" />
|
||||
</div>
|
||||
|
||||
<div class="umb-control-group">
|
||||
<label><localize key="@content_altTextOptional"></localize></label>
|
||||
<input type="text" class="umb-editor umb-textstring" ng-model="target.altText" />
|
||||
</div>
|
||||
|
||||
|
||||
</umb-overlay>
|
||||
</umb-overlay>
|
||||
|
||||
</form>
|
||||
|
||||
@@ -1,34 +1,47 @@
|
||||
<div ng-controller="Umbraco.Overlays.TreePickerController" ng-init="init('member')">
|
||||
|
||||
<div class="umb-control-group">
|
||||
<umb-tree-search-box
|
||||
hide-search-callback="hideSearch"
|
||||
search-callback="onSearchResults"
|
||||
search-from-id="{{searchInfo.searchFromId}}"
|
||||
search-from-name="{{searchInfo.searchFromName}}"
|
||||
show-search="{{searchInfo.showSearch}}"
|
||||
section="member">
|
||||
</umb-tree-search-box>
|
||||
</div>
|
||||
<div ng-hide="miniListView">
|
||||
|
||||
<umb-tree-search-results
|
||||
ng-if="searchInfo.showSearch"
|
||||
results="searchInfo.results"
|
||||
select-result-callback="selectResult">
|
||||
</umb-tree-search-results>
|
||||
<div class="umb-control-group">
|
||||
<umb-tree-search-box
|
||||
hide-search-callback="hideSearch"
|
||||
search-callback="onSearchResults"
|
||||
search-from-id="{{searchInfo.searchFromId}}"
|
||||
search-from-name="{{searchInfo.searchFromName}}"
|
||||
show-search="{{searchInfo.showSearch}}"
|
||||
section="member">
|
||||
</umb-tree-search-box>
|
||||
</div>
|
||||
|
||||
<div ng-hide="searchInfo.showSearch" ng-animate="'tree-fade-out'">
|
||||
<umb-tree
|
||||
section="member"
|
||||
treealias="member"
|
||||
hideheader="{{hideHeader}}"
|
||||
hideoptions="true"
|
||||
isdialog="true"
|
||||
customtreeparams="{{customTreeParams}}"
|
||||
eventhandler="dialogTreeEventHandler"
|
||||
enablelistviewsearch="true"
|
||||
enablecheckboxes="{{multiPicker}}">
|
||||
</umb-tree>
|
||||
</div>
|
||||
<umb-tree-search-results
|
||||
ng-if="searchInfo.showSearch"
|
||||
results="searchInfo.results"
|
||||
select-result-callback="selectResult">
|
||||
</umb-tree-search-results>
|
||||
|
||||
<div ng-hide="searchInfo.showSearch" ng-animate="'tree-fade-out'">
|
||||
<umb-tree
|
||||
section="member"
|
||||
treealias="member"
|
||||
hideheader="{{hideHeader}}"
|
||||
hideoptions="true"
|
||||
isdialog="true"
|
||||
customtreeparams="{{customTreeParams}}"
|
||||
eventhandler="dialogTreeEventHandler"
|
||||
enablelistviewsearch="true"
|
||||
enablelistviewexpand="true"
|
||||
enablecheckboxes="{{multiPicker}}">
|
||||
</umb-tree>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<umb-mini-list-view
|
||||
ng-if="miniListView"
|
||||
node="miniListView"
|
||||
entity-type="{{entityType}}"
|
||||
start-node-id="model.startNodeId"
|
||||
on-select="selectListViewNode(node)"
|
||||
on-close="closeMiniListView()">
|
||||
</umb-mini-list-view>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -1,33 +1,43 @@
|
||||
<div ng-controller="Umbraco.Overlays.MoveOverlay as vm">
|
||||
<div ng-hide="miniListView">
|
||||
<div class="umb-control-group">
|
||||
<umb-tree-search-box
|
||||
hide-search-callback="vm.hideSearch"
|
||||
search-callback="vm.onSearchResults"
|
||||
search-from-id="{{vm.searchInfo.searchFromId}}"
|
||||
search-from-name="{{vm.searchInfo.searchFromName}}"
|
||||
show-search="{{vm.searchInfo.showSearch}}"
|
||||
section="{{model.section}}">
|
||||
</umb-tree-search-box>
|
||||
</div>
|
||||
|
||||
<div class="umb-control-group">
|
||||
<umb-tree-search-box
|
||||
hide-search-callback="vm.hideSearch"
|
||||
search-callback="vm.onSearchResults"
|
||||
search-from-id="{{vm.searchInfo.searchFromId}}"
|
||||
search-from-name="{{vm.searchInfo.searchFromName}}"
|
||||
show-search="{{vm.searchInfo.showSearch}}"
|
||||
section="{{model.section}}">
|
||||
</umb-tree-search-box>
|
||||
<div class="umb-control-group" ng-show="vm.searchInfo.showSearch">
|
||||
<umb-tree-search-results
|
||||
ng-if="vm.searchInfo.showSearch"
|
||||
results="vm.searchInfo.results"
|
||||
select-result-callback="vm.selectResult">
|
||||
</umb-tree-search-results>
|
||||
</div>
|
||||
|
||||
<div class="umb-control-group -no-border" ng-hide="vm.searchInfo.showSearch">
|
||||
<umb-tree
|
||||
section="{{model.section}}"
|
||||
hideheader="false"
|
||||
hideoptions="true"
|
||||
isdialog="true"
|
||||
eventhandler="dialogTreeEventHandler"
|
||||
enablelistviewexpand="true"
|
||||
enablecheckboxes="true">
|
||||
</umb-tree>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="umb-control-group" ng-show="vm.searchInfo.showSearch">
|
||||
<umb-tree-search-results
|
||||
ng-if="vm.searchInfo.showSearch"
|
||||
results="vm.searchInfo.results"
|
||||
select-result-callback="vm.selectResult">
|
||||
</umb-tree-search-results>
|
||||
</div>
|
||||
|
||||
<div class="umb-control-group -no-border" ng-hide="vm.searchInfo.showSearch">
|
||||
<umb-tree
|
||||
section="{{model.section}}"
|
||||
hideheader="false"
|
||||
hideoptions="true"
|
||||
isdialog="true"
|
||||
eventhandler="dialogTreeEventHandler"
|
||||
enablecheckboxes="true">
|
||||
</umb-tree>
|
||||
</div>
|
||||
<umb-mini-list-view
|
||||
ng-if="miniListView"
|
||||
node="miniListView"
|
||||
entity-type="{{entityType}}"
|
||||
on-select="selectListViewNode(node)"
|
||||
on-close="closeMiniListView()">
|
||||
</umb-mini-list-view>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
<div class="block-form" ng-controller="Umbraco.Overlays.NodePermissionsController as vm">
|
||||
<umb-control-group
|
||||
ng-repeat="(category, permissions) in model.node.permissions"
|
||||
label="{{category}}">
|
||||
<umb-permission
|
||||
ng-repeat="permission in permissions"
|
||||
name="permission.name"
|
||||
description="permission.description"
|
||||
selected="permission.checked">
|
||||
</umb-permission>
|
||||
</umb-control-group>
|
||||
</div>
|
||||
@@ -0,0 +1,149 @@
|
||||
<div ng-controller="Umbraco.Overlays.QueryBuilderController as vm">
|
||||
|
||||
<div class="umb-control-group umb-querybuilder">
|
||||
|
||||
<div class="row">
|
||||
<div class="query-items">
|
||||
|
||||
<span><localize key="template_iWant">I want</localize></span>
|
||||
|
||||
<div class="btn-group">
|
||||
|
||||
<a class="btn btn-link dropdown-toggle" data-toggle="dropdown" href="#">
|
||||
{{vm.query.contentType.name}}
|
||||
<span class="caret"></span>
|
||||
</a>
|
||||
|
||||
<ul class="dropdown-menu">
|
||||
<li ng-repeat="contentType in vm.contentTypes">
|
||||
<a href ng-click="vm.setContentType(contentType)">{{contentType.name}}</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
<span><localize key="template_from">from</localize></span>
|
||||
|
||||
<a href class="btn btn-link" ng-click="vm.chooseSource(vm.query)">
|
||||
{{vm.query.source.name}}
|
||||
<span class="caret"></span>
|
||||
</a>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="query-items" ng-repeat="filter in vm.query.filters">
|
||||
|
||||
<span ng-if="$first">
|
||||
<localize key="template_where">where</localize>
|
||||
</span>
|
||||
<span ng-if="!$first">
|
||||
<localize key="template_and">and</localize>
|
||||
</span>
|
||||
|
||||
<div class="btn-group">
|
||||
|
||||
<a class="btn btn-link dropdown-toggle" data-toggle="dropdown" href="#">
|
||||
{{filter.property.name}}
|
||||
<span class="caret"></span>
|
||||
</a>
|
||||
|
||||
<ul class="dropdown-menu">
|
||||
<li ng-repeat="property in vm.properties">
|
||||
<a href ng-click="vm.setFilterProperty(filter, property)">
|
||||
{{property.name}}
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="btn-group" ng-if="filter.property">
|
||||
<a class="btn btn-link dropdown-toggle" data-toggle="dropdown" href="#">
|
||||
{{filter.term.name}}
|
||||
<span class="caret"></span>
|
||||
</a>
|
||||
<ul class="dropdown-menu">
|
||||
<li ng-repeat="term in vm.getPropertyOperators(filter.property)">
|
||||
<a href ng-click="vm.setFilterTerm(filter, term)">
|
||||
{{term.name}}
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<span ng-switch="filter.term.appliesTo[0]">
|
||||
|
||||
<!-- Filter term types (string, int, date) -->
|
||||
<input type="text" ng-switch-when="string" style="width:90px;" ng-model="filter.constraintValue" ng-change="vm.changeConstraintValue()" />
|
||||
<input type="number" ng-switch-when="int" style="width:90px;" ng-model="filter.constraintValue" ng-change="vm.changeConstraintValue()" />
|
||||
|
||||
<span ng-switch-when="datetime">
|
||||
<umb-date-time-picker options="vm.datePickerConfig"
|
||||
on-change="vm.datePickerChange(event, filter)">
|
||||
</umb-date-time-picker>
|
||||
</span>
|
||||
|
||||
</span>
|
||||
|
||||
|
||||
|
||||
<a href ng-click="vm.addFilter(vm.query)">
|
||||
<i class="icon-add"></i>
|
||||
</a>
|
||||
|
||||
<a href ng-click="vm.trashFilter(vm.query, filter)">
|
||||
<i class="icon-trash"></i>
|
||||
</a>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div class="query-items">
|
||||
|
||||
<span><localize key="template_orderBy">order by</localize></span>
|
||||
|
||||
<div class="btn-group">
|
||||
<a class="btn btn-link dropdown-toggle" data-toggle="dropdown" href="#">
|
||||
{{vm.query.sort.property.name}}
|
||||
<span class="caret"></span>
|
||||
</a>
|
||||
|
||||
<ul class="dropdown-menu">
|
||||
<li ng-repeat="property in vm.properties">
|
||||
<a href ng-click="vm.setSortProperty(vm.query, property)">
|
||||
{{property.name}}
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
<a href class="btn" ng-click="vm.changeSortOrder(vm.query)">
|
||||
{{vm.query.sort.translation.currentLabel}}
|
||||
</a>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<h5>{{model.result.resultCount}} <localize key="template_itemsReturned">items, returned in</localize> {{model.result.executionTime}} ms</h5>
|
||||
|
||||
<ul class="nav unstyled">
|
||||
<li ng-repeat="item in model.result.sampleResults">
|
||||
<i class="icon icon-document turquoise-d1"></i> {{item.name}}
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<pre>
|
||||
{{model.result.queryExpression}}
|
||||
</pre>
|
||||
|
||||
</div>
|
||||
|
||||
<umb-overlay
|
||||
ng-if="vm.contentPickerOverlay.show"
|
||||
model="vm.contentPickerOverlay"
|
||||
view="vm.contentPickerOverlay.view"
|
||||
position="right">
|
||||
</umb-overlay>
|
||||
|
||||
</div>
|
||||
@@ -0,0 +1,24 @@
|
||||
<div ng-controller="Umbraco.Overlays.SectionPickerController as vm">
|
||||
|
||||
<umb-load-indicator
|
||||
ng-if="vm.loading">
|
||||
</umb-load-indicator>
|
||||
|
||||
<div ng-if="!vm.loading">
|
||||
|
||||
<ul class="umb-tree">
|
||||
<li ng-repeat="section in vm.sections">
|
||||
<div style="padding: 5px 10px;" ng-class="{'umb-tree-node-checked': section.selected }">
|
||||
<a href="" ng-click="vm.selectSection(section)">
|
||||
<div style="position: relative; overflow: initial;">
|
||||
<i class="icon umb-tree-icon {{section.icon}}"></i>
|
||||
</div>
|
||||
<span>{{ section.name }}</span>
|
||||
</a>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@@ -0,0 +1,59 @@
|
||||
<div ng-controller="Umbraco.Overlays.TemplateSectionsOverlay as vm">
|
||||
|
||||
<div class="umb-insert-code-box" ng-click="vm.select('renderBody')">
|
||||
<div class="umb-insert-code-box__check" ng-class="{'umb-insert-code-box__check--checked': model.insertType === 'renderBody' }"><i class="icon icon-check"></i></div>
|
||||
|
||||
<div class="umb-insert-code-box__title"><localize key="template_renderBody" /></div>
|
||||
|
||||
<div class="umb-insert-code-box__description">
|
||||
<localize key="template_renderBodyDesc" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="umb-insert-code-box" ng-click="vm.select('renderSection')">
|
||||
|
||||
<div class="umb-insert-code-box__check" ng-class="{'umb-insert-code-box__check--checked': model.insertType === 'renderSection' }"><i class="icon icon-check"></i></div>
|
||||
<div class="umb-insert-code-box__title"><localize key="template_renderSection" /></div>
|
||||
<div class="umb-insert-code-box__description">
|
||||
<localize key="template_renderSectionDesc" />
|
||||
</div>
|
||||
|
||||
<div ng-if="model.insertType === 'renderSection'" style="margin-top: 20px;">
|
||||
<div style="margin-bottom: 20px;">
|
||||
<label class="bold"><localize key="template_sectionName" /> <span class="red">*</span></label>
|
||||
<input type="text" name="renderSectionName" class="-full-width-input" ng-model="model.renderSectionName" required umb-auto-focus />
|
||||
<small class="red" val-msg-for="renderSectionName" val-toggle-msg="required"><localize key="required" /></small>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<label>
|
||||
<input type="checkbox" ng-model="model.mandatoryRenderSection" /> <localize key="template_sectionMandatory" />
|
||||
</label>
|
||||
|
||||
<div class="umb-insert-code-box__description">
|
||||
<localize key="template_sectionMandatoryDesc" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="umb-insert-code-box" ng-click="vm.select('addSection')">
|
||||
|
||||
<div class="umb-insert-code-box__check" ng-class="{'umb-insert-code-box__check--checked': model.insertType === 'addSection' }"><i class="icon icon-check"></i></div>
|
||||
<div class="umb-insert-code-box__title"><localize key="template_defineSection" /></div>
|
||||
<div class="umb-insert-code-box__description">
|
||||
<localize key="template_defineSectionDesc" />
|
||||
</div>
|
||||
|
||||
<div ng-if="model.insertType === 'addSection'" style="margin-top: 20px;">
|
||||
<div>
|
||||
<label class="bold"><localize key="template_sectionName" /> <span class="red">*</span></label>
|
||||
<input type="text" name="sectionName" class="-full-width-input" ng-model="model.sectionName" required umb-auto-focus />
|
||||
<small class="red" val-msg-for="sectionName" val-toggle-msg="required"><localize key="required" /></small>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@@ -1,34 +1,54 @@
|
||||
<div ng-controller="Umbraco.Overlays.TreePickerController">
|
||||
|
||||
<div class="umb-control-group">
|
||||
<umb-tree-search-box
|
||||
hide-search-callback="hideSearch"
|
||||
search-callback="onSearchResults"
|
||||
search-from-id="{{searchInfo.searchFromId}}"
|
||||
search-from-name="{{searchInfo.searchFromName}}"
|
||||
show-search="{{searchInfo.showSearch}}"
|
||||
section="{{section}}">
|
||||
</umb-tree-search-box>
|
||||
</div>
|
||||
<div ng-hide="miniListView">
|
||||
|
||||
<umb-tree-search-results
|
||||
ng-if="searchInfo.showSearch"
|
||||
results="searchInfo.results"
|
||||
select-result-callback="selectResult">
|
||||
</umb-tree-search-results>
|
||||
<div class="umb-control-group">
|
||||
<umb-tree-search-box
|
||||
ng-if="enableSearh"
|
||||
hide-search-callback="hideSearch"
|
||||
search-callback="onSearchResults"
|
||||
search-from-id="{{searchInfo.searchFromId}}"
|
||||
search-from-name="{{searchInfo.searchFromName}}"
|
||||
show-search="{{searchInfo.showSearch}}"
|
||||
section="{{section}}">
|
||||
</umb-tree-search-box>
|
||||
</div>
|
||||
|
||||
<div ng-hide="searchInfo.showSearch" ng-animate="'tree-fade-out'">
|
||||
<umb-tree
|
||||
section="{{section}}"
|
||||
treealias="{{treeAlias}}"
|
||||
hideheader="{{hideHeader}}"
|
||||
hideoptions="true"
|
||||
isdialog="true"
|
||||
customtreeparams="{{customTreeParams}}"
|
||||
eventhandler="dialogTreeEventHandler"
|
||||
enablelistviewsearch="true"
|
||||
enablecheckboxes="{{multiPicker}}">
|
||||
</umb-tree>
|
||||
</div>
|
||||
<umb-tree-search-results
|
||||
ng-if="searchInfo.showSearch"
|
||||
results="searchInfo.results"
|
||||
select-result-callback="selectResult">
|
||||
</umb-tree-search-results>
|
||||
|
||||
<umb-empty-state ng-if="!hasItems && emptyStateMessage" position="center">
|
||||
{{ emptyStateMessage }}
|
||||
</umb-empty-state>
|
||||
|
||||
</div>
|
||||
<div ng-if="treeReady" ng-hide="searchInfo.showSearch" ng-animate="'tree-fade-out'">
|
||||
<umb-tree
|
||||
section="{{section}}"
|
||||
treealias="{{treeAlias}}"
|
||||
hideheader="{{hideHeader}}"
|
||||
hideoptions="true"
|
||||
isdialog="true"
|
||||
onlyinitialized="{{onlyInitialized}}"
|
||||
customtreeparams="{{customTreeParams}}"
|
||||
eventhandler="dialogTreeEventHandler"
|
||||
enablelistviewsearch="true"
|
||||
enablelistviewexpand="true"
|
||||
enablecheckboxes="{{multiPicker}}">
|
||||
</umb-tree>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<umb-mini-list-view
|
||||
ng-if="miniListView"
|
||||
node="miniListView"
|
||||
entity-type="{{entityType}}"
|
||||
start-node-id="model.startNodeId"
|
||||
on-select="selectListViewNode(node)"
|
||||
on-close="closeMiniListView()">
|
||||
</umb-mini-list-view>
|
||||
|
||||
</div>
|
||||
@@ -11,8 +11,9 @@
|
||||
</p>
|
||||
|
||||
<umb-button
|
||||
alias="editUser"
|
||||
type="link"
|
||||
href="#/users/framed/%252Fumbraco%252Fusers%252Fedituser.aspx%253Fid%253D{{user.id}}"
|
||||
href="#/users/users/user/{{user.id}}"
|
||||
action="model.close()"
|
||||
button-style="primary"
|
||||
label="Edit"
|
||||
@@ -21,6 +22,7 @@
|
||||
</umb-button>
|
||||
|
||||
<umb-button
|
||||
alias="changePassword"
|
||||
type="button"
|
||||
action="togglePasswordFields()"
|
||||
label="Change password"
|
||||
@@ -29,10 +31,11 @@
|
||||
</umb-button>
|
||||
|
||||
<umb-button
|
||||
alias="logOut"
|
||||
type="button"
|
||||
action="logout()"
|
||||
shortcut="ctrl+shift+l"
|
||||
button-style="warning"
|
||||
button-style="danger"
|
||||
label="Log out"
|
||||
label-key="general_logout">
|
||||
</umb-button>
|
||||
@@ -74,6 +77,7 @@
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div class="umb-control-group" ng-if="!showPasswordFields">
|
||||
<h5><localize key="user_yourHistory" /></h5>
|
||||
<ul class="umb-tree">
|
||||
@@ -98,7 +102,9 @@
|
||||
novalidate
|
||||
val-form-manager>
|
||||
|
||||
<umb-editor model="changePasswordModel"></umb-editor>
|
||||
<change-password password-values="changePasswordModel.value"
|
||||
config="changePasswordModel.config">
|
||||
</change-password>
|
||||
|
||||
<umb-button
|
||||
type="button"
|
||||
@@ -120,4 +126,14 @@
|
||||
|
||||
</div>
|
||||
|
||||
<div class="umb-control-group">
|
||||
<div ng-repeat="tab in dashboard">
|
||||
<div ng-repeat="property in tab.properties">
|
||||
<div>
|
||||
<h3 ng-if="property.caption">{{property.caption}}</h3>
|
||||
<div ng-include="property.path"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -0,0 +1,65 @@
|
||||
<div ng-controller="Umbraco.Overlays.UserGroupPickerController as vm">
|
||||
|
||||
<umb-load-indicator ng-if="vm.loading">
|
||||
</umb-load-indicator>
|
||||
|
||||
<div ng-if="!vm.loading">
|
||||
|
||||
<div class="form-search" style="margin-bottom: 15px;">
|
||||
<i class="icon-search"></i>
|
||||
<input type="text"
|
||||
ng-model="searchTerm"
|
||||
class="umb-search-field search-query input-block-level -full-width-input"
|
||||
localize="placeholder"
|
||||
placeholder="@placeholders_filter"
|
||||
umb-auto-focus
|
||||
no-dirty-check />
|
||||
</div>
|
||||
|
||||
<div class="umb-user-group-picker-list">
|
||||
|
||||
<a href="" class="umb-user-group-picker-list-item" ng-repeat="userGroup in vm.userGroups | filter:searchTerm" ng-click="vm.selectUserGroup(userGroup)">
|
||||
|
||||
<div class="umb-user-group-picker-list-item__icon">
|
||||
<i ng-if="!userGroup.selected" class="{{userGroup.icon}}"></i>
|
||||
<umb-checkmark ng-if="userGroup.selected" checked="userGroup.selected" size="xs"></umb-checkmark>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<div class="umb-user-group-picker-list-item__name">{{ userGroup.name }}</div>
|
||||
|
||||
<div class="umb-user-group-picker-list-item__permission" ng-if="userGroup.sections">
|
||||
<span>
|
||||
<span class="bold"><localize key="main_sections">Sections</localize>:</span>
|
||||
<span ng-repeat="section in userGroup.sections">{{ section.name }}<span ng-if="!$last">, </span></span>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<div class="umb-user-group-picker-list-item__permission">
|
||||
<span>
|
||||
<span class="bold"><localize key="user_startnode">Content start node</localize>:</span>
|
||||
<span ng-if="!userGroup.contentStartNode"><localize key="user_noStartNode">No start node selected</localize></span>
|
||||
<span ng-if="userGroup.contentStartNode">{{ userGroup.contentStartNode.name }}</span>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<div class="umb-user-group-picker-list-item__permission">
|
||||
<span>
|
||||
<span class="bold"><localize key="user_mediastartnode">Media start node</localize>:</span>
|
||||
<span ng-if="!userGroup.mediaStartNode"><localize key="user_noStartNode">No start node selected</localize></span>
|
||||
<span ng-if="userGroup.mediaStartNode">{{ userGroup.mediaStartNode.name }}</span>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
</div>
|
||||
|
||||
<umb-empty-state ng-if="vm.userGroups.length === 0"
|
||||
position="center">
|
||||
No user groups have been added
|
||||
</umb-empty-state>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@@ -0,0 +1,58 @@
|
||||
<div ng-controller="Umbraco.Overlays.UserPickerController as vm">
|
||||
|
||||
<umb-load-indicator
|
||||
ng-if="vm.loading">
|
||||
</umb-load-indicator>
|
||||
|
||||
<div class="form-search" style="margin-bottom: 15px;">
|
||||
<i class="icon-search"></i>
|
||||
<input type="text"
|
||||
ng-model="vm.usersOptions.filter"
|
||||
ng-change="vm.searchUsers()"
|
||||
class="umb-search-field search-query input-block-level -full-width-input"
|
||||
localize="placeholder"
|
||||
placeholder="@placeholders_filter"
|
||||
umb-auto-focus
|
||||
revent-enter-submit
|
||||
no-dirty-check />
|
||||
</div>
|
||||
|
||||
<div ng-if="!vm.loading">
|
||||
|
||||
<div class="umb-user-picker-item-list">
|
||||
<a href="" class="umb-user-picker-list-item" ng-repeat="user in vm.users" ng-click="vm.selectUser(user)">
|
||||
<div class="umb-user-picker-list-item__avatar">
|
||||
<umb-checkmark
|
||||
class="umb-user-picker-list-item__checkmark"
|
||||
ng-if="user.selected"
|
||||
checked="user.selected">
|
||||
</umb-checkmark>
|
||||
<umb-avatar
|
||||
size="s"
|
||||
color="secondary"
|
||||
name="{{user.name}}"
|
||||
img-src="{{user.avatars[0]}}"
|
||||
img-srcset="{{user.avatars[1]}} 2x, {{user.avatars[2]}} 3x">
|
||||
</umb-avatar>
|
||||
</div>
|
||||
<div class="umb-user-picker-list-item__content">
|
||||
<div class="umb-user-picker-list-item__name">{{ user.name }}</div>
|
||||
<div class="umb-user-picker-list-item__group">
|
||||
<span ng-repeat="userGroup in user.userGroups">{{ userGroup.name }}<span ng-if="!$last">, </span></span>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="flex justify-center">
|
||||
<umb-pagination
|
||||
ng-if="vm.usersOptions.totalPages"
|
||||
page-number="vm.usersOptions.pageNumber"
|
||||
total-pages="vm.usersOptions.totalPages"
|
||||
on-change="vm.changePageNumber(pageNumber)">
|
||||
</umb-pagination>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@@ -1,4 +1,4 @@
|
||||
<div ng-controller="Umbraco.Overlays.YsodController">
|
||||
<div ng-controller="Umbraco.Overlays.YsodController">
|
||||
|
||||
<h4 class="heading red">{{model.error.errorMsg}}</h4>
|
||||
<p>{{model.error.data.ExceptionMessage || model.error.data.Message}}</p>
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
<div ng-controller="Umbraco.Tours.UmbIntroCreateContent.NodeNameController as vm">
|
||||
|
||||
<umb-tour-step on-close="model.endTour()">
|
||||
|
||||
<umb-tour-step-header
|
||||
title="model.currentStep.title">
|
||||
</umb-tour-step-header>
|
||||
|
||||
<umb-tour-step-content
|
||||
content="model.currentStep.content">
|
||||
<div ng-if="vm.error" class="color-red" style="margin-top: 5px;">Please enter <b>Home</b> in the field</div>
|
||||
</umb-tour-step-content>
|
||||
|
||||
<umb-tour-step-footer class="flex justify-between items-center">
|
||||
|
||||
<umb-tour-step-counter
|
||||
current-step="model.currentStepIndex + 1"
|
||||
total-steps="model.steps.length">
|
||||
</umb-tour-step-counter>
|
||||
|
||||
<div>
|
||||
<umb-button size="xs" button-style="success" type="button" action="vm.initNextStep()" label="Next"></umb-button>
|
||||
</div>
|
||||
|
||||
</umb-tour-step-footer>
|
||||
|
||||
</umb-tour-step>
|
||||
|
||||
</div>
|
||||
@@ -0,0 +1,29 @@
|
||||
<div ng-controller="Umbraco.Tours.UmbIntroCreateDocType.DocTypeNameController as vm">
|
||||
|
||||
<umb-tour-step on-close="model.endTour()">
|
||||
|
||||
<umb-tour-step-header
|
||||
title="model.currentStep.title">
|
||||
</umb-tour-step-header>
|
||||
|
||||
<umb-tour-step-content
|
||||
content="model.currentStep.content">
|
||||
<div ng-if="vm.error" class="color-red" style="margin-top: 5px;">Please enter <b>Home Page</b> in the field</div>
|
||||
</umb-tour-step-content>
|
||||
|
||||
<umb-tour-step-footer class="flex justify-between items-center">
|
||||
|
||||
<umb-tour-step-counter
|
||||
current-step="model.currentStepIndex + 1"
|
||||
total-steps="model.steps.length">
|
||||
</umb-tour-step-counter>
|
||||
|
||||
<div>
|
||||
<umb-button size="xs" button-style="success" type="button" action="vm.initNextStep()" label="Next"></umb-button>
|
||||
</div>
|
||||
|
||||
</umb-tour-step-footer>
|
||||
|
||||
</umb-tour-step>
|
||||
|
||||
</div>
|
||||
+29
@@ -0,0 +1,29 @@
|
||||
<div ng-controller="Umbraco.Tours.UmbIntroCreateDocType.PropertyNameController as vm">
|
||||
|
||||
<umb-tour-step on-close="model.endTour()">
|
||||
|
||||
<umb-tour-step-header
|
||||
title="model.currentStep.title">
|
||||
</umb-tour-step-header>
|
||||
|
||||
<umb-tour-step-content
|
||||
content="model.currentStep.content">
|
||||
<div ng-if="vm.error" class="color-red" style="margin-top: 5px;">Please enter <b>Welcome Text</b> in the field</div>
|
||||
</umb-tour-step-content>
|
||||
|
||||
<umb-tour-step-footer class="flex justify-between items-center">
|
||||
|
||||
<umb-tour-step-counter
|
||||
current-step="model.currentStepIndex + 1"
|
||||
total-steps="model.steps.length">
|
||||
</umb-tour-step-counter>
|
||||
|
||||
<div>
|
||||
<umb-button size="xs" button-style="success" type="button" action="vm.initNextStep()" label="Next"></umb-button>
|
||||
</div>
|
||||
|
||||
</umb-tour-step-footer>
|
||||
|
||||
</umb-tour-step>
|
||||
|
||||
</div>
|
||||
@@ -0,0 +1,29 @@
|
||||
<div ng-controller="Umbraco.Tours.UmbIntroCreateDocType.TabNameController as vm">
|
||||
|
||||
<umb-tour-step on-close="model.endTour()">
|
||||
|
||||
<umb-tour-step-header
|
||||
title="model.currentStep.title">
|
||||
</umb-tour-step-header>
|
||||
|
||||
<umb-tour-step-content
|
||||
content="model.currentStep.content">
|
||||
<div ng-if="vm.error" class="color-red" style="margin-top: 5px;">Please enter <b>Home</b> in the field</div>
|
||||
</umb-tour-step-content>
|
||||
|
||||
<umb-tour-step-footer class="flex justify-between items-center">
|
||||
|
||||
<umb-tour-step-counter
|
||||
current-step="model.currentStepIndex + 1"
|
||||
total-steps="model.steps.length">
|
||||
</umb-tour-step-counter>
|
||||
|
||||
<div>
|
||||
<umb-button size="xs" button-style="success" type="button" action="vm.initNextStep()" label="Next"></umb-button>
|
||||
</div>
|
||||
|
||||
</umb-tour-step-footer>
|
||||
|
||||
</umb-tour-step>
|
||||
|
||||
</div>
|
||||
@@ -0,0 +1,29 @@
|
||||
<div ng-controller="Umbraco.Tours.UmbIntroMediaSection.FolderNameController as vm">
|
||||
|
||||
<umb-tour-step on-close="model.endTour()">
|
||||
|
||||
<umb-tour-step-header
|
||||
title="model.currentStep.title">
|
||||
</umb-tour-step-header>
|
||||
|
||||
<umb-tour-step-content
|
||||
content="model.currentStep.content">
|
||||
<div ng-if="vm.error" class="color-red" style="margin-top: 5px;">Please enter <b>My Images</b> in the field</div>
|
||||
</umb-tour-step-content>
|
||||
|
||||
<umb-tour-step-footer class="flex justify-between items-center">
|
||||
|
||||
<umb-tour-step-counter
|
||||
current-step="model.currentStepIndex + 1"
|
||||
total-steps="model.steps.length">
|
||||
</umb-tour-step-counter>
|
||||
|
||||
<div>
|
||||
<umb-button size="xs" button-style="success" type="button" action="vm.initNextStep()" label="Next" state="vm.buttonState"></umb-button>
|
||||
</div>
|
||||
|
||||
</umb-tour-step-footer>
|
||||
|
||||
</umb-tour-step>
|
||||
|
||||
</div>
|
||||
@@ -0,0 +1,29 @@
|
||||
<div ng-controller="Umbraco.Tours.UmbIntroMediaSection.UploadImagesController as vm">
|
||||
|
||||
<umb-tour-step on-close="model.endTour()">
|
||||
|
||||
<umb-tour-step-header
|
||||
title="model.currentStep.title">
|
||||
</umb-tour-step-header>
|
||||
|
||||
<umb-tour-step-content
|
||||
content="model.currentStep.content">
|
||||
<div ng-if="vm.error" class="color-red" style="margin-top: 5px;">Please upload an image</div>
|
||||
</umb-tour-step-content>
|
||||
|
||||
<umb-tour-step-footer class="flex justify-between items-center">
|
||||
|
||||
<umb-tour-step-counter
|
||||
current-step="model.currentStepIndex + 1"
|
||||
total-steps="model.steps.length">
|
||||
</umb-tour-step-counter>
|
||||
|
||||
<div>
|
||||
<umb-button size="xs" button-style="success" type="button" action="vm.initNextStep()" label="Next" state="vm.buttonState"></umb-button>
|
||||
</div>
|
||||
|
||||
</umb-tour-step-footer>
|
||||
|
||||
</umb-tour-step>
|
||||
|
||||
</div>
|
||||
+22
@@ -0,0 +1,22 @@
|
||||
<div ng-controller="Umbraco.Tours.UmbIntroRenderInTemplate.TemplatesTreeController as vm">
|
||||
<umb-tour-step 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 class="flex justify-between items-center">
|
||||
|
||||
<umb-tour-step-counter
|
||||
current-step="model.currentStepIndex + 1"
|
||||
total-steps="model.steps.length">
|
||||
</umb-tour-step-counter>
|
||||
|
||||
</umb-tour-step-footer>
|
||||
|
||||
</umb-tour-step>
|
||||
</div>
|
||||
@@ -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>
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user