AnsweredAssumed Answered

Solution: tag multiple files at once

Question asked by zbennett on Aug 16, 2010
Latest reply on Nov 15, 2013 by sbenedetti
Hi all,

I've developed a very simple process for tagging multiple files at once. It relies on repository actions/rules and a couple lines of JavaScript, and it's all described below. Once you're all set up, you will be able to make a file inherit tags from a folder you move it into. My example is used for an Image Gallery, so my rule also moves files out of the tagged folders and back into the Image Gallery Document Library.

I am running Alfresco Community Edition v3.3 on my local machine and I am using the Alfresco Share interface.

——————————————-

First, we need to create a JavaScript file with a couple lines of code in it. This is easy, even for people who know nothing about JavaScript. How is it easy, you ask? It's easy because I'm going to tell you exactly what you need to do!

Open Notepad and copy the following code into your blank text file:
//Alfresco auto-tagger
//compliments of Zach Bennett, Eagle Productivity Solutions
//two lines of code
//free for anyone to use
//no license, no strings attached

//get tags from parent (folder) node
var tagArray = document.parent.getTags();

//add the tags to the document node
document.addTags(tagArray);

Now go to File -> Save As… Name your file "tagger.js" and save it to your desktop (or wherever you feel is appropriate). That's all there is to creating the JavaScript file, now we just need to upload it to Alfresco.

Go to your Repository
[img]http://zandadev.com/zach/alfresco_auto_tag_guide/add_script/1_go_to_repo.jpg[/img]

Dive into the Data Dictionary
[img]http://zandadev.com/zach/alfresco_auto_tag_guide/add_script/2_go_to_data_dict.jpg[/img]

And then into Scripts
[img]http://zandadev.com/zach/alfresco_auto_tag_guide/add_script/3_go_to_scripts.jpg[/img]

Then just select Upload and browse to tagger.js (that JavaScript file you created)
[img]http://zandadev.com/zach/alfresco_auto_tag_guide/add_script/4_click_upload.jpg[/img]

Now your script is ready to use! All that is left do is create a couple folders and a rule.

In this example, I created a folder called "auto-tagger" in my Image Gallery's Document Library. I then created a rule that runs the JavaScript code I wrote. My intention was to put temporary folders inside the auto-tagger folder, each with a set of tags that I could reuse over and over.

On the auto-tagger folder, select Manage Rules
[img]http://zandadev.com/zach/alfresco_auto_tag_guide/create_rule/1_select_manage_rules.jpg[/img]

Click Create Rules
[img]http://zandadev.com/zach/alfresco_auto_tag_guide/create_rule/2_click_create_rules.jpg[/img]

Give the rule a name, and make sure the check the 'Rule applies to subfolders' check box
[img]http://zandadev.com/zach/alfresco_auto_tag_guide/create_rule/3_name_and_rule_applies_to_subfolders.jpg[/img]



*** Very important edit ***

You need to set the criteria so this rule only applies to Content items and NOT Folders (unless you want to make the same mistake I made!)
[img]http://zandadev.com/zach/alfresco_auto_tag_guide/create_rule/3andahalf_set_criteria.jpg[/img]


Under Perform Action, select Execute script
[img]http://zandadev.com/zach/alfresco_auto_tag_guide/create_rule/4_select_execute_script.jpg[/img]

And in the drop-down box that appears, you can now select tagger.js, which is the JavaScript file we created earlier
[img]http://zandadev.com/zach/alfresco_auto_tag_guide/create_rule/5_select_tagger.jpg[/img]

To make sure this folder stays empty (which was important for my purpose of an Image Gallery), we will add another action to the rule.

Click the plus symbol (+) to the right side of this rule
[img]http://zandadev.com/zach/alfresco_auto_tag_guide/create_rule/6_add_action.jpg[/img]

For this action, select Move
[img]http://zandadev.com/zach/alfresco_auto_tag_guide/create_rule/7_select_move.jpg[/img]

Then select where you want files to be moved to. I wanted files to be moved to the main Document Library of my Image Gallery site, but you may want to do things differently
[img]http://zandadev.com/zach/alfresco_auto_tag_guide/create_rule/8_select_location.jpg[/img]

And finally, click Create
[img]http://zandadev.com/zach/alfresco_auto_tag_guide/create_rule/9_click_create.jpg[/img]


Now that the rule is created (and applied to subfolders of auto-tagger), you can create folders inside of the auto-tagger folder and add tags to them. Once you do that, can can move files into (or upload directly to) those subfolders to make them inherit the appropriate tags. Any files created in or added to those subfolders will automatically be moved to the location you selected above (like my Image Gallery Document Library).


I hope this helps - happy tagging!

Outcomes