ActionBar: CustomerVendor-Controller: API-Umstellung & Tooltips für deaktivierte
authorMoritz Bunkus <m.bunkus@linet-services.de>
Thu, 10 Nov 2016 14:15:39 +0000 (15:15 +0100)
committerMoritz Bunkus <m.bunkus@linet-services.de>
Tue, 28 Feb 2017 09:04:33 +0000 (10:04 +0100)
SL/Controller/CustomerVendor.pm

index e27b361..98b668e 100644 (file)
@@ -943,54 +943,78 @@ sub _pre_render {
   $::request->{layout}->add_javascripts('kivi.CustomerVendor.js');
   $::request->{layout}->add_javascripts('kivi.File.js');
 
+  $self->_setup_form_action_bar;
+}
+
+sub _setup_form_action_bar {
+  my ($self) = @_;
+
   for my $bar ($::request->layout->get('actionbar')) {
-    $bar->add_actions("combobox");
-    $bar->actions->[-1]->add_actions([ t8('Save'),
-      submit => [ '#form', { action_save           => 1 } ],
-      checks => [ 'check_taxzone_and_ustid' ],
-    ]);
-     $bar->actions->[-1]->add_actions([ t8('Save and Close'),
-      submit => [ '#form', { action_save_and_close => 1 } ],
-      checks => [ 'check_taxzone_and_ustid' ],
-    ]);
-    $bar->add_actions('combobox');
-    $bar->actions->[-1]->add_actions([ t8('Workflow'),
-      disabled => 1,
-    ]);
-    $bar->actions->[-1]->add_actions([ t8('Save and AP Transaction'),
-      submit => [ '#form', { action_save_and_ap_transaction => 1 } ],
-      checks => [ 'check_taxzone_and_ustid' ],
-    ]) if $self->is_vendor;
-    $bar->actions->[-1]->add_actions([ t8('Save and AR Transaction'),
-      submit => [ '#form', { action_save_and_ar_transaction => 1 } ],
-      checks => [ 'check_taxzone_and_ustid' ],
-    ]) if !$self->is_vendor;
-    $bar->actions->[-1]->add_actions([ t8('Save and Invoice'),
-      submit => [ '#form', { action_save_and_invoice => 1 } ],
-      checks => [ 'check_taxzone_and_ustid' ],
-    ]);
-    $bar->actions->[-1]->add_actions([ t8('Save and Order'),
-      submit => [ '#form', { action_save_and_order => 1 } ],
-      checks => [ 'check_taxzone_and_ustid' ],
-    ]);
-    $bar->actions->[-1]->add_actions([ t8('Save and RFQ'),
-      submit => [ '#form', { action_save_and_rfq => 1 } ],
-      checks => [ 'check_taxzone_and_ustid' ],
-    ]) if $self->is_vendor;
-    $bar->actions->[-1]->add_actions([ t8('Save and Quotation'),
-      submit => [ '#form', { action_save_and_quotation => 1 } ],
-      checks => [ 'check_taxzone_and_ustid' ],
-    ]) if !$self->is_vendor;
-    $bar->add_actions([ t8('Delete'),
-      submit => [ '#form', { action_delete         => 1 } ],
-      confirm => t8('Do you really want to delete this object?'),
-      disabled => !$self->{cv}->id || !$self->is_orphaned,
-    ]);
-    $bar->add_actions('separator');
-    $bar->add_actions([ t8('History'),
-      call     => [ 'kivi.CustomerVendor.showHistoryWindow', $self->{cv}->id ],
-      disabled => !$self->{cv}->id,
-    ]);
+    $bar->add(
+      combobox => [
+        action => [
+          t8('Save'),
+          submit => [ '#form', { action_save => 1 } ],
+          checks => [ 'check_taxzone_and_ustid' ],
+        ],
+        action => [
+          t8('Save and Close'),
+          submit => [ '#form', { action_save_and_close => 1 } ],
+          checks => [ 'check_taxzone_and_ustid' ],
+        ],
+      ], # end of combobox "Save"
+
+      combobox => [
+        action => [ t8('Workflow') ],
+        (action => [
+          t8('Save and AP Transaction'),
+          submit => [ '#form', { action_save_and_ap_transaction => 1 } ],
+          checks => [ 'check_taxzone_and_ustid' ],
+        ]) x !!$self->is_vendor,
+        (action => [
+          t8('Save and AR Transaction'),
+          submit => [ '#form', { action_save_and_ar_transaction => 1 } ],
+          checks => [ 'check_taxzone_and_ustid' ],
+        ]) x !$self->is_vendor,
+        action => [
+          t8('Save and Invoice'),
+          submit => [ '#form', { action_save_and_invoice => 1 } ],
+          checks => [ 'check_taxzone_and_ustid' ],
+        ],
+        action => [
+          t8('Save and Order'),
+          submit => [ '#form', { action_save_and_order => 1 } ],
+          checks => [ 'check_taxzone_and_ustid' ],
+        ],
+        (action => [
+          t8('Save and RFQ'),
+          submit => [ '#form', { action_save_and_rfq => 1 } ],
+          checks => [ 'check_taxzone_and_ustid' ],
+        ]) x !!$self->is_vendor,
+        (action => [
+          t8('Save and Quotation'),
+          submit => [ '#form', { action_save_and_quotation => 1 } ],
+          checks => [ 'check_taxzone_and_ustid' ],
+        ]) x !$self->is_vendor,
+      ], # end of combobox "Workflow"
+
+      action => [
+        t8('Delete'),
+        submit   => [ '#form', { action_delete => 1 } ],
+        confirm  => t8('Do you really want to delete this object?'),
+        disabled => !$self->{cv}->id    ? t8('This object has not been saved yet.')
+                  : !$self->is_orphaned ? t8('This object has already been used.')
+                  :                       undef,
+      ],
+
+      'separator',
+
+      action => [
+        t8('History'),
+        call     => [ 'kivi.CustomerVendor.showHistoryWindow', $self->{cv}->id ],
+        disabled => !$self->{cv}->id ? t8('This object has not been saved yet.') : undef,
+      ],
+    );
   }
 }