Ensures the build models buttons work and are enabled for content types, media types and member types

This commit is contained in:
Shannon
2016-01-19 19:57:38 +01:00
parent e857b0a5f4
commit d0df31be8b
6 changed files with 173 additions and 71 deletions

View File

@@ -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 = [];

View File

@@ -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;

View File

@@ -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;

View File

@@ -39,14 +39,23 @@
<umb-editor-footer-content-right>
<umb-button
type="submit"
state="vm.page.saveButtonState"
button-style="success"
shortcut="ctrl+s"
label="Save"
label-key="buttons_save">
</umb-button>
<umb-button ng-if="!vm.page.modelsBuilder"
type="submit"
state="vm.page.saveButtonState"
button-style="success"
shortcut="ctrl+s"
label="Save"
label-key="buttons_save">
</umb-button>
<umb-button-group ng-if="vm.page.modelsBuilder"
default-button="vm.page.defaultButton"
sub-buttons="vm.page.subButtons"
state="vm.page.saveButtonState"
direction="up"
float="right">
</umb-button-group>
</umb-editor-footer-content-right>

View File

@@ -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;

View File

@@ -37,14 +37,23 @@
<umb-editor-footer-content-right>
<umb-button
type="submit"
state="vm.page.saveButtonState"
button-style="success"
shortcut="ctrl+s"
label="Save"
label-key="buttons_save">
</umb-button>
<umb-button ng-if="!vm.page.modelsBuilder"
type="submit"
state="vm.page.saveButtonState"
button-style="success"
shortcut="ctrl+s"
label="Save"
label-key="buttons_save">
</umb-button>
<umb-button-group ng-if="vm.page.modelsBuilder"
default-button="vm.page.defaultButton"
sub-buttons="vm.page.subButtons"
state="vm.page.saveButtonState"
direction="up"
float="right">
</umb-button-group>
</umb-editor-footer-content-right>