diff --git a/src/Umbraco.Web.UI.Client/src/common/services/contenttypehelper.service.js b/src/Umbraco.Web.UI.Client/src/common/services/contenttypehelper.service.js
index abfa58bc72..047d18c35c 100644
--- a/src/Umbraco.Web.UI.Client/src/common/services/contenttypehelper.service.js
+++ b/src/Umbraco.Web.UI.Client/src/common/services/contenttypehelper.service.js
@@ -3,7 +3,7 @@
* @name umbraco.services.contentTypeHelper
* @description A helper service for the content type editor
**/
-function contentTypeHelper(contentTypeResource, dataTypeResource, $filter) {
+function contentTypeHelper(contentTypeResource, dataTypeResource, $filter, $injector, $q) {
var contentTypeHelperService = {
@@ -25,6 +25,44 @@ function contentTypeHelper(contentTypeResource, dataTypeResource, $filter) {
},
+ generateModels: function () {
+ var deferred = $q.defer();
+ var modelsResource = $injector.has("modelsBuilderResource") ? $injector.get("modelsBuilderResource") : null;
+ var modelsBuilderEnabled = Umbraco.Sys.ServerVariables.umbracoPlugins.modelsBuilder.enabled;
+ if (modelsBuilderEnabled && modelsResource) {
+ modelsResource.buildModels().then(function(result) {
+ deferred.resolve(result);
+
+ //just calling this to get the servar back to life
+ modelsResource.getModelsOutOfDateStatus();
+
+ }, function(e) {
+ deferred.reject(e);
+ });
+ }
+ else {
+ deferred.resolve(false);
+ }
+ return deferred.promise;
+ },
+
+ checkModelsBuilderStatus: function () {
+ var deferred = $q.defer();
+ var modelsResource = $injector.has("modelsBuilderResource") ? $injector.get("modelsBuilderResource") : null;
+ var modelsBuilderEnabled = Umbraco.Sys.ServerVariables.umbracoPlugins.modelsBuilder.enabled;
+
+ if (modelsBuilderEnabled && modelsResource) {
+ modelsResource.getModelsOutOfDateStatus().then(function(result) {
+ //Generate models buttons should be enabled if its not 100
+ deferred.resolve(result.status !== 100);
+ });
+ }
+ else {
+ deferred.resolve(false);
+ }
+ return deferred.promise;
+ },
+
makeObjectArrayFromId: function (idArray, objectArray) {
var newArray = [];
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 cd0dc96c11..3c8159bb8e 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
@@ -46,59 +46,6 @@
}
];
- var modelsResource = $injector.has("modelsBuilderResource") ? $injector.get("modelsBuilderResource") : null;
- var modelsBuilderEnabled = Umbraco.Sys.ServerVariables.umbracoPlugins.modelsBuilder.enabled;
-
- //disable by default, turn on if detected correctly.
- vm.page.modelsBuilder = false;
- if (modelsBuilderEnabled && modelsResource) {
- modelsResource.getModelsOutOfDateStatus().then(function (result) {
-
- if (result.status === 100) {
- return;
- }
-
- 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");
-
- if (modelsBuilderEnabled && modelsResource) {
- 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": localizationService.localize("main_sections"),
@@ -164,6 +111,39 @@
}
];
+ contentTypeHelper.checkModelsBuilderStatus().then(function (result) {
+ vm.page.modelsBuilder = result;
+ if (result) {
+ //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");
+
+ contentTypeHelper.generateModels().then(function (result) {
+ vm.page.saveButtonState = "init";
+ //clear and add success
+ notificationsService.success("Models Generated");
+ }, function () {
+ notificationsService.error("Models could not be generated");
+ vm.page.saveButtonState = "error";
+ });
+ }
+ }];
+ }
+ });
+
if ($routeParams.create) {
vm.page.loading = true;
diff --git a/src/Umbraco.Web.UI.Client/src/views/mediatypes/edit.controller.js b/src/Umbraco.Web.UI.Client/src/views/mediatypes/edit.controller.js
index 26453cfa13..89e598ec27 100644
--- a/src/Umbraco.Web.UI.Client/src/views/mediatypes/edit.controller.js
+++ b/src/Umbraco.Web.UI.Client/src/views/mediatypes/edit.controller.js
@@ -95,6 +95,39 @@
}
];
+ contentTypeHelper.checkModelsBuilderStatus().then(function (result) {
+ vm.page.modelsBuilder = result;
+ if (result) {
+ //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");
+
+ contentTypeHelper.generateModels().then(function(result) {
+ vm.page.saveButtonState = "init";
+ //clear and add success
+ notificationsService.success("Models Generated");
+ }, function() {
+ notificationsService.error("Models could not be generated");
+ vm.page.saveButtonState = "error";
+ });
+ }
+ }];
+ }
+ });
+
if ($routeParams.create) {
vm.page.loading = true;
diff --git a/src/Umbraco.Web.UI.Client/src/views/mediatypes/edit.html b/src/Umbraco.Web.UI.Client/src/views/mediatypes/edit.html
index d8f82a64ff..b6c507ec0c 100644
--- a/src/Umbraco.Web.UI.Client/src/views/mediatypes/edit.html
+++ b/src/Umbraco.Web.UI.Client/src/views/mediatypes/edit.html
@@ -39,14 +39,23 @@
-
-
+
+
+
+
+
+
diff --git a/src/Umbraco.Web.UI.Client/src/views/membertypes/edit.controller.js b/src/Umbraco.Web.UI.Client/src/views/membertypes/edit.controller.js
index f4aa8eed25..ed880da9b3 100644
--- a/src/Umbraco.Web.UI.Client/src/views/membertypes/edit.controller.js
+++ b/src/Umbraco.Web.UI.Client/src/views/membertypes/edit.controller.js
@@ -9,7 +9,7 @@
(function () {
"use strict";
- function MemberTypesEditController($scope, $rootScope, $routeParams, $log, $filter, memberTypeResource, dataTypeResource, editorState, iconHelper, formHelper, navigationService, contentEditingHelper, notificationsService, $q, localizationService, overlayHelper) {
+ function MemberTypesEditController($scope, $rootScope, $routeParams, $log, $filter, memberTypeResource, dataTypeResource, editorState, iconHelper, formHelper, navigationService, contentEditingHelper, notificationsService, $q, localizationService, overlayHelper, contentTypeHelper) {
var vm = this;
var localizeSaving = localizationService.localize("general_saving");
@@ -54,6 +54,39 @@
}
];
+ contentTypeHelper.checkModelsBuilderStatus().then(function (result) {
+ vm.page.modelsBuilder = result;
+ if (result) {
+ //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");
+
+ contentTypeHelper.generateModels().then(function (result) {
+ vm.page.saveButtonState = "init";
+ //clear and add success
+ notificationsService.success("Models Generated");
+ }, function () {
+ notificationsService.error("Models could not be generated");
+ vm.page.saveButtonState = "error";
+ });
+ }
+ }];
+ }
+ });
+
if ($routeParams.create) {
vm.page.loading = true;
diff --git a/src/Umbraco.Web.UI.Client/src/views/membertypes/edit.html b/src/Umbraco.Web.UI.Client/src/views/membertypes/edit.html
index b8bb2fd569..64ffe504b1 100644
--- a/src/Umbraco.Web.UI.Client/src/views/membertypes/edit.html
+++ b/src/Umbraco.Web.UI.Client/src/views/membertypes/edit.html
@@ -37,14 +37,23 @@
-
-
+
+
+
+
+
+