X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=bin%2Fmozilla%2Ffu.pl;h=d9001e35c9b99bcba26179dde43d4840094c4f29;hb=713de5ed35a8a1faea940354254c4e781631c495;hp=202a9d8068dbae13358ae7f9954bc0ad3b4a7f78;hpb=19688fcacc86e86dd6ff5c5427e3b50893bb60f0;p=kivitendo-erp.git diff --git a/bin/mozilla/fu.pl b/bin/mozilla/fu.pl index 202a9d806..d9001e35c 100644 --- a/bin/mozilla/fu.pl +++ b/bin/mozilla/fu.pl @@ -1,15 +1,22 @@ use POSIX qw(strftime); use SL::FU; +use SL::Locale::String qw(t8); use SL::ReportGenerator; require "bin/mozilla/reportgenerator.pl"; +use strict; + sub _collect_links { - $lxdebug->enter_sub(); + $main::lxdebug->enter_sub(); + + $main::auth->assert('productivity'); my $dest = shift; + my $form = $main::form; + $dest->{LINKS} = []; foreach my $i (1 .. $form->{trans_rowcount}) { @@ -18,17 +25,25 @@ sub _collect_links { push @{ $dest->{LINKS} }, { map { +"trans_$_" => $form->{"trans_${_}_$i"} } qw(id type info) }; } - $lxdebug->leave_sub(); + $main::lxdebug->leave_sub(); } sub add { - $lxdebug->enter_sub(); + $main::lxdebug->enter_sub(); + + $main::auth->assert('productivity'); + + my $form = $main::form; + my %myconfig = %main::myconfig; + my $locale = $main::locale; _collect_links($form); $form->get_employee($form->get_standard_dbh(\%myconfig)); $form->{created_for_user} = $form->{employee_id}; + $form->{subject} = $form->{trans_subject_1} if $form->{trans_subject_1}; + my $link_details; if (0 < scalar @{ $form->{LINKS} }) { @@ -43,11 +58,16 @@ sub add { display_form(); - $lxdebug->leave_sub(); + $main::lxdebug->leave_sub(); } sub edit { - $lxdebug->enter_sub(); + $main::lxdebug->enter_sub(); + + $main::auth->assert('productivity'); + + my $form = $main::form; + my $locale = $main::locale; my $ref = FU->retrieve('id' => $form->{id}); @@ -65,11 +85,15 @@ sub edit { display_form(); - $lxdebug->leave_sub(); + $main::lxdebug->leave_sub(); } sub display_form { - $lxdebug->enter_sub(); + $main::lxdebug->enter_sub(); + + $main::auth->assert('productivity'); + + my $form = $main::form; $form->get_lists("employees" => "EMPLOYEES"); @@ -78,16 +102,21 @@ sub display_form { $params{trans_id} = $form->{LINKS}->[0]->{trans_id} if (@{ $form->{LINKS} }); $form->{FOLLOW_UPS} = FU->follow_ups(%params); - $form->{jsscript} = 1; + setup_fu_display_form_action_bar() unless $::form->{POPUP_MODE}; - $form->header(); + $form->header(no_layout => $::form->{POPUP_MODE}); print $form->parse_html_template('fu/add_edit'); - $lxdebug->leave_sub(); + $main::lxdebug->leave_sub(); } sub save_follow_up { - $lxdebug->enter_sub(); + $main::lxdebug->enter_sub(); + + $main::auth->assert('productivity'); + + my $form = $main::form; + my $locale = $main::locale; $form->isblank('created_for_user', $locale->text('You must chose a user.')); $form->isblank('follow_up_date', $locale->text('The follow-up date is missing.')); @@ -102,7 +131,7 @@ sub save_follow_up { if ($form->{POPUP_MODE}) { $form->header(); print $form->parse_html_template('fu/close_window'); - exit 0; + $::dispatcher->end_request; } $form->{SAVED_MESSAGE} = $locale->text('Follow-Up saved.'); @@ -117,11 +146,16 @@ sub save_follow_up { report(); - $lxdebug->leave_sub(); + $main::lxdebug->leave_sub(); } sub finish { - $lxdebug->enter_sub(); + $main::lxdebug->enter_sub(); + + $main::auth->assert('productivity'); + + my $form = $main::form; + my $locale = $main::locale; if ($form->{id}) { my $ref = FU->retrieve('id' => $form->{id}); @@ -143,18 +177,23 @@ sub finish { if ($form->{POPUP_MODE}) { $form->header(); print $form->parse_html_template('fu/close_window'); - exit 0; + $::dispatcher->end_request; } $form->redirect() if ($form->{callback}); report(); - $lxdebug->leave_sub(); + $main::lxdebug->leave_sub(); } sub delete { - $lxdebug->enter_sub(); + $main::lxdebug->enter_sub(); + + $main::auth->assert('productivity'); + + my $form = $main::form; + my $locale = $main::locale; if ($form->{id}) { my $ref = FU->retrieve('id' => $form->{id}); @@ -176,32 +215,44 @@ sub delete { if ($form->{POPUP_MODE}) { $form->header(); print $form->parse_html_template('fu/close_window'); - exit 0; + $::dispatcher->end_request; } $form->redirect() if ($form->{callback}); report(); - $lxdebug->leave_sub(); + $main::lxdebug->leave_sub(); } sub search { - $lxdebug->enter_sub(); + $main::lxdebug->enter_sub(); + + $main::auth->assert('productivity'); + + my $form = $main::form; + my $locale = $main::locale; $form->get_lists("employees" => "EMPLOYEES"); - $form->{jsscript} = 1; $form->{title} = $locale->text('Follow-Ups'); + setup_fu_search_action_bar(); $form->header(); print $form->parse_html_template('fu/search'); - $lxdebug->leave_sub(); + $main::lxdebug->leave_sub(); } sub report { - $lxdebug->enter_sub(); + $main::lxdebug->enter_sub(); + + $main::auth->assert('productivity'); + + my $form = $main::form; + my %myconfig = %main::myconfig; + my $locale = $main::locale; + my $cgi = $::request->{cgi}; my @report_params = qw(created_for subject body reference follow_up_date_from follow_up_date_to itime_from itime_to due_only all_users done not_done); @@ -270,6 +321,7 @@ sub report { 'attachment_basename' => $locale->text('follow_up_list') . strftime('_%Y%m%d', localtime time), ); $report->set_options_from_form(); + $locale->set_numberformat_wo_thousands_separator(\%myconfig) if lc($report->{options}->{output_format}) eq 'csv'; my $idx = 0; my $callback = build_std_url('action=report', grep { $form->{$_} } @report_params); @@ -301,20 +353,25 @@ sub report { $report->add_data($row); } + setup_fu_report_action_bar(); $report->generate_with_headers(); - $lxdebug->leave_sub(); + $main::lxdebug->leave_sub(); } sub report_for_todo_list { - $lxdebug->enter_sub(); + $main::lxdebug->enter_sub(); + + $main::auth->assert('productivity'); + + my $form = $main::form; my @report_params = qw(created_for subject body reference follow_up_date_from follow_up_date_to itime_from itime_to due_only all_users done not_done); my %params = ( 'due_only' => 1, 'not_done' => 1, - 'created_for_login' => $form->{login}, + 'created_for_login' => $::myconfig{login}, ); my $follow_ups = FU->follow_ups(%params); @@ -338,30 +395,42 @@ sub report_for_todo_list { 'edit_url' => $edit_url, }); } - $lxdebug->leave_sub(); + $main::lxdebug->leave_sub(); return $content; } sub edit_access_rights { - $lxdebug->enter_sub(); + $main::lxdebug->enter_sub(); + + $main::auth->assert('productivity'); + + my $form = $main::form; + my $locale = $main::locale; my $access = FU->retrieve_access_rights(); - $form->get_lists("employees" => "EMPLOYEES"); + $form->{EMPLOYEES} = SL::DB::Manager::Employee->get_all_sorted(query => [ deleted => 0 ]); map { $_->{access} = $access->{$_->{id}} } @{ $form->{EMPLOYEES} }; $form->{title} = $locale->text('Edit Access Rights for Follow-Ups'); + setup_fu_edit_access_rights_action_bar(); + $form->header(); print $form->parse_html_template('fu/edit_access_rights'); - $lxdebug->leave_sub(); + $main::lxdebug->leave_sub(); } sub save_access_rights { - $lxdebug->enter_sub(); + $main::lxdebug->enter_sub(); + + $main::auth->assert('productivity'); + + my $form = $main::form; + my $locale = $main::locale; my %access; @@ -376,26 +445,33 @@ sub save_access_rights { $form->{SAVED_MESSAGE} = $locale->text('The access rights have been saved.'); edit_access_rights(); - $lxdebug->leave_sub(); + $main::lxdebug->leave_sub(); } sub update { - call_sub($form->{nextsub}); + call_sub($main::form->{nextsub}); } sub continue { - call_sub($form->{nextsub}); + call_sub($main::form->{nextsub}); } sub save { - if ($form->{save_nextsub}) { - call_sub($form->{save_nextsub}); + $main::auth->assert('productivity'); + + if ($main::form->{save_nextsub}) { + call_sub($main::form->{save_nextsub}); } else { save_follow_up(); } } sub dispatcher { + $main::lxdebug->enter_sub(); + + my $form = $main::form; + my $locale = $main::locale; + foreach my $action (qw(finish save delete)) { if ($form->{"action_${action}"}) { call_sub($action); @@ -408,4 +484,77 @@ sub dispatcher { $form->error($locale->text('No action defined.')); } +sub setup_fu_search_action_bar { + my %params = @_; + + for my $bar ($::request->layout->get('actionbar')) { + $bar->add( + action => [ + t8('Show'), + submit => [ '#form', { action => "report" } ], + accesskey => 'enter', + ], + ); + } +} + +sub setup_fu_display_form_action_bar { + my %params = @_; + + for my $bar ($::request->layout->get('actionbar')) { + $bar->add( + action => [ + t8('Save'), + submit => [ '#form', { action => "save" } ], + accesskey => 'enter', + ], + action => [ + t8('Finish'), + submit => [ '#form', { action => "finish" } ], + disabled => !$::form->{id} ? t8('The object has not been saved yet.') : undef, + ], + action => [ + t8('Delete'), + submit => [ '#form', { action => "delete" } ], + disabled => !$::form->{id} ? t8('The object has not been saved yet.') : undef, + confirm => t8('Do you really want to delete this object?'), + ], + ); + } +} + +sub setup_fu_report_action_bar { + my %params = @_; + + for my $bar ($::request->layout->get('actionbar')) { + $bar->add( + action => [ + t8('Finish'), + submit => [ '#form', { action => "finish" } ], + checks => [ [ 'kivi.check_if_entries_selected', '[name^=selected_]' ] ], + ], + action => [ + t8('Delete'), + submit => [ '#form', { action => "delete" } ], + checks => [ [ 'kivi.check_if_entries_selected', '[name^=selected_]' ] ], + confirm => t8('Do you really want to delete the selected objects?'), + ], + ); + } +} + +sub setup_fu_edit_access_rights_action_bar { + my %params = @_; + + for my $bar ($::request->layout->get('actionbar')) { + $bar->add( + action => [ + t8('Save'), + submit => [ '#form', { action => "save_access_rights" } ], + accesskey => 'enter', + ], + ); + } +} + 1;