Revision cd92cf1c
Von Moritz Bunkus vor mehr als 16 Jahren hinzugefügt
SL/Projects.pm | ||
---|---|---|
37 | 37 |
use Data::Dumper; |
38 | 38 |
|
39 | 39 |
use SL::DBUtils; |
40 |
use SL::CVar; |
|
40 | 41 |
|
41 | 42 |
my %project_id_column_prefixes = ("ar" => "global", |
42 | 43 |
"ap" => "global", |
... | ... | |
68 | 69 |
|
69 | 70 |
foreach my $column (qw(projectnumber description)) { |
70 | 71 |
if ($params{$column}) { |
71 |
push @filters, "$column ILIKE ?"; |
|
72 |
push @filters, "p.$column ILIKE ?";
|
|
72 | 73 |
push @values, '%' . $params{$column} . '%'; |
73 | 74 |
} |
74 | 75 |
} |
... | ... | |
81 | 82 |
WHERE NOT $project_id_column_prefixes{$table}project_id ISNULL|; |
82 | 83 |
} |
83 | 84 |
|
84 |
push @filters, "id NOT IN (" . join(" UNION ", @sub_filters) . ")"; |
|
85 |
push @filters, "p.id NOT IN (" . join(" UNION ", @sub_filters) . ")";
|
|
85 | 86 |
} |
86 | 87 |
|
87 | 88 |
if ($params{active} eq "active") { |
88 |
push @filters, 'active'; |
|
89 |
push @filters, 'p.active';
|
|
89 | 90 |
|
90 | 91 |
} elsif ($params{active} eq "inactive") { |
91 |
push @filters, 'NOT COALESCE(active, FALSE)'; |
|
92 |
push @filters, 'NOT COALESCE(p.active, FALSE)';
|
|
92 | 93 |
} |
93 | 94 |
|
95 |
my ($cvar_where, @cvar_values) = CVar->build_filter_query('module' => 'Projects', |
|
96 |
'trans_id_field' => 'p.id', |
|
97 |
'filter' => $form); |
|
98 |
|
|
99 |
if ($cvar_where) { |
|
100 |
push @filters, $cvar_where; |
|
101 |
push @values, @cvar_values; |
|
102 |
} |
|
103 |
|
|
104 |
|
|
94 | 105 |
my $where = 'WHERE ' . join(' AND ', map { "($_)" } @filters) if (scalar @filters); |
95 | 106 |
|
96 | 107 |
my $sortorder = $params{sort} ? $params{sort} : "projectnumber"; |
97 | 108 |
$sortorder =~ s/[^a-z_]//g; |
98 |
my $query = qq|SELECT id, projectnumber, description, active
|
|
99 |
FROM project |
|
109 |
my $query = qq|SELECT p.id, p.projectnumber, p.description, p.active
|
|
110 |
FROM project p
|
|
100 | 111 |
$where |
101 | 112 |
ORDER BY $sortorder|; |
102 | 113 |
|
... | ... | |
173 | 184 |
@values = ($params{projectnumber}, $params{description}, $params{active} ? 't' : 'f', conv_i($params{id})); |
174 | 185 |
do_query($form, $dbh, $query, @values); |
175 | 186 |
|
187 |
CVar->save_custom_variables('dbh' => $dbh, |
|
188 |
'module' => 'Projects', |
|
189 |
'trans_id' => $params{id}, |
|
190 |
'variables' => $form); |
|
191 |
|
|
176 | 192 |
$dbh->commit(); |
177 | 193 |
|
178 | 194 |
$main::lxdebug->leave_sub(); |
bin/mozilla/projects.pl | ||
---|---|---|
32 | 32 |
|
33 | 33 |
use POSIX qw(strftime); |
34 | 34 |
|
35 |
use SL::CVar; |
|
35 | 36 |
use SL::Projects; |
36 | 37 |
use SL::ReportGenerator; |
37 | 38 |
|
... | ... | |
75 | 76 |
|
76 | 77 |
$form->{title} = $locale->text('Projects'); |
77 | 78 |
|
79 |
$form->{CUSTOM_VARIABLES} = CVar->get_configs('module' => 'Projects'); |
|
80 |
($form->{CUSTOM_VARIABLES_FILTER_CODE}, |
|
81 |
$form->{CUSTOM_VARIABLES_INCLUSION_CODE}) = CVar->render_search_options('variables' => $form->{CUSTOM_VARIABLES}, |
|
82 |
'include_prefix' => 'l_', |
|
83 |
'include_value' => 'Y'); |
|
84 |
|
|
78 | 85 |
$form->header(); |
79 | 86 |
print $form->parse_html_template('projects/search'); |
80 | 87 |
|
... | ... | |
87 | 94 |
$auth->assert('project_edit'); |
88 | 95 |
|
89 | 96 |
$form->{sort} ||= 'projectnumber'; |
90 |
|
|
91 | 97 |
my $filter = $form->{filter} || { }; |
98 |
|
|
92 | 99 |
Projects->search_projects(%{ $filter }, 'sort' => $form->{sort}); |
93 | 100 |
|
94 |
my $report = SL::ReportGenerator->new(\%myconfig, $form); |
|
101 |
my $cvar_configs = CVar->get_configs('module' => 'Projects'); |
|
102 |
|
|
103 |
my $report = SL::ReportGenerator->new(\%myconfig, $form); |
|
104 |
|
|
105 |
my @columns = qw(projectnumber description active); |
|
106 |
my @hidden_vars = ('filter'); |
|
107 |
my $href = build_std_url('action=project_report', @hidden_vars); |
|
95 | 108 |
|
96 |
my @columns = qw(projectnumber description active); |
|
97 |
my @hidden_vars = ('filter'); |
|
98 |
my $href = build_std_url('action=project_report', @hidden_vars); |
|
109 |
my @includeable_custom_variables = grep { $_->{includeable} } @{ $cvar_configs }; |
|
110 |
my %column_defs_cvars = (); |
|
111 |
foreach (@includeable_custom_variables) { |
|
112 |
$column_defs_cvars{"cvar_$_->{name}"} = { |
|
113 |
'text' => $_->{description}, |
|
114 |
'visible' => $form->{"l_cvar_$_->{name}"} eq 'Y', |
|
115 |
}; |
|
116 |
} |
|
117 |
|
|
118 |
push @columns, map { "cvar_$_->{name}" } @includeable_custom_variables; |
|
99 | 119 |
|
100 |
my %column_defs = ( |
|
120 |
my %column_defs = (
|
|
101 | 121 |
'projectnumber' => { 'text' => $locale->text('Number'), }, |
102 | 122 |
'description' => { 'text' => $locale->text('Description'), }, |
103 | 123 |
'active' => { 'text' => $locale->text('Active'), 'visible' => 'both' eq $filter->{active}, }, |
124 |
%column_defs_cvars, |
|
104 | 125 |
); |
105 | 126 |
|
127 |
$main::lxdebug->dump(0, "cdc", \@columns); |
|
128 |
$main::lxdebug->dump(0, "cdc", \%column_defs); |
|
129 |
|
|
106 | 130 |
foreach (qw(projectnumber description)) { |
107 | 131 |
$column_defs{$_}->{link} = $href . "&sort=$_"; |
108 | 132 |
$column_defs{$_}->{visible} = 1; |
... | ... | |
133 | 157 |
); |
134 | 158 |
$report->set_options_from_form(); |
135 | 159 |
|
160 |
CVar->add_custom_variables_to_report('module' => 'Projects', |
|
161 |
'trans_id_field' => 'id', |
|
162 |
'configs' => $cvar_configs, |
|
163 |
'column_defs' => \%column_defs, |
|
164 |
'data' => $form->{project_list}); |
|
165 |
|
|
136 | 166 |
my $edit_url = build_std_url('action=edit&type=project'); |
137 | 167 |
my $callback = $form->escape($href) . '&sort=' . E($form->{sort}); |
138 | 168 |
|
... | ... | |
160 | 190 |
|
161 | 191 |
$form->{title} = $form->{project}->{id} ? $locale->text("Edit Project") : $locale->text("Add Project"); |
162 | 192 |
|
193 |
$form->{CUSTOM_VARIABLES} = CVar->get_custom_variables('module' => 'Projects', 'trans_id' => $form->{project}->{id}); |
|
194 |
$main::lxdebug->dump(0, "cv", $form->{CUSTOM_VARIABLES}); |
|
195 |
CVar->render_inputs('variables' => $form->{CUSTOM_VARIABLES}) if (scalar @{ $form->{CUSTOM_VARIABLES} }); |
|
196 |
|
|
163 | 197 |
$form->header(); |
164 | 198 |
print $form->parse_html_template('projects/project_form'); |
165 | 199 |
|
locale/de/all | ||
---|---|---|
94 | 94 |
'Add' => 'Erfassen', |
95 | 95 |
'Add ' => 'Hinzuf?gen', |
96 | 96 |
'Add (Customers and Vendors)' => 'Erfassen (Kunden und Lieferanten)', |
97 |
'Add (Projects)' => 'Erfassen (Projekte)', |
|
97 | 98 |
'Add AP Transaction' => 'Kreditorenbuchung', |
98 | 99 |
'Add AR Transaction' => 'Debitorenbuchung', |
99 | 100 |
'Add Account' => 'Konto erfassen', |
... | ... | |
218 | 219 |
'Bank Connection Tax Office' => 'Bankverbindung des Finanzamts', |
219 | 220 |
'Bank Connections' => 'Bankverbindungen', |
220 | 221 |
'Base unit' => 'Basiseinheit', |
222 |
'Basic data' => 'Basisdaten', |
|
221 | 223 |
'Batch Printing' => 'Druck', |
222 | 224 |
'Bcc' => 'Bcc', |
223 | 225 |
'Belegnummer' => 'Buchungsnummer', |
... | ... | |
816 | 818 |
'Line Total' => 'Zeilensumme', |
817 | 819 |
'Line endings' => 'Zeilenumbrüche', |
818 | 820 |
'List (Customers and Vendors)' => 'Auflisten (Kunden und Lieferanten)', |
821 |
'List (Projects)' => 'Auflisten (Projekte)', |
|
819 | 822 |
'List Accounting Groups' => 'Buchungsgruppen anzeigen', |
820 | 823 |
'List Accounts' => 'Konten anzeigen', |
821 | 824 |
'List Businesses' => 'Kunden-/Lieferantentypen anzeigen', |
locale/de/arap | ||
---|---|---|
63 | 63 |
'Missing parameter (at least one of #1) in call to sub #2.' => 'Fehlernder Parameter (mindestens einer aus \'#1\') in Funktionsaufruf \'#2\'.', |
64 | 64 |
'More than one control file with the tag \'%s\' exist.' => 'Es gibt mehr als eine Kontrolldatei mit dem Tag \'%s\'.', |
65 | 65 |
'Name' => 'Name', |
66 |
'No' => 'Nein', |
|
66 | 67 |
'No %s was found matching the search parameters.' => 'Es wurde kein %s gefunden, auf den die Suchparameter zutreffen.', |
67 | 68 |
'No Customer was found matching the search parameters.' => 'Zu dem Suchbegriff wurde kein Endkunde gefunden', |
68 | 69 |
'No Vendor was found matching the search parameters.' => 'Zu dem Suchbegriff wurde kein H?ndler gefunden', |
... | ... | |
121 | 122 |
'Vendor not on file!' => 'Lieferant ist nicht in der Datenbank!', |
122 | 123 |
'View warehouse content' => 'Lagerbestand ansehen', |
123 | 124 |
'Warehouse management' => 'Lagerverwaltung/Bestandsver?nderung', |
125 |
'Yes' => 'Ja', |
|
124 | 126 |
'You do not have the permissions to access this function.' => 'Sie verfügen nicht über die notwendigen Rechte, um auf diese Funktion zuzugreifen.', |
125 | 127 |
'[email]' => '[email]', |
126 | 128 |
'bin_list' => 'Lagerliste', |
locale/de/ic | ||
---|---|---|
346 | 346 |
'calculate_qty' => 'calculate_qty', |
347 | 347 |
'call_sub' => 'call_sub', |
348 | 348 |
'check_form' => 'check_form', |
349 |
'choice' => 'choice', |
|
350 | 349 |
'confirm_price_update' => 'confirm_price_update', |
351 | 350 |
'continue' => 'continue', |
352 | 351 |
'cov_selection_internal' => 'cov_selection_internal', |
... | ... | |
365 | 364 |
'invoicetotal' => 'invoicetotal', |
366 | 365 |
'item_selected' => 'item_selected', |
367 | 366 |
'link_part' => 'link_part', |
368 |
'list' => 'list', |
|
369 | 367 |
'makemodel_row' => 'makemodel_row', |
370 | 368 |
'mark_as_paid_common' => 'mark_as_paid_common', |
371 | 369 |
'new_item' => 'new_item', |
locale/de/menu | ||
---|---|---|
7 | 7 |
'AR Aging' => 'Offene Forderungen', |
8 | 8 |
'Accounting Menu' => 'Kontoverwaltung', |
9 | 9 |
'Add (Customers and Vendors)' => 'Erfassen (Kunden und Lieferanten)', |
10 |
'Add (Projects)' => 'Erfassen (Projekte)', |
|
10 | 11 |
'Add AP Transaction' => 'Kreditorenbuchung', |
11 | 12 |
'Add AR Transaction' => 'Debitorenbuchung', |
12 | 13 |
'Add Account' => 'Konto erfassen', |
... | ... | |
100 | 101 |
'Lead' => 'Kundenquelle', |
101 | 102 |
'Licenses' => 'Lizenzen', |
102 | 103 |
'List (Customers and Vendors)' => 'Auflisten (Kunden und Lieferanten)', |
104 |
'List (Projects)' => 'Auflisten (Projekte)', |
|
103 | 105 |
'List Accounting Groups' => 'Buchungsgruppen anzeigen', |
104 | 106 |
'List Accounts' => 'Konten anzeigen', |
105 | 107 |
'List Businesses' => 'Kunden-/Lieferantentypen anzeigen', |
locale/de/menunew | ||
---|---|---|
6 | 6 |
'AR' => 'Verkauf', |
7 | 7 |
'AR Aging' => 'Offene Forderungen', |
8 | 8 |
'Add (Customers and Vendors)' => 'Erfassen (Kunden und Lieferanten)', |
9 |
'Add (Projects)' => 'Erfassen (Projekte)', |
|
9 | 10 |
'Add AP Transaction' => 'Kreditorenbuchung', |
10 | 11 |
'Add AR Transaction' => 'Debitorenbuchung', |
11 | 12 |
'Add Account' => 'Konto erfassen', |
... | ... | |
99 | 100 |
'Lead' => 'Kundenquelle', |
100 | 101 |
'Licenses' => 'Lizenzen', |
101 | 102 |
'List (Customers and Vendors)' => 'Auflisten (Kunden und Lieferanten)', |
103 |
'List (Projects)' => 'Auflisten (Projekte)', |
|
102 | 104 |
'List Accounting Groups' => 'Buchungsgruppen anzeigen', |
103 | 105 |
'List Accounts' => 'Konten anzeigen', |
104 | 106 |
'List Businesses' => 'Kunden-/Lieferantentypen anzeigen', |
locale/de/rp | ||
---|---|---|
125 | 125 |
'Monthly' => 'monatlich', |
126 | 126 |
'More than one control file with the tag \'%s\' exist.' => 'Es gibt mehr als eine Kontrolldatei mit dem Tag \'%s\'.', |
127 | 127 |
'Name' => 'Name', |
128 |
'No' => 'Nein', |
|
128 | 129 |
'No %s was found matching the search parameters.' => 'Es wurde kein %s gefunden, auf den die Suchparameter zutreffen.', |
129 | 130 |
'No Customer was found matching the search parameters.' => 'Zu dem Suchbegriff wurde kein Endkunde gefunden', |
130 | 131 |
'No Vendor was found matching the search parameters.' => 'Zu dem Suchbegriff wurde kein H?ndler gefunden', |
... | ... | |
229 | 230 |
'YYYY' => 'JJJJ', |
230 | 231 |
'Year' => 'Jahr', |
231 | 232 |
'Yearly' => 'j?hrlich', |
233 |
'Yes' => 'Ja', |
|
232 | 234 |
'You do not have the permissions to access this function.' => 'Sie verfügen nicht über die notwendigen Rechte, um auf diese Funktion zuzugreifen.', |
233 | 235 |
'[email]' => '[email]', |
234 | 236 |
'ap_aging_list' => 'liste_offene_verbindlichkeiten', |
menu.ini | ||
---|---|---|
679 | 679 |
action=list_cvar_configs |
680 | 680 |
cvar_module=CT |
681 | 681 |
|
682 |
[System--Custom Variables--Add (Projects)] |
|
683 |
module=amcvar.pl |
|
684 |
action=add_cvar_config |
|
685 |
cvar_module=Projects |
|
686 |
|
|
687 |
[System--Custom Variables--List (Projects)] |
|
688 |
module=amcvar.pl |
|
689 |
action=list_cvar_configs |
|
690 |
cvar_module=Projects |
|
691 |
|
|
682 | 692 |
[System--Warehouses] |
683 | 693 |
module=menu.pl |
684 | 694 |
action=acc_menu |
templates/webpages/projects/project_form_de.html | ||
---|---|---|
6 | 6 |
<hr> |
7 | 7 |
[%- END %] |
8 | 8 |
|
9 |
<div class="listtop">[% title %]</div> |
|
10 |
|
|
9 | 11 |
<form method="post" action="projects.pl"> |
10 | 12 |
|
11 | 13 |
<input type="hidden" name="project.id" value="[% HTML.escape(project.id) %]"> |
14 |
<input type="hidden" name="callback" value="[% HTML.escape(callback) %]"> |
|
15 |
|
|
16 |
<ul id="maintab" class="shadetabs"> |
|
17 |
<li class="selected"><a href="#" rel="basic_data">Basisdaten</a></li> |
|
18 |
[%- IF CUSTOM_VARIABLES.size %] |
|
19 |
<li><a href="#" rel="custom_variables">Benutzerdefinierte Variablen</a></li> |
|
20 |
[%- END %] |
|
21 |
</ul> |
|
12 | 22 |
|
13 |
<div class="listtop">[% title %]</div>
|
|
23 |
<div class="tabcontentstyle">
|
|
14 | 24 |
|
15 |
<p> |
|
16 |
<table> |
|
17 |
<tr> |
|
18 |
<th align="right">Nummer</th> |
|
19 |
<td><input name="project.projectnumber" size="20" value="[% HTML.escape(project.projectnumber) %]"></td> |
|
20 |
</tr> |
|
21 |
|
|
22 |
<tr> |
|
23 |
<th align="right">Beschreibung</th> |
|
24 |
<td> |
|
25 |
[%- SET rows = LxERP.numtextrows(project.description, 60) %] |
|
26 |
[%- IF rows > 1 %] |
|
27 |
<textarea name="project.description" rows="rows" cols="60" style="width: 100%" wrap="soft">[% HTML.escape(project.description) %]</textarea> |
|
28 |
[%- ELSE %] |
|
29 |
<input name="project.description" size="60" value="[% HTML.escape(project.description) %]"> |
|
25 |
<div id="basic_data" class="tabcontent"> |
|
26 |
|
|
27 |
<table> |
|
28 |
<tr> |
|
29 |
<th align="right">Nummer</th> |
|
30 |
<td><input name="project.projectnumber" size="20" value="[% HTML.escape(project.projectnumber) %]"></td> |
|
31 |
</tr> |
|
32 |
|
|
33 |
<tr> |
|
34 |
<th align="right">Beschreibung</th> |
|
35 |
<td> |
|
36 |
[%- SET rows = LxERP.numtextrows(project.description, 60) %] |
|
37 |
[%- IF rows > 1 %] |
|
38 |
<textarea name="project.description" rows="rows" cols="60" style="width: 100%" wrap="soft">[% HTML.escape(project.description) %]</textarea> |
|
39 |
[%- ELSE %] |
|
40 |
<input name="project.description" size="60" value="[% HTML.escape(project.description) %]"> |
|
41 |
[%- END %] |
|
42 |
</td> |
|
43 |
</tr> |
|
44 |
|
|
45 |
[%- IF project.id %] |
|
46 |
<tr> |
|
47 |
<th align="right"> </th> |
|
48 |
<td> |
|
49 |
<input type="radio" name="project.active" id="active_1" value="1"[% IF project.active %] checked[% END %]><label for="active_1">Aktiv</label> |
|
50 |
<input type="radio" name="project.active" id="active_0" value="0"[% IF !project.active %] checked[% END %]><label for="active_0">Inaktiv</label> |
|
51 |
</td> |
|
52 |
</tr> |
|
53 |
[%- END %] |
|
54 |
</table> |
|
55 |
|
|
56 |
<br style="clear: left" /> |
|
57 |
</div> |
|
58 |
|
|
59 |
[%- IF CUSTOM_VARIABLES.size %] |
|
60 |
<div id="custom_variables" class="tabcontent"> |
|
61 |
|
|
62 |
<p> |
|
63 |
<table> |
|
64 |
[%- FOREACH var = CUSTOM_VARIABLES %] |
|
65 |
<tr> |
|
66 |
<td align="right" valign="top">[% HTML.escape(var.description) %]</td> |
|
67 |
<td valign="top">[% var.HTML_CODE %]</td> |
|
68 |
</tr> |
|
30 | 69 |
[%- END %] |
31 |
</td> |
|
32 |
</tr> |
|
33 |
|
|
34 |
[%- IF project.id %] |
|
35 |
<tr> |
|
36 |
<th align="right"> </th> |
|
37 |
<td> |
|
38 |
<input type="radio" name="project.active" id="active_1" value="1"[% IF project.active %] checked[% END %]><label for="active_1">Aktiv</label> |
|
39 |
<input type="radio" name="project.active" id="active_0" value="0"[% IF !project.active %] checked[% END %]><label for="active_0">Inaktiv</label> |
|
40 |
</td> |
|
41 |
</tr> |
|
42 |
[%- END %] |
|
43 |
</table> |
|
44 |
</p> |
|
70 |
</table> |
|
71 |
</p> |
|
45 | 72 |
|
46 |
<p><hr size="3" noshade></p> |
|
73 |
<br style="clear: left" /> |
|
74 |
</div> |
|
75 |
[%- END %] |
|
47 | 76 |
|
48 |
<input name="callback" type="hidden" value="[% HTML.escape(callback) %]">
|
|
77 |
</div>
|
|
49 | 78 |
|
50 | 79 |
<p> |
51 | 80 |
<input type="submit" class="submit" name="action" value="Speichern"> |
... | ... | |
59 | 88 |
</p> |
60 | 89 |
</form> |
61 | 90 |
|
91 |
<script type="text/javascript"> |
|
92 |
<!-- |
|
93 |
initializetabcontent("maintab"); |
|
94 |
--> |
|
95 |
</script> |
|
96 |
|
|
62 | 97 |
</body> |
63 | 98 |
</html> |
templates/webpages/projects/project_form_master.html | ||
---|---|---|
6 | 6 |
<hr> |
7 | 7 |
[%- END %] |
8 | 8 |
|
9 |
<div class="listtop">[% title %]</div> |
|
10 |
|
|
9 | 11 |
<form method="post" action="projects.pl"> |
10 | 12 |
|
11 | 13 |
<input type="hidden" name="project.id" value="[% HTML.escape(project.id) %]"> |
14 |
<input type="hidden" name="callback" value="[% HTML.escape(callback) %]"> |
|
15 |
|
|
16 |
<ul id="maintab" class="shadetabs"> |
|
17 |
<li class="selected"><a href="#" rel="basic_data"><translate>Basic data</translate></a></li> |
|
18 |
[%- IF CUSTOM_VARIABLES.size %] |
|
19 |
<li><a href="#" rel="custom_variables"><translate>Custom Variables</translate></a></li> |
|
20 |
[%- END %] |
|
21 |
</ul> |
|
12 | 22 |
|
13 |
<div class="listtop">[% title %]</div>
|
|
23 |
<div class="tabcontentstyle">
|
|
14 | 24 |
|
15 |
<p> |
|
16 |
<table> |
|
17 |
<tr> |
|
18 |
<th align="right"><translate>Number</translate></th> |
|
19 |
<td><input name="project.projectnumber" size="20" value="[% HTML.escape(project.projectnumber) %]"></td> |
|
20 |
</tr> |
|
21 |
|
|
22 |
<tr> |
|
23 |
<th align="right"><translate>Description</translate></th> |
|
24 |
<td> |
|
25 |
[%- SET rows = LxERP.numtextrows(project.description, 60) %] |
|
26 |
[%- IF rows > 1 %] |
|
27 |
<textarea name="project.description" rows="rows" cols="60" style="width: 100%" wrap="soft">[% HTML.escape(project.description) %]</textarea> |
|
28 |
[%- ELSE %] |
|
29 |
<input name="project.description" size="60" value="[% HTML.escape(project.description) %]"> |
|
25 |
<div id="basic_data" class="tabcontent"> |
|
26 |
|
|
27 |
<table> |
|
28 |
<tr> |
|
29 |
<th align="right"><translate>Number</translate></th> |
|
30 |
<td><input name="project.projectnumber" size="20" value="[% HTML.escape(project.projectnumber) %]"></td> |
|
31 |
</tr> |
|
32 |
|
|
33 |
<tr> |
|
34 |
<th align="right"><translate>Description</translate></th> |
|
35 |
<td> |
|
36 |
[%- SET rows = LxERP.numtextrows(project.description, 60) %] |
|
37 |
[%- IF rows > 1 %] |
|
38 |
<textarea name="project.description" rows="rows" cols="60" style="width: 100%" wrap="soft">[% HTML.escape(project.description) %]</textarea> |
|
39 |
[%- ELSE %] |
|
40 |
<input name="project.description" size="60" value="[% HTML.escape(project.description) %]"> |
|
41 |
[%- END %] |
|
42 |
</td> |
|
43 |
</tr> |
|
44 |
|
|
45 |
[%- IF project.id %] |
|
46 |
<tr> |
|
47 |
<th align="right"> </th> |
|
48 |
<td> |
|
49 |
<input type="radio" name="project.active" id="active_1" value="1"[% IF project.active %] checked[% END %]><label for="active_1"><translate>Active</translate></label> |
|
50 |
<input type="radio" name="project.active" id="active_0" value="0"[% IF !project.active %] checked[% END %]><label for="active_0"><translate>Inactive</translate></label> |
|
51 |
</td> |
|
52 |
</tr> |
|
53 |
[%- END %] |
|
54 |
</table> |
|
55 |
|
|
56 |
<br style="clear: left" /> |
|
57 |
</div> |
|
58 |
|
|
59 |
[%- IF CUSTOM_VARIABLES.size %] |
|
60 |
<div id="custom_variables" class="tabcontent"> |
|
61 |
|
|
62 |
<p> |
|
63 |
<table> |
|
64 |
[%- FOREACH var = CUSTOM_VARIABLES %] |
|
65 |
<tr> |
|
66 |
<td align="right" valign="top">[% HTML.escape(var.description) %]</td> |
|
67 |
<td valign="top">[% var.HTML_CODE %]</td> |
|
68 |
</tr> |
|
30 | 69 |
[%- END %] |
31 |
</td> |
|
32 |
</tr> |
|
33 |
|
|
34 |
[%- IF project.id %] |
|
35 |
<tr> |
|
36 |
<th align="right"> </th> |
|
37 |
<td> |
|
38 |
<input type="radio" name="project.active" id="active_1" value="1"[% IF project.active %] checked[% END %]><label for="active_1"><translate>Active</translate></label> |
|
39 |
<input type="radio" name="project.active" id="active_0" value="0"[% IF !project.active %] checked[% END %]><label for="active_0"><translate>Inactive</translate></label> |
|
40 |
</td> |
|
41 |
</tr> |
|
42 |
[%- END %] |
|
43 |
</table> |
|
44 |
</p> |
|
70 |
</table> |
|
71 |
</p> |
|
45 | 72 |
|
46 |
<p><hr size="3" noshade></p> |
|
73 |
<br style="clear: left" /> |
|
74 |
</div> |
|
75 |
[%- END %] |
|
47 | 76 |
|
48 |
<input name="callback" type="hidden" value="[% HTML.escape(callback) %]">
|
|
77 |
</div>
|
|
49 | 78 |
|
50 | 79 |
<p> |
51 | 80 |
<input type="submit" class="submit" name="action" value="<translate>Save</translate>"> |
... | ... | |
59 | 88 |
</p> |
60 | 89 |
</form> |
61 | 90 |
|
91 |
<script type="text/javascript"> |
|
92 |
<!-- |
|
93 |
initializetabcontent("maintab"); |
|
94 |
--> |
|
95 |
</script> |
|
96 |
|
|
62 | 97 |
</body> |
63 | 98 |
</html> |
templates/webpages/projects/search_de.html | ||
---|---|---|
16 | 16 |
<td><input name="filter.description" size="60"></td> |
17 | 17 |
</tr> |
18 | 18 |
|
19 |
<tr> |
|
20 |
<th> </th> |
|
21 |
<td> |
|
22 |
<input type="radio" name="filter.active" id="active_active" value="active" checked> |
|
23 |
<label for="active_active">Aktiv</label> |
|
24 |
<input type="radio" name="filter.active" id="active_inactive" value="inactive"> |
|
25 |
<label for="active_inactive">Inaktiv</label> |
|
26 |
<input type="radio" name="filter.active" id="active_both" value="both"> |
|
27 |
<label for="active_both">Beide</label> |
|
28 |
</td> |
|
29 |
</tr> |
|
19 |
[% CUSTOM_VARIABLES_FILTER_CODE %] |
|
30 | 20 |
|
31 | 21 |
<tr> |
32 |
<td> </td>
|
|
22 |
<th>In Bericht aufnehmen</th>
|
|
33 | 23 |
<td> |
34 |
<input type="radio" name="filter.status" id="status_all" value="all" checked> |
|
35 |
<label for="status_all">Alle</label> |
|
36 |
<input type="radio" name="filter.status" id="status_orphaned" value="orphaned"> |
|
37 |
<label for="status_orphaned">Nie benutzt</label> |
|
24 |
<table> |
|
25 |
<tr> |
|
26 |
<td> |
|
27 |
<input type="radio" name="filter.active" id="active_active" value="active" checked> |
|
28 |
<label for="active_active">Aktiv</label> |
|
29 |
</td> |
|
30 |
<td> |
|
31 |
<input type="radio" name="filter.active" id="active_inactive" value="inactive"> |
|
32 |
<label for="active_inactive">Inaktiv</label> |
|
33 |
</td> |
|
34 |
<td> |
|
35 |
<input type="radio" name="filter.active" id="active_both" value="both"> |
|
36 |
<label for="active_both">Beide</label> |
|
37 |
</td> |
|
38 |
</tr> |
|
39 |
|
|
40 |
<tr> |
|
41 |
<td> |
|
42 |
<input type="radio" name="filter.status" id="status_all" value="all" checked> |
|
43 |
<label for="status_all">Alle</label> |
|
44 |
</td> |
|
45 |
<td> |
|
46 |
<input type="radio" name="filter.status" id="status_orphaned" value="orphaned"> |
|
47 |
<label for="status_orphaned">Nie benutzt</label> |
|
48 |
</td> |
|
49 |
</tr> |
|
50 |
|
|
51 |
[% CUSTOM_VARIABLES_INCLUSION_CODE %] |
|
52 |
|
|
53 |
</table> |
|
54 |
</td> |
|
38 | 55 |
</tr> |
39 | 56 |
</table> |
40 | 57 |
</p> |
templates/webpages/projects/search_master.html | ||
---|---|---|
16 | 16 |
<td><input name="filter.description" size="60"></td> |
17 | 17 |
</tr> |
18 | 18 |
|
19 |
<tr> |
|
20 |
<th> </th> |
|
21 |
<td> |
|
22 |
<input type="radio" name="filter.active" id="active_active" value="active" checked> |
|
23 |
<label for="active_active"><translate>Active</translate></label> |
|
24 |
<input type="radio" name="filter.active" id="active_inactive" value="inactive"> |
|
25 |
<label for="active_inactive"><translate>Inactive</translate></label> |
|
26 |
<input type="radio" name="filter.active" id="active_both" value="both"> |
|
27 |
<label for="active_both"><translate>Both</translate></label> |
|
28 |
</td> |
|
29 |
</tr> |
|
19 |
[% CUSTOM_VARIABLES_FILTER_CODE %] |
|
30 | 20 |
|
31 | 21 |
<tr> |
32 |
<td> </td>
|
|
22 |
<th><translate>Include in Report</translate></th>
|
|
33 | 23 |
<td> |
34 |
<input type="radio" name="filter.status" id="status_all" value="all" checked> |
|
35 |
<label for="status_all"><translate>All</translate></label> |
|
36 |
<input type="radio" name="filter.status" id="status_orphaned" value="orphaned"> |
|
37 |
<label for="status_orphaned"><translate>Orphaned</translate></label> |
|
24 |
<table> |
|
25 |
<tr> |
|
26 |
<td> |
|
27 |
<input type="radio" name="filter.active" id="active_active" value="active" checked> |
|
28 |
<label for="active_active"><translate>Active</translate></label> |
|
29 |
</td> |
|
30 |
<td> |
|
31 |
<input type="radio" name="filter.active" id="active_inactive" value="inactive"> |
|
32 |
<label for="active_inactive"><translate>Inactive</translate></label> |
|
33 |
</td> |
|
34 |
<td> |
|
35 |
<input type="radio" name="filter.active" id="active_both" value="both"> |
|
36 |
<label for="active_both"><translate>Both</translate></label> |
|
37 |
</td> |
|
38 |
</tr> |
|
39 |
|
|
40 |
<tr> |
|
41 |
<td> |
|
42 |
<input type="radio" name="filter.status" id="status_all" value="all" checked> |
|
43 |
<label for="status_all"><translate>All</translate></label> |
|
44 |
</td> |
|
45 |
<td> |
|
46 |
<input type="radio" name="filter.status" id="status_orphaned" value="orphaned"> |
|
47 |
<label for="status_orphaned"><translate>Orphaned</translate></label> |
|
48 |
</td> |
|
49 |
</tr> |
|
50 |
|
|
51 |
[% CUSTOM_VARIABLES_INCLUSION_CODE %] |
|
52 |
|
|
53 |
</table> |
|
54 |
</td> |
|
38 | 55 |
</tr> |
39 | 56 |
</table> |
40 | 57 |
</p> |
Auch abrufbar als: Unified diff
Benutzerdefinierte Variablen für Projekte implementiert.