Pflichtenhefte Angebote/Aufträge: "Artikel allen Abschnitten zuweisen" fixen
[kivitendo-erp.git] / js / requirement_spec.js
index d2a5052..00e4319 100644 (file)
@@ -281,11 +281,11 @@ ns.item_popup_menu_hidden = function(opt) {
 // -------------------------------------------------------------------------
 
 ns.paste_template = function(key, opt, other_data) {
-  open_jqm_window({ url: 'controller.pl?action=RequirementSpec/select_template_to_paste' });
+  kivi.popup_dialog({ url: 'controller.pl?action=RequirementSpec/select_template_to_paste', dialog: { title: kivi.t8("Select template to paste") } });
 };
 
 ns.paste_selected_template = function(template_id) {
-  $('#jqm_popup_dialog').jqmClose();
+  $('#jqueryui_popup_dialog').dialog("close");
 
   var data = {
     action:               "RequirementSpec/paste_template",
@@ -365,8 +365,13 @@ ns.find_quotation_order_id = function(clicked_elt) {
 };
 
 ns.standard_quotation_order_ajax_call = function(key, opt) {
-  if ((key == 'cancel') && !confirm(kivi.t8('Do you really want to cancel?')))
+  if (key == 'cancel') {
+    if (confirm(kivi.t8('Do you really want to cancel?'))) {
+      $('#quotations_and_orders').show();
+      $('#quotations_and_orders_article_assignment,#quotations_and_orders_new,#quotations_and_orders_update').remove();
+    }
     return true;
+  }
 
   else if ((key == 'create') && $('#quotations_and_orders_form INPUT[name="sections[].order_part_id"]').filter(function(idx, elt) { return ($(elt).val() || '') == '' }).size()) {
     alert(kivi.t8('There is one or more sections for which no part has been assigned yet; therefore creating the new record is not possible yet.'));
@@ -403,10 +408,18 @@ ns.disable_create_quotation_order_commands = function(key, opt) {
 };
 
 ns.assign_order_part_id_to_all = function() {
-  var order_part_id = $('#quoations_and_orders_order_id').val();
-  $('#quotations_and_orders_form SELECT[name="sections[].order_part_id"]').each(function(idx, elt) {
+  var order_part_id   = $('#quotations_and_orders_order_id').val();
+  var order_part_name = $('#quotations_and_orders_order_id_name').val();
+
+  $('#quotations_and_orders_form INPUT[name="sections[].order_part_id"]').each(function(idx, elt) {
     $(elt).val(order_part_id);
   });
+
+  $('#quotations_and_orders_form [id^=quotations_and_orders_sections_order_pard_id_]').filter(function() {
+    return $(this).attr('id') && $(this).attr('id').match("^quotations_and_orders_sections_order_pard_id_[0-9]+_name$");
+  }).each(function(idx, elt) {
+    $(elt).val(order_part_name);
+  });
 };
 
 // -------------------------------------------------------------------------
@@ -454,10 +467,10 @@ ns.disable_versioned_copy_item_commands = function(key, opt) {
 };
 
 ns.create_version = function() {
-  open_jqm_window({ url:  'controller.pl',
-                    data: { action:              'RequirementSpecVersion/new',
-                            requirement_spec_id: $('#requirement_spec_id').val() },
-                    id:   'new_requirement_spec_version_window' });
+  kivi.popup_dialog({ url:    'controller.pl',
+                      data:   { action:              'RequirementSpecVersion/new',
+                                requirement_spec_id: $('#requirement_spec_id').val() },
+                      dialog: { title: kivi.t8('Create a new version') }});
   return true;
 };
 
@@ -486,6 +499,36 @@ ns.revert_to_versioned_copy_ajax_call = function(key, opt) {
   return true;
 };
 
+// -------------------------------------------------------------------------
+// ------------------------------- tab widget ------------------------------
+// -------------------------------------------------------------------------
+var content_div_ids_for_tab_headers = {
+    'tab-header-function-block':     'function-blocks-tab'
+  , 'tab-header-basic-settings':     'ui-tabs-1'
+  , 'tab-header-time-cost-estimate': 'ui-tabs-2'
+  , 'tab-header-versions':           'ui-tabs-3'
+  , 'tab-header-quotations-orders':  'ui-tabs-4'
+};
+
+ns.tabs_before_activate = function(event, ui) {
+  if (!ui.oldTab)
+    return true;
+
+  var content_div_id = content_div_ids_for_tab_headers[ $(ui.oldTab).attr('id') ];
+  if (!content_div_id || (content_div_id == 'function-blocks-tab'))
+    return true;
+
+  var inputs = $('#' + content_div_id).find('input,select,textarea').filter('[type!=hidden]');
+  if (!inputs.size() || confirm(kivi.t8("If you switch to a different tab without saving you will lose the data you've entered in the current tab.")))
+    return true;
+
+  var new_focus = $(inputs).filter(':focusable')[0];
+  if (new_focus)
+    $(new_focus).focus();
+
+  return false;
+};
+
 // -------------------------------------------------------------------------
 // ----------------------------- context menus -----------------------------
 // -------------------------------------------------------------------------