summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/rz_core.js19
-rw-r--r--src/view/node_info.js44
2 files changed, 48 insertions, 15 deletions
diff --git a/src/rz_core.js b/src/rz_core.js
index d8c549a6..ad6755b3 100644
--- a/src/rz_core.js
+++ b/src/rz_core.js
@@ -708,14 +708,19 @@ function tick(e) {
function showNodeInfo(d, i) {
view.node_info.show(d);
- view.node_info.on_submit(function() {
- if (d.type === "deliverable") {
- graph.editDates(d.id, null, new Date($("#editstartdate").val()), new Date($("#editenddate").val()));
+ view.node_info.on_submit(function(e, form) {
+ var old_type = d.type,
+ new_type = form.type;
+ if (d.type === "third-internship-proposal") {
+ graph.editDates(d.id, null, new Date(form.startdate), new Date(form.enddate));
+ }
+ graph.editName(d.id, form.name);
+ graph.editType(d.id, d.type, form.type);
+ graph.editURL(d.id, d.type, form.url);
+ graph.editStatus(d.id, d.type, form.status);
+ if (new_type != old_type) {
+ view.node_info.show(d);
}
- graph.editName(d.id, $('.info').find('#editformname').val());
- graph.editType(d.id, d.type,$('#edittype').val());
- graph.editURL(d.id, d.type, $('#editurl').val());
- graph.editStatus(d.id, d.type, $('#editstatus').val());
update_view__graph(true);
return false;
});
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 {