From 04cf441c5ae18400c6b4865b0b37a71718dc9d46 Mon Sep 17 00:00:00 2001 From: Ola Bini Date: Thu, 31 Jul 2014 19:29:33 -0300 Subject: Add web-ui based on previous code --- web-ui/app/js/tags/ui/tag_shortcut.js | 68 +++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 web-ui/app/js/tags/ui/tag_shortcut.js (limited to 'web-ui/app/js/tags/ui/tag_shortcut.js') diff --git a/web-ui/app/js/tags/ui/tag_shortcut.js b/web-ui/app/js/tags/ui/tag_shortcut.js new file mode 100644 index 00000000..6e5c6960 --- /dev/null +++ b/web-ui/app/js/tags/ui/tag_shortcut.js @@ -0,0 +1,68 @@ +define( + [ + 'flight/lib/component', + 'views/templates', + 'page/events', + 'tags/ui/tag_base' + ], + + function (describeComponent, templates, events, tagBase) { + + var TagShortcut = describeComponent(tagShortcut, tagBase); + + TagShortcut.appendedTo = function (parent, data) { + var res = new this(); + res.renderAndAttach(parent, data); + return res; + }; + + return TagShortcut; + + function tagShortcut() { + + + this.renderAndAttach = function (parent, options) { + var linkTo = options.linkTo; + + var model = { + tagName: linkTo.name, + displayBadge: this.displayBadge(linkTo), + badgeType: this.badgeType(linkTo), + count: this.badgeType(linkTo) === 'total' ? linkTo.counts.total : (linkTo.counts.total - linkTo.counts.read), + icon: iconFor[linkTo.name] + }; + + var rendered = templates.tags.shortcut(model); + parent.append(rendered); + + this.initialize(parent.children().last(),options); + }; + + var iconFor = { + 'inbox': 'inbox', + 'sent': 'send', + 'drafts': 'pencil', + 'trash': 'trash-o', + 'all': 'archive' + }; + + this.selectTag = function (ev, data) { + data.tag === this.attr.linkTo.name ? this.doSelect() : this.doUnselect(); + }; + + this.doUnselect = function () { + this.$node.removeClass('selected'); + }; + + this.doSelect = function () { + this.$node.addClass('selected'); + }; + + this.after('initialize', function () { + this.on('click', function () { this.attr.trigger.triggerSelect(); }); + this.on(document, events.ui.tag.select, this.selectTag); + }); + + } + } +); -- cgit v1.2.3