Ungültige Custom Variablen in der Verkaufsmaske ausblenden.
authorSven Schöling <s.schoeling@linet-services.de>
Wed, 30 Sep 2009 15:19:22 +0000 (17:19 +0200)
committerSven Schöling <s.schoeling@linet-services.de>
Wed, 30 Sep 2009 15:19:22 +0000 (17:19 +0200)
SL/CVar.pm
bin/mozilla/ic.pl
bin/mozilla/io.pl
locale/de/all
templates/webpages/amcvar/render_checkboxes_de.html [new file with mode: 0644]
templates/webpages/amcvar/render_checkboxes_master.html [new file with mode: 0644]
templates/webpages/amcvar/render_inputs_de.html
templates/webpages/amcvar/render_inputs_master.html

index 703bbfe..d50f2fa 100644 (file)
@@ -360,11 +360,12 @@ sub render_inputs {
   my %options  = ( name_prefix       => "$params{name_prefix}",
                    name_postfix      => "$params{name_postfix}",
                    hide_non_editable => $params{hide_non_editable},
+                   show_disabled_message => $params{show_disabled_message},
                  );
 
   foreach my $var (@{ $params{variables} }) {
-    $var->{HTML_CODE} = $form->parse_html_template('amcvar/render_inputs', { 'var' => $var, %options });
-    $var->{VALID_BOX} = "<input type=checkbox name='$options{name_prefix}cvar_$var->{name}$options{name_postfix}_valid'@{[$var->{valid} ? ' checked' : '']}>";
+    $var->{HTML_CODE} = $form->parse_html_template('amcvar/render_inputs',     { var => $var, %options });
+    $var->{VALID_BOX} = $form->parse_html_template('amcvar/render_checkboxes', { var => $var, %options });
   }
 
   $main::lxdebug->leave_sub();
index 8cbb547..52d5c8b 100644 (file)
@@ -1545,7 +1545,8 @@ sub form_header {
 
   $form->{CUSTOM_VARIABLES} = CVar->get_custom_variables('module' => 'IC', 'trans_id' => $form->{id});
 
-  CVar->render_inputs('variables' => $form->{CUSTOM_VARIABLES}) if (scalar @{ $form->{CUSTOM_VARIABLES} });
+  CVar->render_inputs('variables' => $form->{CUSTOM_VARIABLES}, show_disabled_message => 1)
+    if (scalar @{ $form->{CUSTOM_VARIABLES} });
 
   $form->header;
   #print $form->parse_html_template('ic/form_header', { ALL_PRICE_FACTORS => $form->{ALL_PRICE_FACTORS},
index 51326c4..dba4ce4 100644 (file)
@@ -372,7 +372,7 @@ sub display_row {
     $form->{invsubtotal} += $linetotal;
 
     # Benutzerdefinierte Variablen für Waren/Dienstleistungen/Erzeugnisse
-    _render_custom_variables_inputs(ROW2 => \@ROW2, row => $i);
+    _render_custom_variables_inputs(ROW2 => \@ROW2, row => $i, part_id => $form->{"id_$i"});
 
     push @ROWS, { ROW1 => \@ROW1, ROW2 => \@ROW2, HIDDENS => \@HIDDENS, colspan => $colspan, error => $form->{"row_error_$i"}, };
   }
@@ -1980,6 +1980,10 @@ sub _render_custom_variables_inputs {
   }
 
   foreach my $cvar (@{ $form->{CVAR_CONFIGS}->{IC} }) {
+    $cvar->{valid} = $params{part_id}
+      ? CVar->get_custom_variables_validity(config_id => $cvar->{id}, trans_id => $params{part_id})
+      : $vcar->{valid};
+
     $cvar->{value} = $form->{"ic_cvar_" . $cvar->{name} . "_$params{row}"};
   }
 
@@ -1991,7 +1995,7 @@ sub _render_custom_variables_inputs {
   my $num_visible_cvars = 0;
   foreach my $cvar (@{ $form->{CVAR_CONFIGS}->{IC} }) {
     my $description = '';
-    if ($cvar->{flag_editable}) {
+    if ($cvar->{flag_editable} && $cvar->{valid}) {
       $num_visible_cvars++;
       $description = $cvar->{description} . ' ';
     }
index 881e365..b40c13a 100644 (file)
@@ -643,6 +643,7 @@ $self->{texts} = {
   'Edit the stylesheet'         => 'Stilvorlage bearbeiten',
   'Edit units'                  => 'Einheiten bearbeiten',
   'Editable'                    => 'Bearbeitbar',
+  'Element disabled'            => 'Element deaktiviert',
   'Employee'                    => 'Bearbeiter',
   'Empty transaction!'          => 'Buchung ist leer!',
   'Enter a description for this new draft.' => 'Geben Sie eine Beschreibung f&uuml;r diesen Entwurf ein.',
diff --git a/templates/webpages/amcvar/render_checkboxes_de.html b/templates/webpages/amcvar/render_checkboxes_de.html
new file mode 100644 (file)
index 0000000..3a703d8
--- /dev/null
@@ -0,0 +1,3 @@
+[%- USE HTML %]
+[%- SET var_valid = HTML.escape(name_prefix) _ "cvar_" _ HTML.escape(var.name) _ HTML.escape(name_postfix) _ '_valid' -%]
+<input type=checkbox name='[% var_valid %]'[% IF var.valid %] checked[% END %]>
diff --git a/templates/webpages/amcvar/render_checkboxes_master.html b/templates/webpages/amcvar/render_checkboxes_master.html
new file mode 100644 (file)
index 0000000..3a703d8
--- /dev/null
@@ -0,0 +1,3 @@
+[%- USE HTML %]
+[%- SET var_valid = HTML.escape(name_prefix) _ "cvar_" _ HTML.escape(var.name) _ HTML.escape(name_postfix) _ '_valid' -%]
+<input type=checkbox name='[% var_valid %]'[% IF var.valid %] checked[% END %]>
index ac2a1b8..50fb4cb 100644 (file)
@@ -5,6 +5,11 @@
 [%- IF hide_non_editable && !var.flag_editable %]
 <input type="hidden" name="[% var_name %]" value="[% HTML.escape(var.value) %]">
 
+[%- ELSIF !var.valid %]
+  [%- IF show_disabled_message %]
+<i>Element deaktiviert</i>
+  [%- END %]
+
 [%- ELSIF var.type == 'bool' %]
 <input type="checkbox" name="[% var_name %]" value="1"[% IF var.value %] checked[% END %]>
 
index ac2a1b8..ed746a5 100644 (file)
@@ -5,6 +5,11 @@
 [%- IF hide_non_editable && !var.flag_editable %]
 <input type="hidden" name="[% var_name %]" value="[% HTML.escape(var.value) %]">
 
+[%- ELSIF !var.valid %]
+  [%- IF show_disabled_message %]
+<i><translate>Element disabled</translate></i>
+  [%- END %]
+
 [%- ELSIF var.type == 'bool' %]
 <input type="checkbox" name="[% var_name %]" value="1"[% IF var.value %] checked[% END %]>