From 4cd287616e655692f6ec9411bb2588e464c8fd6d Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Tue, 31 Jan 2017 14:44:52 +0100 Subject: [PATCH] add UI for partial view macros create dialog --- .../src/common/resources/codefile.resource.js | 30 ++++++++ .../partialviewmacros/create.controller.js | 51 ++++++++++++- .../src/views/partialviewmacros/create.html | 76 ++++++++++++++++++- 3 files changed, 153 insertions(+), 4 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/common/resources/codefile.resource.js b/src/Umbraco.Web.UI.Client/src/common/resources/codefile.resource.js index 4655b6fa3b..e8657ecd73 100644 --- a/src/Umbraco.Web.UI.Client/src/common/resources/codefile.resource.js +++ b/src/Umbraco.Web.UI.Client/src/common/resources/codefile.resource.js @@ -176,7 +176,37 @@ function codefileResource($q, $http, umbDataFormatter, umbRequestHelper) { "PostSave"), codeFile), "Failed to save data for code file " + codeFile.virtualPath); + }, + + /** + * @ngdoc method + * @name umbraco.resources.codefileResource#getSnippets + * @methodOf umbraco.resources.codefileResource + * + * @description + * Gets code snippets for a given file type + * + * ##usage + *
+         * codefileResource.getSnippets(fileType)
+         *    .then(function(snippets) {
+         *        alert('its here!');
+         *    });
+         * 
+ * + * @param {string} file type: (partialViews, partialViewMacros) + * @returns {Promise} resourcePromise object. + * + */ + getSnippets: function (fileType) { + return umbRequestHelper.resourcePromise( + $http.get( + umbRequestHelper.getApiUrl( + "codeFileApiBaseUrl", + "GetSnippets?type=" + fileType )), + "Failed to get snippet for" + fileType); } + }; } diff --git a/src/Umbraco.Web.UI.Client/src/views/partialviewmacros/create.controller.js b/src/Umbraco.Web.UI.Client/src/views/partialviewmacros/create.controller.js index a350a626f4..e822c19d09 100644 --- a/src/Umbraco.Web.UI.Client/src/views/partialviewmacros/create.controller.js +++ b/src/Umbraco.Web.UI.Client/src/views/partialviewmacros/create.controller.js @@ -1,7 +1,56 @@ (function () { "use strict"; - function PartialViewMacrosCreateController() { + function PartialViewMacrosCreateController($scope, codefileResource, $location, navigationService) { + + var vm = this; + var node = $scope.dialogOptions.currentNode; + + vm.snippets = []; + vm.showSnippets = false; + vm.creatingFolder = false; + + vm.createPartialViewMacro = createPartialViewMacro; + vm.showCreateFolder = showCreateFolder; + vm.createFolder = createFolder; + vm.showCreateFromSnippet = showCreateFromSnippet; + + function onInit() { + codefileResource.getSnippets('partialViewMacros') + .then(function(snippets) { + vm.snippets = snippets; + }); + } + + function createPartialViewMacro(selectedSnippet) { + + var snippet = null; + + if(selectedSnippet && selectedSnippet.fileName) { + snippet = selectedSnippet.fileName; + } + + $location.search('create', null); + $location.search('snippet', null); + $location.path("/developer/partialviewmacros/edit/" + node.id).search("create", "true").search("snippet", snippet); + navigationService.hideMenu(); + + } + + function showCreateFolder() { + vm.creatingFolder = true; + } + + function createFolder() { + alert("create folder"); + } + + function showCreateFromSnippet() { + vm.showSnippets = true; + } + + onInit(); + } angular.module("umbraco").controller("Umbraco.Editors.PartialViewMacros.CreateController", PartialViewMacrosCreateController); diff --git a/src/Umbraco.Web.UI.Client/src/views/partialviewmacros/create.html b/src/Umbraco.Web.UI.Client/src/views/partialviewmacros/create.html index 9e5504aa0c..0c3c0fc385 100644 --- a/src/Umbraco.Web.UI.Client/src/views/partialviewmacros/create.html +++ b/src/Umbraco.Web.UI.Client/src/views/partialviewmacros/create.html @@ -1,5 +1,75 @@ -