diff --git a/Gruntfile.js b/Gruntfile.js
index e28eec5..50001e9 100644
--- a/Gruntfile.js
+++ b/Gruntfile.js
@@ -29,11 +29,6 @@ module.exports = function(grunt) {
tasks: ['copy:html']
},
- config: {
- files: ['config/package.manifest'],
- tasks: ['copy:config']
- },
-
dll: {
files: ['app/Umbraco/**/*.dll'],
tasks: ['copy:dll']
diff --git a/app/Umbraco/Archetype.Tests/Archetype.Tests.csproj b/app/Umbraco/Archetype.Tests/Archetype.Tests.csproj
index e790eb8..f3082fc 100644
--- a/app/Umbraco/Archetype.Tests/Archetype.Tests.csproj
+++ b/app/Umbraco/Archetype.Tests/Archetype.Tests.csproj
@@ -37,8 +37,9 @@
..\packages\AutoMapper.3.0.0\lib\net40\AutoMapper.Net4.dll
-
- ..\packages\UmbracoCms.Core.7.1.0\lib\businesslogic.dll
+
+ False
+ ..\packages\UmbracoCms.Core.7.1.1\lib\businesslogic.dll
..\packages\ClientDependency.1.7.1.2\lib\ClientDependency.Core.dll
@@ -46,17 +47,20 @@
..\packages\ClientDependency-Mvc.1.7.0.4\lib\ClientDependency.Core.Mvc.dll
-
- ..\packages\UmbracoCms.Core.7.1.0\lib\cms.dll
+
+ False
+ ..\packages\UmbracoCms.Core.7.1.1\lib\cms.dll
-
- ..\packages\UmbracoCms.Core.7.1.0\lib\controls.dll
+
+ False
+ ..\packages\UmbracoCms.Core.7.1.1\lib\controls.dll
..\packages\xmlrpcnet.2.5.0\lib\net20\CookComputing.XmlRpcV2.dll
-
- ..\packages\UmbracoCms.Core.7.1.0\lib\Examine.dll
+
+ False
+ ..\packages\UmbracoCms.Core.7.1.1\lib\Examine.dll
..\packages\HtmlAgilityPack.1.4.6\lib\Net45\HtmlAgilityPack.dll
@@ -70,22 +74,24 @@
..\packages\ImageProcessor.Web.3.2.1.0\lib\net45\ImageProcessor.Web.dll
-
+
False
- ..\packages\UmbracoCms.Core.7.1.0\lib\interfaces.dll
+ ..\packages\UmbracoCms.Core.7.1.1\lib\interfaces.dll
False
- ..\packages\UmbracoCms.Core.7.1.0\lib\log4net.dll
+ ..\packages\UmbracoCms.Core.7.1.1\lib\log4net.dll
..\packages\Lucene.Net.2.9.4.1\lib\net40\Lucene.Net.dll
-
- ..\packages\UmbracoCms.Core.7.1.0\lib\Microsoft.ApplicationBlocks.Data.dll
+
+ False
+ ..\packages\UmbracoCms.Core.7.1.1\lib\Microsoft.ApplicationBlocks.Data.dll
-
- ..\packages\UmbracoCms.Core.7.1.0\lib\Microsoft.Web.Helpers.dll
+
+ False
+ ..\packages\UmbracoCms.Core.7.1.1\lib\Microsoft.Web.Helpers.dll
True
@@ -103,24 +109,26 @@
..\packages\MySql.Data.6.6.5\lib\net40\MySql.Data.dll
-
- ..\packages\Newtonsoft.Json.4.5.11\lib\net40\Newtonsoft.Json.dll
+
+ False
+ ..\packages\Newtonsoft.Json.6.0.2\lib\net45\Newtonsoft.Json.dll
..\packages\NUnit.2.6.3\lib\nunit.framework.dll
-
- ..\packages\UmbracoCms.Core.7.1.0\lib\SQLCE4Umbraco.dll
+
+ False
+ ..\packages\UmbracoCms.Core.7.1.1\lib\SQLCE4Umbraco.dll
True
- ..\packages\UmbracoCms.Core.7.1.0\lib\System.Data.SqlServerCe.dll
+ ..\packages\UmbracoCms.Core.7.1.1\lib\System.Data.SqlServerCe.dll
True
- ..\packages\UmbracoCms.Core.7.1.0\lib\System.Data.SqlServerCe.Entity.dll
+ ..\packages\UmbracoCms.Core.7.1.1\lib\System.Data.SqlServerCe.Entity.dll
@@ -163,39 +171,49 @@
-
- ..\packages\UmbracoCms.Core.7.1.0\lib\TidyNet.dll
-
-
- ..\packages\UmbracoCms.Core.7.1.0\lib\umbraco.dll
-
-
+
False
- ..\packages\UmbracoCms.Core.7.1.0\lib\Umbraco.Core.dll
+ ..\packages\UmbracoCms.Core.7.1.1\lib\TidyNet.dll
-
- ..\packages\UmbracoCms.Core.7.1.0\lib\umbraco.DataLayer.dll
+
+ False
+ ..\packages\UmbracoCms.Core.7.1.1\lib\umbraco.dll
-
- ..\packages\UmbracoCms.Core.7.1.0\lib\umbraco.editorControls.dll
+
+ False
+ ..\packages\UmbracoCms.Core.7.1.1\lib\Umbraco.Core.dll
-
- ..\packages\UmbracoCms.Core.7.1.0\lib\umbraco.MacroEngines.dll
+
+ False
+ ..\packages\UmbracoCms.Core.7.1.1\lib\umbraco.DataLayer.dll
-
- ..\packages\UmbracoCms.Core.7.1.0\lib\umbraco.providers.dll
+
+ False
+ ..\packages\UmbracoCms.Core.7.1.1\lib\umbraco.editorControls.dll
-
- ..\packages\UmbracoCms.Core.7.1.0\lib\Umbraco.Web.UI.dll
+
+ False
+ ..\packages\UmbracoCms.Core.7.1.1\lib\umbraco.MacroEngines.dll
-
- ..\packages\UmbracoCms.Core.7.1.0\lib\umbraco.XmlSerializers.dll
+
+ False
+ ..\packages\UmbracoCms.Core.7.1.1\lib\umbraco.providers.dll
-
- ..\packages\UmbracoCms.Core.7.1.0\lib\UmbracoExamine.dll
+
+ False
+ ..\packages\UmbracoCms.Core.7.1.1\lib\Umbraco.Web.UI.dll
-
- ..\packages\UmbracoCms.Core.7.1.0\lib\UrlRewritingNet.UrlRewriter.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
diff --git a/app/Umbraco/Archetype.Tests/app.config b/app/Umbraco/Archetype.Tests/app.config
index e509377..72cac16 100644
--- a/app/Umbraco/Archetype.Tests/app.config
+++ b/app/Umbraco/Archetype.Tests/app.config
@@ -18,6 +18,10 @@
+
+
+
+
\ No newline at end of file
diff --git a/app/Umbraco/Archetype.Tests/packages.config b/app/Umbraco/Archetype.Tests/packages.config
index 66fbf23..493b067 100644
--- a/app/Umbraco/Archetype.Tests/packages.config
+++ b/app/Umbraco/Archetype.Tests/packages.config
@@ -20,9 +20,9 @@
-
+
-
+
\ 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 f821384..53469ca 100644
--- a/app/Umbraco/Umbraco.Archetype/Archetype.Umbraco.csproj
+++ b/app/Umbraco/Umbraco.Archetype/Archetype.Umbraco.csproj
@@ -41,8 +41,7 @@
False
- ..\packages\UmbracoCms.Core.7.1.0\lib\businesslogic.dll
- False
+ ..\packages\UmbracoCms.Core.7.1.1\lib\businesslogic.dll
..\packages\ClientDependency.1.7.1.2\lib\ClientDependency.Core.dll
@@ -53,20 +52,17 @@
False
- ..\packages\UmbracoCms.Core.7.1.0\lib\cms.dll
- False
+ ..\packages\UmbracoCms.Core.7.1.1\lib\cms.dll
- ..\packages\UmbracoCms.Core.7.1.0\lib\controls.dll
- False
+ ..\packages\UmbracoCms.Core.7.1.1\lib\controls.dll
..\packages\xmlrpcnet.2.5.0\lib\net20\CookComputing.XmlRpcV2.dll
False
- ..\packages\UmbracoCms.Core.7.1.0\lib\Examine.dll
- False
+ ..\packages\UmbracoCms.Core.7.1.1\lib\Examine.dll
..\packages\HtmlAgilityPack.1.4.6\lib\Net45\HtmlAgilityPack.dll
@@ -85,24 +81,20 @@
False
- ..\packages\UmbracoCms.Core.7.1.0\lib\interfaces.dll
- False
+ ..\packages\UmbracoCms.Core.7.1.1\lib\interfaces.dll
- ..\packages\UmbracoCms.Core.7.1.0\lib\log4net.dll
- False
+ ..\packages\UmbracoCms.Core.7.1.1\lib\log4net.dll
..\packages\Lucene.Net.2.9.4.1\lib\net40\Lucene.Net.dll
False
- ..\packages\UmbracoCms.Core.7.1.0\lib\Microsoft.ApplicationBlocks.Data.dll
- False
+ ..\packages\UmbracoCms.Core.7.1.1\lib\Microsoft.ApplicationBlocks.Data.dll
- ..\packages\UmbracoCms.Core.7.1.0\lib\Microsoft.Web.Helpers.dll
- False
+ ..\packages\UmbracoCms.Core.7.1.1\lib\Microsoft.Web.Helpers.dll
False
@@ -121,22 +113,20 @@
False
- ..\packages\Newtonsoft.Json.4.5.11\lib\net40\Newtonsoft.Json.dll
- False
+ ..\packages\Newtonsoft.Json.6.0.2\lib\net45\Newtonsoft.Json.dll
- ..\packages\UmbracoCms.Core.7.1.0\lib\SQLCE4Umbraco.dll
- False
+ ..\packages\UmbracoCms.Core.7.1.1\lib\SQLCE4Umbraco.dll
- False
- ..\packages\UmbracoCms.Core.7.1.0\lib\System.Data.SqlServerCe.dll
+ True
+ ..\packages\UmbracoCms.Core.7.1.1\lib\System.Data.SqlServerCe.dll
- False
- ..\packages\UmbracoCms.Core.7.1.0\lib\System.Data.SqlServerCe.Entity.dll
+ True
+ ..\packages\UmbracoCms.Core.7.1.1\lib\System.Data.SqlServerCe.Entity.dll
@@ -183,48 +173,37 @@
- ..\packages\UmbracoCms.Core.7.1.0\lib\TidyNet.dll
- False
+ ..\packages\UmbracoCms.Core.7.1.1\lib\TidyNet.dll
- ..\packages\UmbracoCms.Core.7.1.0\lib\umbraco.dll
- False
+ ..\packages\UmbracoCms.Core.7.1.1\lib\umbraco.dll
- ..\packages\UmbracoCms.Core.7.1.0\lib\Umbraco.Core.dll
- False
+ ..\packages\UmbracoCms.Core.7.1.1\lib\Umbraco.Core.dll
- ..\packages\UmbracoCms.Core.7.1.0\lib\umbraco.DataLayer.dll
- False
+ ..\packages\UmbracoCms.Core.7.1.1\lib\umbraco.DataLayer.dll
- ..\packages\UmbracoCms.Core.7.1.0\lib\umbraco.editorControls.dll
- False
+ ..\packages\UmbracoCms.Core.7.1.1\lib\umbraco.editorControls.dll
- ..\packages\UmbracoCms.Core.7.1.0\lib\umbraco.MacroEngines.dll
- False
+ ..\packages\UmbracoCms.Core.7.1.1\lib\umbraco.MacroEngines.dll
- ..\packages\UmbracoCms.Core.7.1.0\lib\umbraco.providers.dll
- False
+ ..\packages\UmbracoCms.Core.7.1.1\lib\umbraco.providers.dll
- ..\packages\UmbracoCms.Core.7.1.0\lib\Umbraco.Web.UI.dll
- False
+ ..\packages\UmbracoCms.Core.7.1.1\lib\Umbraco.Web.UI.dll
- ..\packages\UmbracoCms.Core.7.1.0\lib\umbraco.XmlSerializers.dll
- False
+ ..\packages\UmbracoCms.Core.7.1.1\lib\umbraco.XmlSerializers.dll
- ..\packages\UmbracoCms.Core.7.1.0\lib\UmbracoExamine.dll
- False
+ ..\packages\UmbracoCms.Core.7.1.1\lib\UmbracoExamine.dll
- ..\packages\UmbracoCms.Core.7.1.0\lib\UrlRewritingNet.UrlRewriter.dll
- False
+ ..\packages\UmbracoCms.Core.7.1.1\lib\UrlRewritingNet.UrlRewriter.dll
@@ -242,8 +221,10 @@
+
+
diff --git a/app/Umbraco/Umbraco.Archetype/Extensions/Extensions.cs b/app/Umbraco/Umbraco.Archetype/Extensions/Extensions.cs
index 2232aa5..c9f3953 100644
--- a/app/Umbraco/Umbraco.Archetype/Extensions/Extensions.cs
+++ b/app/Umbraco/Umbraco.Archetype/Extensions/Extensions.cs
@@ -1,4 +1,10 @@
-using Umbraco.Core;
+using System;
+using System.Web;
+using System.Text;
+using System.Text.RegularExpressions;
+using System.Collections.Generic;
+using Umbraco.Core;
+using Umbraco.Web;
using Archetype.Umbraco.Models;
namespace Archetype.Umbraco.Extensions
diff --git a/app/Umbraco/Umbraco.Archetype/Properties/VersionInfo.cs b/app/Umbraco/Umbraco.Archetype/Properties/VersionInfo.cs
index 7a33150..799f844 100644
--- a/app/Umbraco/Umbraco.Archetype/Properties/VersionInfo.cs
+++ b/app/Umbraco/Umbraco.Archetype/Properties/VersionInfo.cs
@@ -1,4 +1,4 @@
using System.Reflection;
-[assembly: AssemblyVersion("0.0.0.0")]
-[assembly: AssemblyFileVersion("0.0.0.0")]
\ No newline at end of file
+[assembly: AssemblyVersion("1.0")]
+[assembly: AssemblyFileVersion("1.0-beta")]
\ No newline at end of file
diff --git a/app/Umbraco/Umbraco.Archetype/PropertyConverters/ArchetypeValueConverter.cs b/app/Umbraco/Umbraco.Archetype/PropertyConverters/ArchetypeValueConverter.cs
index f38a029..ab697ec 100644
--- a/app/Umbraco/Umbraco.Archetype/PropertyConverters/ArchetypeValueConverter.cs
+++ b/app/Umbraco/Umbraco.Archetype/PropertyConverters/ArchetypeValueConverter.cs
@@ -1,39 +1,39 @@
using System;
using System.Collections.Generic;
-using System.Linq;
-using Archetype.Umbraco.Extensions;
-using Archetype.Umbraco.Models;
-using Newtonsoft.Json;
+using System.Linq;
+using Archetype.Umbraco.Extensions;
+using Archetype.Umbraco.Models;
+using Newtonsoft.Json;
using Umbraco.Core;
using Umbraco.Core.Models;
-using Umbraco.Core.Models.PublishedContent;
-using Umbraco.Core.PropertyEditors;
+using Umbraco.Core.Models.PublishedContent;
+using Umbraco.Core.PropertyEditors;
using Umbraco.Core.Services;
-namespace Archetype.Umbraco.PropertyConverters
-{
- [PropertyValueType(typeof(Models.Archetype))]
- [PropertyValueCache(PropertyCacheValue.All, PropertyCacheLevel.Content)]
- public class ArchetypeValueConverter : PropertyValueConverterBase
- {
-
- public ServiceContext Services
- {
- get { return ApplicationContext.Current.Services; }
- }
-
- public override bool IsConverter(PublishedPropertyType propertyType)
- {
- return propertyType.PropertyEditorAlias.Equals(Constants.PropertyEditorAlias);
- }
-
+namespace Archetype.Umbraco.PropertyConverters
+{
+ [PropertyValueType(typeof(Models.Archetype))]
+ [PropertyValueCache(PropertyCacheValue.All, PropertyCacheLevel.Content)]
+ public class ArchetypeValueConverter : PropertyValueConverterBase
+ {
+
+ public ServiceContext Services
+ {
+ get { return ApplicationContext.Current.Services; }
+ }
+
+ public override bool IsConverter(PublishedPropertyType propertyType)
+ {
+ return propertyType.PropertyEditorAlias.Equals(Constants.PropertyEditorAlias);
+ }
+
public override object ConvertDataToSource(PublishedPropertyType propertyType, object source, bool preview)
{
- var defaultValue = new Models.Archetype();
-
- if (source == null)
- return defaultValue;
-
+ var defaultValue = new Models.Archetype();
+
+ if (source == null)
+ return defaultValue;
+
var sourceString = source.ToString();
if (!sourceString.DetectIsJson())
@@ -42,8 +42,8 @@ namespace Archetype.Umbraco.PropertyConverters
var archetype = new ArchetypeHelper().DeserializeJsonToArchetype(source.ToString(),
(propertyType != null ? propertyType.DataTypeId : -1));
- return archetype;
+ return archetype;
}
- }
-}
+ }
+}
\ No newline at end of file
diff --git a/app/Umbraco/Umbraco.Archetype/PropertyEditors/ArcheTypePropertyEditor.cs b/app/Umbraco/Umbraco.Archetype/PropertyEditors/ArcheTypePropertyEditor.cs
new file mode 100644
index 0000000..eda1e23
--- /dev/null
+++ b/app/Umbraco/Umbraco.Archetype/PropertyEditors/ArcheTypePropertyEditor.cs
@@ -0,0 +1,130 @@
+using System;
+using System.Collections.Generic;
+using ClientDependency.Core;
+using Newtonsoft.Json;
+using Umbraco.Core;
+using Umbraco.Core.Models;
+using Umbraco.Core.Models.Editors;
+using Umbraco.Core.PropertyEditors;
+using Umbraco.Core.Services;
+using Umbraco.Web.PropertyEditors;
+
+namespace Archetype.Umbraco.PropertyEditors
+{
+ [PropertyEditorAsset(ClientDependencyType.Javascript, "/App_Plugins/Archetype/js/archetype.js")]
+ [PropertyEditor("Imulus.Archetype", "Archetype", "/App_Plugins/Archetype/views/archetype.html",
+ ValueType = "JSON")]
+ public class ArchetypePropertyEditor : PropertyEditor
+ {
+ #region Pre Value Editor
+
+ protected override PreValueEditor CreatePreValueEditor()
+ {
+ return new ArchetypePreValueEditor();
+ }
+
+ internal class ArchetypePreValueEditor : PreValueEditor
+ {
+ [PreValueField("archetypeConfig", "Config", "/App_Plugins/Archetype/views/archetype.config.html",
+ Description = "(Required) Describe your Archetype.")]
+ public string Config { get; set; }
+
+ [PreValueField("hideLabel", "Hide Label", "boolean",
+ Description = "Hide the Umbraco property title and description, making the Archetype span the entire page width")]
+ public bool HideLabel { get; set; }
+ }
+
+ #endregion
+
+ #region Value Editor
+
+ protected override PropertyValueEditor CreateValueEditor()
+ {
+ return new ArchetypePropertyValueEditor(base.CreateValueEditor());
+ }
+
+ internal class ArchetypePropertyValueEditor : PropertyValueEditorWrapper
+ {
+ protected JsonSerializerSettings _jsonSettings;
+
+ public ArchetypePropertyValueEditor(PropertyValueEditor wrapped)
+ : base(wrapped)
+ {
+ var dcr = new Newtonsoft.Json.Serialization.DefaultContractResolver();
+ dcr.DefaultMembersSearchFlags |= System.Reflection.BindingFlags.NonPublic;
+
+ _jsonSettings = new JsonSerializerSettings { ContractResolver = dcr };
+ }
+
+ public override string ConvertDbToString(Property property, PropertyType propertyType, IDataTypeService dataTypeService)
+ {
+ if (property.Value == null)
+ return string.Empty;
+
+ var archetype = JsonConvert.DeserializeObject(property.Value.ToString(), _jsonSettings);
+
+ foreach (var fieldset in archetype.Fieldsets)
+ {
+ 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);
+ }
+ }
+
+ property.Value = JsonConvert.SerializeObject(archetype);
+
+ return base.ConvertDbToString(property, propertyType, dataTypeService);
+ }
+
+ public override object ConvertDbToEditor(Property property, PropertyType propertyType, IDataTypeService dataTypeService)
+ {
+ if (property.Value == null)
+ return string.Empty;
+
+ var archetype = JsonConvert.DeserializeObject(property.Value.ToString(), _jsonSettings);
+
+ foreach (var fieldset in archetype.Fieldsets)
+ {
+ 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);
+ }
+ }
+
+ return archetype;
+ }
+
+ public override object ConvertEditorToDb(ContentPropertyData editorValue, object currentValue)
+ {
+ if (editorValue.Value == null)
+ return string.Empty;
+
+ var archetype = JsonConvert.DeserializeObject(editorValue.Value.ToString(), _jsonSettings);
+
+ foreach (var fieldset in archetype.Fieldsets)
+ {
+ 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);
+ }
+ }
+
+ return JsonConvert.SerializeObject(archetype);
+ }
+ }
+
+ #endregion
+ }
+}
diff --git a/app/Umbraco/Umbraco.Archetype/app.config b/app/Umbraco/Umbraco.Archetype/app.config
new file mode 100644
index 0000000..4429813
--- /dev/null
+++ b/app/Umbraco/Umbraco.Archetype/app.config
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/Umbraco/Umbraco.Archetype/packages.config b/app/Umbraco/Umbraco.Archetype/packages.config
index 85afbc7..d006ee4 100644
--- a/app/Umbraco/Umbraco.Archetype/packages.config
+++ b/app/Umbraco/Umbraco.Archetype/packages.config
@@ -19,8 +19,8 @@
-
+
-
+
\ No newline at end of file
diff --git a/config/meta.json b/config/meta.json
index df9f7e5..e963137 100644
--- a/config/meta.json
+++ b/config/meta.json
@@ -1,6 +1,6 @@
{
"name": "Archetype",
- "version": "0.5.1-alpha",
+ "version": "1.0-beta",
"url": "http://github.com/imulus/archetype/",
"author": "Imulus",
"authorUrl": "http://imulus.com/",