From 06101d59dc1d67f0bb4194425b46f153f8a97c7e Mon Sep 17 00:00:00 2001 From: Alon Levy Date: Tue, 11 Nov 2014 15:57:42 +0200 Subject: put .info into a tab not using jquery tab since I just want an abstraction for 'show just one' which is simpler, no labels. --- scripts/view/internal.js | 14 ++++++++++++ scripts/view/node_info.js | 8 +++---- scripts/view/tab.js | 57 +++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 75 insertions(+), 4 deletions(-) create mode 100644 scripts/view/internal.js create mode 100644 scripts/view/tab.js (limited to 'scripts/view') diff --git a/scripts/view/internal.js b/scripts/view/internal.js new file mode 100644 index 00000000..bc18bd75 --- /dev/null +++ b/scripts/view/internal.js @@ -0,0 +1,14 @@ +define(['view/tab'], +function(tab) { + +var EDGE_INFO_SELECTOR = '.edge_info', + NODE_INFO_SELECTOR = '.info', + edit_tab = new tab.Tab({edge: EDGE_INFO_SELECTOR, node: NODE_INFO_SELECTOR}); + +return { + EDGE_INFO_SELECTOR: EDGE_INFO_SELECTOR, + NODE_INFO_SELECTOR: NODE_INFO_SELECTOR, + edit_tab: edit_tab, +}; + +}); diff --git a/scripts/view/node_info.js b/scripts/view/node_info.js index 347fbb24..f4d67c7f 100644 --- a/scripts/view/node_info.js +++ b/scripts/view/node_info.js @@ -1,8 +1,8 @@ -define(['jquery', 'view/helpers'], -function($, view_helpers) { +define(['jquery', 'view/helpers', 'view/internal'], +function($, view_helpers, internal) { function show(d) { - $('.info').fadeIn(300); + internal.edit_tab.show('node'); if (d.type === "deliverable") { $('.info').html('Name: ' + d.id + '




'); @@ -40,7 +40,7 @@ function show(d) { function hide() { - $('.info').fadeOut(300); + internal.edit_tab.hide(); } function on_submit(f) diff --git a/scripts/view/tab.js b/scripts/view/tab.js new file mode 100644 index 00000000..97ba1351 --- /dev/null +++ b/scripts/view/tab.js @@ -0,0 +1,57 @@ +"use strict" + +define(['jquery'], +function($) { + +function Tab(dict) { + var k, + selector = {}, + name = []; + + for (k in dict) { + if (dict.hasOwnProperty(k) == false) { + continue; + } + selector[k] = dict[k]; + name.push(k); + } + this._selector = selector; + this._name = name; +} + +Tab.prototype.show = function(shown_name) { + var i, + name, + element; + + for (i = 0 ; i < this._name.length ; ++i) { + name = this._name[i]; + element = $(this._selector[name]); + if (name === shown_name) { + element.fadeIn(300); + } else { + element.hide(); + } + } +} + +Tab.prototype.hide = function() { + var i; + + for (i = 0 ; i < this._name.length ; ++i) { + $(this._selector[this._name[i]]).fadeOut(300); + } +} + +Tab.prototype.get = function(name, sel) { + // selector concatenation + var e = $(this._selector[name] + ' ' + sel); + + return e; +} + +return { + Tab: Tab +}; + +}); -- cgit v1.3.1