Merge remote-tracking branch 'origin/v8/feature/mb-embed' into v8/feature/mb-embed

This commit is contained in:
Bjarke Berg
2019-10-31 12:32:51 +01:00
11 changed files with 35 additions and 54 deletions

View File

@@ -0,0 +1,23 @@
function modelsBuilderManagementResource($q, $http, umbRequestHelper) {
return {
getModelsOutOfDateStatus: function () {
return umbRequestHelper.resourcePromise(
$http.get(umbRequestHelper.getApiUrl("modelsBuilderBaseUrl", "GetModelsOutOfDateStatus")),
"Failed to get models out-of-date status");
},
buildModels: function () {
return umbRequestHelper.resourcePromise(
$http.post(umbRequestHelper.getApiUrl("modelsBuilderBaseUrl", "BuildModels")),
"Failed to build models");
},
getDashboard: function () {
return umbRequestHelper.resourcePromise(
$http.get(umbRequestHelper.getApiUrl("modelsBuilderBaseUrl", "GetDashboard")),
"Failed to get dashboard");
}
};
}
angular.module("umbraco.resources").factory("modelsBuilderManagementResource", modelsBuilderManagementResource);

View File

@@ -27,7 +27,7 @@ function contentTypeHelper(contentTypeResource, dataTypeResource, $filter, $inje
generateModels: function () {
var deferred = $q.defer();
var modelsResource = $injector.has("modelsBuilderResource") ? $injector.get("modelsBuilderResource") : null;
var modelsResource = $injector.has("modelsBuilderManagementResource") ? $injector.get("modelsBuilderManagementResource") : null;
var modelsBuilderEnabled = Umbraco.Sys.ServerVariables.umbracoPlugins.modelsBuilder.enabled;
if (modelsBuilderEnabled && modelsResource) {
modelsResource.buildModels().then(function(result) {
@@ -48,7 +48,7 @@ function contentTypeHelper(contentTypeResource, dataTypeResource, $filter, $inje
checkModelsBuilderStatus: function () {
var deferred = $q.defer();
var modelsResource = $injector.has("modelsBuilderResource") ? $injector.get("modelsBuilderResource") : null;
var modelsResource = $injector.has("modelsBuilderManagementResource") ? $injector.get("modelsBuilderManagementResource") : null;
var modelsBuilderEnabled = (Umbraco && Umbraco.Sys && Umbraco.Sys.ServerVariables && Umbraco.Sys.ServerVariables.umbracoPlugins && Umbraco.Sys.ServerVariables.umbracoPlugins.modelsBuilder && Umbraco.Sys.ServerVariables.umbracoPlugins.modelsBuilder.enabled === true);
if (modelsBuilderEnabled && modelsResource) {

View File

@@ -0,0 +1,38 @@
function modelsBuilderManagementController($scope, $http, umbRequestHelper, modelsBuilderManagementResource) {
var vm = this;
vm.reload = reload;
vm.generate = generate;
vm.dashboard = null;
function generate() {
vm.generating = true;
umbRequestHelper.resourcePromise(
$http.post(umbRequestHelper.getApiUrl("modelsBuilderBaseUrl", "BuildModels")),
'Failed to generate.')
.then(function (result) {
vm.generating = false;
vm.dashboard = result;
});
}
function reload() {
vm.loading = true;
modelsBuilderManagementResource.getDashboard().then(function (result) {
vm.dashboard = result;
vm.loading = false;
});
}
function init() {
vm.loading = true;
modelsBuilderManagementResource.getDashboard().then(function (result) {
vm.dashboard = result;
vm.loading = false;
});
}
init();
}
angular.module("umbraco").controller("Umbraco.Dashboard.ModelsBuilderManagementController", modelsBuilderManagementController);

View File

@@ -0,0 +1,44 @@
<div id="modelsBuilder" ng-controller="Umbraco.Dashboard.ModelsBuilderManagementController as vm">
<umb-box>
<umb-box-content>
<div ng-show="!vm.loading" class="pull-right">
<button type="button" class="btn" ng-click="vm.reload()"><span>Reload</span></button>
</div>
<h3 class="bold">Models Builder</h3>
<umb-load-indicator ng-show="vm.loading"></umb-load-indicator>
<div ng-show="!vm.loading && vm.dashboard">
<div ng-bind-html="vm.dashboard.text"></div>
<div ng-if="vm.dashboard.outOfDateModels">
<p>Models are <strong>out-of-date</strong>.</p>
</div>
<div ng-if="vm.dashboard.canGenerate">
<div ng-if="vm.dashboard.generateCausesRestart">
<p style="color: red; font-weight: bold;">Generating models will restart the application.</p>
</div>
<div ng-show="!vm.generating">
<button type="button" ng-click="vm.generate()" class="btn btn-danger">
<span>Generate models</span>
</button>
</div>
<div class="umb-loader-wrapper" ng-show="vm.generating">
<div class="umb-loader"></div>
</div>
</div>
<div ng-if="vm.dashboard.lastError" style="margin-top: 32px;" ng-show="!vm.generating">
<span style="color: red; font-weight: bold;">Last generation failed with the following error:</span>
<pre style="width: 80%; white-space: pre-line; background: #f8f8f8; padding: 4px; font-size: small;">{{vm.dashboard.lastError}}</pre>
</div>
</div>
</umb-box-content>
</umb-box>
</div>