Merge branch 'b-3.6.1' of ../kivitendo-erp_20220811
[kivitendo-erp.git] / bin / mozilla / fu.pl
index 5cd6a07..b987d1f 100644 (file)
@@ -1,6 +1,7 @@
 use POSIX qw(strftime);
 
 use SL::FU;
+use SL::Locale::String qw(t8);
 use SL::ReportGenerator;
 
 require "bin/mozilla/reportgenerator.pl";
@@ -41,6 +42,8 @@ sub add {
   $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} }) {
@@ -97,7 +100,12 @@ sub display_form {
   my %params;
   $params{not_id}     = $form->{id} if ($form->{id});
   $params{trans_id}   = $form->{LINKS}->[0]->{trans_id} if (@{ $form->{LINKS} });
-  $form->{FOLLOW_UPS} = FU->follow_ups(%params);
+
+  $form->{sort}               = 'follow_up_date';
+  $form->{FOLLOW_UPS_DONE}    = FU->follow_ups(%params,     done => 1);
+  $form->{FOLLOW_UPS_PENDING} = FU->follow_ups(%params, not_done => 1);
+
+  setup_fu_display_form_action_bar() unless $::form->{POPUP_MODE};
 
   $form->header(no_layout => $::form->{POPUP_MODE});
   print $form->parse_html_template('fu/add_edit');
@@ -126,7 +134,7 @@ sub save_follow_up {
   if ($form->{POPUP_MODE}) {
     $form->header();
     print $form->parse_html_template('fu/close_window');
-    ::end_of_request();
+    $::dispatcher->end_request;
   }
 
   $form->{SAVED_MESSAGE} = $locale->text('Follow-Up saved.');
@@ -172,7 +180,7 @@ sub finish {
   if ($form->{POPUP_MODE}) {
     $form->header();
     print $form->parse_html_template('fu/close_window');
-    ::end_of_request();
+    $::dispatcher->end_request;
   }
 
   $form->redirect() if ($form->{callback});
@@ -210,7 +218,7 @@ sub delete {
   if ($form->{POPUP_MODE}) {
     $form->header();
     print $form->parse_html_template('fu/close_window');
-    ::end_of_request();
+    $::dispatcher->end_request;
   }
 
   $form->redirect() if ($form->{callback});
@@ -232,6 +240,7 @@ sub search {
 
   $form->{title}    = $locale->text('Follow-Ups');
 
+  setup_fu_search_action_bar();
   $form->header();
   print $form->parse_html_template('fu/search');
 
@@ -347,6 +356,7 @@ sub report {
     $report->add_data($row);
   }
 
+  setup_fu_report_action_bar();
   $report->generate_with_headers();
 
   $main::lxdebug->leave_sub();
@@ -409,6 +419,8 @@ sub edit_access_rights {
 
   $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');
 
@@ -475,4 +487,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;