PriceTaxCalculator: für Items berechnete flüchtige Werte zurückgeben Teil 2
[kivitendo-erp.git] / js / requirement_spec.js
index d0ec560..cc2f332 100644 (file)
@@ -413,6 +413,47 @@ ns.init_function_block_keypress_events = function(form_id) {
     .bind('keypress', 'shift+return', function(event) { return ns.submit_function_block.apply(this, [ event, true ]); });
 };
 
+ns.renumber_callback = function(accepted) {
+  console.log(accepted ? "yay :)" : "oh no :(");
+  if (!accepted)
+    return;
+
+  $.ajax({
+    url:     'controller.pl?action=RequirementSpec/renumber_sections',
+    type:    'post',
+    data:    { id: $('#requirement_spec_id').val() },
+    success: kivi.eval_json_result
+  });
+};
+
+ns.renumber = function(opt) {
+  $('#rs-dialog-confirm').remove();
+
+  var text1   = kivi.t8('Re-numbering all sections and function blocks in the order they are currently shown cannot be undone.');
+  var text2   = kivi.t8('Do you really want do continue?');
+  var $dialog = $('<div id="rs-dialog-confirm"><p>' + text1 + '</p><p>' + text2 + '</p></div>').hide().appendTo('body');
+  var buttons = {};
+
+  buttons[kivi.t8('Yes')] = function() {
+    $(this).dialog('close');
+    ns.renumber_callback(true);
+  };
+
+  buttons[kivi.t8('No')] = function() {
+    $(this).dialog('close');
+    ns.renumber_callback(false);
+  };
+
+  $dialog.dialog({
+      resizable: false
+    , modal:     true
+    , title:     kivi.t8('Are you sure?')
+    , height:    250
+    , width:     400
+    , buttons:   buttons
+  });
+};
+
 // -------------------------------------------------------------------------
 // ------------------------------- templates -------------------------------
 // -------------------------------------------------------------------------
@@ -629,7 +670,7 @@ ns.disable_commands = function(key, opt) {
 
 ns.find_versioned_copy_id = function(clicked_elt) {
   var id = $(clicked_elt).find("[name=versioned_copy_id]");
-  return id ? id.val() : undefined;
+  return id.size() ? id.val() : undefined;
 };
 
 ns.disable_versioned_copy_item_commands = function(key, opt) {
@@ -649,7 +690,7 @@ ns.create_version = function() {
 ns.create_pdf_for_versioned_copy_ajax_call = function(key, opt) {
   var data = {
     action: "RequirementSpec/create_pdf",
-    id:     ns.find_versioned_copy_id(opt.$trigger)
+    id:     ns.find_versioned_copy_id(opt.$trigger) || $('#requirement_spec_id').val()
   };
   $.download("controller.pl", data);
 
@@ -829,6 +870,8 @@ ns.create_context_menus = function(is_template) {
       // , sep99:           "---------"
       , copy_reqspec:    { name: kivi.t8('Copy template'),   icon: "copy",   callback: kivi.requirement_spec.copy_reqspec   }
       , delete_reqspec:  { name: kivi.t8('Delete template'), icon: "delete", callback: kivi.requirement_spec.delete_reqspec }
+      , sep_paste_template: "---------"
+      , renumber:        { name: kivi.t8('Renumber sections and function blocks'), icon: "renumber", callback: kivi.requirement_spec.renumber }
     };
 
     $.contextMenu({
@@ -848,6 +891,8 @@ ns.create_context_menus = function(is_template) {
       , copy_reqspec:       { name: kivi.t8('Copy requirement spec'),   icon: "copy",   callback: kivi.requirement_spec.copy_reqspec   }
       , delete_reqspec:     { name: kivi.t8('Delete requirement spec'), icon: "delete", callback: kivi.requirement_spec.delete_reqspec }
       , sep_paste_template: "---------"
+      , renumber:           { name: kivi.t8('Renumber sections and function blocks'), icon: "renumber", callback: kivi.requirement_spec.renumber }
+      , sep_paste_template: "---------"
       , paste_template:     { name: kivi.t8('Paste template'),     icon: "paste",  callback: kivi.requirement_spec.paste_template }
     };
 
@@ -861,7 +906,7 @@ ns.create_context_menus = function(is_template) {
     });
 
     $.contextMenu({
-      selector: '.basic-settings-context-menu',
+      selector: ':has(> .basic-settings-context-menu:visible)',
       items:    $.extend({
           heading:           { name: kivi.t8('Basic settings actions'), className: 'context-menu-heading' }
         , edit:              { name: kivi.t8('Edit'),              icon: "edit", callback: kivi.requirement_spec.standard_basic_settings_ajax_call }
@@ -870,7 +915,7 @@ ns.create_context_menus = function(is_template) {
     });
 
     $.contextMenu({
-      selector: '.edit-project-link-context-menu',
+      selector: ':has(> .edit-project-link-context-menu:visible)',
       items:    $.extend({
           heading: { name: kivi.t8('Project link actions'), className: 'context-menu-heading' }
         , save:    { name: kivi.t8('Save'),   icon: "save",  callback: kivi.requirement_spec.standard_basic_settings_ajax_call }
@@ -921,7 +966,7 @@ ns.create_context_menus = function(is_template) {
   });
 
   $.contextMenu({
-    selector: '.edit-basic-settings-context-menu',
+    selector: ':has(> .edit-basic-settings-context-menu:visible)',
     items:    $.extend({
         heading: { name: kivi.t8('Basic settings actions'), className: 'context-menu-heading' }
       , save:    { name: kivi.t8('Save'),   icon: "save",  callback: kivi.requirement_spec.standard_basic_settings_ajax_call }
@@ -930,7 +975,7 @@ ns.create_context_menus = function(is_template) {
   });
 
   $.contextMenu({
-    selector: '.time-cost-estimate-context-menu',
+    selector: ':has(> div > .time-cost-estimate-context-menu:visible)',
     items:    $.extend({
         heading: { name: kivi.t8('Time/cost estimate actions'), className: 'context-menu-heading' }
       , edit:    { name: kivi.t8('Edit'), icon: "edit", callback: kivi.requirement_spec.standard_time_cost_estimate_ajax_call }
@@ -938,7 +983,7 @@ ns.create_context_menus = function(is_template) {
   });
 
   $.contextMenu({
-    selector: '.edit-time-cost-estimate-context-menu',
+    selector: ':has(> .edit-time-cost-estimate-context-menu:visible)',
     items:    $.extend({
         heading: { name: kivi.t8('Time/cost estimate actions'), className: 'context-menu-heading' }
       , save:    { name: kivi.t8('Save'),   icon: "save",  callback: kivi.requirement_spec.standard_time_cost_estimate_ajax_call }
@@ -948,7 +993,7 @@ ns.create_context_menus = function(is_template) {
   });
 
   $.contextMenu({
-    selector: '.additional-parts-context-menu',
+    selector: ':has(> .additional-parts-context-menu:visible)',
     items:    $.extend({
         heading: { name: kivi.t8('Additional articles actions'), className: 'context-menu-heading' }
       , edit:    { name: kivi.t8('Edit'), icon: "edit", callback: kivi.requirement_spec.standard_additional_parts_ajax_call }
@@ -962,7 +1007,7 @@ ns.create_context_menus = function(is_template) {
   };
 
   $.contextMenu({
-    selector: '.edit-additional-parts-context-menu',
+    selector: ':has(> .edit-additional-parts-context-menu:visible)',
     items:    $.extend({
         heading:        { name: kivi.t8('Additional articles actions'), className: 'context-menu-heading' }
     }, additional_parts_actions, general_actions)
@@ -977,7 +1022,7 @@ ns.create_context_menus = function(is_template) {
   });
 
   $.contextMenu({
-    selector: '.quotations-and-orders-context-menu,.quotations-and-orders-order-context-menu',
+    selector: ':has(> .quotations-and-orders-context-menu:visible),.quotations-and-orders-order-context-menu',
     items:    $.extend({
         heading:            { name: kivi.t8('Quotations/Orders actions'), className: 'context-menu-heading'                                                                                            }
       , edit_assignment:    { name: kivi.t8('Edit article/section assignments'), icon: "edit",   callback: ns.standard_quotation_order_ajax_call                                                       }
@@ -990,7 +1035,7 @@ ns.create_context_menus = function(is_template) {
   });
 
   $.contextMenu({
-    selector: '.quotations-and-orders-edit-assignment-context-menu',
+    selector: ':has(> .quotations-and-orders-edit-assignment-context-menu:visible)',
     items:    $.extend({
         heading:         { name: kivi.t8('Edit article/section assignments'), className: 'context-menu-heading'    }
       , save_assignment: { name: kivi.t8('Save'),   icon: "edit",  callback: ns.standard_quotation_order_ajax_call }
@@ -999,7 +1044,7 @@ ns.create_context_menus = function(is_template) {
   });
 
   $.contextMenu({
-    selector: '.quotations-and-orders-new-context-menu',
+    selector: ':has(> .quotations-and-orders-new-context-menu:visible)',
     items:    $.extend({
         heading: { name: kivi.t8('Create new quotation/order'), className: 'context-menu-heading'          }
       , create:  { name: kivi.t8('Create'), icon: "edit",  callback: ns.standard_quotation_order_ajax_call }
@@ -1008,7 +1053,7 @@ ns.create_context_menus = function(is_template) {
   });
 
   $.contextMenu({
-    selector: '.quotations-and-orders-update-context-menu',
+    selector: ':has(> .quotations-and-orders-update-context-menu:visible)',
     items:    $.extend({
         heading:   { name: kivi.t8('Update quotation/order'), className: 'context-menu-heading'               }
       , do_update: { name: kivi.t8('Update'), icon: "update", callback: ns.standard_quotation_order_ajax_call }