From 5f1360e2260ec216ad09d8fd7cbce3bda66fdb1e Mon Sep 17 00:00:00 2001 From: luisramos0 Date: Tue, 29 Oct 2019 15:47:09 +0000 Subject: [PATCH] Move incoming and outgoing parts of the (not simple) OC new and edit pages to separate routes and views to make this page a multi step page --- .../admin/order_cycles_controller.rb | 5 +++ app/views/admin/order_cycles/_form.html.haml | 45 ------------------- .../admin/order_cycles/incoming.html.haml | 33 ++++++++++++++ .../admin/order_cycles/outgoing.html.haml | 35 +++++++++++++++ config/routes/admin.rb | 2 + 5 files changed, 75 insertions(+), 45 deletions(-) create mode 100644 app/views/admin/order_cycles/incoming.html.haml create mode 100644 app/views/admin/order_cycles/outgoing.html.haml diff --git a/app/controllers/admin/order_cycles_controller.rb b/app/controllers/admin/order_cycles_controller.rb index b4ee2c3d63..23740b16ff 100644 --- a/app/controllers/admin/order_cycles_controller.rb +++ b/app/controllers/admin/order_cycles_controller.rb @@ -2,6 +2,7 @@ module Admin class OrderCyclesController < ResourceController include OrderCyclesHelper + prepend_before_filter :set_order_cycle_id, only: [:incoming, :outgoing] before_filter :load_data_for_index, only: :index before_filter :require_coordinator, only: :new before_filter :remove_protected_attrs, only: [:update] @@ -48,6 +49,10 @@ module Admin end end + def set_order_cycle_id + params[:id] = params[:order_cycle_id] + end + def update @order_cycle_form = OrderCycleForm.new(@order_cycle, params, spree_current_user) diff --git a/app/views/admin/order_cycles/_form.html.haml b/app/views/admin/order_cycles/_form.html.haml index 76d9c4c52f..4d4de2edb7 100644 --- a/app/views/admin/order_cycles/_form.html.haml +++ b/app/views/admin/order_cycles/_form.html.haml @@ -2,48 +2,3 @@ -if Enterprise.managed_by(spree_current_user).include? @order_cycle.coordinator = render 'coordinator_fees', f: f - -%h2= t('.incoming') -%table.exchanges - %thead - %tr - %th= t('.supplier') - %th - =t('.products') - = surround '(', ')' do - %a{href: '#', 'ng-click' => "OrderCycle.toggleAllProducts('incoming')"} - %span{'ng-show' => "OrderCycle.showProducts['incoming']"}= t(:collapse_all) - %span{'ng-hide' => "OrderCycle.showProducts['incoming']"}= t(:expand_all) - %th= t('.receival_details') - %th= t('.fees') - %th.actions - %tbody.panel-ctrl{ object: 'exchange', 'ng-repeat' => 'exchange in order_cycle.incoming_exchanges'} - = render 'exchange_form', f: f, type: 'supplier' - -- if Enterprise.managed_by(spree_current_user).include? @order_cycle.coordinator - = render 'add_exchange_form', f: f, type: 'supplier' - -%h2= t('.outgoing') -%table.exchanges - %thead - %tr - %th= t('.distributor') - %th - = t('.products') - = surround '(', ')' do - %a{href: '#', 'ng-click' => "OrderCycle.toggleAllProducts('outgoing')"} - %span{'ng-show' => "OrderCycle.showProducts['outgoing']"}= t(:collapse_all) - %span{'ng-hide' => "OrderCycle.showProducts['outgoing']"}= t(:expand_all) - %th{ ng: { if: 'enterprises[exchange.enterprise_id].managed || order_cycle.viewing_as_coordinator' } } - = t('.tags') - %th= t('.delivery_details') - %th= t('.fees') - %th.actions - %tbody.panel-ctrl{ object: 'exchange', 'ng-repeat' => 'exchange in order_cycle.outgoing_exchanges'} - = render 'exchange_form', f: f, type: 'distributor' - -- if Enterprise.managed_by(spree_current_user).include? @order_cycle.coordinator - = render 'add_exchange_form', f: f, type: 'distributor' - -.actions - %span{'ng-hide' => 'loaded()'}= t(:loading) diff --git a/app/views/admin/order_cycles/incoming.html.haml b/app/views/admin/order_cycles/incoming.html.haml new file mode 100644 index 0000000000..157f9c4449 --- /dev/null +++ b/app/views/admin/order_cycles/incoming.html.haml @@ -0,0 +1,33 @@ +%h1 + = t :edit_order_cycle + += admin_inject_order_cycle_instance += form_for [main_app, :admin, @order_cycle], :url => '', :html => {:class => 'ng order_cycle', 'ng-app' => 'admin.orderCycles', 'ng-controller' => 'AdminEditOrderCycleCtrl', name: 'order_cycle_form'} do |f| + + %save-bar{ dirty: "order_cycle_form.$dirty", persist: "true" } + %input.red{ type: "button", value: t(:update), ng: { click: "submit($event, null)", disabled: "!order_cycle_form.$dirty || order_cycle_form.$invalid" } } + %input.red{ type: "button", value: t('.update_and_close'), ng: { click: "submit($event, '#{main_app.admin_order_cycles_path}')", disabled: "!order_cycle_form.$dirty || order_cycle_form.$invalid" } } + %input{ type: "button", ng: { value: "order_cycle_form.$dirty ? '#{t(:cancel)}' : '#{t(:close)}'", click: "cancel('#{main_app.admin_order_cycles_path}')" } } + + %h2= t('.incoming') + %table.exchanges + %thead + %tr + %th= t('.supplier') + %th + = t('.products') + = surround '(', ')' do + %a{href: '#', 'ng-click' => "OrderCycle.toggleAllProducts('incoming')"} + %span{'ng-show' => "OrderCycle.showProducts['incoming']"}= t(:collapse_all) + %span{'ng-hide' => "OrderCycle.showProducts['incoming']"}= t(:expand_all) + %th= t('.receival_details') + %th= t('.fees') + %th.actions + %tbody.panel-ctrl{ object: 'exchange', 'ng-repeat' => 'exchange in order_cycle.incoming_exchanges'} + = render 'exchange_form', f: f, type: 'supplier' + + - if Enterprise.managed_by(spree_current_user).include? @order_cycle.coordinator + = render 'add_exchange_form', f: f, type: 'supplier' + + .actions + %span{'ng-hide' => 'loaded()'}= t(:loading) diff --git a/app/views/admin/order_cycles/outgoing.html.haml b/app/views/admin/order_cycles/outgoing.html.haml new file mode 100644 index 0000000000..29499e76b5 --- /dev/null +++ b/app/views/admin/order_cycles/outgoing.html.haml @@ -0,0 +1,35 @@ +%h1 + = t :edit_order_cycle + += admin_inject_order_cycle_instance += form_for [main_app, :admin, @order_cycle], :url => '', :html => {:class => 'ng order_cycle', 'ng-app' => 'admin.orderCycles', 'ng-controller' => 'AdminEditOrderCycleCtrl', name: 'order_cycle_form'} do |f| + + %save-bar{ dirty: "order_cycle_form.$dirty", persist: "true" } + %input.red{ type: "button", value: t(:update), ng: { click: "submit($event, null)", disabled: "!order_cycle_form.$dirty || order_cycle_form.$invalid" } } + %input.red{ type: "button", value: t('.update_and_close'), ng: { click: "submit($event, '#{main_app.admin_order_cycles_path}')", disabled: "!order_cycle_form.$dirty || order_cycle_form.$invalid" } } + %input{ type: "button", ng: { value: "order_cycle_form.$dirty ? '#{t(:cancel)}' : '#{t(:close)}'", click: "cancel('#{main_app.admin_order_cycles_path}')" } } + + %h2= t('.outgoing') + %table.exchanges + %thead + %tr + %th= t('.distributor') + %th + = t('.products') + = surround '(', ')' do + %a{href: '#', 'ng-click' => "OrderCycle.toggleAllProducts('outgoing')"} + %span{'ng-show' => "OrderCycle.showProducts['outgoing']"}= t(:collapse_all) + %span{'ng-hide' => "OrderCycle.showProducts['outgoing']"}= t(:expand_all) + %th{ ng: { if: 'enterprises[exchange.enterprise_id].managed || order_cycle.viewing_as_coordinator' } } + = t('.tags') + %th= t('.delivery_details') + %th= t('.fees') + %th.actions + %tbody.panel-ctrl{ object: 'exchange', 'ng-repeat' => 'exchange in order_cycle.outgoing_exchanges'} + = render 'exchange_form', f: f, type: 'distributor' + + - if Enterprise.managed_by(spree_current_user).include? @order_cycle.coordinator + = render 'add_exchange_form', f: f, type: 'distributor' + + .actions + %span{'ng-hide' => 'loaded()'}= t(:loading) diff --git a/config/routes/admin.rb b/config/routes/admin.rb index 5b21d0baa2..3456248e25 100644 --- a/config/routes/admin.rb +++ b/config/routes/admin.rb @@ -9,6 +9,8 @@ Openfoodnetwork::Application.routes.draw do resources :order_cycles do post :bulk_update, on: :collection, as: :bulk_update + get :incoming + get :outgoing member do get :clone