calendar = calendar.split('|');
var type = calendar[0];
calendar = calendar.length == 1 ? null : calendar[1];
-
+ this.doAction('listTopTags', {update: 'kronolithCalendarinternalTopTags'}, this.topTagsCallback);
var form = $('kronolithCalendarForm' + type),
firstTab = form.down('.tabset a.kronolithTabLink'),
info;
$('kronolithEventSave').show();
$('kronolithEventDelete').show();
$('kronolithEventForm').down('.kronolithFormActions .kronolithSeparator').show();
- this.doAction('listTopTags', {}, this.topTags);
+ this.doAction('listTopTags', {update: 'kronolithEventTopTags'}, this.topTagsCallback);
if (id) {
RedBox.loading();
this.doAction('getEvent', { cal: calendar, id: id, date: date }, this.editEventCallback.bind(this));
}.bind(this));
},
- topTags: function(r)
+ topTagsCallback: function(r)
{
if (!r.response.tags) {
- $('kronolithEventTopTags').update();
+ $(r.response.update).update();
return;
}
t = new Element('div');
r.response.tags.each(function(tag) {
t.insert(new Element('span', { className: 'kronolithEventTag' }).update(tag.escapeHTML()));
});
- $('kronolithEventTopTags').update(t);
+ $(r.response.update).update(t);
return;
},
}
/**
- * TODO
+ * Generate a list of most frequently used tags for the current user.
+ * Takes a 'update' parameter that gets passed back to indicate what element
+ * to update.
*/
public function listTopTags()
{
$tagger = new Kronolith_Tagger();
$result = new stdClass;
$result->tags = array();
+ $result->update = $this->_vars->update;
$tags = $tagger->getCloud(Horde_Auth::getAuth(), 10);
foreach ($tags as $tag) {
$result->tags[] = $tag['tag_name'];