mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-02-08 22:56:06 +00:00
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
This commit is contained in:
@@ -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)
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
33
app/views/admin/order_cycles/incoming.html.haml
Normal file
33
app/views/admin/order_cycles/incoming.html.haml
Normal file
@@ -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)
|
||||
35
app/views/admin/order_cycles/outgoing.html.haml
Normal file
35
app/views/admin/order_cycles/outgoing.html.haml
Normal file
@@ -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)
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user