Call javascript webscript from contoller
1. Create file at location - /source/web/components/documentlibrary/any-action.js
var nodeRef = record.node.linkedNode.nodeRef.replace(":/", "");
var me = this;
Alfresco.util.Ajax.request(
{
url: Alfresco.constants.PROXY_URI + "api/extensions/getPath/" + nodeRef,
method: Alfresco.util.Ajax.GET,
requestContentType: Alfresco.util.Ajax.JSON,
successCallback:{
fn: function changePath(response)
{
if (response.json !== undefined)
{
var json = response.json;
var displayPath = json.displayPath;
var nodeRef = record.node.linkedNode.nodeRef;
var name = record.node.linkedNode.properties["cm:name"];
var pathInfo = displayPath.match("\/Sites\/([^\/]*)\/");
}
},
scope: me
}
});
2. Create file at location:
/config/alfresco/extension/templates/webscripts/com/test/util/displayPath/displayPath.get.desc.xml
<webscript>
<shortname>Get Display Path</shortname>
<description>Get the display path for a node</description>
<url>/api/extensions/getPath/{item_store_type}/{item_store_id}/{item_id}</url>
<format default="json"/>
<authentication>user</authentication>
</webscript>
3. Create file at location:
/config/alfresco/extension/templates/webscripts/com/test/util/displayPath/displayPath.get.js
model.nodeRef = url.templateArgs.item_store_type;
model.nodeRef = model.nodeRef + "://" + url.templateArgs.item_store_id;
model.nodeRef = model.nodeRef + "/" + url.templateArgs.item_id;
var node = search.findNode(model.nodeRef);
if(node!=null) model.displayPath = node.displayPath;
else model.displayPath = null;
4. Create file at location:
/config/alfresco/extension/templates/webscripts/com/test/util/displayPath/displayPath.get.json.ftl
{
"displayPath": "${displayPath}"
}
Comments
Post a Comment