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) -%]
9 <div class="tabwidget">
11 <li><a href="#function-blocks-tab">[%- LxERP.t8("Content") %]</a></li>
12 <li><a href="controller.pl?action=RequirementSpec/ajax_edit&id=[% HTML.url(SELF.requirement_spec.id) %]">[%- LxERP.t8("Basic settings") %]</a></li>
13 <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>
16 <div id="function-blocks-tab">
17 <div id="requirement_spec_version">
18 [%- INCLUDE 'requirement_spec/_version.html' requirement_spec=SELF.requirement_spec -%]
21 <div id="column-container" class="clearfix">
22 <div id="tree-column">
26 <div id="content-column" class="clearfix">
27 [% L.hidden_tag('current_content_type', SELF.requirement_spec_item.id ? 'section' : '') %]
28 [% L.hidden_tag('current_content_id', SELF.requirement_spec_item.id) %]
30 <div id="column-content">
31 [%- IF SELF.requirement_spec_item -%]
32 [%- INCLUDE 'requirement_spec_item/_section.html' requirement_spec_item=SELF.requirement_spec_item -%]
34 [%- INCLUDE 'requirement_spec_item/_no_section.html' -%]
42 <script type="text/javascript">
46 { data: [% JSON.json(LxERP.t8("Text blocks front")) %],
47 metadata: { type: "text-blocks-front" },
48 attr: { id: "tb-front", class: "text-block-context-menu" },
50 [% FOREACH tb = SELF.requirement_spec.text_blocks_for_position(0) %]
51 [% P.requirement_spec_text_block_jstree_data(tb).json %][% IF !loop.last %],[% END %]
55 { data: [% JSON.json(LxERP.t8("Sections")) %],
56 metadata: { type: "sections" },
57 attr: { id: "sections", class: "section-context-menu" },
59 [% FOREACH section = SELF.requirement_spec.sections %]
60 [% P.requirement_spec_item_jstree_data(section).json %][% IF !loop.last %],[% END %]
64 { data: [% JSON.json(LxERP.t8("Text blocks back")) %],
65 metadata: { type: "text-blocks-back" },
66 attr: { id: "tb-back", class: "text-block-context-menu" },
68 [% FOREACH tb = SELF.requirement_spec.text_blocks_for_position(1) %]
69 [% P.requirement_spec_text_block_jstree_data(tb).json %][% IF !loop.last %],[% END %]
76 initially_open: [ "tb-front", "tb-back", "sections"
77 [%- FOREACH section = SELF.requirement_spec.sections -%]
78 , "fb-[% section.id %]"
79 [%- FOREACH function_block = section.children -%]
80 , "fb-[% function_block.id -%]"
89 check_move: requirement_spec_tree_check_move,
94 theme: "requirement-spec"
96 plugins: [ "themes", "json_data", "ui", "crrm", "dnd" ]
98 .bind("move_node.jstree", requirement_spec_tree_node_moved)
99 .bind("click.jstree", requirement_spec_tree_node_clicked);
100 [% IF SELF.requirement_spec_item %]
101 $.jstree._reference("#tree").select_node('#fb-[% SELF.requirement_spec_item.id %]', true);
104 create_requirement_spec_context_menus();