Before I start the business process, I select the attachments. I can do it many times, remove attachments and choose again.
I want to display dynamic table with information about attachments.
For example, to retrieve all the attachments details, I use such code:
...
var divWithAnchors = YAHOO.util.Selector.query("#page_x002e_data-form_x002e_task-details_x0023_default_assoc_packageItems-cntrl")[0];
var anchors = divWithAnchors.getElementsByTagName('a');
var attachments = new Array();
for(var i = 0; i < anchors.length; i++) {
attachments[i] = anchors[i].href.split('=')[1];
}
...
It gives me references to nodes, for example:
...
workspace://SpacesStore/c5a27463-c2aa-4c70-aca7-1f999d3ac76a
workspace://SpacesStore/29e9f035-403c-47b6-8421-624d584ff7eb
workspace://SpacesStore/712aaca2-9c90-4733-a690-bbf9bacb26e6
workspace://SpacesStore/68893fde-ee7c-4ecb-a2df-d4953dc69439
...
Then I can do AJAX requests to the REST back-end (WebScripts) and get the responses:
...
for(var i = 0; i < attachments.length; i++) {
Alfresco.util.Ajax.jsonGet(
...
// parse JSON and fill the table
Is this the correct way? I'm not sure about the ID:
page_x002e_data-form_x002e_task-details_x0023_default_assoc_packageItems-cntrl
Is this a constant?.. Can this identifier be changed?
In fact, all these NodeRefs are available in the object selectedItems = {}
and can be obtained in the method getAddedItems()
(see object-finder.js
):
...
/**
* Selected items. Keeps a list of selected items for correct Add button state.
*
* @property selectedItems
* @type object
*/
selectedItems: null,
...
/**
* Returns items that have been added to the current value
*
* @method getAddedItems
* @return {array}
*/
getAddedItems: function ObjectFinder_getAddedItems() {
var addedItems = [],
currentItems = Alfresco.util.arrayToObject(this.options.currentValue.split(","));
for (var item in this.selectedItems) {
if (this.selectedItems.hasOwnProperty(item)) {
if (!(item in currentItems)) {
addedItems.push(item);
}
}
}
return addedItems;
},
...
Next, is needed to send these NodeRefs to the WebScript and get all the necessary properties by using NodeService
service.