Skip to content

Commit

Permalink
Label templates for the V2 pickers
Browse files Browse the repository at this point in the history
..and also for the old content picker (it was missing for whatever
reason) - fixes kgiszewski#402
  • Loading branch information
Kenn Jacobsen committed Jun 8, 2017
1 parent 6f94d60 commit 27d0cb7
Show file tree
Hide file tree
Showing 2 changed files with 108 additions and 3 deletions.
30 changes: 29 additions & 1 deletion app/services/archetypeCacheService.js
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,34 @@ angular.module('umbraco.services').factory('archetypeCacheService', function (ar
}

return null;
}
},

getEntityByUmbracoId: function(scope, udi, type) {
var cachedEntity = _.find(entityCache, function (e){
return e.udi == udi;
});

if(cachedEntity) {
return cachedEntity;
}

//go get it from server
if (!isEntityLookupLoading) {
isEntityLookupLoading = true;

scope.resources.entityResource.getByIds([udi], type).then(function (entities) {
// prevent infinite lookups with a default entity
var entity = entities.length > 0 ? entities[0] : { udi: udi, name: "" };

entityCache.push(entity);

isEntityLookupLoading = false;

return entity;
});
}

return null;
}
}
});
81 changes: 79 additions & 2 deletions app/services/archetypeLabelService.js
Original file line number Diff line number Diff line change
Expand Up @@ -19,21 +19,29 @@ angular.module('umbraco.services').factory('archetypeLabelService', function (ar
}

function getNativeLabel(datatype, value, scope) {

switch (datatype.selectedEditor) {
case "Imulus.UrlPicker":
return imulusUrlPicker(value, scope, {});
case "Umbraco.TinyMCEv3":
return coreTinyMce(value, scope, {});
case "Umbraco.MultiNodeTreePicker":
return coreMntp(value, scope, datatype);
case "Umbraco.MultiNodeTreePicker2":
return coreMntpV2(value, scope, datatype);
case "Umbraco.MultipleMediaPicker":
case "Umbraco.MediaPicker":
return coreMediaPicker(value, scope, datatype);
case "Umbraco.MediaPicker2":
return coreMediaPickerV2(value, scope, datatype);
case "Umbraco.DropDown":
return coreDropdown(value, scope, datatype);
case "RJP.MultiUrlPicker":
return rjpMultiUrlPicker(value, scope, {});
default:
case "Umbraco.ContentPickerAlias":
return coreContentPicker(value, scope, datatype);
case "Umbraco.ContentPicker2":
return coreContentPickerV2(value, scope, datatype);
default:
return "";
}
}
Expand Down Expand Up @@ -87,6 +95,39 @@ angular.module('umbraco.services').factory('archetypeLabelService', function (ar
return entityArray.join(', ');
}

function coreMntpV2(value, scope, args) {
var ids = value.split(',');
if (ids.length == 0) {
return "";
}
var type = "document";

switch(args.preValues[0].value.type) {
case 'content':
type = 'document';
break;
case 'media':
type = 'media';
break;
case 'member':
type = 'member';
break;

default:
break;
}

var entity;

_.each(ids, function (id) {
if(id && !entity) {
entity = archetypeCacheService.getEntityByUmbracoId(scope, id, type);
}
});

return (entity != null ? entity.name : "") + (ids.length > 1 ? ", ..." : "");
}

function coreMediaPicker(value, scope, args) {
if(value) {
var entity = archetypeCacheService.getEntityById(scope, value, "media");
Expand All @@ -99,6 +140,42 @@ angular.module('umbraco.services').factory('archetypeLabelService', function (ar
return "";
}

function coreMediaPickerV2(value, scope, args) {
if(value) {
var entity = archetypeCacheService.getEntityByUmbracoId(scope, value, "media");

if(entity) {
return entity.name;
}
}

return "";
}

function coreContentPicker(value, scope, args) {
if (value) {
var entity = archetypeCacheService.getEntityById(scope, value, "document");

if (entity) {
return entity.name;
}
}

return "";
}

function coreContentPickerV2(value, scope, args) {
if (value) {
var entity = archetypeCacheService.getEntityByUmbracoId(scope, value, "document");

if (entity) {
return entity.name;
}
}

return "";
}

function imulusUrlPicker(value, scope, args) {

if(!args.propertyName) {
Expand Down

0 comments on commit 27d0cb7

Please sign in to comment.