Pflichtenheftabschnittsvorlagen erzeugen, bearbeiten, löschen
[kivitendo-erp.git] / templates / webpages / requirement_spec / show.html
index 5a92d0f..c4819fe 100644 (file)
@@ -4,18 +4,24 @@
 
 [%- INCLUDE 'requirement_spec/_header.html' %]
 
-[%- L.hidden_tag('requirement_spec_id', SELF.requirement_spec.id) -%]
+[%- L.hidden_tag('requirement_spec_id', SELF.requirement_spec.id, 'data-is-template'=(SELF.requirement_spec.is_template ? 1 : 0)) -%]
 
 <div class="tabwidget">
  <ul>
   <li><a href="#function-blocks-tab">[%- LxERP.t8("Content") %]</a></li>
   <li><a href="controller.pl?action=RequirementSpec/ajax_edit&id=[% HTML.url(SELF.requirement_spec.id) %]">[%- LxERP.t8("Basic settings") %]</a></li>
+  [%- UNLESS SELF.requirement_spec.is_template %]
+   <li><a href="controller.pl?action=RequirementSpec/ajax_show_time_and_cost_estimate&id=[% HTML.url(SELF.requirement_spec.id) %]">[%- LxERP.t8("Time and cost estimate") %]</a></li>
+   <li><a href="controller.pl?action=RequirementSpecVersion/list&requirement_spec_id=[% HTML.url(SELF.requirement_spec.id) %]">[%- LxERP.t8("Versions") %]</a></li>
+  [%- END %]
  </ul>
 
  <div id="function-blocks-tab">
-  <div id="requirement_spec_version">
+  [%- UNLESS SELF.requirement_spec.is_template %]
+   <div id="requirement_spec_version">
     [%- INCLUDE 'requirement_spec/_version.html' requirement_spec=SELF.requirement_spec -%]
-  </div>
+   </div>
+  [%- END %]
 
   <div id="column-container" class="clearfix">
    <div id="tree-column">
 <script type="text/javascript">
  <!--
 $(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 %]
-      ]},
+  var initially_open = ['sections'
+[%- FOREACH section = SELF.requirement_spec.sections -%]
+        , "fb-[% section.id %]"
+ [%- FOREACH function_block = section.children -%]
+        , "fb-[% function_block.id -%]"
+ [%- END -%]
+[%- END -%]
+  ];
 
-    { data:     [% JSON.json(LxERP.t8("Sections")) %],
+  var tree_data = [{
+      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")) %],
+[% UNLESS SELF.requirement_spec.is_template %]
+  tree_data.unshift({
+      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_sorted(output_position=0) %]
+ [% P.requirement_spec_text_block_jstree_data(tb).json %][% IF !loop.last %],[% END %]
+[% END %]
+      ]});
+
+  tree_data.push({
+      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) %]
+[% FOREACH tb = SELF.requirement_spec.text_blocks_sorted(output_position=1) %]
  [% P.requirement_spec_text_block_jstree_data(tb).json %][% IF !loop.last %],[% END %]
 [% END %]
-      ]}];
+      ]});
+
+  initially_open = initially_open.concat(['tb-front', 'tb-back']);
+[% END %]
 
   $('#tree').jstree({
     core: {
       animation: 0,
-      initially_open: [ "tb-front", "tb-back", "sections"
-[%- FOREACH section = SELF.requirement_spec.sections -%]
-        , "fb-[% section.id %]"
- [%- FOREACH function_block = section.children -%]
-        , "fb-[% function_block.id -%]"
- [%- END -%]
-[%- END -%]
-    ]},
+      initially_open: initially_open,
+    },
     json_data: {
       data: tree_data
     },
     crrm: {
       move: {
-        check_move: requirement_spec_tree_check_move,
+        check_move: kivi.requirement_spec.tree_check_move,
         open_move:  true
       }
     },
@@ -94,72 +109,13 @@ $(function() {
     },
     plugins: [ "themes", "json_data", "ui", "crrm", "dnd" ]
   })
-  .bind("move_node.jstree", requirement_spec_tree_node_moved)
-  .bind("click.jstree",     requirement_spec_tree_node_clicked);
+  .bind("move_node.jstree", kivi.requirement_spec.tree_node_moved)
+  .bind("click.jstree",     kivi.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?") %]"))
-    standard_text_block_ajax_call(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:   "---------",
-      flag:   { name: "[% LxERP.t8('Toggle marker') %]",     icon: "flag",  callback: standard_text_block_ajax_call, disabled: disable_edit_text_block_commands },
-      sep2:   "---------",
-      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_item_ajax_call, disabled: disable_add_function_block_command },
-      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:                   "---------",
-      flag:               { name: "[% LxERP.t8('Toggle marker') %]", icon: "flag", callback: standard_item_ajax_call, disabled: disable_edit_item_commands },
-      sep3:               "---------",
-      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: {
-      add_function_block:     { name: "[% LxERP.t8('Add function block') %]",     icon: "add", callback: standard_item_ajax_call },
-      add_sub_function_block: { 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: ask_delete_item,         disabled: disable_edit_item_commands },
-      sep2:                   "---------",
-      flag:                   { name: "[% LxERP.t8('Toggle marker') %]", icon: "flag", callback: standard_item_ajax_call, disabled: disable_edit_item_commands },
-      sep3:                   "---------",
-      copy:                   { name: "[% LxERP.t8('Copy') %]",  icon: "copy",  disabled: disable_edit_item_commands },
-      paste:                  { name: "[% LxERP.t8('Paste') %]", icon: "paste", disabled: disable_edit_item_commands }
-    }
-  });
+  kivi.requirement_spec.create_context_menus([% SELF.requirement_spec.is_template ? 'true' : 'false' %]);
 });
 
   -->