commit 89ac3ab19c933e449f5b4f7b02f3511cc0e9de16
Author: Sven Schöling <s.schoeling@googlemail.com>
Date:   Tue Oct 25 16:04:02 2016 +0200

    actionbar: do

diff --git a/bin/mozilla/do.pl b/bin/mozilla/do.pl
index 437e9e2f6..3d9d266ec 100644
--- a/bin/mozilla/do.pl
+++ b/bin/mozilla/do.pl
@@ -309,6 +309,90 @@ sub form_header {
 
   $::form->{HIDDENS} = [ map { +{ name => $_, value => $::form->{$_} } } (@custom_hidden) ];
 
+  my @transfer_qty   = qw(kivi.SalesPurchase.delivery_order_check_transfer_qty);
+  my @req_trans_desc = qw(kivi.SalesPurchase.check_transaction_description) x!!$::instance_conf->get_require_transaction_description_ps;
+
+  for my $bar ($::request->layout->get('actionbar')) {
+    $bar->add_actions([ t8('Update'),
+      submit => [ '#form', { action_update         => 1 } ],
+    ]);
+    $bar->add_actions("combobox");
+    $bar->actions->[-1]->add_actions([ t8('Save'),
+      submit => [ '#form', { action_save           => 1 } ],
+      checks => [ @req_trans_desc ],
+      disabled => $::form->{delivered},
+    ]);
+    $bar->actions->[-1]->add_actions([ t8('Save as new'),
+      submit => [ '#form', { action_save_as_new    => 1 } ],
+      checks => [ @req_trans_desc ],
+      disabled => !$::form->{id},
+    ]);
+    $bar->actions->[-1]->add_actions([ t8('mark as paid'),
+      submit => [ '#form', { action_mark_closed    => 1 } ],
+      checks => [ @req_trans_desc ],
+      confirm => t8('This will remove the delivery order from showing as open even if contents are not delivered. Proceed?'),
+      disabled => !$::form->{id} || $::form->{closed},
+    ]);
+    $bar->add_actions([ t8('Delete'),
+      submit => [ '#form', { action_delete         => 1 } ],
+      confirm => t8('Do you really want to delete this object?'),
+      disabled => !$::form->{id} || $::form->{delivered}
+               || ($::form->{vc} eq 'customer' && !$::instance_conf->get_sales_delivery_order_show_delete)
+               || ($::form->{vc} eq 'vendor'   && !$::instance_conf->get_purchase_delivery_order_show_delete),
+    ]);
+    $bar->add_actions("combobox");
+    $bar->actions->[-1]->add_actions([ t8('Transfer out'),
+      submit => [ '#form', { action_transfer_out    => 1 } ],
+      checks => [ @req_trans_desc, @transfer_qty ],
+      disabled => $::form->{delivered},
+    ]) if $::form->{vc} eq 'customer';
+    $bar->actions->[-1]->add_actions([ t8('Transfer out via default'),
+      submit => [ '#form', { action_transfer_out_default    => 1 } ],
+      checks => [ @req_trans_desc, @transfer_qty ],
+      disabled => $::form->{delivered},
+    ]) if $::form->{vc} eq 'customer' && $::instance_conf->get_transfer_default;
+    $bar->actions->[-1]->add_actions([ t8('Transfer in'),
+      submit => [ '#form', { action_transfer_in    => 1 } ],
+      checks => [ @req_trans_desc, @transfer_qty ],
+      disabled => $::form->{delivered},
+    ]) if $::form->{vc} eq 'vendor';
+    $bar->actions->[-1]->add_actions([ t8('Transfer in via default'),
+      submit => [ '#form', { action_transfer_in_default    => 1 } ],
+      checks => [ @req_trans_desc, @transfer_qty ],
+      disabled => $::form->{delivered},
+    ]) if $::form->{vc} eq 'vendor' && $::instance_conf->get_transfer_default;
+
+    $bar->add_actions("separator");
+    $bar->add_actions([ t8('Invoice'),
+      submit => [ '#form', { action_invoice         => 1 } ],
+      disabled => !$::form->{id},
+    ]);
+    $bar->add_actions('combobox');
+    $bar->actions->[-1]->add_actions([ t8('Export'),
+      disabled => 1,
+    ]);
+    $bar->actions->[-1]->add_actions([ t8('Print'),
+      submit => [ '#form', { action_print          => 1 } ],
+      checks => [ @req_trans_desc ],
+    ]);
+    $bar->actions->[-1]->add_actions([ t8('E Mail'),
+      submit => [ '#form', { action_print          => 1 } ],
+      checks => [ @req_trans_desc ],
+    ]);
+    $bar->add_actions('combobox');
+    $bar->actions->[-1]->add_actions([ t8('more'),
+      disabled => 1,
+    ]);
+    $bar->actions->[-1]->add_actions([ t8('History'),
+      call     => [ 'set_history_window', $::form->{id} * 1, 'id' ],
+      disabled => !$::form->{id},
+    ]);
+    $bar->actions->[-1]->add_actions([ t8('Follow-Up'),
+      call     => [ 'follow_up_window' ],
+      disabled => !$::form->{id},
+    ]);
+  }
+
   $form->header();
   # Fix für Bug 1082 Erwartet wird: 'abteilungsNAME--abteilungsID'
   # und Erweiterung für Bug 1760:
diff --git a/templates/webpages/do/form_footer.html b/templates/webpages/do/form_footer.html
index 6c8e0c62e..a1920c81c 100644
--- a/templates/webpages/do/form_footer.html
+++ b/templates/webpages/do/form_footer.html
@@ -66,50 +66,7 @@
 
   <p>[% PRINT_OPTIONS %]</p>
 
-  <p>
-   [% 'Edit the Delivery Order' | $T8 %]<br>
    <input type="hidden" name="action" value="dispatcher">
-   <input class="submit" type="submit" name="action_update" id="update_button" value="[% 'Update' | $T8 %]">
-   [%- UNLESS delivered %]
-   [%- IF vc == 'customer' %]
-   <input class="submit" type="submit" name="action_ship_to" value="[% 'Ship to' | $T8 %]">
-   [%- END %]
-   [%- END %]
-   <input class="submit" type="submit" name="action_print" value="[% 'Print' | $T8 %]" data-require-transaction-description="[% INSTANCE_CONF.get_require_transaction_description_ps %]">
-   <input class="submit" type="submit" name="action_e_mail" value="[% 'E-mail' | $T8 %]" data-require-transaction-description="[% INSTANCE_CONF.get_require_transaction_description_ps %]">
-   [%- UNLESS delivered %]
-   <input class="submit" type="submit" name="action_save" value="[% 'Save' | $T8 %]" data-require-transaction-description="[% INSTANCE_CONF.get_require_transaction_description_ps %]">
-   [%- IF vc == 'customer' %]
-   <input class="submit" type="submit" name="action_transfer_out" value="[% 'Transfer out' | $T8 %]" data-check-transfer-qty="1" data-require-transaction-description="[% INSTANCE_CONF.get_require_transaction_description_ps %]">
-   [% IF transfer_default %]
-   <input class="submit" type="submit" name="action_transfer_out_default" value="[% 'Transfer out via default' | $T8 %]" data-require-transaction-description="[% INSTANCE_CONF.get_require_transaction_description_ps %]">
-   [%- END %]
-   [%- ELSE %]
-   <input class="submit" type="submit" name="action_transfer_in" value="[% 'Transfer in' | $T8 %]" data-check-transfer-qty="1" data-require-transaction-description="[% INSTANCE_CONF.get_require_transaction_description_ps %]">
-   [% IF transfer_default %]
-   <input class="submit" type="submit" name="action_transfer_in_default" value="[% 'Transfer in via default' | $T8 %]" data-require-transaction-description="[% INSTANCE_CONF.get_require_transaction_description_ps %]">
-   [%- END %]
-   [%- END %]
-   [%- END %]
-   [%- IF id %]
-     <input type="button" class="submit" onclick="follow_up_window()" value="[% 'Follow-Up' | $T8 %]">
-   [%- UNLESS closed %]
-   <input class="submit" type="submit" name="action_mark_closed" value="[% 'Mark closed' | $T8 %]" data-require-transaction-description="[% INSTANCE_CONF.get_require_transaction_description_ps %]">
-   [%- END %]
-   <input type="button" class="submit" onclick="set_history_window([% id %], 'id');" name="history" id="history" value="[% 'history' | $T8 %]">
-   [%- END %]
-  </p>
-
-  [%- IF id %]
-  <p>
-   [% 'Workflow Delivery Order' | $T8 %]<br>
-   <input class="submit" type="submit" name="action_save_as_new" value="[% 'Save as new' | $T8 %]" data-require-transaction-description="[% INSTANCE_CONF.get_require_transaction_description_ps %]">
-   [% UNLESS delivered || (vc == 'customer' && !INSTANCE_CONF.get_sales_delivery_order_show_delete) || (vc == 'vendor' && !INSTANCE_CONF.get_purchase_delivery_order_show_delete) %]
-    [% L.submit_tag('action_delete', LxERP.t8('Delete'), confirm=LxERP.t8('Are you sure?')) %]
-   [% END %]
-   <input class="submit" type="submit" name="action_invoice" value="[% 'Invoice' | $T8 %]">
-  </p>
-  [%- END %]
 
   <input type="hidden" name="rowcount" value="[% HTML.escape(rowcount) %]">
   <input name="callback" type="hidden" value="[% HTML.escape(callback) %]">
diff --git a/templates/webpages/do/form_header.html b/templates/webpages/do/form_header.html
index cd8c6a46a..19d8f50c0 100644
--- a/templates/webpages/do/form_header.html
+++ b/templates/webpages/do/form_header.html
@@ -37,7 +37,7 @@
  <p><font color="#ff0000">[% ERRORS.join('<br>') %]</font></p>
  [%- END %]
 
- <form method="post" name="do" action="do.pl">
+ <form id="form" method="post" name="do" action="do.pl">
 
  <div id="do_tabs" class="tabwidget">
   <ul>
@@ -162,6 +162,7 @@
           [%- ELSE %]
             [% shiptos = [ [ "", LxERP.t8("No/individual shipping address") ] ] ;
                L.select_tag('shipto_id', shiptos.import(ALL_SHIPTO), default=shipto_id, value_key='shipto_id', title_key='displayable_id', style='width: 250px') %]
+            [% L.submit_tag('action_ship_to', LxERP.t8('Ship to')) %]
           [%- END %]
          </td>
         </tr>
