diff --git a/app/assets/javascripts/admin/order_cycle.js.erb.coffee b/app/assets/javascripts/admin/order_cycle.js.erb.coffee index 2362e02637..9c841e3ed0 100644 --- a/app/assets/javascripts/admin/order_cycle.js.erb.coffee +++ b/app/assets/javascripts/admin/order_cycle.js.erb.coffee @@ -19,6 +19,10 @@ app.controller 'AdminCreateOrderCycleCtrl', ($scope, OrderCycle, Enterprise) -> $event.preventDefault() OrderCycle.addSupplier($scope.new_supplier_id) + $scope.addDistributor = ($event) -> + $event.preventDefault() + OrderCycle.addDistributor($scope.new_distributor_id) + $scope.submit = -> OrderCycle.create() @@ -43,6 +47,10 @@ app.controller 'AdminEditOrderCycleCtrl', ($scope, $location, OrderCycle, Enterp $event.preventDefault() OrderCycle.addSupplier($scope.new_supplier_id) + $scope.addDistributor = ($event) -> + $event.preventDefault() + OrderCycle.addDistributor($scope.new_distributor_id) + $scope.submit = -> OrderCycle.update() @@ -72,6 +80,9 @@ app.factory 'OrderCycle', ($resource, $window) -> addSupplier: (new_supplier_id) -> this.order_cycle.incoming_exchanges.push({enterprise_id: new_supplier_id, active: true, variants: {}}) + addDistributor: (new_distributor_id) -> + this.order_cycle.outgoing_exchanges.push({enterprise_id: new_distributor_id, active: true, variants: {}}) + load: (order_cycle_id) -> service = this diff --git a/app/assets/stylesheets/admin/openfoodweb.css.scss b/app/assets/stylesheets/admin/openfoodweb.css.scss index 7399e0ddb6..1fb1302593 100644 --- a/app/assets/stylesheets/admin/openfoodweb.css.scss +++ b/app/assets/stylesheets/admin/openfoodweb.css.scss @@ -61,4 +61,7 @@ form.order_cycle { } } } + .actions { + margin-top: 3em; + } } diff --git a/app/views/admin/order_cycles/_exchange_form.html.haml b/app/views/admin/order_cycles/_exchange_form.html.haml new file mode 100644 index 0000000000..e99fa1c29b --- /dev/null +++ b/app/views/admin/order_cycles/_exchange_form.html.haml @@ -0,0 +1,5 @@ +%td.active= check_box_tag 'order_cycle_exchange_{{ exchange.id }}_active', 1, 1, 'ng-model' => 'exchange.active', 'id' => 'order_cycle_exchange_{{ exchange.id }}_active' +%td.supplier_name {{ enterprises[exchange.enterprise_id].name }} +%td.products + = f.submit 'Products', 'ng-click' => 'toggleProducts($event, exchange)' + {{ exchangeSelectedVariants(exchange) }} / {{ enterpriseTotalVariants(enterprises[exchange.enterprise_id]) }} selected diff --git a/app/views/admin/order_cycles/_exchange_product_form.html.haml b/app/views/admin/order_cycles/_exchange_product_form.html.haml index 9800cb0efa..90c970bc71 100644 --- a/app/views/admin/order_cycles/_exchange_product_form.html.haml +++ b/app/views/admin/order_cycles/_exchange_product_form.html.haml @@ -1,8 +1,9 @@ -.exchange-product{'ng-repeat' => 'product in enterprises[exchange.enterprise_id].supplied_products'} - .exchange-product-details - = check_box_tag 'order_cycle_exchange_{{ $parent.$index }}_variants_{{ product.master_id }}', 1, 1, 'ng-hide' => 'product.variants', 'ng-model' => 'exchange.variants[product.master_id]', 'id' => 'order_cycle_exchange_{{ $parent.$index }}_variants_{{ product.master_id }}' - %img{'ng-src' => '{{ product.image_url }}'} - {{ product.name }} - .exchange-product-variant{'ng-repeat' => 'variant in product.variants'} - = check_box_tag 'order_cycle_exchange_{{ $parent.$parent.$index }}_variants_{{ variant.id }}', 1, 1, 'ng-model' => 'exchange.variants[variant.id]', 'id' => 'order_cycle_exchange_{{ $parent.$parent.$index }}_variants_{{ variant.id }}' - {{ variant.label }} +%td{:colspan => 3} + .exchange-product{'ng-repeat' => 'product in enterprises[exchange.enterprise_id].supplied_products'} + .exchange-product-details + = check_box_tag 'order_cycle_exchange_{{ exchange.id }}_variants_{{ product.master_id }}', 1, 1, 'ng-hide' => 'product.variants', 'ng-model' => 'exchange.variants[product.master_id]', 'id' => 'order_cycle_exchange_{{ exchange.id }}_variants_{{ product.master_id }}' + %img{'ng-src' => '{{ product.image_url }}'} + {{ product.name }} + .exchange-product-variant{'ng-repeat' => 'variant in product.variants'} + = check_box_tag 'order_cycle_exchange_{{ exchange.id }}_variants_{{ variant.id }}', 1, 1, 'ng-model' => 'exchange.variants[variant.id]', 'id' => 'order_cycle_exchange_{{ exchange.id }}_variants_{{ variant.id }}' + {{ variant.label }} diff --git a/app/views/admin/order_cycles/_form.html.haml b/app/views/admin/order_cycles/_form.html.haml index e0bbf6e7c4..5993153333 100644 --- a/app/views/admin/order_cycles/_form.html.haml +++ b/app/views/admin/order_cycles/_form.html.haml @@ -20,14 +20,9 @@ %th Products %tbody{'ng-repeat' => 'exchange in order_cycle.incoming_exchanges'} %tr.supplier - %td.active= check_box_tag 'order_cycle_exchange_{{ $index }}_active', 1, 1, 'ng-model' => 'exchange.active', 'id' => 'order_cycle_exchange_{{ $index }}_active' - %td.supplier_name {{ enterprises[exchange.enterprise_id].name }} - %td.products - = f.submit 'Products', 'ng-click' => 'toggleProducts($event, exchange)' - {{ exchangeSelectedVariants(exchange) }} / {{ enterpriseTotalVariants(enterprises[exchange.enterprise_id]) }} selected + = render 'exchange_form', :f => f %tr.products{'ng-show' => 'exchange.showProducts'} - %td{:colspan => 3} - = render 'exchange_product_form' + = render 'exchange_product_form' = select_tag :new_supplier_id, options_from_collection_for_select(Enterprise.is_primary_producer, :id, :name), {'ng-model' => 'new_supplier_id'} = f.submit 'Add supplier', 'ng-click' => 'addSupplier($event)' @@ -38,14 +33,28 @@ = f.collection_select :coordinator_id, Enterprise.all, :id, :name, {}, {'ng-model' => 'order_cycle.coordinator_id', 'required' => true} %h2 Outgoing -%p TODO +%table.exchanges + %thead + %tr + %th + %th Distributor + %th Products + %tbody{'ng-repeat' => 'exchange in order_cycle.outgoing_exchanges'} + %tr.supplier + = render 'exchange_form', :f => f + %tr.products{'ng-show' => 'exchange.showProducts'} + = render 'exchange_product_form' -= f.submit @order_cycle.new_record? ? 'Create' : 'Update' -or -= link_to 'Cancel', main_app.admin_order_cycles_path += select_tag :new_distributor_id, options_from_collection_for_select(Enterprise.is_distributor, :id, :name), {'ng-model' => 'new_distributor_id'} += f.submit 'Add distributor', 'ng-click' => 'addDistributor($event)' + +.actions + = f.submit @order_cycle.new_record? ? 'Create' : 'Update' + or + = link_to 'Cancel', main_app.admin_order_cycles_path -