Pflichtenheftitems & Textblöcke: Selektion bei Popupmenü durch Markierung links anzeigen
[kivitendo-erp.git] / js / requirement_spec.js
index cec4097..39beb0d 100644 (file)
@@ -159,18 +159,6 @@ function standard_text_block_ajax_call(key, opt, other_data) {
   return true;
 }
 
-function submit_edit_text_block_form(id_base) {
-  var id   = $('#' + id_base + '_id').val();
-  var url  = "controller.pl?" + $('#' + id_base + '_form').serialize();
-  var data = {
-    action:      'RequirementSpecTextBlock/ajax_' + (id ? 'update' : 'create'),
-    id:          id,
-    form_prefix: id_base
-  };
-  $.post(url, data, eval_json_result);
-  return true;
-}
-
 function cancel_edit_text_block_form(id_base) {
   var id = $('#' + id_base + '_id').val();
   $('#' + id_base + '_form').remove();
@@ -233,18 +221,6 @@ function disable_add_function_block_command(key, opt) {
   return opt.$trigger.attr('id') != "section-list-empty";
 }
 
-function submit_edit_item_form(id_base) {
-  var id   = $('#' + id_base + '_id').val();
-  var url  = "controller.pl?" + $('#' + id_base + '_form').serialize();
-  var data = {
-    action:      'RequirementSpecItem/ajax_' + (id ? 'update' : 'create'),
-    id:          id,
-    form_prefix: id_base
-  };
-  $.post(url, data, eval_json_result);
-  return true;
-}
-
 function cancel_edit_item_form(form_id_base, options) {
   $('#' + form_id_base + '_form').remove();
   if (!options)
@@ -261,10 +237,50 @@ function ask_delete_item(key, opt) {
   return true;
 }
 
+function handle_text_block_popup_menu_markings(opt, add) {
+  var id = find_text_block_id(opt.$trigger);
+  if (id)
+    $('#text-block-' + id).toggleClass('selected', add);
+  return true;
+}
+
+function requirement_spec_text_block_popup_menu_shown(opt) {
+  return handle_text_block_popup_menu_markings(opt, true);
+}
+
+function requirement_spec_text_block_popup_menu_hidden(opt) {
+  return handle_text_block_popup_menu_markings(opt, false);
+}
+
+
+function handle_item_popup_menu_markings(opt, add) {
+  var id = find_item_id(opt.$trigger);
+  if (id)
+    $('#section-' + id + ',#function-block-' + id + ',#sub-function-block-' + id).toggleClass('selected', add);
+  return true;
+}
+
+function requirement_spec_item_popup_menu_shown(opt) {
+  return handle_item_popup_menu_markings(opt, true);
+}
+
+function requirement_spec_item_popup_menu_hidden(opt) {
+  return handle_item_popup_menu_markings(opt, false);
+}
+
 function create_requirement_spec_context_menus() {
+  var events = {
+    show: requirement_spec_text_block_popup_menu_shown,
+    hide: requirement_spec_text_block_popup_menu_hidden
+  };
+
   $.contextMenu({
     selector: '.text-block-context-menu',
-    items: {
+    events:   {
+        show: requirement_spec_text_block_popup_menu_shown
+      , hide: requirement_spec_text_block_popup_menu_hidden
+    },
+    items:    {
         add:    { name: kivi.t8('Add text block'),    icon: "add",    callback: standard_text_block_ajax_call }
       , edit:   { name: kivi.t8('Edit text block'),   icon: "edit",   callback: standard_text_block_ajax_call, disabled: disable_edit_text_block_commands }
       , delete: { name: kivi.t8('Delete text block'), icon: "delete", callback: ask_delete_text_block,         disabled: disable_edit_text_block_commands }
@@ -278,9 +294,15 @@ function create_requirement_spec_context_menus() {
     }
   });
 
+  var events = {
+    show: requirement_spec_item_popup_menu_shown,
+    hide: requirement_spec_item_popup_menu_hidden
+  };
+
   $.contextMenu({
     selector: '.section-context-menu',
-    items: {
+    events:   events,
+    items:    {
         add_section:        { name: kivi.t8('Add section'),        icon: "add",    callback: standard_item_ajax_call }
       , add_function_block: { name: kivi.t8('Add function block'), icon: "add",    callback: standard_item_ajax_call, disabled: disable_add_function_block_command }
       , sep1:               "---------"
@@ -298,7 +320,8 @@ function create_requirement_spec_context_menus() {
 
   $.contextMenu({
     selector: '.function-block-context-menu,.sub-function-block-context-menu',
-    items: {
+    events:   events,
+    items:    {
         add_function_block:     { name: kivi.t8('Add function block'),     icon: "add",    callback: standard_item_ajax_call }
       , add_sub_function_block: { name: kivi.t8('Add sub function block'), icon: "add",    callback: standard_item_ajax_call }
       , sep1:                   "---------"