7 [% SET sections = SELF.requirement_spec.sections_sorted || [] %]
9 [% INCLUDE 'common/flash.html' %]
11 [% INCLUDE 'requirement_spec/_header.html' %]
13 [% L.hidden_tag('requirement_spec_id', SELF.requirement_spec.id, 'data-is-template'=(SELF.requirement_spec.is_template ? 1 : 0)) %]
15 <div id="requirement_spec_tabs" class="tabwidget">
18 <li id="tab-header-function-block"><a href="#function-blocks-tab">[% LxERP.t8("Content") %]</a></li>
19 <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>
20 <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 price estimate") %]</a></li>
21 <li id="tab-header-additional-parts"><a href="controller.pl?action=RequirementSpecPart/show&requirement_spec_id=[% HTML.url(SELF.requirement_spec.id) %]">[% LxERP.t8("Additional articles") %]</a></li>
22 [% UNLESS SELF.requirement_spec.is_template %]
23 <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>
24 <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>
28 <div id="function-blocks-tab" class="section-context-menu">
29 [% UNLESS SELF.requirement_spec.is_template %]
30 <div id="requirement_spec_version">
31 [% INCLUDE 'requirement_spec/_version.html' requirement_spec=SELF.requirement_spec %]
35 <div id="column-container" class="clearfix">
36 <div id="tree-column">
40 <div id="content-column" class="clearfix">
41 [% L.hidden_tag('current_content_type', SELF.requirement_spec_item.id ? 'section' : '') %]
42 [% L.hidden_tag('current_content_id', SELF.requirement_spec_item.id) %]
44 <div id="column-content">
45 [% IF SELF.requirement_spec_item %]
46 [% INCLUDE 'requirement_spec_item/_section.html' requirement_spec_item=SELF.requirement_spec_item %]
48 [% INCLUDE 'requirement_spec_item/_no_section.html' %]
52 </div><!-- /#column-container -->
57 </div><!-- /#requirement_spec_tabs -->
59 <script type="text/javascript"><!--
62 { data: [% JSON.json(LxERP.t8("Text blocks front")) %],
63 metadata: { type: "text-blocks-front" },
64 attr: { id: "tb-front", class: "text-block-context-menu" },
66 [% FOREACH tb = SELF.requirement_spec.text_blocks_sorted(output_position=0) %]
67 [% tb.presenter.jstree_data.json %][% IF !loop.last %],[% END %]
71 { data: [% JSON.json(LxERP.t8("Sections")) %],
72 metadata: { type: "sections" },
73 attr: { id: "sections", class: "section-context-menu" },
75 [% FOREACH section = sections %]
76 [% section.presenter.jstree_data.json %][% IF !loop.last %],[% END %]
80 { data: [% JSON.json(LxERP.t8("Text blocks back")) %],
81 metadata: { type: "text-blocks-back" },
82 attr: { id: "tb-back", class: "text-block-context-menu" },
84 [% FOREACH tb = SELF.requirement_spec.text_blocks_sorted(output_position=1) %]
85 [% tb.presenter.jstree_data.json %][% IF !loop.last %],[% END %]
90 var initially_open = ['tb-front', 'tb-back', 'sections'
91 [% FOREACH section = sections %]
92 , "fb-[% section.id %]"
93 [% FOREACH function_block = section.children %]
94 , "fb-[% function_block.id %]"
99 kivi.requirement_spec.initialize_requirement_spec({
100 initially_open: initially_open
101 , tree_data: tree_data
102 , is_template: [% SELF.requirement_spec.is_template ? 'true' : 'false' %]
103 , html_template_exists: [% SELF.html_template ? 'true' : 'false' %]
104 [% IF SELF.requirement_spec_item %]
105 , initially_selected_node: '#fb-[% SELF.requirement_spec_item.id %]'
107 , time_based_units: {
108 [% FOREACH unit = SELF.time_based_units %]
109 [% UNLESS loop.first %], [% END %] "[% JavaScript.escape(unit.name) %]": true