X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=bin%2Fmozilla%2Famcvar.pl;h=6c6865cc3da9e0053a4a66c42e6b210a0ba39a5a;hb=fe73e0d261229f181e8133283b530509773d2151;hp=795dd44b7f36ca65785d2f67a6aa5050fe7b9636;hpb=20bb56c1d57dde9492fef150edbfe0149a07ff08;p=kivitendo-erp.git diff --git a/bin/mozilla/amcvar.pl b/bin/mozilla/amcvar.pl index 795dd44b7..6c6865cc3 100644 --- a/bin/mozilla/amcvar.pl +++ b/bin/mozilla/amcvar.pl @@ -36,13 +36,17 @@ use SL::CVar; use SL::Form; use Data::Dumper; - -1; +use List::MoreUtils qw(any); require "bin/mozilla/common.pl"; +use strict; + +1; + # end of main +my $locale = $main::locale; our %translations = ('text' => $locale->text('Free-form text'), 'textfield' => $locale->text('Text field'), 'number' => $locale->text('Number'), @@ -54,6 +58,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,14 +71,24 @@ 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(); + $main::lxdebug->enter_sub(); - $auth->assert('config'); + my $form = $main::form; + my $locale = $main::locale; - $form->{module} ||= $form->{cvar_module}; + $main::auth->assert('config'); - my @configs = grep { $_->{module} eq $form->{module} } @{ CVar->get_configs() }; + $form->{module} = $form->{module} || $form->{cvar_module} || 'CT'; + $form->{module} = 'CT' unless _is_valid_module($form->{module}); + + my @configs = @{ CVar->get_configs(module => $form->{module}) }; my $previous_config; @@ -86,28 +105,35 @@ 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(); + $main::lxdebug->leave_sub(); } sub add_cvar_config { - $lxdebug->enter_sub(); + $main::lxdebug->enter_sub(); + + my $form = $main::form; - $auth->assert('config'); + $main::auth->assert('config'); - $form->{module} ||= $form->{cvar_module}; + $form->{module} = $form->{module} || $form->{cvar_module} || 'CT'; $form->{edit} = 0; display_cvar_config_form(); - $lxdebug->leave_sub(); + $main::lxdebug->leave_sub(); } sub edit_cvar_config { - $lxdebug->enter_sub(); + $main::lxdebug->enter_sub(); - $auth->assert('config'); + my $form = $main::form; + + $main::auth->assert('config'); my $config = CVar->get_config('id' => $form->{id}); @@ -116,13 +142,17 @@ sub edit_cvar_config { $form->{edit} = 1; display_cvar_config_form(); - $lxdebug->leave_sub(); + $main::lxdebug->leave_sub(); } sub save { - $lxdebug->enter_sub(); + $main::lxdebug->enter_sub(); + + my $form = $main::form; + my %myconfig = %main::myconfig; + my $locale = $main::locale; - $auth->assert('config'); + $main::auth->assert('config'); $form->isblank('name', $locale->text('The name is missing.')); $form->isblank('description', $locale->text('The description is missing.')); @@ -147,11 +177,14 @@ sub save { list_cvar_configs(); - $lxdebug->leave_sub(); + $main::lxdebug->leave_sub(); } sub delete { - $lxdebug->enter_sub(); + $main::lxdebug->enter_sub(); + + my $form = $main::form; + my $locale = $main::locale; CVar->delete_config('id' => $form->{id}); @@ -159,13 +192,17 @@ sub delete { list_cvar_configs(); - $lxdebug->leave_sub(); + $main::lxdebug->leave_sub(); } sub display_cvar_config_form { - $lxdebug->enter_sub(); + $main::lxdebug->enter_sub(); - $auth->assert('config'); + my $form = $main::form; + my %myconfig = %main::myconfig; + my $locale = $main::locale; + + $main::auth->assert('config'); my @types = map { { 'type' => $_, 'type_tr' => $translations{$_} } } @types; @@ -176,19 +213,37 @@ 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(); + $main::lxdebug->leave_sub(); } sub swap_cvar_configs { - $lxdebug->enter_sub(); + $main::lxdebug->enter_sub(); + + my $form = $main::form; + my %myconfig = %main::myconfig; AM->swap_sortkeys(\%myconfig, $form, 'custom_variable_configs'); list_cvar_configs(); - $lxdebug->leave_sub(); + $main::lxdebug->leave_sub(); +} + +sub dispatcher { + my $form = $main::form; + my $locale = $main::locale; + + 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;