cancel
Showing results for 
Search instead for 
Did you mean: 

Solution: tag multiple files at once

zbennett
Champ in-the-making
Champ in-the-making
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.j...[/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!
34 REPLIES 34

mikeh
Star Contributor
Star Contributor
What a great tutorial - excellent example of how to contribute to the Alfresco Community!

Thanks!
Mike

zbennett
Champ in-the-making
Champ in-the-making
Thanks, Mike! I always enjoy a good pat on the back. Smiley Happy

All, I'm subscribed to this thread, so please feel free to post any related questions here!

rubensmau
Champ in-the-making
Champ in-the-making
It worked perfectly for me with very clear instructions. Very useful !!
Many thanks,

abhashree
Champ in-the-making
Champ in-the-making
hi
sorry to say i followed all the instructions but one point i stopped and  couldn't move on..
in the step of perform action within auto-tagger  when i selected execute script then in the select field i didnt find tagger.js
i don't know where is the mistake …i followed before steps clearly…

zbennett
Champ in-the-making
Champ in-the-making
Does anyone know if abhashree should refresh webscripts or restart Tomcat to make the tagger.js script appear?

abhashree, can you confirm that tagger.js is in Repository > Data Dictionary > Scripts?

abhashree
Champ in-the-making
Champ in-the-making
hi
i restarted my server but i cannt see tagger.js in perform action..
I have put tagger.js in datadictionary/scripts
i have no idea where is the mistakes
Pls help me to proceed further…

croc
Champ in-the-making
Champ in-the-making
Hi guys,
The instructions were straight forward, I am sure if you followed them properly everything should work perfectly. 1 thing that you need to know is: you need to enable repository. to do that you
1. Go to share-config-custom.xml, you can rename share-config-custom.xml.sample under tomcat\shared\classes\alfresco\web-extension\ to share-config-custom.xml.

2. Set  <visible>true</visible> like the one below.

<!– Repository Library config section –>

   <config evaluator="string-compare" condition="RepositoryLibrary" replace="true">

      <!–

         Whether the link to the Repository Library appears in the header component or not.

      –>

      <visible>true</visible>

3. Then follow the instructions as they are, you don't need to create folders yourself. just click on Repository, and keep doing it till you are done.
Hope this helps,

Thanks,
Croc

abhashree
Champ in-the-making
Champ in-the-making
Hi Croc
I have checked the file ..
i found everything ok
but still i am not able to execute  tagger.js in the scripts while creating rules in auto-tagger .

zbennett
Champ in-the-making
Champ in-the-making
My next guess is that the difference might be between using version 3.3 and version 3.2.

Can any experienced 3.2 users clarify how to execute a JS script from a rule?  Is it the same as 3.3?

abhashree, this is kind of a long shot, but have you tried configuring the rule from the old Alfresco interface (not Share)?