Add enable deep requests

This commit is contained in:
Kevin Giszewski
2014-08-18 08:55:13 -04:00
parent d76a5f58d4
commit d2f4fce808
23 changed files with 65 additions and 23 deletions
@@ -28,6 +28,17 @@ namespace Archetype.Api
return dataTypes.Select(t => new { guid = t.Key, name = t.Name });
}
public object GetByGuid(Guid guid)
{
var dataType = Services.DataTypeService.GetDataTypeDefinitionById(guid);
if (dataType == null)
{
throw new HttpResponseException(HttpStatusCode.NotFound);
}
var dataTypeDisplay = Mapper.Map<IDataTypeDefinition, DataTypeDisplay>(dataType);
return new { selectedEditor = dataTypeDisplay.SelectedEditor, preValues = dataTypeDisplay.PreValues };
}
public object GetByGuid(Guid guid, string contentTypeAlias, string propertyTypeAlias, string archetypeAlias, int nodeId)
{
var dataType = Services.DataTypeService.GetDataTypeDefinitionById(guid);
@@ -50,6 +50,9 @@ namespace Archetype.Models
[JsonProperty("customViewPath")]
public string CustomViewPath { get; set; }
[JsonProperty("enableDeepDatatypeRequests")]
public bool EnableDeepDatatypeRequests { get; set; }
[JsonProperty("developerMode")]
public bool DeveloperMode { get; set; }
}
+1 -1
View File
@@ -6,7 +6,7 @@ angular.module("umbraco").controller("Imulus.ArchetypeConfigController", functio
//define empty items
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, "enableDisabling": true, "fieldsets": [' + newFieldsetModel + ']}');
var defaultFieldsetConfigModel = JSON.parse('{"showAdvancedOptions": false, "startWithAddButton": false, "hideFieldsetToolbar": false, "enableMultipleFieldsets": false, "hideFieldsetControls": false, "hidePropertyLabel": false, "maxFieldsets": null, "enableCollapsing": true, "enableDisabling": true, "enableDeepDatatypeRequests": true, "fieldsets": [' + newFieldsetModel + ']}');
//ini the model
$scope.model.value = $scope.model.value || defaultFieldsetConfigModel;
+1 -1
View File
@@ -66,7 +66,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(dataTypeGuid, editorState.current.contentTypeAlias, scope.propertyEditorAlias, alias, editorState.current.id).then(function (data) {
archetypePropertyEditorResource.getDataType(dataTypeGuid, scope.archetypeConfig.enableDeepDatatypeRequests, editorState.current.contentTypeAlias, scope.propertyEditorAlias, alias, editorState.current.id).then(function (data) {
//transform preValues array into object expected by propertyeditor views
var configObj = {};
_.each(data.preValues, function(p) {
+2 -1
View File
@@ -33,5 +33,6 @@
"select": "Vælg",
"icon": "Ikon",
"enableDisabling": "Aktivér fieldset-deaktivering?",
"enableDisablingDescription": "Tillad brugere at aktivere/deaktivere individuelle fieldsets."
"enableDisablingDescription": "Tillad brugere at aktivere/deaktivere individuelle fieldsets.",
"deepDatatypeRequest":"Allows for easier datatype interception at the cost of caching performance."
}
+2 -1
View File
@@ -33,5 +33,6 @@
"select": "Select",
"icon": "Icon",
"enableDisabling": "Enable Fieldset Disabling?",
"enableDisablingDescription": "Allows fieldsets to be individually enabled/disabled."
"enableDisablingDescription": "Allows fieldsets to be individually enabled/disabled.",
"deepDatatypeRequest":"Allows for easier datatype interception at the cost of caching performance."
}
+2 -1
View File
@@ -33,5 +33,6 @@
"select": "Select",
"icon": "Icon",
"enableDisabling": "Enable Fieldset Disabling?",
"enableDisablingDescription": "Allows fieldsets to be individually enabled/disabled."
"enableDisablingDescription": "Allows fieldsets to be individually enabled/disabled.",
"deepDatatypeRequest":"Allows for easier datatype interception at the cost of caching performance."
}
+2 -1
View File
@@ -33,5 +33,6 @@
"select": "Select",
"icon": "Icon",
"enableDisabling": "Enable Fieldset Disabling?",
"enableDisablingDescription": "Allows fieldsets to be individually enabled/disabled."
"enableDisablingDescription": "Allows fieldsets to be individually enabled/disabled.",
"deepDatatypeRequest":"Allows for easier datatype interception at the cost of caching performance."
}
+2 -1
View File
@@ -33,5 +33,6 @@
"select": "Select",
"icon": "Icon",
"enableDisabling": "Enable Fieldset Disabling?",
"enableDisablingDescription": "Allows fieldsets to be individually enabled/disabled."
"enableDisablingDescription": "Allows fieldsets to be individually enabled/disabled.",
"deepDatatypeRequest":"Allows for easier datatype interception at the cost of caching performance."
}
+2 -1
View File
@@ -33,5 +33,6 @@
"select": "Select",
"icon": "Icon",
"enableDisabling": "Enable Fieldset Disabling?",
"enableDisablingDescription": "Allows fieldsets to be individually enabled/disabled."
"enableDisablingDescription": "Allows fieldsets to be individually enabled/disabled.",
"deepDatatypeRequest":"Allows for easier datatype interception at the cost of caching performance."
}
+2 -1
View File
@@ -33,5 +33,6 @@
"select": "Select",
"icon": "Icon",
"enableDisabling": "Enable Fieldset Disabling?",
"enableDisablingDescription": "Allows fieldsets to be individually enabled/disabled."
"enableDisablingDescription": "Allows fieldsets to be individually enabled/disabled.",
"deepDatatypeRequest":"Allows for easier datatype interception at the cost of caching performance."
}
+2 -1
View File
@@ -33,5 +33,6 @@
"select": "Select",
"icon": "Icon",
"enableDisabling": "Enable Fieldset Disabling?",
"enableDisablingDescription": "Allows fieldsets to be individually enabled/disabled."
"enableDisablingDescription": "Allows fieldsets to be individually enabled/disabled.",
"deepDatatypeRequest":"Allows for easier datatype interception at the cost of caching performance."
}
+2 -1
View File
@@ -33,5 +33,6 @@
"select": "Select",
"icon": "Icon",
"enableDisabling": "Enable Fieldset Disabling?",
"enableDisablingDescription": "Allows fieldsets to be individually enabled/disabled."
"enableDisablingDescription": "Allows fieldsets to be individually enabled/disabled.",
"deepDatatypeRequest":"Allows for easier datatype interception at the cost of caching performance."
}
+2 -1
View File
@@ -33,5 +33,6 @@
"select": "Select",
"icon": "Icon",
"enableDisabling": "Enable Fieldset Disabling?",
"enableDisablingDescription": "Allows fieldsets to be individually enabled/disabled."
"enableDisablingDescription": "Allows fieldsets to be individually enabled/disabled.",
"deepDatatypeRequest":"Allows for easier datatype interception at the cost of caching performance."
}
+2 -1
View File
@@ -33,5 +33,6 @@
"select": "Select",
"icon": "Icon",
"enableDisabling": "Enable Fieldset Disabling?",
"enableDisablingDescription": "Allows fieldsets to be individually enabled/disabled."
"enableDisablingDescription": "Allows fieldsets to be individually enabled/disabled.",
"deepDatatypeRequest":"Allows for easier datatype interception at the cost of caching performance."
}
+2 -1
View File
@@ -33,5 +33,6 @@
"select": "Select",
"icon": "Icon",
"enableDisabling": "Enable Fieldset Disabling?",
"enableDisablingDescription": "Allows fieldsets to be individually enabled/disabled."
"enableDisablingDescription": "Allows fieldsets to be individually enabled/disabled.",
"deepDatatypeRequest":"Allows for easier datatype interception at the cost of caching performance."
}
+2 -1
View File
@@ -33,5 +33,6 @@
"select": "Select",
"icon": "Icon",
"enableDisabling": "Enable Fieldset Disabling?",
"enableDisablingDescription": "Allows fieldsets to be individually enabled/disabled."
"enableDisablingDescription": "Allows fieldsets to be individually enabled/disabled.",
"deepDatatypeRequest":"Allows for easier datatype interception at the cost of caching performance."
}
+2 -1
View File
@@ -33,5 +33,6 @@
"select": "Select",
"icon": "Icon",
"enableDisabling": "Enable Fieldset Disabling?",
"enableDisablingDescription": "Allows fieldsets to be individually enabled/disabled."
"enableDisablingDescription": "Allows fieldsets to be individually enabled/disabled.",
"deepDatatypeRequest":"Allows for easier datatype interception at the cost of caching performance."
}
+2 -1
View File
@@ -33,5 +33,6 @@
"select": "Select",
"icon": "Icon",
"enableDisabling": "Enable Fieldset Disabling?",
"enableDisablingDescription": "Allows fieldsets to be individually enabled/disabled."
"enableDisablingDescription": "Allows fieldsets to be individually enabled/disabled.",
"deepDatatypeRequest":"Allows for easier datatype interception at the cost of caching performance."
}
+2 -1
View File
@@ -33,5 +33,6 @@
"select": "Select",
"icon": "Icon",
"enableDisabling": "Enable Fieldset Disabling?",
"enableDisablingDescription": "Allows fieldsets to be individually enabled/disabled."
"enableDisablingDescription": "Allows fieldsets to be individually enabled/disabled.",
"deepDatatypeRequest":"Allows for easier datatype interception at the cost of caching performance."
}
+2 -1
View File
@@ -33,5 +33,6 @@
"select": "Select",
"icon": "Icon",
"enableDisabling": "Enable Fieldset Disabling?",
"enableDisablingDescription": "Allows fieldsets to be individually enabled/disabled."
"enableDisablingDescription": "Allows fieldsets to be individually enabled/disabled.",
"deepDatatypeRequest":"Allows for easier datatype interception at the cost of caching performance."
}
+11 -4
View File
@@ -6,10 +6,17 @@ angular.module('umbraco.resources').factory('archetypePropertyEditorResource', f
$http.get("/umbraco/backoffice/ArchetypeApi/ArchetypeDataType/GetAll", { cache: true }), 'Failed to retrieve datatypes from tree service'
);
},
getDataType: function (guid, contentTypeAlias, propertyTypeAlias, archetypeAlias, nodeId) {
return umbRequestHelper.resourcePromise(
$http.get("/umbraco/backoffice/ArchetypeApi/ArchetypeDataType/GetByGuid?guid=" + guid + "&contentTypeAlias=" + contentTypeAlias + "&propertyTypeAlias=" + propertyTypeAlias + "&archetypeAlias=" + archetypeAlias + "&nodeId=" + nodeId, { cache: true }), 'Failed to retrieve datatype'
);
getDataType: function (guid, useDeepDatatypeLookup, contentTypeAlias, propertyTypeAlias, archetypeAlias, nodeId) {
if(useDeepDatatypeLookup) {
return umbRequestHelper.resourcePromise(
$http.get("/umbraco/backoffice/ArchetypeApi/ArchetypeDataType/GetByGuid?guid=" + guid + "&contentTypeAlias=" + contentTypeAlias + "&propertyTypeAlias=" + propertyTypeAlias + "&archetypeAlias=" + archetypeAlias + "&nodeId=" + nodeId), 'Failed to retrieve datatype'
);
}
else {
return umbRequestHelper.resourcePromise(
$http.get("/umbraco/backoffice/ArchetypeApi/ArchetypeDataType/GetByGuid?guid=" + guid , { cache: true }), 'Failed to retrieve datatype'
);
}
},
getPropertyEditorMapping: function(alias) {
return umbRequestHelper.resourcePromise(
+4
View File
@@ -133,6 +133,10 @@
<label for="archetypeAdvancedOptionsCustomView"><archetype-localize key="viewFile">View File</archetype-localize><small><archetype-localize key="viewFileDescription">(Optional) Enter a path for a custom view file to be used to render this Archetype.</archetype-localize></small></label>
<input type="text" id="archetypeAdvancedOptionsCustomView" ng-model="archetypeConfigRenderModel.customViewPath"/>
</div>
<div>
<label for="archetypeAdvancedOptionsDeepDatatypeRequest"><archetype-localize key="deepDatatypeRequest">Enable Deep Datatype Requests</archetype-localize><small><archetype-localize key="deepDatatypeRequestDescription">Allows for easier datatype interception at the cost of caching performance.</archetype-localize></small></label>
<input type="checkbox" id="archetypeAdvancedOptionsDeepDatatypeRequest" ng-model="archetypeConfigRenderModel.enableDeepDatatypeRequests"/>
</div>
<div>
<label for="archetypeAdvancedOptionsDeveloperMode"><archetype-localize key="toggleDeveloperMode">Toggle Developer Mode</archetype-localize><small><archetype-localize key="toggleDeveloperModeDescription">Toggle Developer Mode</archetype-localize></small></label>
<input type="checkbox" id="archetypeAdvancedOptionsDeveloperMode" ng-model="archetypeConfigRenderModel.developerMode"/>