ActionBar: Verwendung bei Preisregeln
authorMoritz Bunkus <m.bunkus@linet-services.de>
Thu, 12 Jan 2017 16:35:42 +0000 (17:35 +0100)
committerMoritz Bunkus <m.bunkus@linet-services.de>
Tue, 28 Feb 2017 09:43:59 +0000 (10:43 +0100)
SL/Controller/PriceRule.pm
templates/webpages/price_rule/_filter.html
templates/webpages/price_rule/form.html
templates/webpages/price_rule/report_bottom.html

index 2ddccf1..2ced8ed 100644 (file)
@@ -34,9 +34,11 @@ sub action_list {
 
   my $price_rules = $self->models->get;
 
+  $self->setup_search_action_bar;
+
   $self->prepare_report;
 
-  $self->report_generator_list_objects(report => $self->{report}, objects => $price_rules, $::form->{inline} ? (layout => 0, header => 0) : ());
+  $self->report_generator_list_objects(report => $self->{report}, objects => $price_rules, $::form->{inline} ? (layout => 0, header => 0) : (action_bar => 1));
 }
 
 sub action_new {
@@ -109,6 +111,7 @@ sub display_form {
   my ($self, %params) = @_;
   my $is_new  = !$self->price_rule->id;
   my $title   = $self->form_title(($is_new ? 'create' : 'edit'), $self->price_rule->type);
+  $self->setup_form_action_bar;
   $self->render('price_rule/form',
     title => $title,
     %params
@@ -300,4 +303,75 @@ sub init_models {
   );
 }
 
+sub setup_search_action_bar {
+  my ($self, %params) = @_;
+
+  return if $::form->{inline};
+
+  for my $bar ($::request->layout->get('actionbar')) {
+    $bar->add(
+      action => [
+        t8('Search'),
+        submit    => [ '#search_form', { action => 'PriceRule/list' } ],
+        accesskey => 'enter',
+      ],
+      action => [
+        t8('Reset'),
+        call => [ 'kivi.PriceRule.reset_search_form' ],
+      ],
+
+      combobox => [
+        action => [
+          t8('Add'),
+        ],
+        link => [
+          t8('New Sales Price Rule'),
+          link => $self->url_for(action => 'new', 'price_rule.type' => 'customer', callback => $self->models->get_callback),
+        ],
+        link => [
+          t8('New Purchase Price Rule'),
+          link => $self->url_for(action => 'new', 'price_rule.type' => 'vendor', callback => $self->models->get_callback),
+        ],
+      ], # end of combobox "Add"
+    );
+  }
+}
+
+sub setup_form_action_bar {
+  my ($self) = @_;
+
+  my $is_new = !$self->price_rule->id;
+
+  for my $bar ($::request->layout->get('actionbar')) {
+    $bar->add(
+      combobox => [
+        action => [
+          $is_new ? t8('Create') : t8('Save'),
+          submit    => [ '#form', { action => 'PriceRule/' . ($is_new ? 'create' : 'update') } ],
+          accesskey => 'enter',
+        ],
+        action => [
+          t8('Use as new'),
+          submit   => [ '#form', { action => 'PriceRule/create' } ],
+          disabled => $is_new ? t8('The object has not been saved yet.') : undef,
+        ],
+      ], # end of combobox "Save"
+
+      action => [
+        t8('Delete'),
+        submit   => [ '#form', { action => 'PriceRule/destroy' } ],
+        confirm  => t8('Do you really want to delete this object?'),
+        disabled => $is_new                   ? t8('The object has not been saved yet.')
+                  : $self->price_rule->in_use ? t8('This object has already been used.')
+                  :                             undef,
+      ],
+
+      link => [
+        t8('Abort'),
+        link => $self->url_for(action => 'list', 'filter.type' => $self->price_rule->type),
+      ],
+    );
+  }
+}
+
 1;
index 02c66db..826191b 100644 (file)
@@ -2,7 +2,7 @@
 [%- USE L %]
 [%- USE LxERP %]
 [%- USE HTML %]
-<form action='controller.pl' method='post'>
+<form action='controller.pl' method='post' id='search_form'>
 <div class='filter_toggle'>
 <a href='#' onClick='javascript:$(".filter_toggle").toggle()'>[% 'Show Filter' | $T8 %]</a>
   [% SELF.filter_summary | html %]
 
  </table>
 
-[% L.hidden_tag('action', 'PriceRule/dispatch') %]
 [% L.hidden_tag('sort_by', FORM.sort_by) %]
 [% L.hidden_tag('sort_dir', FORM.sort_dir) %]
 [% L.hidden_tag('page', FORM.page) %]
-[% L.input_tag('action_list', LxERP.t8('Continue'), type = 'submit', class='submit') %]
-
-<a class='interact cursor-pointer' onClick='javascript:$("#filter_table input").val("");$("#filter_table input[type=checkbox]").prop("checked", 0);$("#filter_table select").val("")'>[% 'Reset' | $T8 %]</a>
 
 </div>
 
index 51f6066..70d8cf6 100644 (file)
@@ -6,7 +6,7 @@
 
 [%- INCLUDE 'common/flash.html' %]
 
- <form method="post" action="controller.pl">
+ <form method="post" action="controller.pl" id="form">
   [% L.hidden_tag("price_rule.id",   SELF.price_rule.id) %]
   [% L.hidden_tag("price_rule.type", SELF.price_rule.type) %]
 
 <h3>[% 'Then' | $T8 %]:</h3>
 <div>[% 'Set (set to)' | $T8 %] [% L.select_tag('price_rule.price_type', SELF.all_price_types, default=SELF.price_rule.price_type) %] [% 'to (set to)' | $T8 %] [% L.input_tag('price_rule.price_or_discount_as_number', SELF.price_rule.price_or_discount_as_number) %] <a id='price_rule_price_type_help' class='interact cursor-help' title='[% 'Price type explanation' | $T8 %]'>[?]</a>
 </div>
-
-  <p>
-   [% L.hidden_tag("action", "PriceRule/dispatch") %]
-   [% L.hidden_tag("callback", FORM.callback) %]
-   [% L.submit_tag("action_" _  (SELF.price_rule.id ? "update" : "create"), LxERP.t8('Save')) %]
-   [%- IF SELF.price_rule.id %]
-    [% L.submit_tag("action_create", LxERP.t8('Save as new')) %]
-    [% L.submit_tag("action_destroy", LxERP.t8('Delete'), confirm=LxERP.t8('Do you really want to delete this object?')) IF !SELF.price_rule.in_use %]
-   [%- END %]
-   <a href="[% SELF.url_for(action='list', 'filter.type'=SELF.price_rule.type) %]">[%- LxERP.t8('Abort') %]</a>
-  </p>
  </form>
index f471ab7..e618212 100644 (file)
@@ -2,8 +2,3 @@
 [% USE T8 %]
 [% USE HTML %]
 [%- L.paginate_controls(models=SELF.models) %]
-
-[%- UNLESS FORM.inline %]
-<a href="[% SELF.url_for(action='new', 'price_rule.type'='customer', callback=SELF.models.get_callback) | html %]">[% 'New Sales Price Rule' | $T8 %]</a>
-<a href="[% SELF.url_for(action='new', 'price_rule.type'='vendor', callback=SELF.models.get_callback) | html %]">[% 'New Purchase Price Rule' | $T8 %]</a>
-[%- END %]