diff options
Diffstat (limited to 'scripts/view')
| -rw-r--r-- | scripts/view/internal.js | 14 | ||||
| -rw-r--r-- | scripts/view/node_info.js | 8 | ||||
| -rw-r--r-- | scripts/view/tab.js | 57 |
3 files changed, 75 insertions, 4 deletions
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 + '<br/><form id="editbox"><label>Type:</label><select id="edittype"><option value="person">Person</option><option value="project">Project</option><option value="skill">Skill</option><option value="deliverable">Deliverable</option><option value="objective">Objective</option></select><br/><label>Status</label><select id="editstatus"><option value="waiting">Waiting</option><option value="current">Current</option><option value="done">Done</option></select><br/><label>Start date:</label><input id="editstartdate"/></br><label>End date:</label><input id="editenddate"/></br><button>Save</button><button id="deletenode">Delete</button></form>'); @@ -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 +}; + +}); |
