diff options
Diffstat (limited to 'ishtar_common/static')
-rw-r--r-- | ishtar_common/static/js/ishtar.js | 31 |
1 files changed, 24 insertions, 7 deletions
diff --git a/ishtar_common/static/js/ishtar.js b/ishtar_common/static/js/ishtar.js index da1a47de6..655a91eb4 100644 --- a/ishtar_common/static/js/ishtar.js +++ b/ishtar_common/static/js/ishtar.js @@ -707,6 +707,7 @@ function save_and_close_window_data(main_page, name_label, var cur_item; var cur_item_pk; var id_item; + if (main_page){ cur_item = $(main_page).find("#" + name_label); cur_item_pk = $(main_page).find("#" + name_pk); @@ -716,11 +717,27 @@ function save_and_close_window_data(main_page, name_label, cur_item_pk = $("#" + name_pk); id_item = $("#id_" + name_label); } - cur_item.val(item_name); - cur_item.change(); - cur_item_pk.val(item_pk); - cur_item_pk.change(); - id_item.change(); + if (name_label != name_pk){ // custom + cur_item.val(item_name); + cur_item.change(); + cur_item_pk.val(item_pk); + cur_item_pk.change(); + id_item.change(); + } else { // select2 + var data = [{ + "id": item_pk, "value": item_name + }]; + + var new_option = new Option(item_name, item_pk, true, true); + $('#' + name_pk).append(new_option).trigger('change'); + + $('#' + name_pk).trigger({ + type: 'select2:select', + params: { + data: data + } + }); + } } function save_and_close_window_many(name_label, name_pk, item_name, item_pk){ @@ -739,8 +756,8 @@ function save_and_close_window_many_data(main_page, name_label, 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 = $("#" + name_label); + cur_item_pk = $("#" + name_pk); } var lbl_ = cur_item; var val_ = cur_item_pk; |