Revision 7dd8ee36
Von Sven Schöling vor mehr als 14 Jahren hinzugefügt
bin/mozilla/io.pl | ||
---|---|---|
2094 | 2094 |
return; |
2095 | 2095 |
} |
2096 | 2096 |
|
2097 |
foreach my $cvar (@{ $form->{CVAR_CONFIGS}->{IC} }) { |
|
2098 |
$cvar->{valid} = $params{part_id} |
|
2099 |
? CVar->get_custom_variables_validity(config_id => $cvar->{id}, trans_id => $params{part_id}) |
|
2100 |
: 0; |
|
2101 |
|
|
2102 |
$cvar->{value} = $form->{"ic_cvar_" . $cvar->{name} . "_$params{row}"}; |
|
2103 |
} |
|
2104 |
|
|
2105 |
CVar->render_inputs(hide_non_editable => 1, |
|
2106 |
variables => $form->{CVAR_CONFIGS}->{IC}, |
|
2107 |
name_prefix => 'ic_', |
|
2108 |
name_postfix => "_$params{row}"); |
|
2109 |
|
|
2110 | 2097 |
my $num_visible_cvars = 0; |
2111 | 2098 |
foreach my $cvar (@{ $form->{CVAR_CONFIGS}->{IC} }) { |
2099 |
$cvar->{valid} = $params{part_id} && |
|
2100 |
CVar->get_custom_variables_validity(config_id => $cvar->{id}, trans_id => $params{part_id}); |
|
2101 |
|
|
2112 | 2102 |
my $description = ''; |
2113 | 2103 |
if ($cvar->{flag_editable} && $cvar->{valid}) { |
2114 | 2104 |
$num_visible_cvars++; |
2115 | 2105 |
$description = $cvar->{description} . ' '; |
2116 | 2106 |
} |
2117 | 2107 |
|
2118 |
push @{ $params{ROW2} }, { line_break => $num_visible_cvars == 1, |
|
2119 |
value => $description . $cvar->{HTML_CODE}, |
|
2120 |
}; |
|
2108 |
push @{ $params{ROW2} }, { |
|
2109 |
line_break => $num_visible_cvars == 1, |
|
2110 |
description => $description, |
|
2111 |
cvar => 1, |
|
2112 |
render_options => { |
|
2113 |
hide_non_editable => 1, |
|
2114 |
var => $cvar, |
|
2115 |
name_prefix => 'ic_', |
|
2116 |
name_postfix => "_$params{row}", |
|
2117 |
valid => $cvar->{valid}, |
|
2118 |
value => $form->{"ic_cvar_" . $cvar->{name} . "_$params{row}"}, |
|
2119 |
} |
|
2120 |
}; |
|
2121 | 2121 |
} |
2122 | 2122 |
|
2123 | 2123 |
$main::lxdebug->leave_sub(2); |
templates/webpages/amcvar/render_inputs_block.html | ||
---|---|---|
1 |
[%- USE T8 %] |
|
2 |
[%- USE HTML %] |
|
3 |
[%- BLOCK cvar_inputs %] |
|
4 |
[%- var = cvar.var %] |
|
5 |
[%- hide_non_editable = cvar.hide_non_editable, %] |
|
6 |
[%- name_prefix = cvar.name_prefix, %] |
|
7 |
[%- name_postfix = cvar.name_postfix, %] |
|
8 |
[%- valid = cvar.valid, %] |
|
9 |
[%- value = cvar.value, %] |
|
10 |
[%- var_name = HTML.escape(name_prefix) _ "cvar_" _ HTML.escape(var.name) _ HTML.escape(name_postfix) -%] |
|
11 |
[%- %] |
|
12 |
[%- IF hide_non_editable && !var.flag_editable %] |
|
13 |
<input type="hidden" name="[% var_name %]" value="[% HTML.escape(var.value) %]"> |
|
14 |
[%- ELSIF !valid %] |
|
15 |
[%- IF show_disabled_message %] |
|
16 |
<i>[% 'Element disabled' | $T8 %]</i> |
|
17 |
[%- END %] |
|
18 |
[%- ELSIF var.type == 'bool' %] |
|
19 |
<input type="checkbox" name="[% var_name %]" value="1"[% IF value %] checked[% END %]> |
|
20 |
[%- ELSIF var.type == 'textfield' %] |
|
21 |
<textarea name="[% var_name %]" cols="[% HTML.escape(var.width) %]" rows="[% HTML.escape(var.height) %]">[% HTML.escape(value) %]</textarea> |
|
22 |
[%- ELSIF var.type == 'date' %] |
|
23 |
<input name="[% var_name %]" id="[% var_name %]" size="12" value="[% HTML.escape(value) %]"> |
|
24 |
<input name="[% var_name %]_button" id="[% var_name %]_trigger" type="button" value="?"> |
|
25 |
<script type="text/javascript"> |
|
26 |
<!-- |
|
27 |
Calendar.setup({ inputField : "[% var_name %]", |
|
28 |
ifFormat : "[% myconfig_jsc_dateformat %]", |
|
29 |
align : "BR", |
|
30 |
button : "[% var_name %]_trigger" }); |
|
31 |
--> |
|
32 |
</script> |
|
33 |
[%- ELSIF var.type == 'timestamp' %] |
|
34 |
<input name="[% var_name %]" value="[% HTML.escape(value) %]"> |
|
35 |
[%- ELSIF var.type == 'select' %] |
|
36 |
<select name="[% var_name %]"> |
|
37 |
[%- FOREACH option = var.OPTIONS %] |
|
38 |
<option[% IF option.value == value %] selected[% END %]>[% HTML.escape(option.value) %]</option> |
|
39 |
[%- END %] |
|
40 |
</select> |
|
41 |
[%- ELSE %] |
|
42 |
<input name="[% var_name %]" value="[% HTML.escape(value) %]" [%- IF var.maxlength %] maxlength="[% HTML.escape(var.maxlength) %]"[% END -%]> |
|
43 |
[%- END %] |
|
44 |
[%- END %] |
templates/webpages/oe/sales_order.html | ||
---|---|---|
1 | 1 |
[%- USE T8 %] |
2 |
[% USE HTML %] |
|
2 |
[%- USE HTML %] |
|
3 |
[%- PROCESS 'amcvar/render_inputs_block.html' %] |
|
3 | 4 |
<tr> |
4 | 5 |
<td> |
5 | 6 |
<input type="button" id="cb_show_details" name="show_details" value='[% 'Show details' | $T8 %]'> |
... | ... | |
7 | 8 |
$('#cb_show_details').click(function(){ $('[id$="row2"]').toggle() }); |
8 | 9 |
</script> |
9 | 10 |
<table id='display_row' width="100%"> |
10 |
<tr class="listheading">[% FOREACH header = HEADER %][% IF header.display %] |
|
11 |
<th align="left" nowrap width="[% header.width %]" class="listheading">[% header.value %]</th>[% END %][% END %] |
|
11 |
<tr class="listheading"> |
|
12 |
[%- FOREACH header = HEADER %] |
|
13 |
[%- IF header.display %] |
|
14 |
<th align="left" nowrap width="[% header.width %]" class="listheading">[% header.value %]</th> |
|
15 |
[%- END %] |
|
16 |
[%- END %] |
|
12 | 17 |
</tr> |
13 |
|
|
14 |
[% FOREACH row = ROWS %] |
|
15 |
<tr valign="top" class="[% IF row.error %]error_message[% ELSE %]listrow[% loop.count % 2 %][% END %]">[% FOREACH row1 = row.ROW1 %] |
|
16 |
<td align="[% row1.align %]"[% IF row1.nowrap %] nowrap[% END %]>[% row1.value %]</td>[% END %] |
|
18 |
[%- FOREACH row = ROWS %] |
|
19 |
<tr valign="top" class="[% IF row.error %]error_message[% ELSE %]listrow[% loop.count % 2 %][% END %]"> |
|
20 |
[%- FOREACH row1 = row.ROW1 %] |
|
21 |
<td align="[% row1.align %]"[% IF row1.nowrap %] nowrap[% END %]>[% row1.value %]</td> |
|
22 |
[%- END %] |
|
17 | 23 |
</tr> |
18 |
|
|
19 |
[% FOREACH hidden = row.HIDDENS %][% hidden.value %] |
|
20 |
[% END %] |
|
21 |
|
|
22 |
<tr class="listrow[% loop.count % 2 %]" id="[% loop.count %].row2" [% UNLESS show_details %]style="display:none;"[% END %]><td colspan="[% row.colspan %]">[% FOREACH row2 = row.ROW2 %] |
|
23 |
[% IF row2.line_break %]<br/>[% END %] |
|
24 |
[% row2.value %][% END %] |
|
25 |
</td></tr> |
|
26 |
[% END %] |
|
24 |
[%- FOREACH hidden = row.HIDDENS %] |
|
25 |
[% hidden.value %] |
|
26 |
[%- END %] |
|
27 |
<tr class="listrow[% loop.count % 2 %]" id="[% loop.count %].row2" [% UNLESS show_details %]style="display:none;"[% END %]> |
|
28 |
<td colspan="[% row.colspan %]"> |
|
29 |
[%- FOREACH row2 = row.ROW2 %] |
|
30 |
[%- IF row2.line_break %]<br/>[%- END %] |
|
31 |
[%- IF row2.cvar %] |
|
32 |
[% row2.description %] |
|
33 |
[% INCLUDE cvar_inputs cvar = row2.render_options %] |
|
34 |
[%- ELSE %] |
|
35 |
[% row2.value %] |
|
36 |
[%- END %] |
|
37 |
[%- END %] |
|
38 |
</td> |
|
39 |
</tr> |
|
40 |
[%- END %] |
|
27 | 41 |
|
28 | 42 |
</table> |
29 | 43 |
</td> |
Auch abrufbar als: Unified diff
CVar Inputfelder auf Templateblöcke umgeschrieben.
Bei großen Belegen, sprich 50 Zeilen steigt der Aufwand für die CVars im Moment
in der dritten Potenz. Das führt dazu dass selbst auf schnellen Servern die
Requests unhaltbar langsam sind.
Ab jetzt werden für Belege die CVars nicht mehr vorgrendert, sondern zur
Laufzeit gerendert, und dann mit einem vorkompilierten Template, dass im
Speicher eingebunden wird.
Die anderen beiden Templates sind davon nicht betroffen.