Pflichtenheftpunkte bearbeiten
[kivitendo-erp.git] / templates / webpages / requirement_spec / show.html
index 53fb52d..0f12cd3 100644 (file)
 
   <div id="column-content">
    [%- IF SELF.requirement_spec_item -%]
-    [%- INCLUDE 'requirement_spec_item/_single_section.html' requirement_spec_item=SELF.requirement_spec_item -%]
+    [%- INCLUDE 'requirement_spec_item/_section.html' requirement_spec_item=SELF.requirement_spec_item -%]
    [%- ELSE -%]
-    no section
-    [%#- render :partial => 'requirement_spec_items/no_section' -%]
+    [%- INCLUDE 'requirement_spec_item/_no_section.html' -%]
    [%- END -%]
   </div>
  </div>
 
 <script type="text/javascript">
  <!--
-     var tree_data = [
-       { data:     [% JSON.json(LxERP.t8("Text blocks front")) %],
-         metadata: { type: "text-blocks-front" },
-         attr:     { id: "tb-front", class: "text-block-context-menu" },
-         children: [
+$(function() {
+  var tree_data = [
+    { data:     [% JSON.json(LxERP.t8("Text blocks front")) %],
+      metadata: { type: "text-blocks-front" },
+      attr:     { id: "tb-front", class: "text-block-context-menu" },
+      children: [
 [% FOREACH tb = SELF.requirement_spec.text_blocks_for_position(0) %]
  [% P.requirement_spec_text_block_jstree_data(tb).json %][% IF !loop.last %],[% END %]
 [% END %]
-         ]
-       },
-
-       { data:     [% JSON.json(LxERP.t8("Sections")) %],
-         metadata: { type: "sections" },
-         attr:     { id: "sections" },
-         children: [
+      ]},
 
+    { data:     [% JSON.json(LxERP.t8("Sections")) %],
+      metadata: { type: "sections" },
+      attr:     { id: "sections", class: "section-context-menu" },
+      children: [
 [% FOREACH section = SELF.requirement_spec.sections %]
  [% P.requirement_spec_item_jstree_data(section).json %][% IF !loop.last %],[% END %]
 [% END %]
-         ]
-       },
+      ]},
 
-       { data:     [% JSON.json(LxERP.t8("Text blocks back")) %],
-         metadata: { type: "text-blocks-back" },
-         attr:     { id: "tb-back", class: "text-block-context-menu" },
-         children: [
+    { data:     [% JSON.json(LxERP.t8("Text blocks back")) %],
+      metadata: { type: "text-blocks-back" },
+      attr:     { id: "tb-back", class: "text-block-context-menu" },
+      children: [
 [% FOREACH tb = SELF.requirement_spec.text_blocks_for_position(1) %]
  [% P.requirement_spec_text_block_jstree_data(tb).json %][% IF !loop.last %],[% END %]
 [% END %]
-         ]
-       }
-     ];
-
-     $(function() {
-       $('#tree').jstree({
-         core: {
-           animation: 0,
-           initially_open: [ "tb-front", "tb-back", "sections"
+      ]}];
+
+  $('#tree').jstree({
+    core: {
+      animation: 0,
+      initially_open: [ "tb-front", "tb-back", "sections"
 [%- FOREACH section = SELF.requirement_spec.sections -%]
- , "fb-[% section.id %]"
       , "fb-[% section.id %]"
  [%- FOREACH function_block = section.children -%]
-  , "fb-[% function_block.id -%]"
+        , "fb-[% function_block.id -%]"
  [%- END -%]
 [%- END -%]
- ]
-         },
-         json_data: {
-           data: tree_data
-         },
-         crrm: {
-           move: {
-             check_move: requirement_spec_tree_check_move,
-             open_move:  true
-           }
-         },
-         themes: {
-           theme: "requirement-spec"
-         },
-         plugins: [ "themes", "json_data", "ui", "crrm", "dnd" ]
-       })
-       .bind("move_node.jstree", requirement_spec_tree_node_moved)
-       .bind("click.jstree",     requirement_spec_tree_node_clicked);
-[%- IF SELF.requirement_spec_item -%]
-       $.jstree._reference("#tree").select_node('fb-[% SELF.requirement_spec_item.id %]', true);
-[%- END -%]
-     });
+    ]},
+    json_data: {
+      data: tree_data
+    },
+    crrm: {
+      move: {
+        check_move: requirement_spec_tree_check_move,
+        open_move:  true
+      }
+    },
+    themes: {
+      theme: "requirement-spec"
+    },
+    plugins: [ "themes", "json_data", "ui", "crrm", "dnd" ]
+  })
+  .bind("move_node.jstree", requirement_spec_tree_node_moved)
+  .bind("click.jstree",     requirement_spec_tree_node_clicked);
+[% IF SELF.requirement_spec_item %]
+  $.jstree._reference("#tree").select_node('#fb-[% SELF.requirement_spec_item.id %]', true);
+[% END %]
+});
 
 function ask_delete_text_block(key, opt) {
   if (confirm("[% LxERP.t8("Are you sure?") %]"))
@@ -108,19 +101,83 @@ function ask_delete_text_block(key, opt) {
   return true;
 }
 
+function ask_delete_item(key, opt) {
+  if (confirm("[% LxERP.t8("Are you sure?") %]"))
+    standard_item_ajax_call(key, opt);
+  return true;
+}
+
 $(function(){
-    $.contextMenu({
-        selector: '.text-block-context-menu',
-        items: {
-          add:    { name: "[% LxERP.t8('Add text block') %]", icon: "add", callback: standard_text_block_ajax_call },
-          edit:   { name: "[% LxERP.t8('Edit text block') %]", icon: "edit", callback: standard_text_block_ajax_call, disabled: disable_edit_text_block_commands },
-          delete: { name: "[% LxERP.t8('Delete text block') %]", icon: "delete", callback: ask_delete_text_block, disabled: disable_edit_text_block_commands },
-          sep1:   "---------",
-          copy:   { name: "[% LxERP.t8('Copy') %]", icon: "copy", disabled: disable_edit_text_block_commands },
-          paste:  { name: "[% LxERP.t8('Paste') %]", icon: "paste", disabled: disable_edit_text_block_commands }
-        }
-      });
+  $.contextMenu({
+    selector: '.text-block-context-menu',
+    items: {
+      add:    { name: "[% LxERP.t8('Add text block') %]",    icon: "add",    callback: standard_text_block_ajax_call },
+      edit:   { name: "[% LxERP.t8('Edit text block') %]",   icon: "edit",   callback: standard_text_block_ajax_call, disabled: disable_edit_text_block_commands },
+      delete: { name: "[% LxERP.t8('Delete text block') %]", icon: "delete", callback: ask_delete_text_block,         disabled: disable_edit_text_block_commands },
+      sep1:   "---------",
+      copy:   { name: "[% LxERP.t8('Copy') %]",              icon: "copy",  disabled: disable_edit_text_block_commands },
+      paste:  { name: "[% LxERP.t8('Paste') %]",             icon: "paste", disabled: disable_edit_text_block_commands }
+    }
+  });
+
+
+  $.contextMenu({
+    selector: '.section-context-menu',
+    items: {
+      add_section:        { name: "[% LxERP.t8('Add section') %]",        icon: "add",    callback: standard_item_ajax_call },
+      add_function_block: { name: "[% LxERP.t8('Add function block') %]", icon: "add",    callback: standard_text_block_ajax_call, disabled: disable_edit_item_commands },
+      sep1:               "---------",
+      edit:               { name: "[% LxERP.t8('Edit') %]",               icon: "edit",   callback: standard_item_ajax_call, disabled: disable_edit_item_commands },
+      delete:             { name: "[% LxERP.t8('Delete') %]",             icon: "delete", callback: ask_delete_item,         disabled: disable_edit_item_commands },
+      sep2:               "---------",
+      copy:               { name: "[% LxERP.t8('Copy') %]",               icon: "copy",  disabled: disable_edit_item_commands },
+      paste:              { name: "[% LxERP.t8('Paste') %]",              icon: "paste", disabled: disable_edit_item_commands }
+    }
+  });
+
+  $.contextMenu({
+    selector: '.function-block-context-menu,.sub-function-block-context-menu',
+    items: {
+      new_item:     { name: "[% LxERP.t8('Add function block') %]",     icon: "add", callback: standard_item_ajax_call },
+      new_sub_item: { name: "[% LxERP.t8('Add sub function block') %]", icon: "add", callback: standard_item_ajax_call },
+      sep1:         "---------",
+      edit:         { name: "[% LxERP.t8('Edit') %]",   icon: "edit",   callback: standard_item_ajax_call, disabled: disable_edit_item_commands },
+      delete:       { name: "[% LxERP.t8('Delete') %]", icon: "delete", callback: standard_item_ajax_call, disabled: disable_edit_item_commands },
+      sep2:         "---------",
+      copy:         { name: "[% LxERP.t8('Copy') %]",  icon: "copy",  disabled: disable_edit_item_commands },
+      paste:        { name: "[% LxERP.t8('Paste') %]", icon: "paste", disabled: disable_edit_item_commands }
+    }
+  });
 });
 
+function edit_section_header() {
+  $.post("controller.pl?action=RequirementSpecItem/edit_section&id=" + encodeURIComponent($('#active_section_id').val()), function(data) {
+    var header = $('#section-header');
+    header.data('old-elements', header.children().detach());
+    header.html(data);
+  });
+}
+
+function submit_section_form() {
+  $.post("controller.pl?action=RequirementSpecItem/update_section&id=" + $('#section-form form').serialize(), function(data) {
+    var header = $('#section-header');
+    header.removeData('old-elements');
+    header.html(data['header_html']);
+    $('#tree').jstree('rename_node', '#fb-' + data['id'], data['node_name']);
+  });
+}
+
+function cancel_section_form() {
+  var header = $('#section-header');
+  header.empty();
+  header.append(header.data('old-elements'));
+  header.removeData('old-elements');
+}
+
+
+
+
+
+
   -->
 </script>