diff --git a/src/Umbraco.Web.UI.Client/src/common/resources/models.resource.js b/src/Umbraco.Web.UI.Client/src/common/resources/models.resource.js new file mode 100644 index 0000000000..fb3cb0f68c --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/common/resources/models.resource.js @@ -0,0 +1,25 @@ +function modelsResource($q, $http, umbRequestHelper) { + + // fixme - should use BackOfficeController to register urls? How can we extend it? + + return { + getModelsOutOfDateStatus: function() { + return umbRequestHelper.resourcePromise( + $http.get( + /*umbRequestHelper.getApiUrl( + "modelsApiBaseUrl", + "GetModelsOutOfDateStatus")*/ "/Umbraco/BackOffice/Zbu/ModelsBuilderApi/GetModelsOutOfDateStatus"), + "Failed to get models out-of-date status"); + }, + + buildModels: function() { + return umbRequestHelper.resourcePromise( + $http.get( + /*umbRequestHelper.getApiUrl( + "modelsApiBaseUrl", + "BuildModels")*/ "/Umbraco/BackOffice/Zbu/ModelsBuilderApi/BuildModels"), + "Failed to build models"); + } + }; +} +angular.module("umbraco.resources").factory("modelsResource", modelsResource); diff --git a/src/Umbraco.Web.UI.Client/src/views/documenttypes/edit.controller.js b/src/Umbraco.Web.UI.Client/src/views/documenttypes/edit.controller.js index 64157d3183..5c5654bb88 100644 --- a/src/Umbraco.Web.UI.Client/src/views/documenttypes/edit.controller.js +++ b/src/Umbraco.Web.UI.Client/src/views/documenttypes/edit.controller.js @@ -9,7 +9,7 @@ (function() { "use strict"; - function DocumentTypesEditController($scope, $routeParams, contentTypeResource, dataTypeResource, editorState, contentEditingHelper, formHelper, navigationService, iconHelper, contentTypeHelper, notificationsService, $filter) { + function DocumentTypesEditController($scope, $routeParams, modelsResource, contentTypeResource, dataTypeResource, editorState, contentEditingHelper, formHelper, navigationService, iconHelper, contentTypeHelper, notificationsService, $filter) { var vm = this; @@ -17,6 +17,7 @@ vm.currentNode = null; vm.contentType = {}; + vm.page = {}; vm.page.loading = false; vm.page.saveButtonState = "init"; @@ -44,6 +45,51 @@ } ]; + + + //disable by default, turn on if detected correctly. + vm.page.modelsBuilder = false; + modelsResource.getModelsOutOfDateStatus().then(function () { + vm.page.modelsBuilder = true; + }); + + //Models builder mode: + + vm.page.defaultButton = { + hotKey: "ctrl+s", + labelKey: "buttons_save", + letter: "S", + type: "submit", + handler: function () { vm.save(); } + }; + vm.page.subButtons = [{ + hotKey: "ctrl+g", + labelKey: "buttons_generateModels", + letter: "G", + handler: function(){ + + vm.page.saveButtonState = "busy"; + notificationsService.info("Building models", "this can take abit of time, don't worry"); + + modelsResource.buildModels().then(function(){ + vm.page.saveButtonState = "init"; + + //clear and add success + notificationsService.success("Models Generated"); + + //just calling this to get the servar back to life + modelsResource.getModelsOutOfDateStatus(); + + }, function(){ + notificationsService.error("Models could not be generated"); + vm.page.saveButtonState = "error"; + }); + + } + }]; + + + vm.page.keyboardShortcutsOverview = [ { "name": "Sections", diff --git a/src/Umbraco.Web.UI.Client/src/views/documenttypes/edit.html b/src/Umbraco.Web.UI.Client/src/views/documenttypes/edit.html index 3a475fa959..c1dd63910b 100644 --- a/src/Umbraco.Web.UI.Client/src/views/documenttypes/edit.html +++ b/src/Umbraco.Web.UI.Client/src/views/documenttypes/edit.html @@ -6,6 +6,7 @@ ng-show="!vm.page.loading" ng-submit="vm.save()" val-form-manager> + - - + + + + + + diff --git a/src/Umbraco.Web.UI/Views/Web.config b/src/Umbraco.Web.UI/Views/Web.config index c189e7dd93..fe293e7dfd 100644 --- a/src/Umbraco.Web.UI/Views/Web.config +++ b/src/Umbraco.Web.UI/Views/Web.config @@ -22,6 +22,8 @@ + + diff --git a/src/Umbraco.Web.UI/umbraco/config/lang/da.xml b/src/Umbraco.Web.UI/umbraco/config/lang/da.xml index 7a93e71098..20ba032010 100644 --- a/src/Umbraco.Web.UI/umbraco/config/lang/da.xml +++ b/src/Umbraco.Web.UI/umbraco/config/lang/da.xml @@ -89,6 +89,7 @@ Vælg formattering Vis koder Indsæt tabel + Generer modeller For at skifte det valgte indholds dokumenttype, skal du først vælge en ny dokumenttype, som er gyldig på denne placering. diff --git a/src/Umbraco.Web.UI/umbraco/config/lang/en.xml b/src/Umbraco.Web.UI/umbraco/config/lang/en.xml index dc93dd2fc0..b1a2821ca5 100644 --- a/src/Umbraco.Web.UI/umbraco/config/lang/en.xml +++ b/src/Umbraco.Web.UI/umbraco/config/lang/en.xml @@ -94,6 +94,7 @@ Choose style Show styles Insert table + Generate models To change the document type for the selected content, first select from the list of valid types for this location. diff --git a/src/Umbraco.Web.UI/web.Template.Debug.config b/src/Umbraco.Web.UI/web.Template.Debug.config index dfbf72173e..997edcc123 100644 --- a/src/Umbraco.Web.UI/web.Template.Debug.config +++ b/src/Umbraco.Web.UI/web.Template.Debug.config @@ -62,6 +62,8 @@ + + @@ -97,6 +99,7 @@ + diff --git a/src/Umbraco.Web.UI/web.Template.config b/src/Umbraco.Web.UI/web.Template.config index 924a5436f8..49174edf01 100644 --- a/src/Umbraco.Web.UI/web.Template.config +++ b/src/Umbraco.Web.UI/web.Template.config @@ -121,6 +121,7 @@ +