v8: Macro partial view picker (#4412)
This commit is contained in:
committed by
Sebastiaan Janssen
parent
280a6d79b4
commit
0d36151e53
@@ -1,19 +1,30 @@
|
||||
<div ng-controller="Umbraco.Editors.Macros.CreateController as vm">
|
||||
|
||||
<div class="umbracoDialog umb-dialog-body with-footer" ng-cloak>
|
||||
|
||||
<div class="umb-pane">
|
||||
<h5><localize key="create_createUnder">Create an item under</localize> {{currentNode.name}}</h5>
|
||||
</div>
|
||||
|
||||
<div class="umb-pane">
|
||||
<h5><localize key="create_createUnder">Create an item under</localize> {{currentNode.name}}</h5>
|
||||
<div class="umb-pane">
|
||||
<form novalidate name="createMacroForm"
|
||||
ng-submit="vm.createItem()"
|
||||
val-form-manager>
|
||||
|
||||
<div ng-show="error">
|
||||
<div class="alert alert-error">
|
||||
<div><strong>{{error.errorMsg}}</strong></div>
|
||||
<div>{{error.data.message}}</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<umb-control-group label="@macro_enterMacroName" hide-label="false">
|
||||
<input type="text" name="itemKey" ng-model="vm.itemKey" class="umb-textstring textstring input-block-level" umb-auto-focus required />
|
||||
</umb-control-group>
|
||||
|
||||
<button type="submit" class="btn btn-primary"><localize key="general_create">Create</localize></button>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="umb-pane">
|
||||
<form name="createDictionaryForm"
|
||||
ng-submit="vm.createItem()"
|
||||
val-form-manager>
|
||||
|
||||
<umb-control-group label="Enter a item-name" hide-label="true">
|
||||
<input type="text" name="itemKey" ng-model="vm.itemKey" class="umb-textstring textstring input-block-level" required />
|
||||
</umb-control-group>
|
||||
|
||||
<button type="submit" class="btn btn-primary"><localize key="general_create">Create</localize></button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -13,29 +13,32 @@ function MacrosCreateController($scope, $location, macroResource, navigationServ
|
||||
|
||||
function createItem() {
|
||||
|
||||
var node = $scope.currentNode;
|
||||
if (formHelper.submitForm({ scope: $scope, formCtrl: this.createMacroForm })) {
|
||||
|
||||
macroResource.createMacro(vm.itemKey).then(function (data) {
|
||||
navigationService.hideMenu();
|
||||
var node = $scope.currentNode;
|
||||
|
||||
// set new item as active in tree
|
||||
var currPath = node.path ? node.path : "-1";
|
||||
navigationService.syncTree({ tree: "macros", path: currPath + "," + data, forceReload: true, activate: true });
|
||||
|
||||
// reset form state
|
||||
formHelper.resetForm({ scope: $scope });
|
||||
|
||||
// navigate to edit view
|
||||
var currentSection = appState.getSectionState("currentSection");
|
||||
$location.path("/" + currentSection + "/macros/edit/" + data);
|
||||
|
||||
|
||||
}, function (err) {
|
||||
if (err.data && err.data.message) {
|
||||
notificationsService.error(err.data.message);
|
||||
macroResource.createMacro(vm.itemKey).then(function (data) {
|
||||
navigationService.hideMenu();
|
||||
}
|
||||
});
|
||||
|
||||
// set new item as active in tree
|
||||
var currPath = node.path ? node.path : "-1";
|
||||
navigationService.syncTree({ tree: "macros", path: currPath + "," + data, forceReload: true, activate: true });
|
||||
|
||||
// reset form state
|
||||
formHelper.resetForm({ scope: $scope });
|
||||
|
||||
// navigate to edit view
|
||||
var currentSection = appState.getSectionState("currentSection");
|
||||
$location.path("/" + currentSection + "/macros/edit/" + data);
|
||||
|
||||
|
||||
}, function (err) {
|
||||
if (err.data && err.data.message) {
|
||||
notificationsService.error(err.data.message);
|
||||
navigationService.hideMenu();
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
vm.createItem = createItem;
|
||||
|
||||
@@ -95,6 +95,11 @@ function MacrosEditController($scope, $q, $routeParams, macroResource, editorSta
|
||||
|
||||
function bindMacro(data) {
|
||||
vm.macro = data;
|
||||
|
||||
if (vm.macro && vm.macro.view) {
|
||||
vm.macro.node = { icon: 'icon-article', name: vm.macro.view };
|
||||
}
|
||||
|
||||
editorState.set(vm.macro);
|
||||
|
||||
navigationService.syncTree({ tree: "macros", path: vm.macro.path, forceReload: true }).then(function (syncArgs) {
|
||||
@@ -109,21 +114,24 @@ function MacrosEditController($scope, $q, $routeParams, macroResource, editorSta
|
||||
vm.promises['parameterEditors'] = getParameterEditors();
|
||||
vm.promises['macro'] = getMacro();
|
||||
|
||||
vm.views = [];
|
||||
vm.node = null;
|
||||
|
||||
$q.all(vm.promises).then(function (values) {
|
||||
var keys = Object.keys(values);
|
||||
|
||||
for (var i = 0; i < keys.length; i++) {
|
||||
var key = keys[i];
|
||||
|
||||
if (keys[i] === 'partialViews') {
|
||||
if (key === 'partialViews') {
|
||||
vm.views = values[key];
|
||||
}
|
||||
|
||||
if (keys[i] === 'parameterEditors') {
|
||||
if (key === 'parameterEditors') {
|
||||
vm.parameterEditors = values[key];
|
||||
}
|
||||
|
||||
if (keys[i] === 'macro') {
|
||||
if (key === 'macro') {
|
||||
bindMacro(values[key]);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,66 @@
|
||||
/**
|
||||
* @ngdoc controller
|
||||
* @name Umbraco.Editors.Macros.SettingsController
|
||||
* @function
|
||||
*
|
||||
* @description
|
||||
* The controller for editing macros settings
|
||||
*/
|
||||
function MacrosSettingsController($scope, editorService, localizationService) {
|
||||
|
||||
const vm = this;
|
||||
|
||||
//vm.openViewPicker = openViewPicker;
|
||||
//vm.removeMacroView = removeMacroView;
|
||||
$scope.model.openViewPicker = openViewPicker;
|
||||
$scope.model.removeMacroView = removeMacroView;
|
||||
|
||||
function openViewPicker() {
|
||||
const controlPicker = {
|
||||
title: "Select view",
|
||||
section: "settings",
|
||||
treeAlias: "partialViewMacros",
|
||||
entityType: "partialView",
|
||||
onlyInitialized: false,
|
||||
filter: function (i) {
|
||||
if (i.name.indexOf(".cshtml") === -1 && i.name.indexOf(".vbhtml") === -1) {
|
||||
return true;
|
||||
}
|
||||
},
|
||||
filterCssClass: "not-allowed",
|
||||
select: function (node) {
|
||||
const id = unescape(node.id);
|
||||
|
||||
//vm.macro.view = id;
|
||||
$scope.model.macro.view = "~/Views/MacroPartials/" + id;
|
||||
|
||||
$scope.model.macro.node = {
|
||||
icon: node.icon,
|
||||
name: $scope.model.macro.view
|
||||
};
|
||||
|
||||
//$scope.model.submit($scope.model);
|
||||
|
||||
editorService.close();
|
||||
},
|
||||
close: function () {
|
||||
editorService.close();
|
||||
}
|
||||
};
|
||||
editorService.treePicker(controlPicker);
|
||||
}
|
||||
|
||||
function removeMacroView() {
|
||||
//vm.macro.view = null;
|
||||
$scope.model.macro.node = null;
|
||||
$scope.model.macro.view = null;
|
||||
}
|
||||
|
||||
function init() {
|
||||
|
||||
}
|
||||
|
||||
init();
|
||||
}
|
||||
|
||||
angular.module("umbraco").controller("Umbraco.Editors.Macros.SettingsController", MacrosSettingsController);
|
||||
@@ -1,43 +1,61 @@
|
||||
<umb-box>
|
||||
<umb-box-header title="Info"></umb-box-header>
|
||||
<umb-box-content>
|
||||
<umb-control-group label="Id">
|
||||
{{model.macro.id}}<br/>
|
||||
{{model.macro.key}}
|
||||
</umb-control-group>
|
||||
</umb-box-content>
|
||||
</umb-box>
|
||||
<umb-box>
|
||||
<umb-box-header title="Macro partial view"></umb-box-header>
|
||||
<umb-box-content>
|
||||
<umb-control-group label="Macro partial view">
|
||||
<select class="input-block-level" ng-model="model.macro.view" ng-options="i as i for i in model.views" required>
|
||||
</select>
|
||||
</umb-control-group>
|
||||
</umb-box-content>
|
||||
</umb-box>
|
||||
<umb-box>
|
||||
<umb-box-header title="Editor settings"></umb-box-header>
|
||||
<umb-box-content>
|
||||
<umb-control-group label="Use in rich text editor and the grid">
|
||||
<umb-toggle checked="model.macro.useInEditor" on-click="model.toggle('useInEditor')" ></umb-toggle>
|
||||
</umb-control-group>
|
||||
<umb-control-group label="Render in rich text editor and the grid" ng-if="model.macro.useInEditor">
|
||||
<umb-toggle checked="model.macro.renderInEditor && model.macro.useInEditor" on-click="model.toggle('renderInEditor')" ></umb-toggle>
|
||||
</umb-control-group>
|
||||
</umb-box-content>
|
||||
</umb-box>
|
||||
<umb-box>
|
||||
<umb-box-header title="Cache settings"></umb-box-header>
|
||||
<umb-box-content>
|
||||
<umb-control-group label="Cache period">
|
||||
<input type="number" min="0" ng-model="model.macro.cachePeriod"/>
|
||||
</umb-control-group>
|
||||
<umb-control-group label="Cache by page">
|
||||
<umb-toggle checked="model.macro.cacheByPage" on-click="model.toggle('cacheByPage')"></umb-toggle>
|
||||
</umb-control-group>
|
||||
<umb-control-group label="Cache personalized">
|
||||
<umb-toggle checked="model.macro.cacheByUser" on-click="model.toggle('cacheByUser')"></umb-toggle>
|
||||
</umb-control-group>
|
||||
</umb-box-content>
|
||||
</umb-box>
|
||||
<div ng-controller="Umbraco.Editors.Macros.SettingsController">
|
||||
<umb-box>
|
||||
<umb-box-header title="Info"></umb-box-header>
|
||||
<umb-box-content>
|
||||
<umb-control-group label="Id">
|
||||
{{model.macro.id}}<br/>
|
||||
{{model.macro.key}}
|
||||
</umb-control-group>
|
||||
</umb-box-content>
|
||||
</umb-box>
|
||||
<umb-box>
|
||||
<umb-box-header title="Macro partial view"></umb-box-header>
|
||||
<umb-box-content>
|
||||
<umb-control-group label="Macro partial view">
|
||||
|
||||
<umb-node-preview ng-if="model.macro.node"
|
||||
icon="model.macro.node.icon"
|
||||
name="model.macro.node.name"
|
||||
allow-edit="true"
|
||||
allow-remove="true"
|
||||
on-edit="model.openViewPicker()"
|
||||
on-remove="model.removeMacroView()">
|
||||
</umb-node-preview>
|
||||
|
||||
<a href=""
|
||||
ng-show="!model.macro.node"
|
||||
class="umb-node-preview-add"
|
||||
ng-click="model.openViewPicker()"
|
||||
prevent-default>
|
||||
<localize key="general_add">Add</localize>
|
||||
</a>
|
||||
|
||||
</umb-control-group>
|
||||
</umb-box-content>
|
||||
</umb-box>
|
||||
<umb-box>
|
||||
<umb-box-header title="Editor settings"></umb-box-header>
|
||||
<umb-box-content>
|
||||
<umb-control-group label="Use in rich text editor and the grid">
|
||||
<umb-toggle checked="model.macro.useInEditor" on-click="model.toggle('useInEditor')" ></umb-toggle>
|
||||
</umb-control-group>
|
||||
<umb-control-group label="Render in rich text editor and the grid" ng-if="model.macro.useInEditor">
|
||||
<umb-toggle checked="model.macro.renderInEditor && model.macro.useInEditor" on-click="model.toggle('renderInEditor')" ></umb-toggle>
|
||||
</umb-control-group>
|
||||
</umb-box-content>
|
||||
</umb-box>
|
||||
<umb-box>
|
||||
<umb-box-header title="Cache settings"></umb-box-header>
|
||||
<umb-box-content>
|
||||
<umb-control-group label="Cache period">
|
||||
<input type="number" min="0" ng-model="model.macro.cachePeriod"/>
|
||||
</umb-control-group>
|
||||
<umb-control-group label="Cache by page">
|
||||
<umb-toggle checked="model.macro.cacheByPage" on-click="model.toggle('cacheByPage')"></umb-toggle>
|
||||
</umb-control-group>
|
||||
<umb-control-group label="Cache personalized">
|
||||
<umb-toggle checked="model.macro.cacheByUser" on-click="model.toggle('cacheByUser')"></umb-toggle>
|
||||
</umb-control-group>
|
||||
</umb-box-content>
|
||||
</umb-box>
|
||||
</div>
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
</div>
|
||||
|
||||
<umb-control-group label="Enter a folder name" hide-label="false">
|
||||
<input type="text" name="folderName" ng-model="model.folderName" class="umb-textstring textstring input-block-level" required />
|
||||
<input type="text" name="folderName" ng-model="model.folderName" class="umb-textstring textstring input-block-level" umb-auto-focus required />
|
||||
</umb-control-group>
|
||||
|
||||
<button type="submit" class="btn btn-primary"><localize key="general_create">Create</localize></button>
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
<div class="umbracoDialog umb-dialog-body with-footer" ng-controller="Umbraco.Editors.RelationTypes.CreateController as vm" ng-cloak>
|
||||
<div class="umb-pane">
|
||||
<form name="createRelationTypeForm" val-form-manager ng-submit="vm.createRelationType()">
|
||||
<form novalidate name="createRelationTypeForm"
|
||||
val-form-manager
|
||||
ng-submit="vm.createRelationType()">
|
||||
|
||||
<!-- Name -->
|
||||
<umb-control-group label="@relationType_name">
|
||||
<input type="text" name="relationTypeName" ng-model="vm.relationType.name" class="umb-textstring textstring input-block-level" umb-auto-focus required />
|
||||
|
||||
@@ -1300,6 +1300,7 @@ Mange hilsner fra Umbraco robotten
|
||||
<area alias="macro">
|
||||
<key alias="addParameter">Tilføj parameter</key>
|
||||
<key alias="editParameter">Rediger parameter</key>
|
||||
<key alias="enterMacroName">Indtast makronavn</key>
|
||||
<key alias="parameters">Parametre</key>
|
||||
<key alias="parametersDescription">Definer de parametre, der skal være tilgængelige, når du bruger denne makro.</key>
|
||||
</area>
|
||||
|
||||
@@ -1579,6 +1579,7 @@ To manage your website, simply open the Umbraco back office and start adding con
|
||||
<area alias="macro">
|
||||
<key alias="addParameter">Add parameter</key>
|
||||
<key alias="editParameter">Edit parameter</key>
|
||||
<key alias="enterMacroName">Enter macro name</key>
|
||||
<key alias="parameters">Parameters</key>
|
||||
<key alias="parametersDescription">Define the parameters that should be available when using this macro.</key>
|
||||
</area>
|
||||
|
||||
@@ -492,8 +492,8 @@
|
||||
<key alias="enterMessage">Enter a message...</key>
|
||||
<key alias="usernameHint">Your username is usually your email</key>
|
||||
<key alias="anchor">#value or ?key=value</key>
|
||||
<key alias="enterAlias">Enter alias...</key>
|
||||
<key alias="generatingAlias">Generating alias...</key>
|
||||
<key alias="enterAlias">Enter alias...</key>
|
||||
<key alias="generatingAlias">Generating alias...</key>
|
||||
</area>
|
||||
<area alias="editcontenttype">
|
||||
<key alias="allowedchildnodetypes">Allowed child node types</key>
|
||||
@@ -1589,6 +1589,7 @@ To manage your website, simply open the Umbraco back office and start adding con
|
||||
<area alias="macro">
|
||||
<key alias="addParameter">Add parameter</key>
|
||||
<key alias="editParameter">Edit parameter</key>
|
||||
<key alias="enterMacroName">Enter macro name</key>
|
||||
<key alias="parameters">Parameters</key>
|
||||
<key alias="parametersDescription">Define the parameters that should be available when using this macro.</key>
|
||||
</area>
|
||||
|
||||
Reference in New Issue
Block a user