| author | hamidouk |
| Tue, 31 Jan 2012 11:58:26 +0100 | |
| branch | popcorn-port |
| changeset 748 | ec1f7aa873f4 |
| parent 737 | c12b9a11102c |
| child 766 | aa26ddaf2556 |
| permissions | -rw-r--r-- |
|
675
82a5ebbedc83
Added a Tag Cloud Widget and corrected Stack Graph Widget
veltr
parents:
diff
changeset
|
1 |
IriSP.TagCloudWidget = function(Popcorn, config, Serializer) { |
|
82a5ebbedc83
Added a Tag Cloud Widget and corrected Stack Graph Widget
veltr
parents:
diff
changeset
|
2 |
IriSP.Widget.call(this, Popcorn, config, Serializer); |
|
82a5ebbedc83
Added a Tag Cloud Widget and corrected Stack Graph Widget
veltr
parents:
diff
changeset
|
3 |
} |
|
82a5ebbedc83
Added a Tag Cloud Widget and corrected Stack Graph Widget
veltr
parents:
diff
changeset
|
4 |
|
|
82a5ebbedc83
Added a Tag Cloud Widget and corrected Stack Graph Widget
veltr
parents:
diff
changeset
|
5 |
IriSP.TagCloudWidget.prototype = new IriSP.Widget(); |
|
82a5ebbedc83
Added a Tag Cloud Widget and corrected Stack Graph Widget
veltr
parents:
diff
changeset
|
6 |
|
|
82a5ebbedc83
Added a Tag Cloud Widget and corrected Stack Graph Widget
veltr
parents:
diff
changeset
|
7 |
IriSP.TagCloudWidget.prototype.draw = function() { |
|
82a5ebbedc83
Added a Tag Cloud Widget and corrected Stack Graph Widget
veltr
parents:
diff
changeset
|
8 |
|
|
82a5ebbedc83
Added a Tag Cloud Widget and corrected Stack Graph Widget
veltr
parents:
diff
changeset
|
9 |
var _stopwords = [ |
|
82a5ebbedc83
Added a Tag Cloud Widget and corrected Stack Graph Widget
veltr
parents:
diff
changeset
|
10 |
'aussi', 'and', 'avec', 'aux', 'car', 'cette', 'comme', 'dans', 'donc', 'des', 'elle', 'est', |
|
82a5ebbedc83
Added a Tag Cloud Widget and corrected Stack Graph Widget
veltr
parents:
diff
changeset
|
11 |
'être', 'eux', 'fait', 'ici', 'ils', 'les', 'leur', 'leurs', 'mais', 'mes', 'même', 'mon', 'notre', |
| 725 | 12 |
'non', 'nos', 'nous', 'ont', 'par', 'pas', 'peu', 'pour', 'que', 'qui', 'ses' ,'son', 'sont', 'sur', |
|
675
82a5ebbedc83
Added a Tag Cloud Widget and corrected Stack Graph Widget
veltr
parents:
diff
changeset
|
13 |
'tes', 'très', 'the', 'ton', 'tous', 'tout', 'une', 'votre', 'vos', 'vous' |
|
82a5ebbedc83
Added a Tag Cloud Widget and corrected Stack Graph Widget
veltr
parents:
diff
changeset
|
14 |
], |
|
82a5ebbedc83
Added a Tag Cloud Widget and corrected Stack Graph Widget
veltr
parents:
diff
changeset
|
15 |
_regexpword = /[^\s\.&;,'"!\?\d\(\)\+\[\]\\\…\-«»:\/]{3,}/g, |
|
82a5ebbedc83
Added a Tag Cloud Widget and corrected Stack Graph Widget
veltr
parents:
diff
changeset
|
16 |
_words = {}, |
|
82a5ebbedc83
Added a Tag Cloud Widget and corrected Stack Graph Widget
veltr
parents:
diff
changeset
|
17 |
_showTitle = !this._config.excludeTitle, |
|
82a5ebbedc83
Added a Tag Cloud Widget and corrected Stack Graph Widget
veltr
parents:
diff
changeset
|
18 |
_showDescription = !this._config.excludeDescription, |
|
82a5ebbedc83
Added a Tag Cloud Widget and corrected Stack Graph Widget
veltr
parents:
diff
changeset
|
19 |
_tagCount = this._config.tagCount || 30; |
|
82a5ebbedc83
Added a Tag Cloud Widget and corrected Stack Graph Widget
veltr
parents:
diff
changeset
|
20 |
|
|
82a5ebbedc83
Added a Tag Cloud Widget and corrected Stack Graph Widget
veltr
parents:
diff
changeset
|
21 |
IriSP._(this._serializer._data.annotations).each(function(_annotation) { |
|
82a5ebbedc83
Added a Tag Cloud Widget and corrected Stack Graph Widget
veltr
parents:
diff
changeset
|
22 |
if (_annotation.content && _annotation.content.description) { |
|
82a5ebbedc83
Added a Tag Cloud Widget and corrected Stack Graph Widget
veltr
parents:
diff
changeset
|
23 |
var _txt = (_showTitle ? _annotation.content.title : '') + ' ' + (_showDescription ? _annotation.content.description : '') |
|
82a5ebbedc83
Added a Tag Cloud Widget and corrected Stack Graph Widget
veltr
parents:
diff
changeset
|
24 |
IriSP._(_txt.toLowerCase().match(_regexpword)).each(function(_mot) { |
|
82a5ebbedc83
Added a Tag Cloud Widget and corrected Stack Graph Widget
veltr
parents:
diff
changeset
|
25 |
if (_stopwords.indexOf(_mot) == -1) { |
|
82a5ebbedc83
Added a Tag Cloud Widget and corrected Stack Graph Widget
veltr
parents:
diff
changeset
|
26 |
_words[_mot] = 1 + (_words[_mot] || 0); |
|
82a5ebbedc83
Added a Tag Cloud Widget and corrected Stack Graph Widget
veltr
parents:
diff
changeset
|
27 |
} |
|
82a5ebbedc83
Added a Tag Cloud Widget and corrected Stack Graph Widget
veltr
parents:
diff
changeset
|
28 |
}) |
|
82a5ebbedc83
Added a Tag Cloud Widget and corrected Stack Graph Widget
veltr
parents:
diff
changeset
|
29 |
} |
|
82a5ebbedc83
Added a Tag Cloud Widget and corrected Stack Graph Widget
veltr
parents:
diff
changeset
|
30 |
}); |
|
82a5ebbedc83
Added a Tag Cloud Widget and corrected Stack Graph Widget
veltr
parents:
diff
changeset
|
31 |
|
|
82a5ebbedc83
Added a Tag Cloud Widget and corrected Stack Graph Widget
veltr
parents:
diff
changeset
|
32 |
_words = IriSP._(_words) |
|
82a5ebbedc83
Added a Tag Cloud Widget and corrected Stack Graph Widget
veltr
parents:
diff
changeset
|
33 |
.chain() |
|
82a5ebbedc83
Added a Tag Cloud Widget and corrected Stack Graph Widget
veltr
parents:
diff
changeset
|
34 |
.map(function(_v, _k) { |
|
82a5ebbedc83
Added a Tag Cloud Widget and corrected Stack Graph Widget
veltr
parents:
diff
changeset
|
35 |
return { |
|
82a5ebbedc83
Added a Tag Cloud Widget and corrected Stack Graph Widget
veltr
parents:
diff
changeset
|
36 |
"word" : _k, |
|
82a5ebbedc83
Added a Tag Cloud Widget and corrected Stack Graph Widget
veltr
parents:
diff
changeset
|
37 |
"count" : _v, |
|
82a5ebbedc83
Added a Tag Cloud Widget and corrected Stack Graph Widget
veltr
parents:
diff
changeset
|
38 |
} |
|
82a5ebbedc83
Added a Tag Cloud Widget and corrected Stack Graph Widget
veltr
parents:
diff
changeset
|
39 |
}) |
|
82a5ebbedc83
Added a Tag Cloud Widget and corrected Stack Graph Widget
veltr
parents:
diff
changeset
|
40 |
.filter(function(_v) { |
|
82a5ebbedc83
Added a Tag Cloud Widget and corrected Stack Graph Widget
veltr
parents:
diff
changeset
|
41 |
return _v.count > 2; |
|
82a5ebbedc83
Added a Tag Cloud Widget and corrected Stack Graph Widget
veltr
parents:
diff
changeset
|
42 |
}) |
|
82a5ebbedc83
Added a Tag Cloud Widget and corrected Stack Graph Widget
veltr
parents:
diff
changeset
|
43 |
.sortBy(function(_v) { |
|
82a5ebbedc83
Added a Tag Cloud Widget and corrected Stack Graph Widget
veltr
parents:
diff
changeset
|
44 |
return - _v.count; |
|
82a5ebbedc83
Added a Tag Cloud Widget and corrected Stack Graph Widget
veltr
parents:
diff
changeset
|
45 |
}) |
|
82a5ebbedc83
Added a Tag Cloud Widget and corrected Stack Graph Widget
veltr
parents:
diff
changeset
|
46 |
.first(_tagCount) |
|
82a5ebbedc83
Added a Tag Cloud Widget and corrected Stack Graph Widget
veltr
parents:
diff
changeset
|
47 |
.value(); |
|
82a5ebbedc83
Added a Tag Cloud Widget and corrected Stack Graph Widget
veltr
parents:
diff
changeset
|
48 |
var _max = _words[0].count, |
|
82a5ebbedc83
Added a Tag Cloud Widget and corrected Stack Graph Widget
veltr
parents:
diff
changeset
|
49 |
_min = Math.min(_words[_words.length - 1].count, _max - 1), |
|
82a5ebbedc83
Added a Tag Cloud Widget and corrected Stack Graph Widget
veltr
parents:
diff
changeset
|
50 |
_scale = 16 / Math.sqrt(_max - _min), |
| 728 | 51 |
_this = this, |
|
675
82a5ebbedc83
Added a Tag Cloud Widget and corrected Stack Graph Widget
veltr
parents:
diff
changeset
|
52 |
_html = '<ul>' |
|
82a5ebbedc83
Added a Tag Cloud Widget and corrected Stack Graph Widget
veltr
parents:
diff
changeset
|
53 |
+ IriSP._(_words) |
|
82a5ebbedc83
Added a Tag Cloud Widget and corrected Stack Graph Widget
veltr
parents:
diff
changeset
|
54 |
.chain() |
|
82a5ebbedc83
Added a Tag Cloud Widget and corrected Stack Graph Widget
veltr
parents:
diff
changeset
|
55 |
.shuffle() |
|
82a5ebbedc83
Added a Tag Cloud Widget and corrected Stack Graph Widget
veltr
parents:
diff
changeset
|
56 |
.map(function(_word) { |
|
82a5ebbedc83
Added a Tag Cloud Widget and corrected Stack Graph Widget
veltr
parents:
diff
changeset
|
57 |
var _size = 10 + _scale * Math.sqrt(_word.count - _min); |
|
82a5ebbedc83
Added a Tag Cloud Widget and corrected Stack Graph Widget
veltr
parents:
diff
changeset
|
58 |
return '<li style="font-size:' |
|
82a5ebbedc83
Added a Tag Cloud Widget and corrected Stack Graph Widget
veltr
parents:
diff
changeset
|
59 |
+ _size |
|
82a5ebbedc83
Added a Tag Cloud Widget and corrected Stack Graph Widget
veltr
parents:
diff
changeset
|
60 |
+ 'px;">' |
|
82a5ebbedc83
Added a Tag Cloud Widget and corrected Stack Graph Widget
veltr
parents:
diff
changeset
|
61 |
+ _word.word |
|
82a5ebbedc83
Added a Tag Cloud Widget and corrected Stack Graph Widget
veltr
parents:
diff
changeset
|
62 |
+ '</li>' |
|
82a5ebbedc83
Added a Tag Cloud Widget and corrected Stack Graph Widget
veltr
parents:
diff
changeset
|
63 |
}) |
|
82a5ebbedc83
Added a Tag Cloud Widget and corrected Stack Graph Widget
veltr
parents:
diff
changeset
|
64 |
.value() |
|
82a5ebbedc83
Added a Tag Cloud Widget and corrected Stack Graph Widget
veltr
parents:
diff
changeset
|
65 |
.join("") |
|
82a5ebbedc83
Added a Tag Cloud Widget and corrected Stack Graph Widget
veltr
parents:
diff
changeset
|
66 |
+ '</ul>'; |
|
82a5ebbedc83
Added a Tag Cloud Widget and corrected Stack Graph Widget
veltr
parents:
diff
changeset
|
67 |
this.selector |
|
82a5ebbedc83
Added a Tag Cloud Widget and corrected Stack Graph Widget
veltr
parents:
diff
changeset
|
68 |
.addClass("Ldt-TagCloud") |
|
82a5ebbedc83
Added a Tag Cloud Widget and corrected Stack Graph Widget
veltr
parents:
diff
changeset
|
69 |
.html(_html); |
| 728 | 70 |
this.selector.find("li").click(function() { |
71 |
var _txt = this.textContent.replace(/(^[\s]+|[\s]+$)/g,''); |
|
| 736 | 72 |
_this._Popcorn.trigger("IriSP.search.triggeredSearch", _txt); |
| 728 | 73 |
}); |
74 |
this._Popcorn.listen("IriSP.search", IriSP.wrap(this, function(searchString) { |
|
75 |
var _rgxp = new RegExp("(" + searchString.replace(/(\W)/g,'\\$1') + ")","gi"); |
|
76 |
this.selector.find("li").each(function(_i, _e) { |
|
77 |
_e.innerHTML = searchString.length ? |
|
78 |
_e.textContent.replace(_rgxp,'<span class="Ldt-TagCloud-actif">$1</span>') |
|
79 |
: _e.textContent; |
|
80 |
}); |
|
81 |
})); |
|
| 737 | 82 |
this._Popcorn.listen("IriSP.search.closed", IriSP.wrap(this, this.endsearch)); |
83 |
this._Popcorn.listen("IriSP.search.cleared", IriSP.wrap(this, this.endsearch)); |
|
|
675
82a5ebbedc83
Added a Tag Cloud Widget and corrected Stack Graph Widget
veltr
parents:
diff
changeset
|
84 |
} |
| 728 | 85 |
|
86 |
IriSP.TagCloudWidget.prototype.endsearch = function() { |
|
87 |
this.selector.find("li").each(function(_i, _e) { |
|
88 |
_e.innerHTML = _e.textContent; |
|
89 |
}); |
|
90 |
} |