From ace73cf22c71bddc1e061acb7aad63b77e939cbd Mon Sep 17 00:00:00 2001 From: Kevin Roast Date: Tue, 8 Jan 2008 19:16:24 +0000 Subject: [PATCH] Fix so that Project Space policy code is moved to emailserver:aliasable onAddAspect - fixes 2 bugs and allows creation of project from any Project template git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@7876 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- .../onAddAspect_emailserver_aliasable.js | 25 ++++++++++++ .../script/onCreateNode_app_projectfolder.js | 39 ------------------- config/alfresco/projects-context.xml | 9 +++-- 3 files changed, 30 insertions(+), 43 deletions(-) create mode 100644 config/alfresco/module/projects/script/onAddAspect_emailserver_aliasable.js delete mode 100644 config/alfresco/module/projects/script/onCreateNode_app_projectfolder.js diff --git a/config/alfresco/module/projects/script/onAddAspect_emailserver_aliasable.js b/config/alfresco/module/projects/script/onAddAspect_emailserver_aliasable.js new file mode 100644 index 0000000000..51e3734335 --- /dev/null +++ b/config/alfresco/module/projects/script/onAddAspect_emailserver_aliasable.js @@ -0,0 +1,25 @@ +logger.log("onAddAspect policy code for emailserver:aliasable"); +var emailfolder = behaviour.args[0]; +// search for an app:projectfolder parent node +var parent = emailfolder.parent; +while (parent != null && parent.hasPermission("Read")) +{ + if (parent.type == "{http://www.alfresco.org/model/application/1.0}projectfolder") + { + logger.log("Found parent app:project folder: " + parent.name); + + var alias = normalise(parent.name); + parent.properties["emailserver:alias"] = alias; + parent.save(); + logger.log("Applied email alias of: " + alias); + + break; + } + parent = parent.parent; +} + +function normalise(s) +{ + // email alias has strict constraint + return new String(s).toLowerCase().replace(/[^a-z^0-9^.]/g, "-"); +} \ No newline at end of file diff --git a/config/alfresco/module/projects/script/onCreateNode_app_projectfolder.js b/config/alfresco/module/projects/script/onCreateNode_app_projectfolder.js deleted file mode 100644 index 18b50e5853..0000000000 --- a/config/alfresco/module/projects/script/onCreateNode_app_projectfolder.js +++ /dev/null @@ -1,39 +0,0 @@ -// onCreateNode policy code for app:projectfolder -logger.log("onCreateNode policy code for app:projectfolder"); -var project = behaviour.args[0].child; -if (project.children.length == 0) -{ - // perform deep copy of Project template contents into this node - var templates = search.luceneSearch("+PATH:\"/app:company_home/app:dictionary/app:space_templates/*\" +TYPE:\"{http://www.alfresco.org/model/application/1.0}projectfolder\""); - if (templates.length == 0) - { - logger.log("No app:project templates found to copy!"); - } - else - { - logger.log("Copying app:project template into new project..."); - for each (var child in templates[0].children) - { - child.copy(project, true); - } - - // search for the email archive child folder - var results = search.luceneSearch("+PATH:\"" + project.qnamePath + "/*\" +ASPECT:\"{http://www.alfresco.org/model/emailserver/1.0}aliasable\""); - if (results.length == 1) - { - results[0].properties["emailserver:alias"] = normalise(project.name); - results[0].save(); - logger.log("Applied email alias of: " + normalise(project.name)); - } - else - { - logger.log("No email archive folder found!"); - } - } -} - -function normalise(s) -{ - // email alias has strict constraint - return new String(s).toLowerCase().replace(/[^a-z^0-9^.]/g, "-"); -} \ No newline at end of file diff --git a/config/alfresco/projects-context.xml b/config/alfresco/projects-context.xml index 2b744ed444..bd70ab97b0 100644 --- a/config/alfresco/projects-context.xml +++ b/config/alfresco/projects-context.xml @@ -4,19 +4,20 @@ - + - {http://www.alfresco.org}onCreateNode + {http://www.alfresco.org}onAddAspect - {http://www.alfresco.org/model/application/1.0}projectfolder + {http://www.alfresco.org/model/emailserver/1.0}aliasable + TRANSACTION_COMMIT - alfresco/module/projects/script/onCreateNode_app_projectfolder.js + alfresco/module/projects/script/onAddAspect_emailserver_aliasable.js