summaryrefslogtreecommitdiff
path: root/web-ui/app/js/tags/data/tags.js
blob: 96f08b996d16d86c86bbe107cc21ecca1f073651 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
define(['flight/lib/component', 'page/events'], function (defineComponent, events) {
  'use strict';

  var DataTags = defineComponent(dataTags);

      DataTags.all = {
        name: 'all',
        ident: '8752888923742657436',
        query: 'in:all',
        default: true,
        counts:{
          total:0,
            read:0,
            starred:0,
            replied:0
        }
      };

  return DataTags;

  function dataTags() {
    function sendTagsBackTo(on, params) {
      return function(data) {
        data.push(DataTags.all);
        on.trigger(params.caller, events.tags.received, {tags: data});
      };
    }

    this.defaultAttrs({
      tagsResource: '/tags'
    });

    this.fetchTags = function(event, params) {
      $.ajax(this.attr.tagsResource)
        .done(sendTagsBackTo(this, params));
    };

    this.after('initialize', function () {
      this.on(document, events.tags.want, this.fetchTags);
    });
  }
});