Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 13011246

Von Hans Peter Schlaepfer vor fast 5 Jahren hinzugefügt

  • ID 13011246d8b5074a91b727602769dce8dfb4c935
  • Vorgänger 5d0056d6
  • Nachfolger 27e7d20b

Neues kivitendo Design restliche Aenderungen in templates/webpages/requirement_spec_*

Dateien requirement_spec_item/* requirement_spec_order/* requirement_spec_part/*
requirement_spec_text_block/* requirement_spec_version/*

Unterschiede anzeigen:

templates/webpages/requirement_spec_item/_function_block.html
1
[%- USE HTML -%][%- USE LxERP -%][%- USE P -%][%- USE L -%]
1
[%- USE HTML -%]
2
[%- USE LxERP -%]
3
[%- USE P -%]
4
[%- USE L -%]
2 5
<div id="function-block-[% requirement_spec_item.id %]" class="function-block[%- IF requirement_spec_item.is_flagged -%] flagged[%- END -%]">
3 6

  
4 7
 <div id="function-block-content-[%- requirement_spec_item.id -%]" class="function-block-content function-block-context-menu">
5 8

  
6 9
  [% INCLUDE 'requirement_spec_item/_function_block_content_top.html' id_prefix='' %]
10
  [% INCLUDE 'requirement_spec_item/_function_block_content_bottom.html' id_prefix='' %]
11

  
12

  
13
<div class="sub-function-block-container" id="sub-function-block-container-[%- requirement_spec_item.id -%]"[%- IF !requirement_spec_item.children.size -%] style="display: none"[%- END -%]>
14
 <div class="sub-function-block-header" id="sub-function-block_header_[%- requirement_spec_item.id -%]">
15
  [%- LxERP.t8("Sub function blocks") -%]
16
 </div>
17
 [%- FOREACH sub_function_block = requirement_spec_item.children_sorted -%]
18
  [%- INCLUDE 'requirement_spec_item/_sub_function_block.html' requirement_spec_item=sub_function_block -%]
19
 [%- END -%]
20
</div>
21

  
22

  
23

  
24

  
25

  
26

  
7 27

  
8
  <div class="sub-function-block-container" id="sub-function-block-container-[%- requirement_spec_item.id -%]"[%- IF !requirement_spec_item.children.size -%] style="display: none"[%- END -%]>
9
   <div class="sub-function-block-header" id="sub-function-block_header_[%- requirement_spec_item.id -%]">
10
    [%- LxERP.t8("Sub function blocks") -%]
11
   </div>
12
   [%- FOREACH sub_function_block = requirement_spec_item.children_sorted -%]
13
    [%- INCLUDE 'requirement_spec_item/_sub_function_block.html' requirement_spec_item=sub_function_block -%]
14
   [%- END -%]
15 28
  </div>
16 29

  
17
  [% INCLUDE 'requirement_spec_item/_function_block_content_bottom.html' id_prefix='' %]
30

  
31

  
32

  
33

  
34

  
35

  
36

  
18 37
 </div>
19 38
</div>
templates/webpages/requirement_spec_item/_function_block_content_bottom.html
1
[%- USE LxERP -%][%- USE P -%]<div id="[% id_prefix %]function-block-content-bottom-[% requirement_spec_item.id %]" class="smaller" style="text-align:right">
2
 [%- IF requirement_spec_item.dependencies.size -%]
3
 <span class="gray">
4
  [%- LxERP.t8("Dependencies") -%]: [%- requirement_spec_item.presenter.requirement_spec_item_dependency_list -%]
5
 </span><br>
6
 [%- END -%]
7
 <span class="gray">
8
  [%- LxERP.t8("Complexity") -%]: [%- requirement_spec_item.complexity.description -%]
9
  &nbsp; | &nbsp;
10
  [%- LxERP.t8("Risk") -%]: [%- requirement_spec_item.risk.description -%]
11
  &nbsp; | &nbsp;
12
  [%- LxERP.t8("Time estimate") -%]: [% P.format_man_days(requirement_spec_item.time_estimation, skip_zero=1) %]
13
 </span>
1
[% USE LxERP %]
2
[% USE P %]
3
<!-- PENDENT: ggf. DIV-Tabelle anwenden -->
4
<div id="[% id_prefix %]function-block-content-bottom-[% requirement_spec_item.id %]" class="function-block-properties list">
14 5

  
6
[% IF requirement_spec_item.dependencies.size %]
7
<div>
8
    <span class="label">[% LxERP.t8("Dependencies") %]:</span>
9
    <span class="value">[% requirement_spec_item.presenter.requirement_spec_item_dependency_list %]</span>
15 10
</div>
11
[% END %]
12

  
13
<div>
14
  <span class="label">[% LxERP.t8("Complexity") %]:</span>
15
  <span class="value">[% requirement_spec_item.complexity.description %]</span>
16
</div>
17

  
18
<div>
19
  <span class="label">[% LxERP.t8("Risk") %]:</span>
20
  <span class="value">[% requirement_spec_item.risk.description %]</span>
21
</div>
22

  
23
<div>
24
  <span class="label">[% LxERP.t8("Time estimate") %]:</span>
25
  <span class="value">[% P.format_man_days(requirement_spec_item.time_estimation, skip_zero=1) %]</span>
26
</div>
27

  
28
</div><!-- /.function-block-properties -->
templates/webpages/requirement_spec_item/_function_block_content_top.html
1
[%- USE HTML -%][%- USE L -%]<div id="[% id_prefix %]function-block-content-top-[% requirement_spec_item.id %]">
2
 <div class="function-block-number">[%- HTML.escape(requirement_spec_item.fb_number) -%]</div>
3
 [%- requirement_spec_item.description_as_restricted_html -%]
1
[% USE HTML %]
2
[% USE L %]
3
<div id="[% id_prefix %]function-block-content-top-[% requirement_spec_item.id %]" class="function-block-header">
4
 <div class="function-block-number">[% HTML.escape(requirement_spec_item.fb_number) %]</div>
5
 <div class="function-block-desc">[% requirement_spec_item.description_as_restricted_html %]</div>
4 6
</div>
templates/webpages/requirement_spec_item/_function_block_form.html
1
[%- USE LxERP -%][%- USE L -%][%- USE HTML -%][%- USE JavaScript -%][%- USE P -%][% SET style="width: 500px" %]
1
[% USE LxERP %]
2
[% USE L %]
3
[% USE HTML %]
4
[% USE JavaScript %]
5
[% USE P %][% SET style="width: 500px" %]
6

  
2 7
[% DEFAULT id_base = 'edit_function_block_' _ SELF.item.id %]
3
[%- SET a_options = '' %]
4
[%- IF SELF.item.id %]
5
 [%- SET a_options = "to_show: '#" _ SELF.item.item_type _ "-content-top-" _ SELF.item.id _ "'" %]
6
[%- END %]
7
[%- IF SELF.item.item_type == 'sub-function-block' %]
8
 [%- SET a_options = a_options ? a_options _ ', ' : a_options %]
9
 [%- SET a_options = a_options _ "to_hide_if_empty: '#sub-function-block-container-" _ SELF.item.parent_id _ "'" %]
10
[%- END %]
8
[% SET a_options = '' %]
9
[% IF SELF.item.id %]
10
  [% SET a_options = "to_show: '#" _ SELF.item.item_type _ "-content-top-" _ SELF.item.id _ "'" %]
11
[% END %]
12
[% IF SELF.item.item_type == 'sub-function-block' %]
13
  [% SET a_options = a_options ? a_options _ ', ' : a_options %]
14
  [% SET a_options = a_options _ "to_hide_if_empty: '#sub-function-block-container-" _ SELF.item.parent_id _ "'" %]
15
[% END %]
11 16
<form method="post" id="[% id_base %]_form" class="function-block-form">
12 17
 [% L.hidden_tag('form_prefix',                    id_base,      id=id_base _ '_form_prefix') %]
13 18
 [% L.hidden_tag('id',                             SELF.item.id, id=id_base _ '_id') %]
......
18 23
  [% L.hidden_tag(id_base _ '.insert_after',       insert_after) %]
19 24
 [% END %]
20 25

  
21
 <div>
22
  <div style="width: 58%; float: left">
23
   <div>
24
[%- IF SELF.item.id -%]
25
    [% LxERP.t8("Description of #1", SELF.item.fb_number) %]
26
[%- ELSIF SELF.item.item_type == 'function-block' -%]
27
    [%- LxERP.t8("Add function block") %]
28
[%- ELSE -%]
29
    [%- LxERP.t8("Add sub function block") %]
30
[%- END -%]:<br>
31
    [% L.textarea_tag(id_base _ '.description_as_restricted_html', SELF.item.description_as_restricted_html, id=id_base _ '_description', rows=8, style="width: 100%", class='texteditor') %]
32
   </div>
26
<div class="rs-form">
27
<table class="tbl-horizontal" class="wi-verywide">
28
  <colgroup> <col class="wi-small"><col class="wi-verywide"> </colgroup> 
29
  <caption>
30
    [% IF SELF.item.id %]
31
      [% LxERP.t8("Description of #1", SELF.item.fb_number) %]
32
    [% ELSIF SELF.item.item_type == 'function-block' %]
33
        [% LxERP.t8("Add function block") %]
34
    [% ELSE %]
35
        [% LxERP.t8("Add sub function block") %]
36
    [% END %]
37
  </caption>
38
  <tbody>
39
    <tr>
40
      <th class="wi-small-verywide" colspan="2">[% L.textarea_tag(id_base _ '.description_as_restricted_html', SELF.item.description_as_restricted_html, id=id_base _ '_description', rows=8, cols=20, class='wi-wide', class='texteditor') %]</th>
41
    </tr>
42
    <tr>
43
      <th>[% LxERP.t8("Complexity") %]</th>
44
      <td>[% L.select_tag(id_base _ '.complexity_id', SELF.complexities, title_key='description', default=SELF.item.complexity_id, class='wi-wide') %]</td>
45
    </tr>
46
    <tr>
47
      <th>[% LxERP.t8("Risk") %]</th>
48
      <td>[% L.select_tag(id_base _ '.risk_id', SELF.risks, title_key='description', default=SELF.item.risk_id, class='wi-wide') %]</td>
49
    </tr>
50
    [% IF !SELF.item.children.size %]
51
      <tr>
52
        <th>[% LxERP.t8("Time estimate") %]</th>
53
        <td>[% P.man_days_tag(id_base _ '.time_estimation', SELF.item, class='wi-verysmall') %]</td>
54
      </tr>
55
    [% END %]
56
    <tr>
57
      <th>[% LxERP.t8("Dependencies") %]</th>
58
      <td>[% L.select_tag(id_base _ '.dependencies[]', DEPENDENCIES, default=SELECTED_DEPENDENCIES, with_optgroups=1, multiple=1, size=8 class='wi-wide') %]</td>
59
    </tr>
60
  </tbody>
61
</table>
33 62

  
34
   <div style="margin-top: 10px">
63
<div class="buttons">
35 64
    [% L.ajax_submit_tag('controller.pl?action=RequirementSpecItem/ajax_' _ (SELF.item.id ? 'update' : 'create'), '#' _ id_base _ '_form', LxERP.t8('Save'), id=id_base _ '_submit') %]
36
    <a href="#" onclick="kivi.requirement_spec.cancel_edit_item_form('[% id_base %]', { [% a_options %] })">[%- LxERP.t8("Cancel") %]</a>
37
   </div>
38
  </div>
39

  
40
  <div style="width: 19%; float: left; margin-left: 20px">
41
   [%- LxERP.t8("Complexity") %]:<br>
42
   [%- L.select_tag(id_base _ '.complexity_id', SELF.complexities, title_key='description', default=SELF.item.complexity_id, style="width: 100%") %]<br>
43

  
44
   [%- LxERP.t8("Risk") %]:<br>
45
   [%- L.select_tag(id_base _ '.risk_id', SELF.risks, title_key='description', default=SELF.item.risk_id, style="width: 100%") %]<br>
46

  
47
[%- IF !SELF.item.children.size %]
48
   [%- LxERP.t8("Time estimate") %]:<br>
49
   [%- P.man_days_tag(id_base _ '.time_estimation', SELF.item) %]
50
[%- END %]
51
  </div>
52

  
53
  <div style="width: 19%; float: left; margin-left: 10px">
54
   [%- LxERP.t8("Dependencies") %]:<br>
55
   [%- L.select_tag(id_base _ '.dependencies[]', DEPENDENCIES, default=SELECTED_DEPENDENCIES, with_optgroups=1, multiple=1, size=8, style="width: 100%") %]
56
  </div>
57

  
58
  <div style="clear: both"></div>
59
 </div>
65
    <a href="#" onclick="kivi.requirement_spec.cancel_edit_item_form('[% id_base %]', { [% a_options %] })" class="button neutral">[% LxERP.t8("Cancel") %]</a>
66
</div>
67
</div><!-- /.wrapper.rs-fb-form -->
60 68

  
61
 <p>
62
 </p>
63 69
</form>
templates/webpages/requirement_spec_item/_no_section.html
1 1
[%- USE LxERP -%]
2 2
<div class="section-context-menu">
3
 <h1>[%- LxERP.t8("No sections created yet") %]</h1>
3
 <h2>[%- LxERP.t8("No sections created yet") %]</h2>
4 4

  
5 5
 <p>
6
  [%- LxERP.t8("No sections have been created so far.") %]
6
  [%- LxERP.t8("No sections have been created so far.") %]<br>
7 7
  [% LxERP.t8("Create one from the context menu by right-clicking on this text.") %]
8 8
 </p>
9 9
</div>
templates/webpages/requirement_spec_item/_section.html
1 1
[%- USE HTML -%][%- USE LxERP -%][%- USE L -%]
2 2
<div id="section-[% requirement_spec_item.id %]" class="section[%- IF requirement_spec_item.is_flagged -%]flagged[%- END -%]">
3
 <div class="section-context-menu" id="section-header-[% requirement_spec_item.id %]">
3
 <div class="section-header section-context-menu" id="section-header-[% requirement_spec_item.id %]">
4 4
  [%- INCLUDE 'requirement_spec_item/_section_header.html' %]
5 5
 </div>
6 6

  
templates/webpages/requirement_spec_item/_section_form.html
2 2
[%- DEFAULT id_base="edit_section" %]
3 3
[%- SET style="width: 500px" %]
4 4
<form id="[% id_base %]_form">
5
 [%- IF SELF.item.id %]
6
  [%- SET hidden = '#section-header-' _ SELF.item.id %]
7
  <h1>[%- LxERP.t8("Edit section #1", SELF.item.fb_number) %]</h1>
8

  
9
 [%- ELSE %]
10
  [%- SET hidden = '#column-content > *' %]
11
  <h1>[%- LxERP.t8("Add section") %]</h1>
12 5

  
13
 [%- END %]
14 6

  
15 7
 [% L.hidden_tag('form_prefix',                    id_base       id=id_base _ '_form_prefix') %]
16 8
 [% L.hidden_tag('id',                             SELF.item.id, id=id_base _ '_id') %]
......
20 12
  [% L.hidden_tag(id_base _ '.insert_after',       insert_after) %]
21 13
 [% END %]
22 14

  
23
 <p>
24
  [%- LxERP.t8("Title") %]:<br>
25
  [% L.input_tag(id_base _ '.title', SELF.item.title, style=style) %]
26
 </p>
15
<table class="tbl-horizontal">
16
   [%- IF SELF.item.id %]
17
  [%- SET hidden = '#section-header-' _ SELF.item.id %]
18
  <caption>[%- LxERP.t8("Edit section #1", SELF.item.fb_number) %]</caption>
19
 [%- ELSE %]
20
  [%- SET hidden = '#column-content > *' %]
21
  <caption>[%- LxERP.t8("Add section") %]</caption>
22
 [%- END %]
23
  <tbody>
24
    <tr>
25
      <th>[%- LxERP.t8("Title") %]:</th>
26
      <td>[% L.input_tag(id_base _ '.title', SELF.item.title, style=style) %]</td>
27
    </tr>
27 28

  
28 29
 [%- IF SELF.predefined_texts.size %]
29
  <p>
30
   [%- LxERP.t8("Pre-defined Texts") %]:<br>
31
   [%- L.select_tag(id_base _ '_predefined_text_block', SELF.predefined_texts, title_key='description', style=style) %]
32
   <a href="#" onclick="insert_selected_predefined_text()">[%- LxERP.t8("Insert") %]</a>
33
  </p>
30
    <tr>
31
      <th>[%- LxERP.t8("Pre-defined Texts") %]:</th>
32
      <td>[%- L.select_tag(id_base _ '_predefined_text_block', SELF.predefined_texts, title_key='description', style=style) %] <a href="#" onclick='insert_selected_predefined_text()'>[%- LxERP.t8("Insert") %]</a>
33
      </td>
34
    </tr>
34 35
 [%- END %]
35 36

  
36
 <table border="0">
37
  <tr valign="top">
37

  
38
  <tr>
39
   <th>[%- LxERP.t8("Description") %]:</th>
38 40
   <td>
39
    [%- LxERP.t8("Description") %]:<br>
40 41
    [% L.textarea_tag(id_base _ '.description_as_restricted_html', SELF.item.description_as_restricted_html, id=id_base _ '_description', rows=8, cols=80, style=style, class='texteditor') %]<br>
41
    [% L.ajax_submit_tag('controller.pl?action=RequirementSpecItem/ajax_' _ (SELF.item.id ? 'update' : 'create'), '#' _ id_base _ '_form', LxERP.t8('Save')) %]
42
    <a href="#" onclick="kivi.requirement_spec.cancel_edit_item_form('[% id_base %]', { to_show: '[% hidden %]' })">[%- LxERP.t8("Cancel") %]</a>
43 42
   </td>
44

  
45
   <td>
46
   [% LxERP.t8("Price Factor") %]:<br>
47
   [% L.input_tag(id_base _ ".sellprice_factor_as_number", SELF.item.sellprice_factor_as_number, size="6") %]<br>
43
    </tr>
44
    <tr>
45
   <td>[% LxERP.t8("Price Factor") %]:</td>
46
   <td>[% L.input_tag(id_base _ ".sellprice_factor_as_number", SELF.item.sellprice_factor_as_number, size="6") %]
48 47
   </td>
49 48
  </tr>
49
  <tr>
50
  <td>&nbsp;</td>
51
  <td>[% L.ajax_submit_tag('controller.pl?action=RequirementSpecItem/ajax_' _ (SELF.item.id ? 'update' : 'create'), '#' _ id_base _ '_form', LxERP.t8('Save')) %]
52
    <a href="#" onclick='kivi.requirement_spec.cancel_edit_item_form("[% id_base %]", { to_show: "[% hidden %]" })' class="button">[%- LxERP.t8("Cancel") %]</a></td>
53
  </tr>
54

  
55

  
56

  
57
  </tbody>
50 58
 </table>
51 59

  
52 60
[%- IF SELF.predefined_texts.size %]
templates/webpages/requirement_spec_item/_section_header.html
1 1
[%- USE HTML -%][%- USE L -%][%- USE LxERP -%]
2
<h1>
3
 [%- HTML.escape(requirement_spec_item.fb_number) %]:
2
<h3>
3
 <span class="label">[%- HTML.escape(requirement_spec_item.fb_number) %]:</span>
4 4
 [% IF requirement_spec_item.title %]
5 5
  [% HTML.escape(requirement_spec_item.title) %]
6 6
 [% ELSE %]
......
8 8
   [%- LxERP.t8("No text has been entered yet.") %]
9 9
  </div>
10 10
 [% END %]
11
</h1>
11
</h3>
12 12

  
13 13
<div class="section-description" id="section-description">
14
 <div class="section-description-heading">[%- LxERP.t8("Preamble") %]</div>
15
 [% IF requirement_spec_item.description %]
16
  [%- requirement_spec_item.description_as_restricted_html -%]
17
 [%- ELSE %]
18
  <span class="dimmed-text">[%- LxERP.t8("No text has been entered yet.") %]</span>
19
 [%- END %]
20
</div>
14
  <div>
15
  [% IF requirement_spec_item.description %]
16
    <span class="label section-description-heading">[%- LxERP.t8("Preamble") %]:</span><br>
17
    [%- requirement_spec_item.description_as_restricted_html -%]
18
  [%- ELSE %]
19
    <span class="dimmed-text">[%- LxERP.t8("No text has been entered yet.") %]</span>
20
  [%- END %]
21
  </div>
22

  
23
  [% IF requirement_spec_item.sellprice_factor %]
24
  <div>
25
    <span class="label">[%- LxERP.t8("Price Factor") -%]:</span> [%- LxERP.format_amount(requirement_spec_item.sellprice_factor, -2) -%]
26
  </div>
27
  [% END %]
21 28

  
22
<div class="smaller gray" style="text-align:right">
23
 [%- LxERP.t8("Price Factor") -%]: [%- LxERP.format_amount(requirement_spec_item.sellprice_factor, -2) -%]
24 29
</div>
templates/webpages/requirement_spec_order/_assignment_form.html
2 2
[% SET style="width: 400px" %]
3 3

  
4 4
<form id="quotations_and_orders_form">
5
 <table>
5
 <table class="tbl-horizontal">
6
  <tbody>
6 7
  [% IF for_new %]
7 8
  <tr>
8
   <td>[% LxERP.t8("Record type to create") %]:</td>
9
   <th>[% LxERP.t8("Record type to create") %]:</th>
9 10
   <td>[% L.select_tag('quotation', [ [ 1, LxERP.t8('Sales quotation') ], [ 0, LxERP.t8('Sales Order') ] ], style=style, no_id=1) %]</td>
10 11
  </tr>
11 12

  
12 13
  <tr>
13
   <td>[% LxERP.t8("Customer") %]:</td>
14
   <th>[% LxERP.t8("Customer") %]:</th>
14 15
   <td>[% L.select_tag('customer_id', SELF.all_customers, default=SELF.requirement_spec.customer_id, title_key='name', style=style, no_id=1) %]</td>
15 16
  </tr>
16 17
  [% END %]
17 18

  
18 19
  <tr>
19
   <td>[% LxERP.t8("Assign the following article to all sections") %]:</td>
20
   <th>[% LxERP.t8("Assign the following article to all sections") %]:</th>
20 21
   <td data-unit="[% HTML.escape(SELF.section_order_part.unit) %]">
21 22
    [% P.part.picker('quotations_and_orders_dummy', SELF.section_order_part.id, id='quotations_and_orders_order_id', style=style) %]
22 23
    [% L.button_tag('kivi.requirement_spec.assign_order_part_id_to_all()', LxERP.t8('Assign article')) %]
23 24
   </td>
24 25
  </tr>
26
</tbody>
25 27
 </table>
26 28

  
27
 <table style="width: 100%">
29
 <table class="tbl-list">
28 30
  <thead>
29
   <tr class="listheading">
30
    <th>[% LxERP.t8("Number") %]</th>
31
   <tr>
32
    <th class="right">[% LxERP.t8("Number") %]</th>
31 33
    <th>[% LxERP.t8("Title") %]</th>
32 34
    <th>[% LxERP.t8("Description") %]</th>
33 35
    <th>[% LxERP.t8("Article") %]</th>
......
38 40

  
39 41
  <tbody>
40 42
   [% FOREACH section = SELF.requirement_spec.sections_sorted %]
41
   <tr class="listrow">
43
   <tr>
42 44
    [% L.hidden_tag("sections[+].id", section.id, no_id=1) %]
43
    <td>[% HTML.escape(section.fb_number) %]</td>
45
    <td class="numeric">[% HTML.escape(section.fb_number) %]</td>
44 46
    <td>[% HTML.escape(section.title) %]</td>
45 47
    <td>[% HTML.escape(P.truncate(section.description_as_stripped_html)) %]</td>
46 48
    <td>[% P.part.picker('sections[].order_part_id', section.order_part_id, id='quotations_and_orders_sections_order_pard_id_' _ loop.count, style=style) %]</td>
templates/webpages/requirement_spec_order/list.html
8 8
  [% LxERP.t8("No sections have been created yet.") %]
9 9
 </div>
10 10
 [% ELSE %]
11
 <table id="quotations_and_orders_sections" style="width: 100%">
11
 <table id="quotations_and_orders_sections" class="tbl-list">
12 12
  <thead>
13
   <tr class="listheading">
13
   <tr>
14 14
    <th>[% LxERP.t8("Number") %]</th>
15 15
    <th>[% LxERP.t8("Title") %]</th>
16 16
    <th>[% LxERP.t8("Description") %]</th>
......
22 22

  
23 23
  <tbody>
24 24
   [% FOREACH section = sections %]
25
    <tr class="listrow">
25
    <tr>
26 26
     <td>[% HTML.escape(section.fb_number) %]</td>
27 27
     <td>[% HTML.escape(section.title) %]</td>
28 28
     <td>[% HTML.escape(P.truncate(section.description_as_stripped_html)) %]</td>
......
54 54
  <div>[% LxERP.t8("No quotations or orders have been created yet.") %]</div>
55 55
 [% ELSE %]
56 56

  
57
  <table style="width:100%">
57
  <table class="tbl-list">
58 58
   <thead>
59
    <tr class="listheading">
59
    <tr>
60 60
     <th>[% LxERP.t8("Type") %]</th>
61 61
     <th>[% LxERP.t8("Requirement Spec Version") %]</th>
62
     <th>[% LxERP.t8("Record number") %]</th>
62
     <th class="right">[% LxERP.t8("Record number") %]</th>
63 63
     <th>[% LxERP.t8("Transaction description") %]</th>
64 64
     <th>[% LxERP.t8("Quotation/Order Date") %]</th>
65 65
     <th>[% LxERP.t8("Creation Date") %]</th>
......
68 68

  
69 69
   <tbody>
70 70
    [% FOREACH rs_order = orders %]
71
    <tr class="listrow quotations-and-orders-order-context-menu">
71
    <tr class="quotations-and-orders-order-context-menu">
72 72
     [% L.hidden_tag('order_id', rs_order.id, no_id=1) %]
73 73
     <td>[% rs_order.order.type == 'sales_quotation' ? LxERP.t8('Sales quotation') : LxERP.t8('Sales Order') %]</td>
74 74
     <td>
......
78 78
       [% LxERP.t8("working copy") %]
79 79
      [% END %]
80 80
     </td>
81
     <td>
81
     <td class="numeric">
82 82
      [%- IF INSTANCE_CONF.get_feature_experimental_order -%]
83 83
        <a href="controller.pl?action=Order/edit&id=[% HTML.url(rs_order.order_id) %]&type=[% HTML.url(rs_order.order.type) %]">
84 84
      [%- ELSE -%]
templates/webpages/requirement_spec_order/update.html
17 17

  
18 18
  [% L.hidden_tag("rs_order_id", SELF.rs_order.id, no_id=1) %]
19 19

  
20
  <table style="width: 100%">
20
  <table class="tbl-list">
21 21
   <thead>
22
    <tr class="listheading">
22
    <tr>
23 23
     <th>[% LxERP.t8("Part Number") %]</th>
24 24
     <th>[% LxERP.t8("Description") %]</th>
25 25
     <th align="right">[% LxERP.t8("Qty") %]</th>
......
30 30

  
31 31
   <tbody>
32 32
    [% FOREACH item = orderitems %]
33
    <tr class="listrow">
33
    <tr>
34 34
     [% L.hidden_tag("orderitems[+].id", item.item.id, no_id=1) %]
35 35
     <td>[% HTML.escape(item.item.part.partnumber) %]</td>
36 36
     <td>[% HTML.escape(item.item.description_as_stripped_html) %]</td>
templates/webpages/requirement_spec_part/_edit.html
16 16
   [% LxERP.t8("No articles have been added yet.") %]
17 17
  </div>
18 18

  
19
  <table id="edit_additional_parts_list"[% IF !parts.size %] style="display: none;"[% END %]>
19
  <table id="edit_additional_parts_list" class="tbl-list"[% IF !parts.size %] style="display: none;"[% END %]>
20 20
   <thead>
21
    <tr class="listheading">
21
    <tr>
22 22
     <th></th>
23 23
     <th>[%- LxERP.t8("Part Number") %]</th>
24 24
     <th>[%- LxERP.t8("Description") %]</th>
templates/webpages/requirement_spec_part/_part.html
1 1
[%- USE HTML -%][%- USE L -%][%- USE LxERP -%]
2
<tr class="listrow edit-additional-parts-row-context-menu">
3
 <td align="center">
2
<tr class="edit-additional-parts-row-context-menu">
3
 <td class="center">
4 4
  [% L.hidden_tag("additional_parts[+].part_id", part.part.id) %]
5 5
  [% L.hidden_tag("additional_parts[].id", part.id) %]
6 6
  [% L.img_tag(src="image/updown.png", alt=LxERP.t8("reorder item"), class="dragdrop") %]
templates/webpages/requirement_spec_part/show.html
9 9
  [% LxERP.t8("No articles have been added yet.") %]
10 10
 </div>
11 11

  
12
 <table id="additional_parts_list"[% IF !parts.size %] style="display: none;"[% END %]>
12
 <table id="additional_parts_list"[% IF !parts.size %] style="display:none;"[% END %] class="tbl-list">
13 13
  <thead>
14
   <tr class="listheading">
14
   <tr>
15 15
    <th>[%- LxERP.t8("Part Number") %]</th>
16 16
    <th>[%- LxERP.t8("Description") %]</th>
17 17
    <th>[%- LxERP.t8("Qty") %]</th>
......
20 20

  
21 21
  <tbody>
22 22
   [% FOREACH part = parts %]
23
    <tr class="listrow">
23
    <tr>
24 24
     <td>[% HTML.escape(part.part.partnumber) %]</td>
25 25
     <td>[% HTML.escape(part.description) %]</td>
26
     <td valign="right">[% HTML.escape(part.qty_as_number) %] [% HTML.escape(part.unit.name) %]</td>
26
     <td class="numeric">[% HTML.escape(part.qty_as_number) %] [% HTML.escape(part.unit.name) %]</td>
27 27
    </tr>
28 28
   [% END %]
29 29
  </tbody>
templates/webpages/requirement_spec_text_block/_form.html
1
[%- USE LxERP -%][%- USE L -%][%- USE HTML -%][% SET style="width: 500px" %]
1
[% USE LxERP %]
2
[% USE L %]
3
[% USE HTML %]
4
[% SET style="width: 500px" %]
2 5
[% DEFAULT id_base = 'edit_text_block_' _ SELF.text_block.id %]
6

  
3 7
<form method="post" id="[% id_base %]_form">
4
 <h2>
5
  [%- IF SELF.text_block.id %]
6
   [%- SET title = SELF.text_block.title || '(' _ LxERP.t8('No title yet') _ ')' %]
7
   [%- LxERP.t8("Edit text block '#1'", title) %]
8
  [%- ELSE %]
9
   [%- LxERP.t8("Add text block") %]
10
  [%- END %]
11
 </h2>
8

  
12 9

  
13 10
 [% L.hidden_tag('form_prefix',                    id_base,            id=id_base _ '_form_prefix') %]
14 11
 [% L.hidden_tag('id',                             SELF.text_block.id, id=id_base _ '_id') %]
......
19 16
 [% END %]
20 17

  
21 18
 <table>
19
 <caption>
20
  [% IF SELF.text_block.id %]
21
   [% SET title = SELF.text_block.title || '(' _ LxERP.t8('No title yet') _ ')' %]
22
   [% LxERP.t8("Edit text block '#1'", title) %]
23
  [% ELSE %]
24
   [% LxERP.t8("Add text block") %]
25
  [% END %]
26
 </caption>
27
 <tbody>
22 28
  <tr>
23
   <th align="right">[%- LxERP.t8("Title") %]:</th>
29
   <th>[% LxERP.t8("Title") %]:</th>
24 30
   <td>[% L.input_tag(id_base _ '.title', SELF.text_block.title, style = style) %]</td>
25 31
  </tr>
26 32

  
27
 [%- IF SELF.predefined_texts.size %]
33
 [% IF SELF.predefined_texts.size %]
28 34
  <tr>
29
   <th align="right">[%- LxERP.t8("Pre-defined Texts") %]:</th>
35
   <th>[% LxERP.t8("Pre-defined Texts") %]:</th>
30 36
   <td>
31
    [%- L.select_tag(id_base _ '_predefined_text_block', SELF.predefined_texts, title_key='description', style=style) %]
32
    <a href="#" onclick="insert_selected_predefined_text()">[%- LxERP.t8("Insert") %]</a>
37
    [% L.select_tag(id_base _ '_predefined_text_block', SELF.predefined_texts, title_key='description', style=style) %]
38
    <a href="#" onclick="insert_selected_predefined_text()">[% LxERP.t8("Insert") %]</a>
33 39
   </td>
34 40
  </tr>
35
 [%- END %]
41
 [% END %]
36 42

  
37 43
  <tr>
38
   <th align="right" valign="top">[%- LxERP.t8("Description") %]:</th>
39
   <td valign="top">[% L.textarea_tag(id_base _ '.text_as_restricted_html', SELF.text_block.text_as_restricted_html, id = id_base _ '_text', style = style _ '; height: 200px', class='texteditor') %]</td>
44
   <th>[% LxERP.t8("Description") %]:</th>
45
   <td>[% L.textarea_tag(id_base _ '.text_as_restricted_html', SELF.text_block.text_as_restricted_html, id = id_base _ '_text', style = style _ '; height: 200px', class='texteditor') %]</td>
40 46
  </tr>
47
  </tbody>
41 48
 </table>
42 49

  
43 50
 <p>
44
  [%- L.ajax_submit_tag('controller.pl?action=RequirementSpecTextBlock/ajax_' _ (SELF.text_block.id ? 'update' : 'create'), '#' _ id_base _ '_form', LxERP.t8('Save')) %]
45
  <a href="#" onclick="kivi.requirement_spec.cancel_edit_text_block_form('[% id_base %]')">[%- LxERP.t8("Cancel") %]</a>
51
  [% L.ajax_submit_tag('controller.pl?action=RequirementSpecTextBlock/ajax_' _ (SELF.text_block.id ? 'update' : 'create'), '#' _ id_base _ '_form', LxERP.t8('Save')) %]
52
  <a href="#" onclick="kivi.requirement_spec.cancel_edit_text_block_form('[% id_base %]')">[% LxERP.t8("Cancel") %]</a>
46 53
 </p>
47 54

  
48
[%- IF SELF.predefined_texts.size %]
55
[% IF SELF.predefined_texts.size %]
49 56
 <script type="text/javascript">
50 57
<!--
51 58
[% INCLUDE 'requirement_spec_text_block/_predefined_text_inserter.js' title_ctrl_id='_title' text_ctrl_id='_text' %]
52 59
-->
53 60
 </script>
54
[%- END %]
61
[% END %]
55 62
</form>
templates/webpages/requirement_spec_text_block/_picture_form.html
1
[%- USE LxERP -%][%- USE L -%][%- USE HTML -%][%- USE JavaScript -%][% USE Base64 %][% SET style="width: 500px" %]
1
[% USE LxERP %]
2
[% USE L %]
3
[% USE HTML %]
4
[% USE JavaScript %]
5
[% USE Base64 %][% SET style="width: 500px" %]
2 6
[% SET id_base = 'edit_text_block_picture_' _ (SELF.picture.id ? SELF.picture.id : 'new') %]
3 7
<form method="post" id="[% id_base %]_form" method="POST" enctype="multipart/form-data">
4 8
 [% L.hidden_tag('form_prefix',                    id_base,         id=id_base _ '_form_prefix') %]
......
7 11
 [% L.hidden_tag(id_base _ '.requirement_spec_id', SELF.text_block.requirement_spec_id) %]
8 12

  
9 13
 <h2>
10
  [%- IF SELF.picture.id %]
11
   [%- LxERP.t8("Edit text block picture #1", SELF.picture.number) %]
12
  [%- ELSE %]
13
   [%- LxERP.t8("Add picture to text block") %]
14
  [%- END %]
14
  [% IF SELF.picture.id %]
15
   [% LxERP.t8("Edit text block picture #1", SELF.picture.number) %]
16
  [% ELSE %]
17
   [% LxERP.t8("Add picture to text block") %]
18
  [% END %]
15 19
 </h2>
16 20

  
17 21
 <table>
18 22
[% IF SELF.picture.number %]
19 23
  <tr>
20
   <th align="right">[%- LxERP.t8("Number") %]:</th>
24
   <th>[% LxERP.t8("Number") %]:</th>
21 25
   <td>[% HTML.escape(SELF.picture.number) %]</td>
22 26
  </tr>
23 27
[% END %]
24 28

  
25 29
  <tr>
26
   <th align="right">[%- LxERP.t8("Description") %]:</th>
30
   <th>[% LxERP.t8("Description") %]:</th>
27 31
   <td>[% L.input_tag(id_base _ '.description', SELF.picture.description, style=style) %]</td>
28 32
  </tr>
29 33

  
30 34
[% IF SELF.picture.picture_content %]
31 35
  <tr>
32
   <th align="right">[%- LxERP.t8("File name") %]:</th>
36
   <th>[% LxERP.t8("File name") %]:</th>
33 37
   <td>[% HTML.escape(SELF.picture.picture_file_name) %]</td>
34 38
  </tr>
35 39

  
36 40
  <tr>
37
   <th align="right">[%- LxERP.t8("MIME type") %]:</th>
41
   <th>[% LxERP.t8("MIME type") %]:</th>
38 42
   <td>[% HTML.escape(SELF.picture.picture_content_type) %]</td>
39 43
  </tr>
40 44

  
41 45
  <tr>
42
   <th align="right">[%- LxERP.t8("Dimensions") %]:</th>
46
   <th>[% LxERP.t8("Dimensions") %]:</th>
43 47
   <td>[% HTML.escape(SELF.picture.picture_width) %]x[% HTML.escape(SELF.picture.picture_height) %]</td>
44 48
  </tr>
45 49

  
46 50
  <tr>
47
   <th align="right">[%- LxERP.t8("Uploaded at") %]:</th>
51
   <th>[% LxERP.t8("Uploaded at") %]:</th>
48 52
   <td>[% HTML.escape(SELF.picture.picture_mtime.to_kivitendo(precision='second')) %]</td>
49 53
  </tr>
50 54
[% END %]
51 55

  
52 56
  <tr>
53
   <th align="right">[%- LxERP.t8("Select file to upload") %]:</th>
57
   <th>[% LxERP.t8("Select file to upload") %]:</th>
54 58
   <td>[% L.input_tag(id_base _ '.picture_content', '', type='file') %]</td>
55 59
  </tr>
56 60
 </table>
57 61

  
58 62
 <p>
59
  [%- L.ajax_submit_tag('controller.pl?action=RequirementSpecTextBlock/ajax_' _ (SELF.picture.id ? 'update' : 'create') _ '_picture', '#' _ id_base _ '_form', LxERP.t8('Save'), no_id=1) %]
60
  <a href="#" onclick="$('#jqueryui_popup_dialog').dialog('close');">[%- LxERP.t8("Cancel") %]</a>
63
  [% L.ajax_submit_tag('controller.pl?action=RequirementSpecTextBlock/ajax_' _ (SELF.picture.id ? 'update' : 'create') _ '_picture', '#' _ id_base _ '_form', LxERP.t8('Save'), no_id=1) %]
64
  <a href="#" onclick="$('#jqueryui_popup_dialog').dialog('close');">[% LxERP.t8("Cancel") %]</a>
61 65
 </p>
62 66

  
63 67
</form>
templates/webpages/requirement_spec_text_block/_text_block_picture.html
1
[%- USE HTML -%][%- USE LxERP -%][% USE Base64 %]
1
[% USE HTML %]
2
[% USE LxERP %]
3
[% USE Base64 %]
2 4
[% SET title=LxERP.t8('Picture #1: #2', picture.number, picture.description ? picture.description _ ' (' _ picture.picture_file_name _ ')' : picture.picture_file_name) %]
3 5
<div id="text-block-picture-[% HTML.escape(picture.id) %]" class="requirement-spec-text-block-picture-thumbnail text-block-picture-context-menu">
4 6
 <div class="requirement-spec-text-block-picture-thumbnail-img-container">
templates/webpages/requirement_spec_version/_form.html
30 30
  <a href="[% SELF.url_for(action='list') %]">[%- LxERP.t8("Cancel") %]</a>
31 31
[%- ELSE %]
32 32
  [% L.ajax_submit_tag("controller.pl?action=RequirementSpecVersion/create",  "#" _ id_prefix, LxERP.t8("Save")) %]
33
  <a href="#" onclick="$('#jqueryui_popup_dialog').dialog('close');">[% LxERP.t8("Cancel") %]</a>
33
  <a href="#" onclick="$('#jqueryui_popup_dialog').dialog('close');" class="button neutral">[% LxERP.t8("Cancel") %]</a>
34 34
[%- END %]
35 35
 </p>
36 36
</form>
templates/webpages/requirement_spec_version/list.html
1
[% USE HTML %][% USE L %][% USE LxERP %][%- USE P -%]
1
[% USE HTML %]
2
[% USE L %]
3
[% USE LxERP %]
4
[% USE P %]
2 5

  
3 6
<table id="versioned_copies_list">
4 7
 <thead>
5
  <tr class="listheading">
6
   <th><div class="thingy" style="width: 10px; height: 100%; background-color: red; position: relative; left: -10px;"></div>[%- LxERP.t8("Version number") %]</th>
7
   <th>[%- LxERP.t8("Description") %]</th>
8
   <th>[%- LxERP.t8("Internal comment") %]</th>
9
   <th>[%- LxERP.t8("Last modification") %]</th>
8
  <tr>
9
   <th><div class="thingy" style="width: 10px; height: 100%; background-color: red; position: relative; left: -10px;"></div>[% LxERP.t8("Version number") %]</th>
10
   <th>[% LxERP.t8("Description") %]</th>
11
   <th>[% LxERP.t8("Internal comment") %]</th>
12
   <th>[% LxERP.t8("Last modification") %]</th>
10 13
  </tr>
11 14
 </thead>
12 15

  
13 16
 <tbody>
14 17
  <tr class="listrow versioned-copy-context-menu">
15
   [%- IF SELF.requirement_spec.version %]
18
   [% IF SELF.requirement_spec.version %]
16 19
    [% L.hidden_tag('versioned_copy_id', SELF.requirement_spec.version.requirement_spec_id, no_id=1) %]
17
    <td>[%- LxERP.t8("Working copy identical to version number #1", SELF.requirement_spec.version.version_number) %]</td>
18
   [%- ELSE %]
19
    <td>[%- LxERP.t8("Working copy without version") %]</td>
20
   [%- END -%]
21
   <td>[%- LxERP.t8("Working copy; no description yet") %]</td>
20
    <td>[% LxERP.t8("Working copy identical to version number #1", SELF.requirement_spec.version.version_number) %]</td>
21
   [% ELSE %]
22
    <td>[% LxERP.t8("Working copy without version") %]</td>
23
   [% END %]
24
   <td>[% LxERP.t8("Working copy; no description yet") %]</td>
22 25
   <td>&nbsp;</td>
23 26
   <td>[% SELF.requirement_spec.mtime.to_kivitendo(precision='minute') %]</td>
24 27
  </tr>
25 28

  
26
  [%- FOREACH versioned_copy = SELF.requirement_spec.versioned_copies_sorted %]
27
   [%- SET version = versioned_copy.version %]
29
  [% FOREACH versioned_copy = SELF.requirement_spec.versioned_copies_sorted %]
30
   [% SET version = versioned_copy.version %]
28 31
   <tr class="listrow versioned-copy-context-menu">
29 32
    [% L.hidden_tag('versioned_copy_id', versioned_copy.id, no_id=1) %]
30 33
    <td>[% HTML.escape(version.version_number) %]</td>
......
32 35
    <td>[% HTML.escape(P.truncate(version.comment)) %]</td>
33 36
    <td>[% version.itime.to_kivitendo(precision='minute') %]</td>
34 37
   </tr>
35
  [%- END %]
38
  [% END %]
36 39
 </tbody>
37 40
</table>

Auch abrufbar als: Unified diff