1 [%- USE JSON -%][%- USE HTML %][%- USE L %][%- USE LxERP %][%- USE P -%]
3 [%- INCLUDE 'common/flash.html' %]
5 [%- INCLUDE 'requirement_spec/_header.html' %]
7 [%- L.hidden_tag('requirement_spec_id', SELF.requirement_spec.id, 'data-is-template'=(SELF.requirement_spec.is_template ? 1 : 0)) -%]
9 <div id="requirement_spec_tabs" class="tabwidget">
11 <li id="tab-header-function-block"><a href="#function-blocks-tab">[%- LxERP.t8("Content") %]</a></li>
12 <li id="tab-header-basic-settings"><a href="controller.pl?action=RequirementSpec/ajax_show_basic_settings&id=[% HTML.url(SELF.requirement_spec.id) %]">[%- LxERP.t8("Basic settings") %]</a></li>
13 <li id="tab-header-time-cost-estimate"><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>
14 [%- UNLESS SELF.requirement_spec.is_template %]
15 <li id="tab-header-versions"><a href="controller.pl?action=RequirementSpecVersion/list&requirement_spec_id=[% HTML.url(SELF.requirement_spec.id) %]">[%- LxERP.t8("Versions") %]</a></li>
16 <li id="tab-header-quotations-orders"><a href="[% SELF.url_for(controller='RequirementSpecOrder', action='list', requirement_spec_id=SELF.requirement_spec.id) %]">[%- LxERP.t8("Quotations and orders") %]</a></li>
20 <div id="function-blocks-tab" class="section-context-menu">
21 [%- UNLESS SELF.requirement_spec.is_template %]
22 <div id="requirement_spec_version">
23 [%- INCLUDE 'requirement_spec/_version.html' requirement_spec=SELF.requirement_spec -%]
27 <div id="column-container" class="clearfix">
28 <div id="tree-column">
32 <div id="content-column" class="clearfix">
33 [% L.hidden_tag('current_content_type', SELF.requirement_spec_item.id ? 'section' : '') %]
34 [% L.hidden_tag('current_content_id', SELF.requirement_spec_item.id) %]
36 <div id="column-content">
37 [%- IF SELF.requirement_spec_item -%]
38 [%- INCLUDE 'requirement_spec_item/_section.html' requirement_spec_item=SELF.requirement_spec_item -%]
40 [%- INCLUDE 'requirement_spec_item/_no_section.html' -%]
48 <script type="text/javascript">
52 { data: [% JSON.json(LxERP.t8("Text blocks front")) %],
53 metadata: { type: "text-blocks-front" },
54 attr: { id: "tb-front", class: "text-block-context-menu" },
56 [% FOREACH tb = SELF.requirement_spec.text_blocks_sorted(output_position=0) %]
57 [% P.requirement_spec_text_block_jstree_data(tb).json %][% IF !loop.last %],[% END %]
61 { data: [% JSON.json(LxERP.t8("Sections")) %],
62 metadata: { type: "sections" },
63 attr: { id: "sections", class: "section-context-menu" },
65 [% FOREACH section = SELF.requirement_spec.sections %]
66 [% P.requirement_spec_item_jstree_data(section).json %][% IF !loop.last %],[% END %]
70 { data: [% JSON.json(LxERP.t8("Text blocks back")) %],
71 metadata: { type: "text-blocks-back" },
72 attr: { id: "tb-back", class: "text-block-context-menu" },
74 [% FOREACH tb = SELF.requirement_spec.text_blocks_sorted(output_position=1) %]
75 [% P.requirement_spec_text_block_jstree_data(tb).json %][% IF !loop.last %],[% END %]
80 var initially_open = ['tb-front', 'tb-back', 'sections'
81 [%- FOREACH section = SELF.requirement_spec.sections -%]
82 , "fb-[% section.id %]"
83 [%- FOREACH function_block = section.children -%]
84 , "fb-[% function_block.id -%]"
90 .bind('loaded.jstree', function() {
91 kivi.reinit_widgets();
92 [% IF SELF.requirement_spec_item %]
93 $.jstree._reference("#tree").select_node('#fb-[% SELF.requirement_spec_item.id %]', true);
99 initially_open: initially_open,
106 check_move: kivi.requirement_spec.tree_check_move,
111 theme: "requirement-spec"
113 plugins: [ "themes", "json_data", "ui", "crrm", "dnd" ]
115 .bind("move_node.jstree", kivi.requirement_spec.tree_node_moved)
116 .bind("click.jstree", kivi.requirement_spec.tree_node_clicked);
118 kivi.requirement_spec.create_context_menus([% SELF.requirement_spec.is_template ? 'true' : 'false' %]);
119 $('#requirement_spec_tabs').on("tabsbeforeactivate", kivi.requirement_spec.tabs_before_activate);