X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=bin%2Fmozilla%2Famcvar.pl;h=a3e281ff67d805655b844211a2063fa49cd6ae73;hb=3eefb02ff31b84dab46ce3ae391e9de1b3fa25f1;hp=47c821c96a549b4895d36ed41fd208d91b206713;hpb=b2f44e3d98cbbd622b1497c23602eb79e71a3c64;p=kivitendo-erp.git diff --git a/bin/mozilla/amcvar.pl b/bin/mozilla/amcvar.pl index 47c821c96..a3e281ff6 100644 --- a/bin/mozilla/amcvar.pl +++ b/bin/mozilla/amcvar.pl @@ -36,6 +36,7 @@ use SL::CVar; use SL::Form; use Data::Dumper; +use List::MoreUtils qw(any); 1; @@ -54,6 +55,11 @@ our %translations = ('text' => $locale->text('Free-form text'), our @types = qw(text textfield number date bool select); # timestamp +our @modules = ({ module => 'CT', description => $locale->text('Customers and vendors') }, + { module => 'IC', description => $locale->text('Parts, services and assemblies') }, + { module => 'Projects', description => $locale->text('Projects') }, + ); + sub add { add_cvar_config(); } @@ -62,28 +68,27 @@ sub edit { edit_cvar_config(); } +sub _is_valid_module { + my $module = shift; + + return any { $_->{module} eq $module } @modules; +} + sub list_cvar_configs { $lxdebug->enter_sub(); $auth->assert('config'); - $form->{module} ||= $form->{cvar_module}; + $form->{module} = $form->{module} || $form->{cvar_module} || 'CT'; + $form->{module} = 'CT' unless _is_valid_module($form->{module}); - my @configs = grep { $_->{module} eq $form->{module} } @{ CVar->get_configs() }; + my @configs = @{ CVar->get_configs(module => $form->{module}) }; my $previous_config; foreach my $config (@configs) { $config->{type_tr} = $translations{$config->{type}}; - foreach my $flag (split m/:/, $config->{flags}) { - if ($flag =~ m/(.*?)=(.*)/) { - $config->{"flag_${1}"} = $2; - } else { - $config->{"flag_${flag}"} = 1; - } - } - if ($previous_config) { $previous_config->{next_id} = $config->{id}; $config->{previous_id} = $previous_config->{id}; @@ -94,7 +99,10 @@ sub list_cvar_configs { $form->{title} = $locale->text('List of custom variables'); $form->header(); - print $form->parse_html_template('amcvar/list_cvar_configs', { 'CONFIGS' => \@configs }); + print $form->parse_html_template('amcvar/list_cvar_configs', { CONFIGS => \@configs, + MODULES => \@modules }); + + $main::lxdebug->dump(0, "modules", \@modules); $lxdebug->leave_sub(); } @@ -104,7 +112,7 @@ sub add_cvar_config { $auth->assert('config'); - $form->{module} ||= $form->{cvar_module}; + $form->{module} = $form->{module} || $form->{cvar_module} || 'CT'; $form->{edit} = 0; display_cvar_config_form(); @@ -184,7 +192,8 @@ sub display_cvar_config_form { $form->{title} = $form->{edit} ? $locale->text("Edit custom variable") : $locale->text("Add custom variable"); $form->header(); - print $form->parse_html_template("amcvar/display_cvar_config_form", { 'TYPES' => \@types }); + print $form->parse_html_template("amcvar/display_cvar_config_form", { TYPES => \@types, + MODULES => \@modules }); $lxdebug->leave_sub(); } @@ -199,4 +208,15 @@ sub swap_cvar_configs { $lxdebug->leave_sub(); } +sub dispatcher { + foreach my $action (qw(list_cvar_configs add_cvar_config)) { + if ($form->{"action_${action}"}) { + call_sub($action); + return; + } + } + + $form->error($locale->text('No action defined.')); +} + 1;