U4-7748 Models Builder - needs to be in control of the models-out-of-date status

This commit is contained in:
Shannon
2016-01-19 14:46:19 +01:00
parent 19fae702a9
commit caef155805
9 changed files with 105 additions and 81 deletions

View File

@@ -1,26 +0,0 @@
function modelsResource($q, $http, umbRequestHelper) {
// TODO - should use BackOfficeController to register urls? How can we extend it?
// TODO - this shouldn't exist in core!!
return {
getModelsOutOfDateStatus: function() {
return umbRequestHelper.resourcePromise(
$http.get(
/*umbRequestHelper.getApiUrl(
"modelsApiBaseUrl",
"GetModelsOutOfDateStatus")*/ "/Umbraco/BackOffice/ModelsBuilder/ModelsBuilder/GetModelsOutOfDateStatus"),
"Failed to get models out-of-date status");
},
buildModels: function() {
return umbRequestHelper.resourcePromise(
$http.get(
/*umbRequestHelper.getApiUrl(
"modelsApiBaseUrl",
"BuildModels")*/ "/Umbraco/BackOffice/ModelsBuilder/ModelsBuilder/BuildModels"),
"Failed to build models");
}
};
}
angular.module("umbraco.resources").factory("modelsResource", modelsResource);

View File

@@ -9,7 +9,7 @@
(function () { (function () {
"use strict"; "use strict";
function DocumentTypesEditController($scope, $routeParams, modelsResource, contentTypeResource, dataTypeResource, editorState, contentEditingHelper, formHelper, navigationService, iconHelper, contentTypeHelper, notificationsService, $filter, $q, localizationService, overlayHelper) { function DocumentTypesEditController($scope, $routeParams, $injector, contentTypeResource, dataTypeResource, editorState, contentEditingHelper, formHelper, navigationService, iconHelper, contentTypeHelper, notificationsService, $filter, $q, localizationService, overlayHelper) {
var vm = this; var vm = this;
var localizeSaving = localizationService.localize("general_saving"); var localizeSaving = localizationService.localize("general_saving");
@@ -46,48 +46,58 @@
} }
]; ];
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. //disable by default, turn on if detected correctly.
vm.page.modelsBuilder = false; vm.page.modelsBuilder = false;
modelsResource.getModelsOutOfDateStatus().then(function () { if (modelsBuilderEnabled && modelsResource) {
vm.page.modelsBuilder = true; modelsResource.getModelsOutOfDateStatus().then(function (result) {
});
//Models builder mode: if (result.status === 100) {
return;
}
vm.page.defaultButton = { vm.page.modelsBuilder = true;
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"; //Models builder mode:
notificationsService.info("Building models", "this can take abit of time, don't worry");
modelsResource.buildModels().then(function () { vm.page.defaultButton = {
vm.page.saveButtonState = "init"; 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 () {
//clear and add success vm.page.saveButtonState = "busy";
notificationsService.success("Models Generated"); notificationsService.info("Building models", "this can take abit of time, don't worry");
//just calling this to get the servar back to life if (modelsBuilderEnabled && modelsResource) {
modelsResource.getModelsOutOfDateStatus(); modelsResource.buildModels().then(function () {
vm.page.saveButtonState = "init";
}, function () { //clear and add success
notificationsService.error("Models could not be generated"); notificationsService.success("Models Generated");
vm.page.saveButtonState = "error";
});
}
}];
//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 = [ vm.page.keyboardShortcutsOverview = [
{ {

View File

@@ -1,9 +1,9 @@
function modelsBuilderController($scope, umbRequestHelper, $log, $http /*, $sce*/) { function modelsBuilderController($scope, umbRequestHelper, $log, $http, modelsBuilderResource) {
$scope.generate = function() { $scope.generate = function() {
$scope.generating = true; $scope.generating = true;
umbRequestHelper.resourcePromise( umbRequestHelper.resourcePromise(
$http.get(umbRequestHelper.getApiUrl("modelsBuilderBaseUrl", "BuildModels")), $http.post(umbRequestHelper.getApiUrl("modelsBuilderBaseUrl", "BuildModels")),
'Failed to generate.') 'Failed to generate.')
.then(function (result) { .then(function (result) {
$scope.generating = false; $scope.generating = false;
@@ -11,14 +11,10 @@
}; };
function init() { function init() {
umbRequestHelper.resourcePromise( modelsBuilderResource.getDashboard().then(function(result) {
$http.get(umbRequestHelper.getApiUrl("modelsBuilderBaseUrl", "GetDashboard")), $scope.dashboard = result;
'Failed to get dashboard.') $scope.ready = true;
.then(function (result) { });
//result.text = $sce.trustAsHtml(result.text); // accept html
$scope.dashboard = result;
$scope.ready = true;
});
} }
init(); init();

View File

@@ -1,6 +1,7 @@
{ {
//array of files we want to inject into the application on app_start //array of files we want to inject into the application on app_start
javascript: [ javascript: [
'~/App_Plugins/ModelsBuilder/modelsbuilder.controller.js' '~/App_Plugins/ModelsBuilder/modelsbuilder.controller.js',
'~/App_Plugins/ModelsBuilder/modelsbuilder.resource.js'
] ]
} }

View File

@@ -350,12 +350,12 @@
<Name>umbraco.providers</Name> <Name>umbraco.providers</Name>
</ProjectReference> </ProjectReference>
<Reference Include="System.Xml.Linq" /> <Reference Include="System.Xml.Linq" />
<Reference Include="Umbraco.ModelsBuilder, Version=2.2.0.70, Culture=neutral, processorArchitecture=MSIL"> <Reference Include="Umbraco.ModelsBuilder, Version=3.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Umbraco.ModelsBuilder.2.2.0-beta003\lib\Umbraco.ModelsBuilder.dll</HintPath> <HintPath>..\packages\Umbraco.ModelsBuilder.3.0.0-beta0001\lib\Umbraco.ModelsBuilder.dll</HintPath>
<Private>True</Private> <Private>True</Private>
</Reference> </Reference>
<Reference Include="Umbraco.ModelsBuilder.AspNet, Version=2.2.0.70, Culture=neutral, processorArchitecture=MSIL"> <Reference Include="Umbraco.ModelsBuilder.AspNet, Version=3.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Umbraco.ModelsBuilder.AspNet.2.2.0-beta003\lib\Umbraco.ModelsBuilder.AspNet.dll</HintPath> <HintPath>..\packages\Umbraco.ModelsBuilder.AspNet.3.0.0-beta0001\lib\Umbraco.ModelsBuilder.AspNet.dll</HintPath>
<Private>True</Private> <Private>True</Private>
</Reference> </Reference>
<Reference Include="UrlRewritingNet.UrlRewriter, Version=2.0.7.0, Culture=neutral, processorArchitecture=MSIL"> <Reference Include="UrlRewritingNet.UrlRewriter, Version=2.0.7.0, Culture=neutral, processorArchitecture=MSIL">
@@ -582,8 +582,6 @@
<Compile Include="Umbraco\TreeInit.aspx.designer.cs"> <Compile Include="Umbraco\TreeInit.aspx.designer.cs">
<DependentUpon>treeInit.aspx</DependentUpon> <DependentUpon>treeInit.aspx</DependentUpon>
</Compile> </Compile>
<Content Include="App_Plugins\ModelsBuilder\modelsbuilder.controller.js" />
<Content Include="App_Plugins\ModelsBuilder\modelsbuilder.htm" />
<Content Include="Config\grid.editors.config.js" /> <Content Include="Config\grid.editors.config.js" />
<Content Include="Config\Lang\cs-CZ.user.xml" /> <Content Include="Config\Lang\cs-CZ.user.xml" />
<Content Include="Config\Lang\da-DK.user.xml" /> <Content Include="Config\Lang\da-DK.user.xml" />
@@ -642,7 +640,6 @@
</SubType> </SubType>
</Content> </Content>
<Content Include="Umbraco\Install\Views\Web.config" /> <Content Include="Umbraco\Install\Views\Web.config" />
<Content Include="App_Plugins\ModelsBuilder\package.manifest" />
<None Include="Config\404handlers.Release.config"> <None Include="Config\404handlers.Release.config">
<DependentUpon>404handlers.config</DependentUpon> <DependentUpon>404handlers.config</DependentUpon>
</None> </None>
@@ -2390,6 +2387,7 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Folder Include="App_Data\" /> <Folder Include="App_Data\" />
<Folder Include="App_Plugins\" />
<Folder Include="Media\" /> <Folder Include="Media\" />
<Folder Include="Umbraco\preview\" /> <Folder Include="Umbraco\preview\" />
<Folder Include="Umbraco_Client\FolderBrowser\Images\" /> <Folder Include="Umbraco_Client\FolderBrowser\Images\" />

View File

@@ -37,7 +37,7 @@
<package id="SqlServerCE" version="4.0.0.0" targetFramework="net45" /> <package id="SqlServerCE" version="4.0.0.0" targetFramework="net45" />
<package id="System.Collections.Immutable" version="1.1.36" targetFramework="net45" /> <package id="System.Collections.Immutable" version="1.1.36" targetFramework="net45" />
<package id="System.Reflection.Metadata" version="1.0.21" targetFramework="net45" /> <package id="System.Reflection.Metadata" version="1.0.21" targetFramework="net45" />
<package id="Umbraco.ModelsBuilder" version="2.2.0-beta003" targetFramework="net45" /> <package id="Umbraco.ModelsBuilder" version="3.0.0-beta0001" targetFramework="net45" />
<package id="Umbraco.ModelsBuilder.AspNet" version="2.2.0-beta003" targetFramework="net45" /> <package id="Umbraco.ModelsBuilder.AspNet" version="3.0.0-beta0001" targetFramework="net45" />
<package id="UrlRewritingNet.UrlRewriter" version="2.0.7" targetFramework="net45" /> <package id="UrlRewritingNet.UrlRewriter" version="2.0.7" targetFramework="net45" />
</packages> </packages>

View File

@@ -26,6 +26,7 @@ using Umbraco.Core.Manifest;
using Umbraco.Core.Models; using Umbraco.Core.Models;
using Umbraco.Core.Models.Identity; using Umbraco.Core.Models.Identity;
using Umbraco.Core.Security; using Umbraco.Core.Security;
using Umbraco.ModelsBuilder.Configuration;
using Umbraco.Web.Models.ContentEditing; using Umbraco.Web.Models.ContentEditing;
using Umbraco.Web.Mvc; using Umbraco.Web.Mvc;
using Umbraco.Web.PropertyEditors; using Umbraco.Web.PropertyEditors;
@@ -362,7 +363,8 @@ namespace Umbraco.Web.Editors
{ {
"umbracoPlugins", new Dictionary<string, object> "umbracoPlugins", new Dictionary<string, object>
{ {
{"trees", GetTreePluginsMetaData()} {"trees", GetTreePluginsMetaData()},
{"modelsBuilder", GetModelsBuilderSettings() }
} }
}, },
{ {
@@ -403,7 +405,7 @@ namespace Umbraco.Web.Editors
return JavaScript(result); return JavaScript(result);
} }
[HttpPost] [HttpPost]
public ActionResult ExternalLogin(string provider, string redirectUrl = null) public ActionResult ExternalLogin(string provider, string redirectUrl = null)
{ {
@@ -644,6 +646,20 @@ namespace Umbraco.Web.Editors
return app; return app;
} }
private Dictionary<string, object> GetModelsBuilderSettings()
{
if (ApplicationContext.IsConfigured == false)
return null;
var settings = new Dictionary<string, object>
{
{"enabled", UmbracoConfig.For.ModelsBuilder().Enable}
};
return settings;
}
private IEnumerable<Dictionary<string, string>> GetTreePluginsMetaData() private IEnumerable<Dictionary<string, string>> GetTreePluginsMetaData()
{ {
var treeTypes = PluginManager.Current.ResolveAttributedTreeControllers(); var treeTypes = PluginManager.Current.ResolveAttributedTreeControllers();

View File

@@ -140,6 +140,14 @@
<SpecificVersion>False</SpecificVersion> <SpecificVersion>False</SpecificVersion>
<HintPath>..\packages\Microsoft.AspNet.Identity.Owin.2.2.1\lib\net45\Microsoft.AspNet.Identity.Owin.dll</HintPath> <HintPath>..\packages\Microsoft.AspNet.Identity.Owin.2.2.1\lib\net45\Microsoft.AspNet.Identity.Owin.dll</HintPath>
</Reference> </Reference>
<Reference Include="Microsoft.CodeAnalysis, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.CodeAnalysis.Common.1.0.0\lib\net45\Microsoft.CodeAnalysis.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Microsoft.CodeAnalysis.CSharp, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.CodeAnalysis.CSharp.1.0.0\lib\net45\Microsoft.CodeAnalysis.CSharp.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Microsoft.CSharp" /> <Reference Include="Microsoft.CSharp" />
<Reference Include="Microsoft.Owin, Version=3.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL"> <Reference Include="Microsoft.Owin, Version=3.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion> <SpecificVersion>False</SpecificVersion>
@@ -184,6 +192,10 @@
<Reference Include="System"> <Reference Include="System">
<Name>System</Name> <Name>System</Name>
</Reference> </Reference>
<Reference Include="System.Collections.Immutable, Version=1.1.36.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Collections.Immutable.1.1.36\lib\portable-net45+win8+wp8+wpa81\System.Collections.Immutable.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="System.ComponentModel.DataAnnotations" /> <Reference Include="System.ComponentModel.DataAnnotations" />
<Reference Include="System.configuration" /> <Reference Include="System.configuration" />
<Reference Include="System.Data"> <Reference Include="System.Data">
@@ -201,6 +213,10 @@
<SpecificVersion>False</SpecificVersion> <SpecificVersion>False</SpecificVersion>
<HintPath>..\packages\Microsoft.AspNet.WebApi.Client.5.2.3\lib\net45\System.Net.Http.Formatting.dll</HintPath> <HintPath>..\packages\Microsoft.AspNet.WebApi.Client.5.2.3\lib\net45\System.Net.Http.Formatting.dll</HintPath>
</Reference> </Reference>
<Reference Include="System.Reflection.Metadata, Version=1.0.21.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Reflection.Metadata.1.0.21\lib\portable-net45+win8\System.Reflection.Metadata.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="System.Runtime.Serialization" /> <Reference Include="System.Runtime.Serialization" />
<Reference Include="System.ServiceModel" /> <Reference Include="System.ServiceModel" />
<Reference Include="System.Web" /> <Reference Include="System.Web" />
@@ -286,6 +302,10 @@
<Project>{D7636876-0756-43CB-A192-138C6F0D5E42}</Project> <Project>{D7636876-0756-43CB-A192-138C6F0D5E42}</Project>
<Name>umbraco.providers</Name> <Name>umbraco.providers</Name>
</ProjectReference> </ProjectReference>
<Reference Include="Umbraco.ModelsBuilder, Version=3.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\Umbraco.ModelsBuilder.3.0.0-beta0001\lib\Umbraco.ModelsBuilder.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="UrlRewritingNet.UrlRewriter, Version=2.0.7.0, Culture=neutral, processorArchitecture=MSIL"> <Reference Include="UrlRewritingNet.UrlRewriter, Version=2.0.7.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\UrlRewritingNet.UrlRewriter.2.0.7\lib\UrlRewritingNet.UrlRewriter.dll</HintPath> <HintPath>..\packages\UrlRewritingNet.UrlRewriter.2.0.7\lib\UrlRewritingNet.UrlRewriter.dll</HintPath>
<Private>True</Private> <Private>True</Private>
@@ -2157,7 +2177,10 @@
<CachedSettingsPropName>umbraco_org_umbraco_update_CheckForUpgrade</CachedSettingsPropName> <CachedSettingsPropName>umbraco_org_umbraco_update_CheckForUpgrade</CachedSettingsPropName>
</WebReferenceUrl> </WebReferenceUrl>
</ItemGroup> </ItemGroup>
<ItemGroup /> <ItemGroup>
<Analyzer Include="..\packages\Microsoft.CodeAnalysis.Analyzers.1.0.0\analyzers\dotnet\cs\Microsoft.CodeAnalysis.Analyzers.dll" />
<Analyzer Include="..\packages\Microsoft.CodeAnalysis.Analyzers.1.0.0\analyzers\dotnet\cs\Microsoft.CodeAnalysis.CSharp.Analyzers.dll" />
</ItemGroup>
<PropertyGroup> <PropertyGroup>
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">11.0</VisualStudioVersion> <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">11.0</VisualStudioVersion>
<VSToolsPath Condition="exists('$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v11.0\WebApplications\Microsoft.WebApplication.targets')">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v11.0</VSToolsPath> <VSToolsPath Condition="exists('$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v11.0\WebApplications\Microsoft.WebApplication.targets')">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v11.0</VSToolsPath>

View File

@@ -15,6 +15,9 @@
<package id="Microsoft.AspNet.WebApi.Core" version="5.2.3" targetFramework="net45" /> <package id="Microsoft.AspNet.WebApi.Core" version="5.2.3" targetFramework="net45" />
<package id="Microsoft.AspNet.WebApi.WebHost" version="5.2.3" targetFramework="net45" /> <package id="Microsoft.AspNet.WebApi.WebHost" version="5.2.3" targetFramework="net45" />
<package id="Microsoft.AspNet.WebPages" version="3.2.3" targetFramework="net45" /> <package id="Microsoft.AspNet.WebPages" version="3.2.3" targetFramework="net45" />
<package id="Microsoft.CodeAnalysis.Analyzers" version="1.0.0" targetFramework="net45" />
<package id="Microsoft.CodeAnalysis.Common" version="1.0.0" targetFramework="net45" />
<package id="Microsoft.CodeAnalysis.CSharp" version="1.0.0" targetFramework="net45" />
<package id="Microsoft.Owin" version="3.0.1" targetFramework="net45" /> <package id="Microsoft.Owin" version="3.0.1" targetFramework="net45" />
<package id="Microsoft.Owin.Host.SystemWeb" version="3.0.1" targetFramework="net45" /> <package id="Microsoft.Owin.Host.SystemWeb" version="3.0.1" targetFramework="net45" />
<package id="Microsoft.Owin.Security" version="3.0.1" targetFramework="net45" /> <package id="Microsoft.Owin.Security" version="3.0.1" targetFramework="net45" />
@@ -26,6 +29,9 @@
<package id="Owin" version="1.0" targetFramework="net45" /> <package id="Owin" version="1.0" targetFramework="net45" />
<package id="semver" version="1.1.2" targetFramework="net45" /> <package id="semver" version="1.1.2" targetFramework="net45" />
<package id="SharpZipLib" version="0.86.0" targetFramework="net45" /> <package id="SharpZipLib" version="0.86.0" targetFramework="net45" />
<package id="System.Collections.Immutable" version="1.1.36" targetFramework="net45" />
<package id="System.Reflection.Metadata" version="1.0.21" targetFramework="net45" />
<package id="Umbraco.ModelsBuilder" version="3.0.0-beta0001" targetFramework="net45" />
<package id="UrlRewritingNet.UrlRewriter" version="2.0.7" targetFramework="net45" /> <package id="UrlRewritingNet.UrlRewriter" version="2.0.7" targetFramework="net45" />
<package id="xmlrpcnet" version="2.5.0" targetFramework="net45" /> <package id="xmlrpcnet" version="2.5.0" targetFramework="net45" />
</packages> </packages>