web/res/metadataplayer/Tagcloud.js
changeset 1198 ff4b567d51f2
parent 955 5171f8825985
--- a/web/res/metadataplayer/Tagcloud.js	Fri Feb 13 13:14:15 2015 +0100
+++ b/web/res/metadataplayer/Tagcloud.js	Sun Feb 15 00:43:16 2015 +0100
@@ -21,7 +21,9 @@
     annotation_type: false,
     segment_annotation_type: false,
     min_font_size: 10,
-    max_font_size: 26
+    max_font_size: 26,
+    min_count: 2,
+    remove_zero_duration: false
 };
 
 IriSP.Widgets.Tagcloud.prototype.stopword_lists = {
@@ -54,10 +56,16 @@
 
 IriSP.Widgets.Tagcloud.prototype.redraw = function(_from, _to) {
     var _urlRegExp = /https?:\/\/[0-9a-zA-Z\.%\/-_]+/g,
-        _regexpword = /[^\s\.&;,'"!\?\d\(\)\+\[\]\\\…\-«»:\/]{3,}/g,
         _words = {},
         _this = this,
         _annotations = this.getWidgetAnnotations();
+    
+    if(!this.include_titles && !this.include_descriptions){
+    	var _regexpword = /[^\.&;,'"!\?\d\(\)\+\[\]\\\…\-«»\/]{3,}/g;
+    }
+    else{
+    	var _regexpword = /[^\s\.&;,'"!\?\d\(\)\+\[\]\\\…\-«»:\/]{3,}/g;
+    }
         
     if (typeof _from !== "undefined" && typeof _to !== "undefined") {
         _annotations = _annotations.filter(function(_annotation) {
@@ -65,6 +73,12 @@
         });
     }
     
+    if(this.remove_zero_duration){
+    	_annotations = _annotations.filter(function(_annotation) {
+	        return _annotation.getDuration()>0;
+	    });
+    }
+    
     _annotations.forEach(function(_annotation) {
        var _txt =
             (_this.include_titles ? _annotation.title : '')
@@ -73,6 +87,7 @@
             + ' '
             + (_this.include_tag_texts ? _annotation.getTagTexts() : '');
        IriSP._(_txt.toLowerCase().replace(_urlRegExp, '').match(_regexpword)).each(function(_word) {
+    	   _word = _word.trim();
            if (IriSP._(_this.stopwords).indexOf(_word) == -1 && (!_this.exclude_pattern || !_this.exclude_pattern.test(_word))) {
                _words[_word] = 1 + (_words[_word] || 0);
            }
@@ -87,7 +102,7 @@
             };
         })
         .filter(function(_v) {
-            return _v.count > 2;
+            return _v.count > _this.min_count;
         })
         .sortBy(function(_v) {
             return - _v.count;
@@ -105,7 +120,7 @@
     this.$.html(Mustache.to_html(this.template,  {words: _words }));
     this.$.find(".Ldt-Tagcloud-item").click(function() {
         var _txt = IriSP.jQuery(this).attr("content");
-        _this.source.getAnnotations().search(_txt);
+        _this.source.getAnnotations().searchByTags(_txt);
     });
     this.source.getAnnotations().on("search", this.functionWrapper("onSearch"));
     this.source.getAnnotations().on("search-cleared", this.functionWrapper("onSearch"));