summaryrefslogtreecommitdiff
path: root/src/view
diff options
context:
space:
mode:
authorAlon Levy <alon@pobox.com>2014-12-07 00:27:30 +0200
committerAlon Levy <alon@pobox.com>2014-12-07 00:27:30 +0200
commite49f1de3b8f68caf8944cda3d4b54c67da2006e0 (patch)
treeb3e7648e074a4339d728c07f48c33a98a4174b56 /src/view
parent7c58983a909b3bf76667339d60cb0e31555218a6 (diff)
node_info cleanup
show correct fields per node type don't accumulate callbacks (was unusable) update dialog on save with type change - no need to click node again
Diffstat (limited to 'src/view')
-rw-r--r--src/view/node_info.js44
1 files changed, 36 insertions, 8 deletions
diff --git a/src/view/node_info.js b/src/view/node_info.js
index 33c0837e..09136d37 100644
--- a/src/view/node_info.js
+++ b/src/view/node_info.js
@@ -1,6 +1,37 @@
define(['jquery', 'jquery-ui', 'view/helpers', 'view/internal'],
function($, _unused_jquery_ui, view_helpers, internal) {
+var d = null,
+ submit_callback = null,
+ delete_callback = null;
+
+function _get_form() {
+ return {
+ name: $('.info #editformname').val(),
+ type: $('.info #edittype').val(),
+ url: $('.info #editurl').val(),
+ status: $('.info #editstatus').val(),
+ startdate: $("#editstartdate").val(),
+ enddate: $("#editenddate").val(),
+ };
+}
+
+internal.edit_tab.get('node', "#editbox").submit(function(e) {
+ if (submit_callback) {
+ return submit_callback(e, _get_form());
+ }
+ console.log('bug: edit tab submit called with no callback set');
+ e.preventDefault();
+})
+
+internal.edit_tab.get('node', "#deletenode").click(function(e) {
+ if (delete_callback) {
+ return delete_callback(e, _get_form());
+ }
+ console.log('bug: edit tab delete called with no callback set');
+ e.preventDefault();
+});
+
function show(d) {
var info = $('.info'),
f = false,
@@ -12,18 +43,15 @@ function show(d) {
"interest": [f, f, f, f, t],
"_defaults": [f, f, f, f, t],
},
- fields = ["status", "startdate", "enddate", "desc", "url"],
+ fields = ["#status", "#startdate", "#enddate", "#desc", "#url"],
flags = visible.hasOwnProperty(d.type) ? visible[d.type] : visible._defaults,
i;
internal.edit_tab.show('node');
for (i = 0 ; i < flags.length; ++i) {
- if (flags[i]) {
- info.find(fields[i]).show();
- } else {
- info.find(fields[i]).hide();
- }
+ var elem = info.find(fields[i]);
+ elem[flags[i] ? 'show' : 'hide']();
}
$('.info').attr('class', 'info');
@@ -62,12 +90,12 @@ function hide()
function on_submit(f)
{
- internal.edit_tab.get('node', "#editbox").submit(f);
+ submit_callback = f;
}
function on_delete(f)
{
- internal.edit_tab.get('node', "#deletenode").click(f);
+ delete_callback = f;
}
return {