Ensures the build models buttons work and are enabled for content types, media types and member types
This commit is contained in:
@@ -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 = [];
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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>
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user