diff --git a/Gruntfile.js b/Gruntfile.js index 8bbb3d9..8d68fc9 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -72,7 +72,7 @@ module.exports = function(grunt) { }, dll: { cwd: 'app/Umbraco/Umbraco.Archetype/bin/Release/', - src: '*.*', + src: 'Archetype.dll', dest: '<%= dest %>/bin/', expand: true }, @@ -208,6 +208,7 @@ module.exports = function(grunt) { grunt.registerTask('default', ['clean', 'less', 'concat', 'assemblyinfo', 'msbuild:dist', 'copy:dll', 'copy:config', 'copy:html']); - grunt.registerTask('nuget', ['clean:tmp', 'default', 'copy:nuget', 'template:nuspec', 'nugetpack', 'clean:tmp']); + grunt.registerTask('nuget', ['clean:tmp', 'default', 'copy:nuget', 'template:nuspec', 'nugetpack', 'clean:tmp']); grunt.registerTask('umbraco', ['clean:tmp', 'default', 'copy:umbraco', 'umbracoPackage', 'clean:tmp']); + grunt.registerTask('package', ['clean:tmp', 'default', 'copy:nuget', 'template:nuspec', 'nugetpack', 'copy:umbraco', 'umbracoPackage', 'clean:tmp']); }; \ No newline at end of file diff --git a/app/Umbraco/Umbraco.Archetype/Archetype.Umbraco.csproj b/app/Umbraco/Umbraco.Archetype/Archetype.Umbraco.csproj index 53469ca..f379ec2 100644 --- a/app/Umbraco/Umbraco.Archetype/Archetype.Umbraco.csproj +++ b/app/Umbraco/Umbraco.Archetype/Archetype.Umbraco.csproj @@ -42,6 +42,7 @@ ..\packages\UmbracoCms.Core.7.1.1\lib\businesslogic.dll + False ..\packages\ClientDependency.1.7.1.2\lib\ClientDependency.Core.dll @@ -53,9 +54,11 @@ ..\packages\UmbracoCms.Core.7.1.1\lib\cms.dll + False ..\packages\UmbracoCms.Core.7.1.1\lib\controls.dll + False ..\packages\xmlrpcnet.2.5.0\lib\net20\CookComputing.XmlRpcV2.dll @@ -63,6 +66,7 @@ ..\packages\UmbracoCms.Core.7.1.1\lib\Examine.dll + False ..\packages\HtmlAgilityPack.1.4.6\lib\Net45\HtmlAgilityPack.dll @@ -82,9 +86,11 @@ ..\packages\UmbracoCms.Core.7.1.1\lib\interfaces.dll + False ..\packages\UmbracoCms.Core.7.1.1\lib\log4net.dll + False ..\packages\Lucene.Net.2.9.4.1\lib\net40\Lucene.Net.dll @@ -92,9 +98,11 @@ ..\packages\UmbracoCms.Core.7.1.1\lib\Microsoft.ApplicationBlocks.Data.dll + False ..\packages\UmbracoCms.Core.7.1.1\lib\Microsoft.Web.Helpers.dll + False False @@ -114,18 +122,20 @@ ..\packages\Newtonsoft.Json.6.0.2\lib\net45\Newtonsoft.Json.dll + False ..\packages\UmbracoCms.Core.7.1.1\lib\SQLCE4Umbraco.dll + False - True + False ..\packages\UmbracoCms.Core.7.1.1\lib\System.Data.SqlServerCe.dll - True + False ..\packages\UmbracoCms.Core.7.1.1\lib\System.Data.SqlServerCe.Entity.dll @@ -174,36 +184,47 @@ ..\packages\UmbracoCms.Core.7.1.1\lib\TidyNet.dll + False ..\packages\UmbracoCms.Core.7.1.1\lib\umbraco.dll + False ..\packages\UmbracoCms.Core.7.1.1\lib\Umbraco.Core.dll + False ..\packages\UmbracoCms.Core.7.1.1\lib\umbraco.DataLayer.dll + False ..\packages\UmbracoCms.Core.7.1.1\lib\umbraco.editorControls.dll + False ..\packages\UmbracoCms.Core.7.1.1\lib\umbraco.MacroEngines.dll + False ..\packages\UmbracoCms.Core.7.1.1\lib\umbraco.providers.dll + False ..\packages\UmbracoCms.Core.7.1.1\lib\Umbraco.Web.UI.dll + False ..\packages\UmbracoCms.Core.7.1.1\lib\umbraco.XmlSerializers.dll + False ..\packages\UmbracoCms.Core.7.1.1\lib\UmbracoExamine.dll + False ..\packages\UmbracoCms.Core.7.1.1\lib\UrlRewritingNet.UrlRewriter.dll + False diff --git a/app/Umbraco/Umbraco.Archetype/PropertyEditors/ArcheTypePropertyEditor.cs b/app/Umbraco/Umbraco.Archetype/PropertyEditors/ArcheTypePropertyEditor.cs index e55ed1d..3192130 100644 --- a/app/Umbraco/Umbraco.Archetype/PropertyEditors/ArcheTypePropertyEditor.cs +++ b/app/Umbraco/Umbraco.Archetype/PropertyEditors/ArcheTypePropertyEditor.cs @@ -11,6 +11,7 @@ using Umbraco.Core.Models.Editors; using Umbraco.Core.PropertyEditors; using Umbraco.Core.Services; using Umbraco.Web.PropertyEditors; +using Umbraco.Core.Logging; namespace Archetype.Umbraco.PropertyEditors { @@ -64,11 +65,18 @@ namespace Archetype.Umbraco.PropertyEditors { foreach (var propDef in fieldset.Properties) { - var dtd = dataTypeService.GetDataTypeDefinitionById(Guid.Parse(propDef.DataTypeGuid)); - var propType = new PropertyType(dtd) { Alias = propDef.Alias }; - var prop = new Property(propType, propDef.Value); - var propEditor = PropertyEditorResolver.Current.GetByAlias(dtd.PropertyEditorAlias); - propDef.Value = propEditor.ValueEditor.ConvertDbToString(prop, propType, dataTypeService); + try + { + var dtd = dataTypeService.GetDataTypeDefinitionById(Guid.Parse(propDef.DataTypeGuid)); + var propType = new PropertyType(dtd) { Alias = propDef.Alias }; + var prop = new Property(propType, propDef.Value); + var propEditor = PropertyEditorResolver.Current.GetByAlias(dtd.PropertyEditorAlias); + propDef.Value = propEditor.ValueEditor.ConvertDbToString(prop, propType, dataTypeService); + } + catch (Exception ex) + { + LogHelper.Error(ex.Message, ex); + } } } @@ -86,11 +94,18 @@ namespace Archetype.Umbraco.PropertyEditors { foreach (var propDef in fieldset.Properties) { - var dtd = dataTypeService.GetDataTypeDefinitionById(Guid.Parse(propDef.DataTypeGuid)); - var propType = new PropertyType(dtd) { Alias = propDef.Alias }; - var prop = new Property(propType, propDef.Value); - var propEditor = PropertyEditorResolver.Current.GetByAlias(dtd.PropertyEditorAlias); - propDef.Value = propEditor.ValueEditor.ConvertDbToEditor(prop, propType, dataTypeService); + try + { + var dtd = dataTypeService.GetDataTypeDefinitionById(Guid.Parse(propDef.DataTypeGuid)); + var propType = new PropertyType(dtd) { Alias = propDef.Alias }; + var prop = new Property(propType, propDef.Value); + var propEditor = PropertyEditorResolver.Current.GetByAlias(dtd.PropertyEditorAlias); + propDef.Value = propEditor.ValueEditor.ConvertDbToEditor(prop, propType, dataTypeService); + } + catch (Exception ex) + { + LogHelper.Error(ex.Message, ex); + } } } @@ -107,11 +122,18 @@ namespace Archetype.Umbraco.PropertyEditors { foreach (var propDef in fieldset.Properties) { - var dtd = ApplicationContext.Current.Services.DataTypeService.GetDataTypeDefinitionById(Guid.Parse(propDef.DataTypeGuid)); - var preValues = ApplicationContext.Current.Services.DataTypeService.GetPreValuesCollectionByDataTypeId(dtd.Id); - var propData = new ContentPropertyData(propDef.Value, preValues, new Dictionary()); - var propEditor = PropertyEditorResolver.Current.GetByAlias(dtd.PropertyEditorAlias); - propDef.Value = propEditor.ValueEditor.ConvertEditorToDb(propData, propDef.Value); + try + { + var dtd = ApplicationContext.Current.Services.DataTypeService.GetDataTypeDefinitionById(Guid.Parse(propDef.DataTypeGuid)); + var preValues = ApplicationContext.Current.Services.DataTypeService.GetPreValuesCollectionByDataTypeId(dtd.Id); + var propData = new ContentPropertyData(propDef.Value, preValues, new Dictionary()); + var propEditor = PropertyEditorResolver.Current.GetByAlias(dtd.PropertyEditorAlias); + propDef.Value = propEditor.ValueEditor.ConvertEditorToDb(propData, propDef.Value); + } + catch (Exception ex) + { + LogHelper.Error(ex.Message, ex); + } } } diff --git a/app/controllers/controller.js b/app/controllers/controller.js index 3f31ac3..c6c35f9 100644 --- a/app/controllers/controller.js +++ b/app/controllers/controller.js @@ -15,6 +15,8 @@ //helper to get $eval the labelTemplate $scope.getFieldsetTitle = function(fieldsetConfigModel, fieldsetIndex) { + if(!fieldsetConfigModel) + return ""; var fieldset = $scope.model.value.fieldsets[fieldsetIndex]; var fieldsetConfig = $scope.getConfigFieldsetByAlias(fieldset.alias); var template = fieldsetConfigModel.labelTemplate; @@ -107,8 +109,8 @@ //helpers for determining if the add button should be shown $scope.showAddButton = function () { return $scope.model.config.startWithAddButton - && countVisible() === 0 - && $scope.model.config.fieldsets.length == 1; + && countVisible() === 0; + ///&& $scope.model.config.fieldsets.length == 1; } //helper, ini the render model from the server (model.value) diff --git a/app/directives/archetypeproperty.js b/app/directives/archetypeproperty.js index 7358cbd..2433e5f 100644 --- a/app/directives/archetypeproperty.js +++ b/app/directives/archetypeproperty.js @@ -90,11 +90,8 @@ angular.module("umbraco.directives").directive('archetypeProperty', function ($c function validate(renderModel){ var valid = true; - var activeFieldsets = renderModel.filter(function(fieldset) { - return !fieldset.remove; - }); - _.each(activeFieldsets, function(fieldset){ + _.each(renderModel, function(fieldset){ fieldset.isValid = true; _.each(fieldset.properties, function(property){ property.isValid = true; diff --git a/app/less/archetype.less b/app/less/archetype.less index 215aac8..0fa2209 100644 --- a/app/less/archetype.less +++ b/app/less/archetype.less @@ -1,5 +1,9 @@ .archetypeEditor { width: 98%; + + .dropdown-menu { + top: auto; + } } .archetypeEditor fieldset{ @@ -24,8 +28,18 @@ } } + .dropdown-menu { + padding: 0; + border-radius: 0; + box-shadow: none; + margin-top: -10px; + margin-left: -200px; + } + span { font-weight: bold; + + &.menu-label { font-weight: normal; } } label:hover { diff --git a/app/views/archetype.html b/app/views/archetype.html index 5108680..6cf11d0 100644 --- a/app/views/archetype.html +++ b/app/views/archetype.html @@ -1,13 +1,5 @@
-
-
    -
  • - - {{fieldsetModel.label}} -
  • -
-
  • @@ -21,7 +13,15 @@
@@ -46,9 +46,17 @@