diff --git a/app/overrides/spree/admin/orders/_form/add_distribution_fields.html.haml.deface b/app/overrides/spree/admin/orders/_form/add_distribution_fields.html.haml.deface deleted file mode 100644 index af07be1d23..0000000000 --- a/app/overrides/spree/admin/orders/_form/add_distribution_fields.html.haml.deface +++ /dev/null @@ -1,3 +0,0 @@ -/ insert_before "[data-hook='admin_order_form_buttons']" - -= render partial: 'spree/admin/orders/_form/distribution_fields' diff --git a/app/overrides/spree/admin/orders/_form/hide_form_until_distribution.deface b/app/overrides/spree/admin/orders/_form/hide_form_until_distribution.deface deleted file mode 100644 index 7fe5652aae..0000000000 --- a/app/overrides/spree/admin/orders/_form/hide_form_until_distribution.deface +++ /dev/null @@ -1,2 +0,0 @@ -add_to_attributes "table.index, [data-hook='admin_order_form_buttons']" -attributes "ng-show" => "distributionChosen()" diff --git a/app/overrides/spree/admin/orders/_form/relabel_update_button.html.haml.deface b/app/overrides/spree/admin/orders/_form/relabel_update_button.html.haml.deface deleted file mode 100644 index d4d3aefc8d..0000000000 --- a/app/overrides/spree/admin/orders/_form/relabel_update_button.html.haml.deface +++ /dev/null @@ -1,3 +0,0 @@ -/ replace "code[erb-loud]:contains('button t(:update)')" - -= button t(:update_and_recalculate_fees), 'icon-refresh' diff --git a/app/overrides/spree/admin/orders/_line_item/replace_variant_label.html.haml.deface b/app/overrides/spree/admin/orders/_line_item/replace_variant_label.html.haml.deface deleted file mode 100644 index 6481791112..0000000000 --- a/app/overrides/spree/admin/orders/_line_item/replace_variant_label.html.haml.deface +++ /dev/null @@ -1,3 +0,0 @@ -/ replace 'code[erb-loud]:contains(\'"(#{f.object.variant.options_text})"\')' - -= "(#{f.object.full_name})" diff --git a/app/overrides/spree/admin/orders/_line_item/replace_variant_price.html.haml.deface b/app/overrides/spree/admin/orders/_line_item/replace_variant_price.html.haml.deface deleted file mode 100644 index 605f645996..0000000000 --- a/app/overrides/spree/admin/orders/_line_item/replace_variant_price.html.haml.deface +++ /dev/null @@ -1,3 +0,0 @@ -/ replace 'code[erb-loud]:contains(\'f.object.variant.display_amount\')' - -= f.object.single_money diff --git a/app/overrides/spree/admin/orders/edit/add_action_dropdown.html.haml.deface b/app/overrides/spree/admin/orders/edit/add_action_dropdown.html.haml.deface deleted file mode 100644 index 58b13a3b32..0000000000 --- a/app/overrides/spree/admin/orders/edit/add_action_dropdown.html.haml.deface +++ /dev/null @@ -1,6 +0,0 @@ -/ insert_after "code[erb-loud]:contains('button_link_to t(:resend)')" - -%li.links-dropdown#links-dropdown{ links: order_links(@order).to_json } - -:coffee - angular.bootstrap(document.getElementById("links-dropdown"),['admin.dropdown']) diff --git a/app/overrides/spree/admin/orders/edit/suppress_errors.html.haml.deface b/app/overrides/spree/admin/orders/edit/suppress_errors.html.haml.deface deleted file mode 100644 index 31a8c961e8..0000000000 --- a/app/overrides/spree/admin/orders/edit/suppress_errors.html.haml.deface +++ /dev/null @@ -1,6 +0,0 @@ -/ replace "code[erb-loud]:contains(\'error_messages\')" - --# Suppress errors when manually creating a new order - needs to proceed to edit page --# without having line items (which otherwise gives a validation error) -- unless params["suppress_error_msg"] - = render partial: "spree/shared/error_messages", :locals => { :target => @order } diff --git a/app/views/spree/admin/orders/_add_product.html.haml b/app/views/spree/admin/orders/_add_product.html.haml new file mode 100644 index 0000000000..ab807961f7 --- /dev/null +++ b/app/views/spree/admin/orders/_add_product.html.haml @@ -0,0 +1,17 @@ += render partial: "spree/admin/variants/autocomplete", formats: :js +#add-line-item{"data-hook" => ""} + %fieldset + %legend{align: "center"} + = t(:add_product) + .field.eight.columns.alpha{"data-hook" => "add_product_name"} + = label_tag :add_product_name, t(:name_or_sku) + = hidden_field_tag :add_variant_id, "", class: "variant_autocomplete fullwidth" + .field.two.columns{"data-hook" => "add_quantity"} + = label_tag :add_quantity, t(:qty) + = number_field_tag :add_quantity, 1, min: 0 + .actions.two.columns.omega{"data-hook" => "add_button"} + = link_to_with_icon 'icon-plus', t(:add), admin_order_line_items_url(@order), + method: :post, + id: 'add_line_item_to_order', + class: 'button fullwidth', + 'data-update' => 'order-form-wrapper' diff --git a/app/views/spree/admin/orders/_form.html.haml b/app/views/spree/admin/orders/_form.html.haml new file mode 100644 index 0000000000..07a41cb7e4 --- /dev/null +++ b/app/views/spree/admin/orders/_form.html.haml @@ -0,0 +1,68 @@ +%div{"data-hook" => "admin_order_form_fields"} + - if @line_item.try(:errors).present? + = render partial: 'spree/shared/error_messages', locals: { target: @line_item } + = form_for @order, url: admin_order_url(@order), method: :put do |f| + %fieldset.no-border-top + = f.hidden_field :number + %table.index{"ng-show" => "distributionChosen()"} + %colgroup + %col{style: "width: 49%;"}/ + %col{style: "width: 14%;"}/ + %col{style: "width: 10%;"}/ + %col{style: "width: 14%;"}/ + %col{style: "width: 8%;"}/ + %thead#line-items + %tr{"data-hook" => "admin_order_form_line_items_headers"} + %th + = t(:item_description) + %th.price + = t(:price) + %th.qty + = t(:qty) + %th.total + %span + = t(:total) + %th.orders-actions.actions{"data-hook" => "admin_order_form_line_items_header_actions"} + %tbody{"data-hook" => "admin_order_form_line_items"} + = f.fields_for :line_items do |li_form| + = render partial: 'spree/admin/orders/line_item', locals: { f: li_form } + %tbody#subtotal.no-border-top{"data-hook" => "admin_order_form_subtotal"} + %tr#subtotal-row + %td{colspan: "3"} + %b + = t(:subtotal) + \: + %td.total.align-center + %span + = @order.display_item_total.to_html + %td.actions + %tbody#order-charges.no-border-top{"data-hook" => "admin_order_form_adjustments"} + - @order.adjustments.eligible.each do |adjustment| + %tr + %td{colspan: "3"} + %strong + = adjustment.label + \: + %td.total.align-center + %span= adjustment.display_amount.to_html + %td.actions + %tbody#order-total.grand-total.no-border-top{"data-hook" => "admin_order_form_total"} + %tr + %td{colspan: "3"} + %b + = t(:order_total) + \: + %td.total.align-center + %span#order_total + = @order.display_total.to_html + %td.actions + + = render partial: 'spree/admin/orders/_form/distribution_fields' + + .filter-actions.actions{"data-hook" => "admin_order_form_buttons", "ng-show" => "distributionChosen()"} + = button t(:update_and_recalculate_fees), 'icon-refresh' + %span.or + = t(:or) + = link_to_with_icon 'button icon-arrow-left', t(:back), admin_orders_url + = javascript_tag do + = render partial: 'spree/admin/shared/update_order_state', handlers: [:js] diff --git a/app/views/spree/admin/orders/_line_item.html.haml b/app/views/spree/admin/orders/_line_item.html.haml new file mode 100644 index 0000000000..4bcc30fae0 --- /dev/null +++ b/app/views/spree/admin/orders/_line_item.html.haml @@ -0,0 +1,12 @@ +%tr{"data-hook" => "admin_order_form_line_item_row", id: "#{spree_dom_id(f.object)}", class: "#{cycle('odd', 'even')}"} + %td + = f.object.variant.product.name + = "(#{f.object.full_name})" unless f.object.variant.option_values.empty? + %td.price.align-center + = f.object.variant.display_amount + %td.qty + = f.number_field :quantity, min: 0, class: "qty" + %td.total.align-center + = f.object.single_money + %td.actions{"data-hook" => "admin_order_form_line_item_actions"} + = link_to_delete f.object, {url: admin_order_line_item_url(@order.number, f.object), no_text: true} diff --git a/app/views/spree/admin/orders/edit.html.haml b/app/views/spree/admin/orders/edit.html.haml index f897065224..82d5507ec1 100644 --- a/app/views/spree/admin/orders/edit.html.haml +++ b/app/views/spree/admin/orders/edit.html.haml @@ -3,6 +3,8 @@ - content_for :page_actions do %li= event_links %li= button_link_to t(:resend), resend_admin_order_url(@order), method: :post, icon: 'icon-email' + %li.links-dropdown#links-dropdown{ links: order_links(@order).to_json } + %li= button_link_to t(:back_to_orders_list), admin_orders_path, icon: 'icon-arrow-left' = admin_inject_shops(module: 'admin.orders') @@ -11,7 +13,8 @@ = render 'spree/admin/shared/order_tabs', current: 'Order Details' %div{"data-hook" => "admin_order_edit_header"} - = render 'spree/shared/error_messages', target: @order + - unless params["suppress_error_msg"] + = render partial: "spree/shared/error_messages", :locals => { :target => @order } %div{"ng-app" => "admin.orders", "ng-controller" => "orderCtrl", "ofn-distributor-id" => @order.distributor_id, "ofn-order-cycle-id" => @order.order_cycle_id} = render 'add_product' @@ -22,3 +25,6 @@ - content_for :head do = javascript_tag 'var expand_variants = true;' + +:coffee + angular.bootstrap(document.getElementById("links-dropdown"),['admin.dropdown']) diff --git a/app/views/spree/admin/shared/_order_tabs.html.haml b/app/views/spree/admin/shared/_order_tabs.html.haml new file mode 100644 index 0000000000..a2f346bf27 --- /dev/null +++ b/app/views/spree/admin/shared/_order_tabs.html.haml @@ -0,0 +1,65 @@ +- content_for :page_title do + = t(:order) + \# + = @order.number + +- if @order.bill_address.present? + = @order.bill_address.firstname + = @order.bill_address.lastname + \- + +- content_for :sidebar_title do + = t(:order_information) + +- content_for :sidebar do + %header#order_tab_summary + %dl.additional-info + %dt#order_status + = t(:status) + %dd + %span{:class => "state #{@order.state}"} + = t(@order.state, scope: :order_state) + %dt + = t(:total) + \: + %dd#order_total + = @order.display_total.to_html + + - if @order.completed? + %dt + = t(:shipment) + \: + %dd#shipment_status + %span.state + = @order.shipment_state + = t(@order.shipment_state, scope: :shipment_states, default: [:missing, none]) + %dt + = t(:payment) + \: + %dd#payment_status + %span.state + = @order.payment_state + = t(@order.payment_state, scope: :payment_states, default: [:missing, none]) + %dt + = t(:date_completed) + \: + %dd#date_complete + = pretty_time(@order.completed_at) + + %nav.menu + %ul{"data-hook" => "admin_order_tabs"} + %li{ class: "#{'active' if true}" } + = link_to_with_icon 'icon-edit', t(:order_details), edit_admin_order_url(@order) + %li{"#{'class=active' if current == 'Customer Details'}"} + = link_to_with_icon 'icon-user', t(:customer_details), admin_order_customer_url(@order) + %li{"#{'class=active' if current == 'Adjustments Details'}"} + = link_to_with_icon 'icon-cogs', t(:adjustments), admin_order_adjustments_url(@order) + + %li{"#{'class=active' if current == 'Payments'}"} + = link_to_with_icon 'icon-credit-card', t(:payments), admin_order_payments_url(@order) + + %li{"#{'class=active' if current == 'Shipments'}"} + = link_to_with_icon 'icon-road', t(:shipments), admin_order_shipments_url(@order) + - if @order.completed? + %li{"#{'class=active' if current == 'Return Authorizations'}"} + = link_to_with_icon 'icon-share-alt', t(:return_authorizations), admin_order_return_authorizations_url(@order)