diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2019-09-12 21:19:19 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2019-09-12 21:19:58 +0200 |
commit | 7eaddb898570caaf19e94e3b2c889572eaf7a59c (patch) | |
tree | 9501168bcf42a290b63a6008faa75651e9fd61eb /ishtar_common/static/js/ishtar.js | |
parent | 70f0fa29fac15c03f1c7af0f185b70be480b2d45 (diff) | |
download | Ishtar-7eaddb898570caaf19e94e3b2c889572eaf7a59c.tar.bz2 Ishtar-7eaddb898570caaf19e94e3b2c889572eaf7a59c.zip |
New management of popup for new items - manage author and persons
Diffstat (limited to 'ishtar_common/static/js/ishtar.js')
-rw-r--r-- | ishtar_common/static/js/ishtar.js | 74 |
1 files changed, 57 insertions, 17 deletions
diff --git a/ishtar_common/static/js/ishtar.js b/ishtar_common/static/js/ishtar.js index 66087b1ff..2ec398e99 100644 --- a/ishtar_common/static/js/ishtar.js +++ b/ishtar_common/static/js/ishtar.js @@ -688,16 +688,48 @@ function open_window(url){ function save_and_close_window(name_label, name_pk, item_name, item_pk){ var main_page = opener.document; - jQuery(main_page).find("#"+name_label).val(item_name); - jQuery(main_page).find("#"+name_pk).val(item_pk); + save_and_close_window_data(main_page, name_label, + name_pk, item_name, item_pk); opener.focus(); self.close(); } +function save_and_close_window_data(main_page, name_label, + name_pk, item_name, item_pk){ + var cur_item; + var cur_item_pk; + if (main_page){ + cur_item = $(main_page).find("#"+name_label); + cur_item_pk = $(main_page).find("#"+name_pk); + } else { + cur_item = $("#"+name_label); + cur_item_pk = $("#"+name_pk); + } + cur_item.val(item_name); + cur_item_pk.val(item_pk); +} + function save_and_close_window_many(name_label, name_pk, item_name, item_pk){ var main_page = opener.document; - var lbl_ = jQuery(main_page).find("#" + name_label); - var val_ = jQuery(main_page).find("#" + name_pk); + save_and_close_window_many_data(main_page, name_label, + name_pk, item_name, item_pk); + opener.focus(); + self.close(); +} + +function save_and_close_window_many_data(main_page, name_label, + name_pk, item_name, item_pk){ + var cur_item; + var cur_item_pk; + if (main_page){ + cur_item = $(main_page).find("#"+name_label); + cur_item_pk = $(main_page).find("#"+name_pk); + } else { + cur_item = $("#"+name_label); + cur_item_pk = $("#"+name_pk); + } + var lbl_ = cur_item; + var val_ = cur_item_pk; if (val_.val()){ var v = lbl_.val(); v = v.slice(0, v.lastIndexOf(",")); @@ -705,11 +737,9 @@ function save_and_close_window_many(name_label, name_pk, item_name, item_pk){ val_.val(val_.val() + ", " + item_pk); lbl_.change(); } else { - jQuery(main_page).find("#" + name_label).val(item_name); - jQuery(main_page).find("#" + name_pk).val(item_pk); + cur_item.val(item_name); + cur_item_pk.val(item_pk); } - opener.focus(); - self.close(); } function multiRemoveItem(selItems, name, idx){ @@ -986,7 +1016,8 @@ var dt_generate_qa_url = function (table, url){ return url; }; -var dt_qa_open = function (url){ +var dt_qa_open = function (url, modal_id){ + if (!modal_id) modal_id = "modal-dynamic-form"; short_wait(); $.ajax({ url: url, @@ -994,14 +1025,14 @@ var dt_qa_open = function (url){ success: function(data, textStatus, jqXHR) { close_wait(); var text = jqXHR.responseText; - $('#modal-dynamic-form').html(text); + $('#' + modal_id).html(text); var response = $(text); var responseScript = response.find("script"); $.each(responseScript, function(idx, val){ eval(val.text); } ); - $('#modal-dynamic-form').modal("show"); + $('#' + modal_id).modal("show"); }, error: function() { close_wait(); @@ -1032,16 +1063,25 @@ var ajax_post = function(url, data, target, callback, error_callback){ }); }; -var qa_action_register = function(url) { - $('#qa-action').on('submit', function(event){ +var qa_action_register = function(url, slug) { + var qa_id; + var modal_id; + if (!slug){ + qa_id = "qa-action"; + modal_id = "modal-dynamic-form"; + } else { + qa_id = "qa-new-" + slug; + modal_id = "modal-dynamic-form-" + slug; + } + $("#" + qa_id).on('submit', function(event){ event.preventDefault(); var fn = function(){ - $('#modal-dynamic-form').modal("show"); - } ; - $('#modal-dynamic-form').modal("hide"); + $('#' + modal_id).modal("show"); + } ; + $('#' + modal_id).modal("hide"); short_wait(); ajax_post( - url, $(this).serialize(), "#modal-dynamic-form", fn, fn + url, $(this).serialize(), "#" + modal_id, fn, fn ); }); }; |