cache)
+ {
+ IDataTypeDefinition dataType;
+ if (cache.TryGetValue(guid, out dataType))
+ return dataType;
+
+ dataType = Services.DataTypeService.GetDataTypeDefinitionById(guid);
+ cache[guid] = dataType;
+ return dataType;
}
}
}
diff --git a/app/controllers/config.controller.js b/app/controllers/config.controller.js
index 08c02a8..6dd8ef5 100644
--- a/app/controllers/config.controller.js
+++ b/app/controllers/config.controller.js
@@ -4,7 +4,7 @@ angular.module("umbraco").controller("Imulus.ArchetypeConfigController", functio
//console.log($scope.model.value);
//define empty items
- var newPropertyModel = '{"alias": "", "remove": false, "collapse": false, "label": "", "helpText": "", "dataTypeId": "-88", "value": ""}';
+ var newPropertyModel = '{"alias": "", "remove": false, "collapse": false, "label": "", "helpText": "", "dataTypeGuid": "0cc0eba1-9960-42c9-bf9b-60e150b429ae", "value": ""}';
var newFieldsetModel = '{"alias": "", "remove": false, "collapse": false, "labelTemplate": "", "icon": "", "label": "", "properties": [' + newPropertyModel + ']}';
var defaultFieldsetConfigModel = JSON.parse('{"showAdvancedOptions": false, "startWithAddButton": false, "hideFieldsetToolbar": false, "enableMultipleFieldsets": false, "hideFieldsetControls": false, "hidePropertyLabel": false, "maxFieldsets": null, "enableCollapsing": true, "fieldsets": [' + newFieldsetModel + ']}');
@@ -166,12 +166,12 @@ angular.module("umbraco").controller("Imulus.ArchetypeConfigController", functio
return countVisibleProperty(fieldset) > 1;
}
- $scope.getDataTypeNameById = function (id) {
+ $scope.getDataTypeNameByGuid = function (guid) {
if ($scope.availableDataTypes == null) // Might not be initialized yet?
return "";
-
+
var dataType = _.find($scope.availableDataTypes, function(d) {
- return d.id == id;
+ return d.guid == guid;
});
return dataType == null ? "" : dataType.name;
diff --git a/app/directives/archetypeproperty.js b/app/directives/archetypeproperty.js
index 5286fca..b867e74 100644
--- a/app/directives/archetypeproperty.js
+++ b/app/directives/archetypeproperty.js
@@ -51,7 +51,7 @@ angular.module("umbraco.directives").directive('archetypeProperty', function ($c
var configFieldsetModel = getFieldsetByAlias(scope.archetypeConfig.fieldsets, scope.fieldset.alias);
var view = "";
var label = configFieldsetModel.properties[scope.propertyConfigIndex].label;
- var dataTypeId = configFieldsetModel.properties[scope.propertyConfigIndex].dataTypeId;
+ var dataTypeGuid = configFieldsetModel.properties[scope.propertyConfigIndex].dataTypeGuid;
var config = null;
var alias = configFieldsetModel.properties[scope.propertyConfigIndex].alias;
var defaultValue = configFieldsetModel.properties[scope.propertyConfigIndex].value;
@@ -61,7 +61,7 @@ angular.module("umbraco.directives").directive('archetypeProperty', function ($c
defaultValue = jsonOrString(defaultValue, scope.archetypeConfig.developerMode, "defaultValue");
//grab info for the selected datatype, prepare for view
- archetypePropertyEditorResource.getDataType(dataTypeId).then(function (data) {
+ archetypePropertyEditorResource.getDataType(dataTypeGuid).then(function (data) {
//transform preValues array into object expected by propertyeditor views
var configObj = {};
_.each(data.preValues, function(p) {
diff --git a/app/resources/propertyeditor.js b/app/resources/propertyeditor.js
index 0a1cc9b..954a6f8 100644
--- a/app/resources/propertyeditor.js
+++ b/app/resources/propertyeditor.js
@@ -3,16 +3,12 @@ angular.module('umbraco.resources').factory('archetypePropertyEditorResource', f
getAllDataTypes: function() {
// Hack - grab DataTypes from Tree API, as `dataTypeService.getAll()` isn't implemented yet
return umbRequestHelper.resourcePromise(
- $http.get("/umbraco/backoffice/UmbracoTrees/DataTypeTree/GetNodes?id=-1&application=developer&tree=&isDialog=false"), 'Failed to retrieve datatypes from tree service'
- ).then(function (data) {
- return data.map(function(d) {
- return { "id": d.id, "name": d.name }
- });
- });
+ $http.get("/umbraco/backoffice/ArchetypeApi/ArchetypeDataType/GetAll"), 'Failed to retrieve datatypes from tree service'
+ );
},
- getDataType: function(id) {
+ getDataType: function(guid) {
return umbRequestHelper.resourcePromise(
- $http.get("/umbraco/backoffice/ArchetypeApi/ArchetypeDataType/GetById?id=" + id), 'Failed to retrieve datatype'
+ $http.get("/umbraco/backoffice/ArchetypeApi/ArchetypeDataType/GetByGuid?guid=" + guid), 'Failed to retrieve datatype'
);
},
getPropertyEditorMapping: function(alias) {
diff --git a/app/views/archetype.config.html b/app/views/archetype.config.html
index a5e3b0f..5f769b1 100644
--- a/app/views/archetype.config.html
+++ b/app/views/archetype.config.html
@@ -37,7 +37,7 @@
- {{property.label}} ({{property.alias}}) - {{getDataTypeNameById(property.dataTypeId)}}
+ {{property.label}} ({{property.alias}}) - {{getDataTypeNameByGuid(property.dataTypeGuid)}}