Add/Manage/Delete record references. Also updates to document picker to show correct icons and filter out specific types. TODO: documentpicker should probably filter out current record and already referenced records to avoid cyclic and duplicate errors when adding new references

git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@16059 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Lawrence Carvalho
2009-09-03 09:16:05 +00:00
parent f7e7334e83
commit 288f42fec6

View File

@@ -1,19 +1,19 @@
function main()
{
var argsFilterType = args['filterType'],
var argsFilterType = args['filterType'],
argsSelectableType = args['selectableType']
parent = null,
rootNode = companyhome,
results = [],
categoryResults = null,
resultObj = null;
if (logger.isLoggingEnabled())
{
logger.log("children type = " + url.templateArgs.type);
logger.log("argsSelectableType = " + argsSelectableType);
results = [],
categoryResults = null,
resultObj = null;
if (logger.isLoggingEnabled())
{
logger.log("children type = " + url.templateArgs.type);
logger.log("argsSelectableType = " + argsSelectableType);
logger.log("argsFilterType = " + argsFilterType);
}
}
try
{
@@ -43,41 +43,58 @@ function main()
}
}
var query = "+PARENT:\"" + parent.nodeRef + "\"";
var query = "+PARENT:\"" + parent.nodeRef + "\"";
if (argsFilterType != null)
{
query += " +TYPE:\"" + argsFilterType + "\"";
}
if (logger.isLoggingEnabled())
logger.log("query = " + query);
//map short name to long name
var types = {
'rma:dispositionSchedule': '{http://www.alfresco.org/model/recordsmanagement/1.0}dispositionSchedule',
'rma:dispositionActionDefinition': '{http://www.alfresco.org/model/recordsmanagement/1.0}dispositionActionDefinition',
'rma:dispositionAction': '{http://www.alfresco.org/model/recordsmanagement/1.0}dispositionAction',
'rma:hold':'{http://www.alfresco.org/model/recordsmanagement/1.0}hold',
'rma:transfer':'{http://www.alfresco.org/model/recordsmanagement/1.0}transfer'
};
var filterTypes = argsFilterType.split(',');
for (var i=0,len=filterTypes.length; i<len; i++)
{
var identifier = filterTypes[i];
if (types[identifier])
{
query += " -TYPE:\"" + types[identifier] + "\"";
}
}
}
if (logger.isLoggingEnabled())
logger.log("query = " + query);
var searchResults = search.luceneSearch(query, "@{http://www.alfresco.org/model/content/1.0}name", true);
// Ensure folders and folderlinks appear at the top of the list
var containerResults = new Array();
var contentResults = new Array();
var contentResults = new Array();
for each(var result in searchResults)
{
if (result.isContainer || result.type == "{http://www.alfresco.org/model/application/1.0}folderlink")
{
// wrap result and determine if it is selectable in the UI
resultObj =
{
item: result
};
resultObj.selectable = isItemSelectable(result, argsSelectableType);
{
// wrap result and determine if it is selectable in the UI
resultObj =
{
item: result
};
resultObj.selectable = isItemSelectable(result, argsSelectableType);
containerResults.push(resultObj);
}
else
{
// wrap result and determine if it is selectable in the UI
resultObj =
{
item: result
};
resultObj.selectable = isItemSelectable(result, argsSelectableType);
{
// wrap result and determine if it is selectable in the UI
resultObj =
{
item: result
};
resultObj.selectable = isItemSelectable(result, argsSelectableType);
contentResults.push(resultObj);
}
@@ -99,19 +116,19 @@ function main()
{
parent = search.findNode(nodeRef);
categoryResults = parent.children;
}
// make each result an object and indicate it is selectable in the UI
for each(var result in categoryResults)
{
results.push(
{
item: result,
selectable: true
});
}
}
// make each result an object and indicate it is selectable in the UI
for each(var result in categoryResults)
{
results.push(
{
item: result,
selectable: true
});
}
}
if (logger.isLoggingEnabled())
logger.log("Found " + results.length + " results");
}
@@ -130,18 +147,18 @@ function main()
model.parent = parent;
model.rootNode = rootNode;
model.results = results;
}
function isItemSelectable(node, selectableType)
{
var selectable = true;
if (selectableType !== null && selectableType !== "")
{
selectable = node.isSubType(selectableType);
}
return selectable;
}
function isItemSelectable(node, selectableType)
{
var selectable = true;
if (selectableType !== null && selectableType !== "")
{
selectable = node.isSubType(selectableType);
}
return selectable;
}
main();