Hallo,Im Data Dictionary lassen sich Node und Ordnervorlagen definieren. Der Alfresco Explorer hatte die Möglichkeit bei der Ordnererstellung ein Space Template auszuwählen.Share fehlt hier ein kleines Stückchen Out of the Box Funktionalität. Zwar kann man ab 4.0 ein NodeTemplate auswählen allerdings sucht es explizit nur nach Content (cm:content) Nodes unterhalb des node-templates Folders im Data Dictionary und nicht nach Foldern. Abhilfe schafft hier die Anpassung des Types zu cm:cmobject (der gemeinsame Elterntyp von Folder und Content).
/app:company_home/app:dictionary/app:node_templates/*[subtypeOf("cm:object")]
Um das Skript anzupassen reicht es den node-templates.get.js Repositorywebscript Controller aus dem WEB-INF/classes/alfresco Verzeichnis nach shared/classes/alfresco/templates/webscripts/org/alfresco/slingshot/documentlibrary/node-templates.get.js zu kopieren und den Typen zu modifizieren.
/**
* Document List Component: Create New Node - get list of available node templates in the Data Dictionary
*/
function main()
{
//var nodes = search.selectNodes('/app:company_home/app:dictionary/app:node_templates/*[subtypeOf("cm:content")]');
var nodes = search.selectNodes('/app:company_home/app:dictionary/app:node_templates/*[subtypeOf("cm:cmobject")]');
return nodes;
}
model.nodes = main();
Nun stehen die im Ordner Node Templates angelegten Ordner ebenfalls zur Auswahl allerdings werden nur flache Kopien erzeugt das heißt Unterordner werden nicht berücksichtigt.Hierzu müssen wir noch den node-templates.post.json.js Controller modifizieren. Wir kopieren ihn ebenfalls in das shared/classes/alfresco/templates/webscripts/org/alfresco/slingshot/documentlibrary/ Verzeichnis und modifizieren den sourceNode.copy(…) Aufruf um Deep Copies zu ermöglichen. Aus der Zeile
model.name = sourceNode.copy(parentNode).name;
wird
model.name = sourceNode.copy(parentNode,true).name;
GrußThomas