mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-01-24 20:36:49 +00:00
Merge remote-tracking branch 'origin/master' into HEAD
This commit is contained in:
2
Gemfile
2
Gemfile
@@ -50,7 +50,7 @@ gem 'gmaps4rails'
|
||||
gem 'spinjs-rails'
|
||||
gem 'rack-ssl', :require => 'rack/ssl'
|
||||
gem 'custom_error_message', :github => 'jeremydurham/custom-err-msg'
|
||||
gem 'angularjs-file-upload-rails', '~> 1.1.0'
|
||||
gem 'angularjs-file-upload-rails', '~> 1.1.6'
|
||||
gem 'roadie-rails', '~> 1.0.3'
|
||||
gem 'figaro'
|
||||
gem 'blockenspiel'
|
||||
|
||||
@@ -154,7 +154,7 @@ GEM
|
||||
railties (>= 3.1)
|
||||
sprockets (~> 2)
|
||||
tilt
|
||||
angularjs-file-upload-rails (1.1.0)
|
||||
angularjs-file-upload-rails (1.1.6)
|
||||
angularjs-rails (1.5.5)
|
||||
ansi (1.4.2)
|
||||
arel (3.0.3)
|
||||
@@ -649,7 +649,7 @@ DEPENDENCIES
|
||||
acts-as-taggable-on (~> 3.4)
|
||||
andand
|
||||
angular-rails-templates (~> 0.2.0)
|
||||
angularjs-file-upload-rails (~> 1.1.0)
|
||||
angularjs-file-upload-rails (~> 1.1.6)
|
||||
angularjs-rails (= 1.5.5)
|
||||
atomic
|
||||
awesome_print
|
||||
@@ -737,4 +737,4 @@ RUBY VERSION
|
||||
ruby 2.1.5p273
|
||||
|
||||
BUNDLED WITH
|
||||
1.12.5
|
||||
1.13.6
|
||||
|
||||
@@ -6,7 +6,6 @@ angular.module("admin.enterprises")
|
||||
|
||||
$scope.menu.setItems [
|
||||
{ name: 'primary_details', label: t('primary_details'), icon_class: "icon-home" }
|
||||
{ name: 'users', label: t('users'), icon_class: "icon-user" }
|
||||
{ name: 'address', label: t('address'), icon_class: "icon-map-marker" }
|
||||
{ name: 'contact', label: t('contact'), icon_class: "icon-phone" }
|
||||
{ name: 'social', label: t('social'), icon_class: "icon-twitter" }
|
||||
@@ -20,11 +19,11 @@ angular.module("admin.enterprises")
|
||||
{ name: 'inventory_settings', label: t('inventory_settings'), icon_class: "icon-list-ol", show: "enterpriseIsShop()" }
|
||||
{ name: 'tag_rules', label: t('tag_rules'), icon_class: "icon-random", show: "enterpriseIsShop()" }
|
||||
{ name: 'shop_preferences', label: t('shop_preferences'), icon_class: "icon-shopping-cart", show: "enterpriseIsShop()" }
|
||||
{ name: 'users', label: t('users'), icon_class: "icon-user" }
|
||||
]
|
||||
|
||||
$scope.select(0)
|
||||
|
||||
|
||||
$scope.showItem = (item) ->
|
||||
if item.show?
|
||||
$parse(item.show)($scope)
|
||||
|
||||
@@ -163,10 +163,18 @@ class Enterprise < ActiveRecord::Base
|
||||
}
|
||||
|
||||
scope :distributing_products, lambda { |products|
|
||||
with_distributed_products_outer.with_order_cycles_and_exchange_variants_outer.
|
||||
where('product_distributions.product_id IN (?) OR spree_variants.product_id IN (?)', products, products).
|
||||
select('DISTINCT enterprises.*')
|
||||
# TODO: remove this when we pull out product distributions
|
||||
pds = joins("INNER JOIN product_distributions ON product_distributions.distributor_id = enterprises.id").
|
||||
where("product_distributions.product_id IN (?)", products).select('DISTINCT enterprises.id')
|
||||
|
||||
exs = joins("INNER JOIN exchanges ON (exchanges.receiver_id = enterprises.id AND exchanges.incoming = 'f')").
|
||||
joins('INNER JOIN exchange_variants ON (exchange_variants.exchange_id = exchanges.id)').
|
||||
joins('INNER JOIN spree_variants ON (spree_variants.id = exchange_variants.variant_id)').
|
||||
where('spree_variants.product_id IN (?)', products).select('DISTINCT enterprises.id')
|
||||
|
||||
where(id: pds | exs)
|
||||
}
|
||||
|
||||
scope :managed_by, lambda { |user|
|
||||
if user.has_spree_role?('admin')
|
||||
scoped
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
|
||||
- content_for :page_title do
|
||||
= t(:account)
|
||||
|
||||
|
||||
- if @invoices.empty?
|
||||
%h4= t(:no_invoices_to_display)
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
|
||||
%fieldset.no-border-bottom
|
||||
%legend
|
||||
=t :admin_settings
|
||||
= t(:admin_settings)
|
||||
= form_for @settings, as: :settings, url: main_app.admin_accounts_and_billing_settings_path, :method => :put do |f|
|
||||
.row{ ng: { app: 'admin.accounts_and_billing_settings' } }
|
||||
.twelve.columns.alpha.omega
|
||||
|
||||
@@ -4,10 +4,10 @@
|
||||
%table.index
|
||||
%thead
|
||||
%tr
|
||||
%th Distributor
|
||||
%th Order Cycle
|
||||
%th Status
|
||||
%th Diff
|
||||
%th= t('.distributor')
|
||||
%th= t('.order_cycle')
|
||||
%th= t('.status')
|
||||
%th= t('.diff')
|
||||
%tbody
|
||||
- @results.each do |result|
|
||||
%tr
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
= render 'spree/admin/shared/configuration_menu'
|
||||
|
||||
- content_for :page_title do
|
||||
Content
|
||||
|
||||
= t('.title')
|
||||
|
||||
= form_tag main_app.admin_content_path, method: :put, multipart: true do
|
||||
#preferences
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
= content_for :page_title do
|
||||
=t :Enterprise_Fees
|
||||
= t('.title')
|
||||
|
||||
= ng_form_for @enterprise_fee_set, :url => main_app.bulk_update_admin_enterprise_fees_path, :html => {'ng-app' => 'admin.enterpriseFees', 'ng-controller' => 'enterpriseFeesCtrl'} do |enterprise_fee_set_form|
|
||||
= hidden_field_tag 'enterprise_id', @enterprise.id if @enterprise
|
||||
@@ -12,17 +12,17 @@
|
||||
%thead
|
||||
%tr
|
||||
%th
|
||||
=t'Enterprise'
|
||||
= t('.enterprise')
|
||||
%th
|
||||
=t'fee_type'
|
||||
= t('.fee_type')
|
||||
%th
|
||||
=t'name'
|
||||
= t('.name')
|
||||
%th
|
||||
=t'tax_category'
|
||||
= t('.tax_category')
|
||||
%th
|
||||
=t'calculator'
|
||||
= t('.calculator')
|
||||
%th
|
||||
=t'calculator_values'
|
||||
= t('.calculator_values')
|
||||
%th.actions
|
||||
%tbody
|
||||
= enterprise_fee_set_form.ng_fields_for :collection do |f|
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
|
||||
- if admin_user?
|
||||
= content_for :page_actions do
|
||||
%li= button_link_to "New Enterprise Group", main_app.new_admin_enterprise_group_path
|
||||
%li= button_link_to t('.new_button'), main_app.new_admin_enterprise_group_path
|
||||
|
||||
%table.index#listing_enterprise_groups
|
||||
%thead
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
= link_to_with_icon('icon-edit', 'Edit Profile', main_app.edit_admin_enterprise_path(enterprise), class: 'edit')
|
||||
= link_to_with_icon('icon-edit', t('.edit_profile'), main_app.edit_admin_enterprise_path(enterprise), class: 'edit')
|
||||
%br/
|
||||
|
||||
- if can? :destroy, enterprise
|
||||
@@ -6,27 +6,27 @@
|
||||
%br/
|
||||
|
||||
- if enterprise.is_primary_producer
|
||||
= link_to_with_icon 'icon-dashboard', 'Properties', main_app.admin_enterprise_producer_properties_path(enterprise_id: enterprise)
|
||||
= link_to_with_icon 'icon-dashboard', t('.properties'), main_app.admin_enterprise_producer_properties_path(enterprise_id: enterprise)
|
||||
(#{enterprise.producer_properties.count})
|
||||
%br/
|
||||
|
||||
- if enterprise.is_distributor
|
||||
- if can?(:admin, Spree::PaymentMethod) && can?(:manage_payment_methods, enterprise)
|
||||
= link_to_with_icon 'icon-chevron-right', 'Payment Methods', spree.admin_payment_methods_path(enterprise_id: enterprise.id)
|
||||
= link_to_with_icon 'icon-chevron-right', t('.payment_methods'), spree.admin_payment_methods_path(enterprise_id: enterprise.id)
|
||||
(#{enterprise.payment_methods.count})
|
||||
- if enterprise.payment_methods.count == 0
|
||||
%span.icon-exclamation-sign{"ofn-with-tip" => "This enterprise has no payment methods", style: "font-size: 16px;color: #DA5354"}
|
||||
%span.icon-exclamation-sign{"ofn-with-tip" => t('.payment_methods_tip'), style: "font-size: 16px;color: #DA5354"}
|
||||
%br/
|
||||
|
||||
- if can?(:admin, Spree::ShippingMethod) && can?(:manage_shipping_methods, enterprise)
|
||||
= link_to_with_icon 'icon-plane', 'Shipping Methods', spree.admin_shipping_methods_path(enterprise_id: enterprise.id)
|
||||
= link_to_with_icon 'icon-plane', t('.shipping_methods'), spree.admin_shipping_methods_path(enterprise_id: enterprise.id)
|
||||
(#{enterprise.shipping_methods.count})
|
||||
- if enterprise.shipping_methods.count == 0
|
||||
%span.icon-exclamation-sign{"ofn-with-tip" => "This enterprise has shipping methods", style: "font-size: 16px;color: #DA5354"}
|
||||
%span.icon-exclamation-sign{"ofn-with-tip" => t('.shipping_methods_tip'), style: "font-size: 16px;color: #DA5354"}
|
||||
%br/
|
||||
|
||||
- if can?(:admin, EnterpriseFee) && can?(:manage_enterprise_fees, enterprise)
|
||||
= link_to_with_icon 'icon-money', 'Enterprise Fees', main_app.admin_enterprise_fees_path(enterprise_id: enterprise.id)
|
||||
= link_to_with_icon 'icon-money', t('.enterprise_fees'), main_app.admin_enterprise_fees_path(enterprise_id: enterprise.id)
|
||||
(#{enterprise.enterprise_fees.count})
|
||||
- if enterprise.enterprise_fees.count == 0
|
||||
%span.icon-warning-sign{"ofn-with-tip" => "This enterprise has no fees", style: "font-size: 16px;color: orange"}
|
||||
%span.icon-warning-sign{"ofn-with-tip" => t('.enterprise_fees_tip'), style: "font-size: 16px;color: orange"}
|
||||
|
||||
@@ -15,13 +15,13 @@
|
||||
%col{style: "width: 25%;"}/
|
||||
%thead
|
||||
%tr{"data-hook" => "enterprises_header"}
|
||||
%th Name
|
||||
%th Role
|
||||
%th= t('.name')
|
||||
%th= t('.role')
|
||||
- if spree_current_user.admin?
|
||||
%th Sells
|
||||
%th Visible?
|
||||
%th= t('.sells')
|
||||
%th= t('.visible')
|
||||
- if spree_current_user.admin?
|
||||
%th Owner
|
||||
%th= t('.owner')
|
||||
%th
|
||||
%tbody
|
||||
= f.fields_for :collection do |enterprise_form|
|
||||
@@ -30,7 +30,7 @@
|
||||
%td= link_to enterprise.name, main_app.edit_admin_enterprise_path(enterprise)
|
||||
%td
|
||||
= enterprise_form.check_box :is_primary_producer
|
||||
Producer
|
||||
= t('.producer')
|
||||
- if spree_current_user.admin?
|
||||
%td= enterprise_form.select :sells, Enterprise::SELLS, {}, class: 'select2 fullwidth'
|
||||
%td= enterprise_form.check_box :visible
|
||||
@@ -41,4 +41,4 @@
|
||||
- if @enterprises.empty?
|
||||
%tr
|
||||
%td{colspan: "4"}= t(:none)
|
||||
= f.submit 'Update'
|
||||
= f.submit t(:update)
|
||||
|
||||
@@ -12,36 +12,36 @@
|
||||
.basic_producer.option.one-third.column.alpha
|
||||
%a.full-width.button.selector{ ng: { click: "sells='none'", class: "{selected: sells=='none'}" } }
|
||||
.top
|
||||
%h3 Producer Profile
|
||||
%p Connect through OFN
|
||||
.bottom ALWAYS FREE
|
||||
%h3= t('.producer_profile')
|
||||
%p= t('.connect_ofn')
|
||||
.bottom= t('.always_free')
|
||||
%p.description
|
||||
Add your products to Open Food Network, allowing hubs to stock your products in their stores.
|
||||
= t('.producer_description_text')
|
||||
|
||||
.producer_shop.option.one-third.column
|
||||
%a.full-width.button.selector{ ng: { click: "sells='own'", class: "{selected: sells=='own'}" } }
|
||||
.top
|
||||
%h3 Producer Shop
|
||||
%p Sell your own produce
|
||||
%h3= t('.producer_shop')
|
||||
%p= t('.sell_your_produce')
|
||||
.bottom
|
||||
%monthly-pricing-description{ joiner: "newline" }
|
||||
|
||||
%p.description
|
||||
Sell your products directly to customers through your very own Open Food Network shopfront.
|
||||
= t('.producer_description_text')
|
||||
%br
|
||||
%br
|
||||
A Producer Shop is for your produce only, if you want to sell produce grown/produced off site, select 'Producer Hub'.
|
||||
= t('.producer_description_text2')
|
||||
|
||||
.full_hub.option.one-third.column.omega
|
||||
%a.full-width.button.selector{ ng: { click: "sells='any'", class: "{selected: sells=='any'}" } }
|
||||
.top
|
||||
%h3 Producer Hub
|
||||
%p Sell produce from self and others
|
||||
%h3= t('.producer_hub')
|
||||
%p= t('.producer_hub_text')
|
||||
.bottom
|
||||
%monthly-pricing-description{ joiner: "newline" }
|
||||
|
||||
%p.description
|
||||
Your enterprise is the backbone of your local food system. You can sell your own produce as well as produce aggregated from other enterprises through your shopfront on the Open Food Network.
|
||||
= t('.producer_hub_description_text')
|
||||
|
||||
-# %p.description
|
||||
-# Test out having your own shopfront with full access to all Shopfront features for 30 days.
|
||||
@@ -55,38 +55,38 @@
|
||||
.shop_profile.option.six.columns
|
||||
%a.full-width.button.selector{ ng: { click: "sells='none'", class: "{selected: sells=='none'}" } }
|
||||
.top
|
||||
%h3 Profile Only
|
||||
%p Get a listing
|
||||
.bottom ALWAYS FREE
|
||||
%h3= t('.profile')
|
||||
%p= t('.get_listing')
|
||||
.bottom= t('.always_free')
|
||||
%p.description
|
||||
People can find and contact you on the Open Food Network. Your enterprise will be visible on the map, and will be searchable in listings.
|
||||
= t('.profile_description_text')
|
||||
|
||||
.full_hub.option.six.columns
|
||||
%a.full-width.button.selector{ ng: { click: "sells='any'", class: "{selected: sells=='any'}" } }
|
||||
.top
|
||||
%h3 Hub Shop
|
||||
%p Sell produce from others
|
||||
%h3= t('.hub_shop')
|
||||
%p= t('.hub_shop_text')
|
||||
.bottom
|
||||
%monthly-pricing-description{ joiner: "newline" }
|
||||
%p.description
|
||||
Your enterprise is the backbone of your local food system. You aggregate produce from other enterprises and can sell it through your shop on the Open Food Network.
|
||||
= t('.hub_shop_description_text')
|
||||
.two.columns.omega
|
||||
|
||||
|
||||
.row
|
||||
.sixteen.columns.alpha
|
||||
%span.error{ ng: { show: "(change_type.sells.$error.required || change_type.sells.$error.pattern) && submitted" } }
|
||||
Please choose one of the options above.
|
||||
= t('.choose_option')
|
||||
- if @enterprise.sells == 'unspecified' && @enterprise.shop_trial_start_date.nil?
|
||||
-if free_use?
|
||||
%input.button.big{ type: 'submit', value: 'Select and continue', ng: { click: "submit(change_type)" } }
|
||||
%input.button.big{ type: 'submit', value: t(:select_continue), ng: { click: "submit(change_type)" } }
|
||||
- else
|
||||
- trial_length = Spree::Config[:shop_trial_length_days]
|
||||
%input.button.big{ type: 'submit', value: "Start #{trial_length}-Day Shop Trial", ng: { click: "submit(change_type)", show: "sells=='own' || sells=='any'" } }
|
||||
%input.button.big{ type: 'submit', value: 'Select and continue', ng: { click: "submit(change_type)", hide: "sells=='own' || sells=='any'" } }
|
||||
%input.button.big{ type: 'submit', value: t(:select_continue), ng: { click: "submit(change_type)", hide: "sells=='own' || sells=='any'" } }
|
||||
- elsif @enterprise.sells == 'unspecified'
|
||||
%input.button.big{ type: 'submit', value: 'Select and continue', ng: { click: "submit(change_type)" } }
|
||||
%input.button.big{ type: 'submit', value: t(:select_continue), ng: { click: "submit(change_type)" } }
|
||||
- else
|
||||
%input.button.big{ type: 'submit', value: 'Change now', ng: { click: "submit(change_type)" } }
|
||||
%input.button.big{ type: 'submit', value: t('.change_now'), ng: { click: "submit(change_type)" } }
|
||||
%br
|
||||
%hr
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
.row{ 'ng-hide' => '!loaded' }
|
||||
.controls{ :class => "sixteen columns alpha", :style => "margin-bottom: 15px;" }
|
||||
.four.columns.alpha
|
||||
%input{ :class => "fullwidth", :type => "text", :id => 'quick_search', 'ng-model' => 'quickSearch', :placeholder => 'Search By Name' }
|
||||
%input{ :class => "fullwidth", :type => "text", :id => 'quick_search', 'ng-model' => 'quickSearch', :placeholder => t('.search_placeholder') }
|
||||
.six.columns
|
||||
-# = render 'admin/shared/bulk_actions_dropdown'
|
||||
.three.columns
|
||||
@@ -41,7 +41,7 @@
|
||||
%i.icon-status{ ng: { class: "enterprise.status" } }
|
||||
%td.manage{ ng: { show: 'columns.manage.visible' } }
|
||||
%a.button.fullwidth{ ng: { href: '{{::enterprise.edit_path}}' } }
|
||||
Manage
|
||||
= t('.manage')
|
||||
%i.icon-arrow-right
|
||||
|
||||
%tr.panel-row{ object: "enterprise", panels: "{producer: 'enterprise_producer', package: 'enterprise_package', status: 'enterprise_status'}" }
|
||||
|
||||
@@ -1,98 +1,97 @@
|
||||
.row
|
||||
.three.columns.alpha
|
||||
= f.label :name
|
||||
= f.label :name, t('admin.enterprises.form.primary_details.name')
|
||||
%span.required *
|
||||
.nine.columns.omega
|
||||
= f.text_field :name, { placeholder: "eg. Professor Plum's Biodynamic Truffles", class: "fullwidth" }
|
||||
= f.text_field :name, { placeholder: t('admin.enterprises.form.primary_details.name_placeholder'), class: "fullwidth" }
|
||||
|
||||
- if spree_current_user.admin?
|
||||
.row
|
||||
.three.columns.alpha
|
||||
=f.label :owner_id, 'Owner'
|
||||
=f.label :owner_id, t('.owner')
|
||||
%span.required *
|
||||
%div{'ofn-with-tip' => "The primary user responsible for this enterprise."}
|
||||
%a What's this?
|
||||
%div{'ofn-with-tip' => t('.owner_tip')}
|
||||
%a= t('admin.whats_this')
|
||||
.nine.columns.omega
|
||||
- owner_email = @enterprise.andand.owner.andand.email || ""
|
||||
= f.hidden_field :owner_id, class: "select2 fullwidth", 'user-select' => 'Enterprise.owner'
|
||||
.row
|
||||
.three.columns.alpha
|
||||
%label Primary Producer?
|
||||
%div{'ofn-with-tip' => "Select 'Producer' if you are a primary producer of food."}
|
||||
%a What's this?
|
||||
%label= t('admin.enterprises.form.primary_details.primary_producer')
|
||||
%div{'ofn-with-tip' => t('admin.enterprises.form.primary_details.primary_producer_tip')}
|
||||
%a= t('admin.whats_this')
|
||||
.five.columns.omega
|
||||
= f.check_box :is_primary_producer, 'ng-model' => 'Enterprise.is_primary_producer'
|
||||
|
||||
= f.label :is_primary_producer, 'I am a Producer'
|
||||
= f.label :is_primary_producer, t('.i_am_producer')
|
||||
- if spree_current_user.admin?
|
||||
.row
|
||||
.alpha.eleven.columns
|
||||
.three.columns.alpha
|
||||
= f.label :sells, 'Sells'
|
||||
%div{'ofn-with-tip' => "None - enterprise does not sell to customers directly.<br />Own - Enterprise sells own products to customers.<br />Any - Enterprise can sell own or other enterprises products.<br />"}
|
||||
= f.label :sells, t('admin.enterprises.form.primary_details.sells')
|
||||
%div{'ofn-with-tip' => t('admin.enterprises.form.primary_details.sells_tip')}
|
||||
%a What's this?
|
||||
.two.columns
|
||||
= f.radio_button :sells, "none", 'ng-model' => 'Enterprise.sells'
|
||||
|
||||
= f.label :sells, "None", value: "none"
|
||||
= f.label :sells, t('admin.enterprises.form.primary_details.none'), value: "none"
|
||||
.two.columns
|
||||
= f.radio_button :sells, "own", 'ng-model' => 'Enterprise.sells'
|
||||
|
||||
= f.label :sells, "Own", value: "own"
|
||||
= f.label :sells, t('admin.enterprises.form.primary_details.own'), value: "own"
|
||||
.four.columns.omega
|
||||
= f.radio_button :sells, "any", 'ng-model' => 'Enterprise.sells'
|
||||
|
||||
= f.label :sells, "Any", value: "any"
|
||||
|
||||
= f.label :sells, t('admin.enterprises.form.primary_details.any'), value: "any"
|
||||
|
||||
.row
|
||||
.alpha.three.columns
|
||||
= f.label :contact, 'Contact Name'
|
||||
= f.label :contact, t('.contact_name')
|
||||
.omega.nine.columns
|
||||
= f.text_field :contact, { placeholder: "eg. Gustav Plum"}
|
||||
= f.text_field :contact, { placeholder: t('admin.enterprises.form.contact.name_placeholder')}
|
||||
.row
|
||||
.alpha.three.columns
|
||||
= f.label :email_address
|
||||
= f.label :email_address, t('admin.enterprises.form.contact.email_address')
|
||||
.omega.nine.columns
|
||||
= f.text_field :email_address, { placeholder: "eg. gustav@truffles.com", "ng-model" => "Enterprise.email_address" }
|
||||
= f.text_field :email_address, { placeholder: t('admin.enterprises.form.contact.email_address_placeholder'), "ng-model" => "Enterprise.email_address" }
|
||||
.row
|
||||
.alpha.three.columns
|
||||
= f.label :phone
|
||||
= f.label :phone, t('admin.enterprises.form.contact.phone')
|
||||
.omega.nine.columns
|
||||
= f.text_field :phone, { placeholder: "eg. 98 7654 3210"}
|
||||
= f.text_field :phone, { placeholder: t('admin.enterprises.form.contact.phone_placeholder')}
|
||||
.row
|
||||
.alpha.three.columns
|
||||
= f.label :website
|
||||
= f.label :website, t('admin.enterprises.form.contact.website')
|
||||
.omega.nine.columns
|
||||
= f.text_field :website, { placeholder: "eg. www.truffles.com"}
|
||||
= f.text_field :website, { placeholder: t('admin.enterprises.form.contact.website_placeholder')}
|
||||
|
||||
= f.fields_for :address do |af|
|
||||
.row
|
||||
.three.columns.alpha
|
||||
= af.label :address1
|
||||
= af.label :address1, t(:address)
|
||||
%span.required *
|
||||
.nine.columns.omega
|
||||
= af.text_field :address1, { placeholder: "eg. 123 High Street"}
|
||||
= af.text_field :address1, { placeholder: t(:address_placeholder)}
|
||||
.row
|
||||
.alpha.three.columns
|
||||
= af.label :address2
|
||||
= af.label :address2, t(:address2)
|
||||
.nine.columns.omega
|
||||
= af.text_field :address2
|
||||
.row
|
||||
.three.columns.alpha
|
||||
= af.label :city, 'Suburb'
|
||||
= af.label :city, t(:city)
|
||||
\/
|
||||
= af.label :zipcode, 'Postcode'
|
||||
= af.label :zipcode, t(:postcode)
|
||||
%span.required *
|
||||
.four.columns
|
||||
= af.text_field :city, { placeholder: "eg. Northcote"}
|
||||
= af.text_field :city, { placeholder: t(:city_placeholder)}
|
||||
.five.columns.omega
|
||||
= af.text_field :zipcode, { placeholder: "eg. 3070"}
|
||||
= af.text_field :zipcode, { placeholder: t(:postcode_placeholder)}
|
||||
.row
|
||||
.three.columns.alpha
|
||||
= af.label :state_id, 'State'
|
||||
= af.label :state_id, t(:state)
|
||||
\/
|
||||
= af.label :country_id, 'Country'
|
||||
= af.label :country_id, t(:country)
|
||||
.four.columns
|
||||
= af.collection_select :state_id, af.object.country.states, :id, :name, {}, :class => "select2 fullwidth"
|
||||
.five.columns.omega
|
||||
|
||||
@@ -8,8 +8,8 @@
|
||||
} do |f|
|
||||
|
||||
%save-bar{ dirty: "enterprise_form.$dirty", persist: "true" }
|
||||
%input.red{ type: "button", value: "Update", ng: { click: "submit()", disabled: "!enterprise_form.$dirty" } }
|
||||
%input{ type: "button", ng: { value: "enterprise_form.$dirty ? 'Cancel' : 'Close'", click: "cancel('#{main_app.admin_enterprises_path}')" } }
|
||||
%input.red{ type: "button", value: t(:update), ng: { click: "submit()", disabled: "!enterprise_form.$dirty" } }
|
||||
%input{ type: "button", ng: { value: "enterprise_form.$dirty ? '#{t(:cancel)}' : '#{t(:close)}'", click: "cancel('#{main_app.admin_enterprises_path}')" } }
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,12 +1,11 @@
|
||||
= render :partial => 'spree/shared/error_messages', :locals => { :target => @enterprise }
|
||||
= render partial: 'spree/shared/error_messages', locals: { target: @enterprise }
|
||||
|
||||
- content_for :page_title do
|
||||
Editing:
|
||||
= t('.editing')
|
||||
= @enterprise.name
|
||||
|
||||
- content_for :page_actions do
|
||||
%li= button_link_to "Back to enterprises list", main_app.admin_enterprises_path, icon: 'icon-arrow-left'
|
||||
|
||||
%li= button_link_to t('.back_link'), main_app.admin_enterprises_path, icon: 'icon-arrow-left'
|
||||
|
||||
= render 'admin/enterprises/form_data'
|
||||
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
.row
|
||||
.alpha.three.columns
|
||||
= f.label :description, 'Short Description'
|
||||
= f.label :description, t('.desc_short')
|
||||
.omega.eight.columns
|
||||
= f.text_field :description, maxlength: 255, placeholder: 'Tell us about your enterprise in one or two sentences'
|
||||
= f.text_field :description, maxlength: 255, placeholder: t('.desc_short_placeholder')
|
||||
.row
|
||||
.alpha.three.columns
|
||||
= f.label :long_description, 'About Us'
|
||||
= f.label :long_description, t('.desc_long')
|
||||
.omega.eight.columns
|
||||
-# textAngular toolbar options, add to the ta-toolbar array below and separate into groups with extra ],[ if needed:
|
||||
-# ['h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'p', 'pre', 'quote'],
|
||||
@@ -14,4 +14,4 @@
|
||||
-# ['html', 'insertImage', 'insertLink', 'insertVideo']
|
||||
%text-angular{'ng-model' => 'Enterprise.long_description', 'id' => 'enterprise_long_description', 'name' => 'enterprise[long_description]', 'class' => 'text-angular',
|
||||
'ta-toolbar' => "[['h1','h2','h3','h4','p'],['bold','italics','underline','clear'],['insertLink']]",
|
||||
'placeholder' => 'Tell customers about yourself. This information appears on your public profile.'}
|
||||
'placeholder' => t('.desc_long_placeholder')}
|
||||
@@ -1,34 +1,35 @@
|
||||
-# redo denoting required fields in the whole project
|
||||
.row
|
||||
Required fields are denoted with an asterisk (
|
||||
= t(:required_fields)
|
||||
(
|
||||
%span.required *
|
||||
)
|
||||
.row
|
||||
.three.columns.alpha
|
||||
= af.label :address1
|
||||
= af.label :address1, t(:address)
|
||||
%span.required *
|
||||
.eight.columns.omega
|
||||
= af.text_field :address1, { placeholder: "eg. 123 High Street"}
|
||||
= af.text_field :address1, { placeholder: t(:address_placeholder) }
|
||||
.row
|
||||
.alpha.three.columns
|
||||
= af.label :address2
|
||||
= af.label :address2, t(:address2)
|
||||
.eight.columns.omega
|
||||
= af.text_field :address2
|
||||
.row
|
||||
.three.columns.alpha
|
||||
= af.label :city, 'Suburb'
|
||||
= af.label :city, t(:city)
|
||||
\/
|
||||
= af.label :zipcode, 'Postcode'
|
||||
= af.label :zipcode, t(:postcode)
|
||||
%span.required *
|
||||
.four.columns
|
||||
= af.text_field :city, { placeholder: "eg. Northcote"}
|
||||
= af.text_field :city, { placeholder: t(:city_placeholder) }
|
||||
.four.columns.omega
|
||||
= af.text_field :zipcode, { placeholder: "eg. 3070"}
|
||||
= af.text_field :zipcode, { placeholder: t(:postcode_placeholder) }
|
||||
.row
|
||||
.three.columns.alpha
|
||||
= af.label :state_id, 'State'
|
||||
= af.label :state_id, t(:state)
|
||||
\/
|
||||
= af.label :country_id, 'Country'
|
||||
= af.label :country_id, t(:country)
|
||||
%span.required *
|
||||
.four.columns
|
||||
= af.collection_select :state_id, af.object.country.states, :id, :name, {}, :class => "select2 fullwidth"
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
.row
|
||||
.alpha.three.columns
|
||||
= f.label :abn, 'ABN'
|
||||
= f.label :abn, t('.abn')
|
||||
.omega.eight.columns
|
||||
= f.text_field :abn, { placeholder: "eg. 99 123 456 789"}
|
||||
= f.text_field :abn, { placeholder: t('.abn_placeholder') }
|
||||
|
||||
.row
|
||||
.alpha.three.columns
|
||||
= f.label :acn, 'ACN'
|
||||
= f.label :acn, t('.acn')
|
||||
.omega.eight.columns
|
||||
= f.text_field :acn, { placeholder: "eg. 123 456 789"}
|
||||
= f.text_field :acn, { placeholder: t('.acn_placeholder') }
|
||||
|
||||
.row
|
||||
.three.columns.alpha
|
||||
@@ -16,8 +16,8 @@
|
||||
.two.columns
|
||||
= f.radio_button :charges_sales_tax, true
|
||||
|
||||
= f.label :charges_sales_tax, "Yes", :value => "true"
|
||||
= f.label :charges_sales_tax, t(:say_yes), value: 'true'
|
||||
.five.columns.omega
|
||||
= f.radio_button :charges_sales_tax, false
|
||||
|
||||
= f.label :charges_sales_tax, "No", :value => "false"
|
||||
= f.label :charges_sales_tax, t(:say_no), value: 'false'
|
||||
|
||||
@@ -1,20 +1,20 @@
|
||||
.row
|
||||
.alpha.three.columns
|
||||
= f.label :contact, 'Name'
|
||||
= f.label :contact, t('.name')
|
||||
.omega.eight.columns
|
||||
= f.text_field :contact, { placeholder: "eg. Gustav Plum"}
|
||||
= f.text_field :contact, { placeholder: t('.name_placeholder') }
|
||||
.row
|
||||
.alpha.three.columns
|
||||
= f.label :email_address
|
||||
= f.label :email_address, t('.email_address')
|
||||
.omega.eight.columns
|
||||
= f.text_field :email_address, { placeholder: "eg. gustav@truffles.com" }
|
||||
= f.text_field :email_address, { placeholder: t('.email_address_placeholder') }
|
||||
.row
|
||||
.alpha.three.columns
|
||||
= f.label :phone
|
||||
= f.label :phone, t('.phone')
|
||||
.omega.eight.columns
|
||||
= f.text_field :phone, { placeholder: "eg. 98 7654 3210"}
|
||||
= f.text_field :phone, { placeholder: t('.phone_placeholder') }
|
||||
.row
|
||||
.alpha.three.columns
|
||||
= f.label :website
|
||||
= f.label :website, t('.website')
|
||||
.omega.eight.columns
|
||||
= f.text_field :website, { placeholder: "eg. www.truffles.com"}
|
||||
= f.text_field :website, { placeholder: t('.website_placeholder') }
|
||||
|
||||
@@ -2,8 +2,8 @@
|
||||
%table
|
||||
%thead
|
||||
%tr
|
||||
%th Name
|
||||
%th Fee Type
|
||||
%th= t('.name')
|
||||
%th= t('.fee_type')
|
||||
-# %th Calculator
|
||||
-# %th Calculator Values
|
||||
%tbody
|
||||
@@ -16,15 +16,15 @@
|
||||
%br
|
||||
%div
|
||||
%a.button{ href: "#{main_app.admin_enterprise_fees_path}"}
|
||||
Manage Enterprise Fees
|
||||
= t('.manage_fees')
|
||||
%i.icon-arrow-right
|
||||
|
||||
- else
|
||||
%p.text-center
|
||||
You don't have any enterprise fees yet.
|
||||
= t('.no_fees_yet')
|
||||
|
||||
%br
|
||||
.text-center
|
||||
%a.button{ href: "#{main_app.admin_enterprise_fees_path}"}
|
||||
Create One Now
|
||||
= t('.create_button')
|
||||
%i.icon-arrow-right
|
||||
|
||||
@@ -8,11 +8,13 @@
|
||||
= f.file_field :logo
|
||||
.row
|
||||
.alpha.three.columns
|
||||
= f.label :promo_image, 'ofn-with-tip' => 'This image is displayed in "About Us"'
|
||||
= f.label :promo_image, 'ofn-with-tip' => t('.promo_image_placeholder')
|
||||
%br/
|
||||
%span{ style: 'font-weight:bold' } PLEASE NOTE:
|
||||
Any promo image uploaded here will be cropped to 1200 x 260.
|
||||
The promo image is displayed at the top of an enterprise's profile page and pop-ups.
|
||||
%span{ style: 'font-weight:bold' }= t('.promo_image_note1')
|
||||
%br
|
||||
= t('.promo_image_note2')
|
||||
%br
|
||||
= t('.promo_image_note3')
|
||||
|
||||
.omega.eight.columns
|
||||
= image_tag @object.promo_image(:large) if @object.promo_image.present?
|
||||
|
||||
@@ -3,16 +3,17 @@
|
||||
-# their inventory if they so choose
|
||||
.row
|
||||
.alpha.eleven.columns
|
||||
You may opt to manage stock levels and prices in via your
|
||||
= t('.text1')
|
||||
= succeed "." do
|
||||
%strong
|
||||
%a{href: main_app.admin_inventory_path } inventory
|
||||
If you are using the inventory tool, you can select whether new products added by your suppliers need to be added to your inventory before they can be stocked. If you are not using your inventory to manage your products you should select the 'recommended' option below:
|
||||
%a{href: main_app.admin_inventory_path }= t('.inventory')
|
||||
%br
|
||||
= t('.text2')
|
||||
.row
|
||||
.alpha.eleven.columns
|
||||
.five.columns.alpha
|
||||
= radio_button :enterprise, :preferred_product_selection_from_inventory_only, "0", { 'ng-model' => 'Enterprise.preferred_product_selection_from_inventory_only' }
|
||||
= label :enterprise, :preferred_product_selection_from_inventory_only, "New products can be put into my shopfront (recommended)"
|
||||
= label :enterprise, :preferred_product_selection_from_inventory_only, t('.preferred_product_selection_from_inventory_only_yes')
|
||||
.six.columns.omega
|
||||
= radio_button :enterprise, :preferred_product_selection_from_inventory_only, "1", { 'ng-model' => 'Enterprise.preferred_product_selection_from_inventory_only' }
|
||||
= label :enterprise, :preferred_product_selection_from_inventory_only, "New products must be added to my inventory before they can be put into my shopfront"
|
||||
= label :enterprise, :preferred_product_selection_from_inventory_only, t('.preferred_product_selection_from_inventory_only_no')
|
||||
|
||||
@@ -2,32 +2,32 @@
|
||||
%table
|
||||
%thead
|
||||
%tr
|
||||
%th Name
|
||||
%th Applies?
|
||||
%th= t('.name')
|
||||
%th= t('.applies')
|
||||
%th
|
||||
%tbody
|
||||
- @payment_methods.each do |payment_method|
|
||||
%tr{ ng: { controller: 'paymentMethodsCtrl', init: "findPaymentMethodByID(#{payment_method.id})" } }
|
||||
%td= payment_method.name
|
||||
%td= f.check_box :payment_method_ids, { multiple: true, 'ng-model' => 'PaymentMethod.selected' }, payment_method.id, nil
|
||||
%td= link_to "Edit", edit_admin_payment_method_path(payment_method)
|
||||
%td= link_to t(:edit), edit_admin_payment_method_path(payment_method)
|
||||
%br
|
||||
.row
|
||||
.six.columns.alpha
|
||||
%a.button{ href: "#{admin_payment_methods_path}"}
|
||||
Manage Payment Methods
|
||||
= t('.manage')
|
||||
%i.icon-arrow-right
|
||||
.five.columns.omega.text-right
|
||||
%a.button{ href: "#{new_admin_payment_method_path}"}
|
||||
Create New Payment Method
|
||||
= t('.create_button')
|
||||
%i.icon-plus
|
||||
|
||||
- else
|
||||
%p.text-center
|
||||
You don't have any payment methods yet.
|
||||
= t('.no_method_yet')
|
||||
|
||||
%br
|
||||
.text-center
|
||||
%a.button{ href: "#{new_admin_payment_method_path}"}
|
||||
Create One Now
|
||||
= t('.create_one_button')
|
||||
%i.icon-arrow-right
|
||||
|
||||
@@ -1,61 +1,61 @@
|
||||
.row
|
||||
.alpha.eleven.columns
|
||||
.three.columns.alpha
|
||||
= f.label :name
|
||||
= f.label :name, t('.name')
|
||||
%span.required *
|
||||
.eight.columns.omega
|
||||
= f.text_field :name, { placeholder: "eg. Professor Plum's Biodynamic Truffles" }
|
||||
= f.text_field :name, { placeholder: t('.name_placeholder') }
|
||||
- if @groups.present?
|
||||
.row
|
||||
.alpha.eleven.columns
|
||||
.three.columns.alpha
|
||||
= f.label :group_ids, 'Groups'
|
||||
%div{'ofn-with-tip' => "Select any groups or regions that you are a member of. This will help customers find your enterprise."}
|
||||
%a What's this?
|
||||
= f.label :group_ids, t('.groups')
|
||||
%div{'ofn-with-tip' => t('.groups_tip')}
|
||||
%a= t('admin.whats_this')
|
||||
.eight.columns.omega
|
||||
= f.collection_select :group_ids, @groups, :id, :name, {}, class: "select2 fullwidth", multiple: true, placeholder: "Start typing to search available groups..."
|
||||
= f.collection_select :group_ids, @groups, :id, :name, {}, class: "select2 fullwidth", multiple: true, placeholder: t('.groups_placeholder')
|
||||
|
||||
.row
|
||||
.three.columns.alpha
|
||||
%label Primary Producer
|
||||
%div{'ofn-with-tip' => "Select 'Producer' if you are a primary producer of food."}
|
||||
%a What's this?
|
||||
%label= t('.primary_producer')
|
||||
%div{'ofn-with-tip' => t('.primary_producer_tip')}
|
||||
%a= t('admin.whats_this')
|
||||
.five.columns.omega
|
||||
= f.check_box :is_primary_producer, 'ng-model' => 'Enterprise.is_primary_producer'
|
||||
= f.label :is_primary_producer, 'Producer'
|
||||
= f.label :is_primary_producer, t('.producer')
|
||||
- if spree_current_user.admin?
|
||||
.row
|
||||
.alpha.eleven.columns
|
||||
.three.columns.alpha
|
||||
= f.label :sells, 'Sells'
|
||||
%div{'ofn-with-tip' => "None - enterprise does not sell to customers directly.<br />Own - Enterprise sells own products to customers.<br />Any - Enterprise can sell own or other enterprises products.<br />"}
|
||||
%a What's this?
|
||||
= f.label :sells, t('.sells')
|
||||
%div{'ofn-with-tip' => t('.sells_tip')}
|
||||
%a= t('admin.whats_this')
|
||||
.two.columns
|
||||
= f.radio_button :sells, "none", 'ng-model' => 'Enterprise.sells'
|
||||
= f.label :sells, "None", value: "none"
|
||||
= f.label :sells, t('.none'), value: "none"
|
||||
.two.columns
|
||||
= f.radio_button :sells, "own", 'ng-model' => 'Enterprise.sells'
|
||||
= f.label :sells, "Own", value: "own"
|
||||
= f.label :sells, t('.own'), value: "own"
|
||||
.four.columns.omega
|
||||
= f.radio_button :sells, "any", 'ng-model' => 'Enterprise.sells'
|
||||
= f.label :sells, "Any", value: "any"
|
||||
= f.label :sells, t('.any'), value: "any"
|
||||
.row
|
||||
.three.columns.alpha
|
||||
%label Visible in search?
|
||||
%div{'ofn-with-tip' => "Determines whether this enterprise will be visible to customers when searching the site."}
|
||||
%a What's this?
|
||||
%label= t('.visible_in_search')
|
||||
%div{'ofn-with-tip' => t('.visible_in_search_tip')}
|
||||
%a= t('admin.whats_this')
|
||||
.two.columns
|
||||
= f.radio_button :visible, true
|
||||
= f.label :visible, "Visible", :value => "true"
|
||||
= f.label :visible, t('.visible'), value: 'true'
|
||||
.five.columns.omega
|
||||
= f.radio_button :visible, false
|
||||
= f.label :visible, "Not Visible", :value => "false"
|
||||
= f.label :visible, t('.not_visible'), value: 'false'
|
||||
.permalink{ ng: { controller: "permalinkCtrl" } }
|
||||
.row{ ng: { show: "Enterprise.sells == 'own' || Enterprise.sells == 'any'" } }
|
||||
.three.columns.alpha
|
||||
= f.label :permalink, 'Permalink (no spaces)'
|
||||
%div{'ofn-with-tip' => "This permalink is used to create the url to your shop: #{spree.root_url}your-shop-name/shop"}
|
||||
%a What's this?
|
||||
= f.label :permalink, t('.permalink')
|
||||
%div{'ofn-with-tip' => t('.permalink_tip', link: spree.root_url)}
|
||||
%a= t('admin.whats_this')
|
||||
.six.columns
|
||||
= f.text_field :permalink, { 'ng-model' => "Enterprise.permalink", placeholder: "eg. your-shop-name", 'ng-model-options' => "{ updateOn: 'default blur', debounce: {'default': 300, 'blur': 0} }" }
|
||||
.two.columns.omega
|
||||
@@ -65,9 +65,9 @@
|
||||
%i{ ng: { class: "{'icon-ok-sign': availability == 'Available', 'icon-remove-sign': availability == 'Unavailable'}" } }
|
||||
.row{ ng: { show: "Enterprise.sells == 'own' || Enterprise.sells == 'any'" } }
|
||||
.three.columns.alpha
|
||||
%label Link to shop front
|
||||
%div{'ofn-with-tip' => "A direct link to your shopfront on the Open Food Network."}
|
||||
%a What's this?
|
||||
%label= t('.link_to_front')
|
||||
%div{'ofn-with-tip' => t('.link_to_front_tip')}
|
||||
%a= t('admin.whats_this')
|
||||
.eight.columns.omega
|
||||
= surround spree.root_url, "/shop" do
|
||||
{{Enterprise.permalink}}
|
||||
|
||||
@@ -2,8 +2,8 @@
|
||||
%table
|
||||
%thead
|
||||
%tr
|
||||
%th Name
|
||||
%th Applies?
|
||||
%th= t('.name')
|
||||
%th= t('.applies')
|
||||
%th
|
||||
%tbody
|
||||
- @shipping_methods.each do |shipping_method|
|
||||
@@ -15,19 +15,19 @@
|
||||
.row
|
||||
.six.columns.alpha
|
||||
%a.button{ href: "#{admin_shipping_methods_path}"}
|
||||
Manage Shipping Methods
|
||||
= t('.manage')
|
||||
%i.icon-arrow-right
|
||||
.five.columns.omega.text-right
|
||||
%a.button{ href: "#{new_admin_shipping_method_path}"}
|
||||
Create New Shipping Method
|
||||
= t('.create_button')
|
||||
%i.icon-plus
|
||||
|
||||
- else
|
||||
%p.text-center
|
||||
You don't have any shipping methods yet.
|
||||
= t('.no_method_yet')
|
||||
|
||||
%br
|
||||
.text-center
|
||||
%a.button{ href: "#{new_admin_shipping_method_path}"}
|
||||
Create One Now
|
||||
= t('.create_one_button')
|
||||
%i.icon-arrow-right
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
.eight.columns.omega
|
||||
%text-angular{'ng-model' => 'Enterprise.preferred_shopfront_message', 'id' => 'enterprise_preferred_shopfront_message', 'name' => 'enterprise[preferred_shopfront_message]', 'class' => 'text-angular',
|
||||
'ta-toolbar' => "[['h1','h2','h3','h4','p'],['bold','italics','underline','clear'],['insertLink']]",
|
||||
'placeholder' => 'An optional explanation for customers detailing how your shopfront works, to be displayed above the product list on your shop page.'}
|
||||
'placeholder' => t('.shopfront_message_placeholder')}
|
||||
.row
|
||||
.alpha.eleven.columns
|
||||
.three.columns.alpha
|
||||
@@ -13,7 +13,7 @@
|
||||
.eight.columns.omega
|
||||
%text-angular{'ng-model' => 'Enterprise.preferred_shopfront_closed_message', 'id' => 'enterprise_preferred_shopfront_closed_message', 'name' => 'enterprise[preferred_shopfront_closed_message]', 'class' => 'text-angular',
|
||||
'ta-toolbar' => "[['h1','h2','h3','h4','p'],['bold','italics','underline','clear'],['insertLink']]",
|
||||
'placeholder' => 'A message which provides a more detailed explanation about why your shop is closed and/or when customers can expect it to open again. This is displayed on your shop only when you have no active order cycles (ie. shop is closed).'}
|
||||
'placeholder' => t('.shopfront_closed_message_placeholder')}
|
||||
.row
|
||||
.alpha.eleven.columns
|
||||
.three.columns.alpha
|
||||
@@ -29,10 +29,10 @@
|
||||
= f.label "enterprise_preferred_shopfront_order_cycle_order", t(:sort_order_cycles_on_shopfront_by)
|
||||
.three.columns
|
||||
= radio_button :enterprise, :preferred_shopfront_order_cycle_order, :orders_open_at, { 'ng-model' => 'Enterprise.preferred_shopfront_order_cycle_order' }
|
||||
= label :enterprise, :preferred_shopfront_order_cycle_order_orders_open_at, "Open Date"
|
||||
= label :enterprise, :preferred_shopfront_order_cycle_order_orders_open_at, t('.open_date')
|
||||
.five.columns.omega
|
||||
= radio_button :enterprise, :preferred_shopfront_order_cycle_order, :orders_close_at, { 'ng-model' => 'Enterprise.preferred_shopfront_order_cycle_order' }
|
||||
= label :enterprise, :preferred_shopfront_order_cycle_order_orders_close_at, "Close Date"
|
||||
= label :enterprise, :preferred_shopfront_order_cycle_order_orders_close_at, t('.close_date')
|
||||
.row
|
||||
.alpha.eleven.columns
|
||||
.three.columns.alpha
|
||||
|
||||
@@ -17,4 +17,4 @@
|
||||
.alpha.three.columns
|
||||
= f.label :twitter
|
||||
.omega.eight.columns
|
||||
= f.text_field :twitter, { placeholder: "eg. @the_prof" }
|
||||
= f.text_field :twitter, { placeholder: t('.twitter_placeholder') }
|
||||
@@ -2,7 +2,7 @@
|
||||
.eleven.columns.alpha.omega
|
||||
%ofn-sortable{ axis: "y", handle: ".header", items: '.customer_tag', position: "tagGroup.position", after: { sort: "updateRuleCounts()" } }
|
||||
.no_tags{ ng: { show: "tagGroups.length == 0" } }
|
||||
No tags apply to this enterprise yet
|
||||
= t('.no_tags_yet')
|
||||
= render 'admin/enterprises/form/tag_rules/default_rules'
|
||||
-# = render 'customer_tags'
|
||||
.customer_tag{ id: "tg_{{tagGroup.position}}", ng: { repeat: "tagGroup in tagGroups" } }
|
||||
@@ -14,14 +14,14 @@
|
||||
%tr
|
||||
%td
|
||||
%h5
|
||||
For customers tagged:
|
||||
= t('.for_customers_tagged')
|
||||
%td
|
||||
%tags-with-translation{ object: "tagGroup", max: 1, on: { tag: { added: "updateTagsRulesFor(tagGroup)", removed: "updateTagsRulesFor(tagGroup)" } } }
|
||||
|
||||
.no_rules{ ng: { show: "tagGroup.rules.length == 0" } }
|
||||
No rules apply to this tag yet
|
||||
= t('.no_rules_yet')
|
||||
.tag_rule{ ng: { repeat: "rule in tagGroup.rules" } }
|
||||
.add_rule.text-center
|
||||
%input.button.icon-plus{ type: 'button', value: "+ Add A New Rule", "add-new-rule-to" => "addNewRuleTo", "tag-group" => "tagGroup", "new-tag-rule-dialog" => true }
|
||||
%input.button.icon-plus{ type: 'button', value: t('.add_new_rule'), "add-new-rule-to" => "addNewRuleTo", "tag-group" => "tagGroup", "new-tag-rule-dialog" => true }
|
||||
.add_tag
|
||||
%input.button.red.icon-plus{ type: 'button', value: "+ Add A New Tag", ng: { click: 'addNewTag()' } }
|
||||
%input.button.red.icon-plus{ type: 'button', value: t('.add_new_tag'), ng: { click: 'addNewTag()' } }
|
||||
|
||||
@@ -4,19 +4,17 @@
|
||||
-if @enterprise.pending_any_confirmation?
|
||||
.alert-box
|
||||
- email = @enterprise.confirmed? ? @enterprise.unconfirmed_email : @enterprise.email
|
||||
Email confirmation is pending.
|
||||
We've sent a confirmation email to
|
||||
%strong= "#{email}."
|
||||
= link_to('Resend', main_app.enterprise_confirmation_path(enterprise: { id: @enterprise.id, email: email } ), method: :post)
|
||||
= t('.email_confirmation_notice_html', {email: "<strong>#{email}</strong>".html_safe})
|
||||
= link_to(t('.resend'), main_app.enterprise_confirmation_path(enterprise: { id: @enterprise.id, email: email } ), method: :post)
|
||||
%a.close{ href: "#" } ×
|
||||
|
||||
.row
|
||||
.three.columns.alpha
|
||||
=f.label :owner_id, 'Owner'
|
||||
=f.label :owner_id, t('.owner')
|
||||
- if full_permissions
|
||||
%span.required *
|
||||
%div{'ofn-with-tip' => "The primary user responsible for this enterprise."}
|
||||
%a What's this?
|
||||
%div{'ofn-with-tip' => t('.owner_tip')}
|
||||
%a= t('admin.whats_this')
|
||||
.eight.columns.omega
|
||||
- if full_permissions
|
||||
= f.hidden_field :owner_id, class: "select2 fullwidth", 'user-select' => 'Enterprise.owner'
|
||||
@@ -25,29 +23,29 @@
|
||||
|
||||
.row
|
||||
.three.columns.alpha
|
||||
= f.label :email, 'Notifications'
|
||||
= f.label :email, t('.notifications')
|
||||
- if full_permissions
|
||||
%span.required *
|
||||
.with-tip{'data-powertip' => "Notifications about orders will be send to this email address."}
|
||||
%a What's this?
|
||||
.with-tip{'data-powertip' => t('.notifications_tip')}
|
||||
%a= t('admin.whats_this')
|
||||
.eight.columns.omega
|
||||
- if full_permissions
|
||||
= f.text_field :email, { placeholder: "eg. gustav@truffles.com", "ng-model" => "Enterprise.email" }
|
||||
= f.text_field :email, { placeholder: t('.notifications_placeholder'), "ng-model" => "Enterprise.email" }
|
||||
- else
|
||||
= @enterprise.email
|
||||
.row{ ng: { hide: "pristineEmail == null || pristineEmail == Enterprise.email"} }
|
||||
.alpha.three.columns
|
||||
|
||||
.omega.eight.columns
|
||||
Note: A new email address may need to be confirmed prior to use
|
||||
= t('.notifications_note')
|
||||
|
||||
.row
|
||||
.three.columns.alpha
|
||||
=f.label :user_ids, 'Managers'
|
||||
=f.label :user_ids, t('.managers')
|
||||
- if full_permissions
|
||||
%span.required *
|
||||
%div{'ofn-with-tip' => "The other users with permission to manage this enterprise."}
|
||||
%a What's this?
|
||||
%div{'ofn-with-tip' => t('.managers_tip')}
|
||||
%a= t('admin.whats_this')
|
||||
.eight.columns.omega
|
||||
- if full_permissions
|
||||
%table
|
||||
|
||||
@@ -6,10 +6,10 @@
|
||||
%tr
|
||||
%td
|
||||
%h5
|
||||
By Default
|
||||
= t('.by_default')
|
||||
%i.text-big.icon-question-sign.help-modal{ template: 'admin/modals/tag_rule_help.html' }
|
||||
.no_rules{ ng: { show: "defaultTagGroup.rules.length == 0" } }
|
||||
No default rules apply yet
|
||||
= t('.no_rules_yet')
|
||||
.tag_rule{ ng: { repeat: "rule in defaultTagGroup.rules" } }
|
||||
.add_rule.text-center
|
||||
%input.button.icon-plus{ type: 'button', value: "+ Add A New Default Rule", "add-new-rule-to" => "addNewRuleTo", "tag-group" => "defaultTagGroup", "new-tag-rule-dialog" => true }
|
||||
%input.button.icon-plus{ type: 'button', value: t('.add_new_button'), "add-new-rule-to" => "addNewRuleTo", "tag-group" => "defaultTagGroup", "new-tag-rule-dialog" => true }
|
||||
|
||||
@@ -1,19 +1,19 @@
|
||||
- content_for :page_title do
|
||||
Enterprises
|
||||
= t('.title')
|
||||
|
||||
- content_for :page_actions do
|
||||
= render 'admin/shared/user_guide_link'
|
||||
|
||||
- if spree_current_user.can_own_more_enterprises?
|
||||
%li#new_product_link
|
||||
= button_link_to "New Enterprise", main_app.new_admin_enterprise_path, :icon => 'icon-plus', :id => 'admin_new_enterprise_link'
|
||||
= button_link_to t('.new_enterprise'), main_app.new_admin_enterprise_path, icon: 'icon-plus', id: 'admin_new_enterprise_link'
|
||||
|
||||
= admin_inject_monthly_bill_description
|
||||
= admin_inject_column_preferences module: 'admin.enterprises', action: "enterprises_index"
|
||||
|
||||
= render 'admin/shared/enterprises_sub_menu'
|
||||
|
||||
= render :partial => 'spree/shared/error_messages', :locals => { :target => @enterprise_set }
|
||||
= render partial: 'spree/shared/error_messages', locals: { target: @enterprise_set }
|
||||
|
||||
- if spree_current_user.admin?
|
||||
= render 'admin_index'
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
= render :partial => 'spree/shared/error_messages', :locals => { :target => @enterprise }
|
||||
= render partial: 'spree/shared/error_messages', locals: { target: @enterprise }
|
||||
|
||||
- content_for :page_title do
|
||||
New Enterprise
|
||||
= t('.title')
|
||||
|
||||
- content_for :page_actions do
|
||||
%li= button_link_to "Back to enterprises list", main_app.admin_enterprises_path, icon: 'icon-arrow-left'
|
||||
%li= button_link_to t('.back_link'), main_app.admin_enterprises_path, icon: 'icon-arrow-left'
|
||||
|
||||
|
||||
-# Form
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
#welcome_page.sixteen.columns.alpha
|
||||
%header
|
||||
%h1 Welcome to the Open Food Network!
|
||||
%h1= t('.welcome_title')
|
||||
%p
|
||||
You have successfully created a
|
||||
= t('.welcome_text')
|
||||
%strong
|
||||
= "#{"producer " if @enterprise.is_primary_producer}profile"
|
||||
|
||||
%section
|
||||
%h2 Next step
|
||||
%p Choose your starting point:
|
||||
%h2= t('.next_step')
|
||||
%p= t('.choose_starting_point')
|
||||
|
||||
= render partial: "change_type_form"
|
||||
|
||||
@@ -1,22 +1,22 @@
|
||||
.row
|
||||
.alpha.omega.sixteen.columns
|
||||
%h3 Advanced Settings
|
||||
%h3= t('.title')
|
||||
|
||||
= form_for [main_app, :admin, @order_cycle] do |f|
|
||||
.row
|
||||
.six.columns.alpha
|
||||
= f.label "enterprise_preferred_product_selection_from_coordinator_inventory_only", t('admin.order_cycles.edit.choose_products_from')
|
||||
.with-tip{'data-powertip' => "You can opt to restrict all available products (both incoming and outgoing), to only those in #{@order_cycle.coordinator.name}'s inventory."}
|
||||
%a What's this?
|
||||
.with-tip{'data-powertip' => t('.choose_product_tip', inventory: @order_cycle.coordinator.name)}
|
||||
%a= t('admin.whats_this')
|
||||
.four.columns
|
||||
= f.radio_button :preferred_product_selection_from_coordinator_inventory_only, true
|
||||
= f.label :preferred_product_selection_from_coordinator_inventory_only, "Coordinator's Inventory Only"
|
||||
= f.label :preferred_product_selection_from_coordinator_inventory_only, t('.preferred_product_selection_from_coordinator_inventory_only_here')
|
||||
.six.columns.omega
|
||||
= f.radio_button :preferred_product_selection_from_coordinator_inventory_only, false
|
||||
= f.label :preferred_product_selection_from_coordinator_inventory_only, "All Available Products"
|
||||
= f.label :preferred_product_selection_from_coordinator_inventory_only, t('.preferred_product_selection_from_coordinator_inventory_only_all')
|
||||
|
||||
.row
|
||||
.sixteen.columns.alpha.omega.text-center
|
||||
%input{ type: 'submit', value: 'Save and Reload Page' }
|
||||
or
|
||||
%a{ href: "#", onClick: "toggleSettings()" } Close
|
||||
%input{ type: 'submit', value: t('.save_reload') }
|
||||
= t(:or)
|
||||
%a{ href: "#", onClick: "toggleSettings()" }= t(:close)
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
%ol.coordinator-fees
|
||||
%li{'ng-repeat' => 'enterprise_fee in order_cycle.coordinator_fees'}
|
||||
= select_tag 'order_cycle_coordinator_fee_{{ $index }}_id', nil, {'ng-model' => 'enterprise_fee.id', 'ng-options' => 'enterprise_fee.id as enterprise_fee.name for enterprise_fee in enterpriseFeesForEnterprise(order_cycle.coordinator_id)'}
|
||||
= link_to 'Remove', '#', {'id' => 'order_cycle_coordinator_fee_{{ $index }}_remove', 'ng-click' => 'removeCoordinatorFee($event, $index)'}
|
||||
= link_to t(:remove), '#', {'id' => 'order_cycle_coordinator_fee_{{ $index }}_remove', 'ng-click' => 'removeCoordinatorFee($event, $index)'}
|
||||
|
||||
= f.submit 'Add coordinator fee', 'ng-click' => 'addCoordinatorFee($event)'
|
||||
= f.submit t('.add'), 'ng-click' => 'addCoordinatorFee($event)'
|
||||
|
||||
@@ -3,55 +3,54 @@
|
||||
-if Enterprise.managed_by(spree_current_user).include? @order_cycle.coordinator
|
||||
= render 'coordinator_fees', f: f
|
||||
|
||||
%h2 Incoming
|
||||
%h2= t('.incoming')
|
||||
%table.exchanges
|
||||
%thead
|
||||
%tr
|
||||
%th Supplier
|
||||
%th= t('.supplier')
|
||||
%th
|
||||
Products
|
||||
=t('.products')
|
||||
= surround '(', ')' do
|
||||
%a{href: '#', 'ng-click' => "OrderCycle.toggleAllProducts('incoming')"}
|
||||
%span{'ng-show' => "OrderCycle.showProducts['incoming']"} Collapse all
|
||||
%span{'ng-hide' => "OrderCycle.showProducts['incoming']"} Expand all
|
||||
%th Receival details
|
||||
%th Fees
|
||||
%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'
|
||||
= 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 Outgoing
|
||||
%h2= t('.outgoing')
|
||||
%table.exchanges
|
||||
%thead
|
||||
%tr
|
||||
%th Distributor
|
||||
%th= t('.distributor')
|
||||
%th
|
||||
Products
|
||||
= t('.products')
|
||||
= surround '(', ')' do
|
||||
%a{href: '#', 'ng-click' => "OrderCycle.toggleAllProducts('outgoing')"}
|
||||
%span{'ng-show' => "OrderCycle.showProducts['outgoing']"} Collapse all
|
||||
%span{'ng-hide' => "OrderCycle.showProducts['outgoing']"} Expand all
|
||||
%th{ ng: { if: 'enterprises[exchange.enterprise_id].managed || order_cycle.viewing_as_coordinator' } } Tags
|
||||
%th Pickup / Delivery details
|
||||
%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 Fees
|
||||
%th.actions
|
||||
%tbody.panel-ctrl{ object: 'exchange', 'ng-repeat' => 'exchange in order_cycle.outgoing_exchanges'}
|
||||
= render 'exchange_form', :f => f, :type => 'distributor'
|
||||
|
||||
= 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()'} Loading...
|
||||
|
||||
%span{'ng-hide' => 'loaded()'}= t(:loading)
|
||||
|
||||
- unless Rails.env.production?
|
||||
#order-cycles-debug
|
||||
%h2 Debug information
|
||||
%h2= t('.debug_info')
|
||||
|
||||
%pre loaded = {{ loaded() | json }}
|
||||
%hr/
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
.row
|
||||
.alpha.two.columns
|
||||
= f.label :name
|
||||
= f.label :name, t('.name')
|
||||
.six.columns.omega
|
||||
- if viewing_as_coordinator_of?(@order_cycle)
|
||||
= f.text_field :name, 'ng-model' => 'order_cycle.name', 'required' => true, 'ng-disabled' => '!loaded()'
|
||||
- else
|
||||
{{ order_cycle.name }}
|
||||
.two.columns
|
||||
= f.label :orders_open_at, 'Orders open'
|
||||
= f.label :orders_open_at, t('.orders_open')
|
||||
.omega.six.columns
|
||||
- if viewing_as_coordinator_of?(@order_cycle)
|
||||
= f.text_field :orders_open_at, 'datetimepicker' => 'order_cycle.orders_open_at', 'ng-model' => 'order_cycle.orders_open_at', 'ng-disabled' => '!loaded()'
|
||||
@@ -16,11 +16,11 @@
|
||||
|
||||
.row
|
||||
.alpha.two.columns
|
||||
= f.label :coordinator
|
||||
= f.label :coordinator, t('.coordinator')
|
||||
.six.columns.omega
|
||||
= @order_cycle.coordinator.name
|
||||
.two.columns
|
||||
= f.label :orders_close_at, 'Orders close'
|
||||
= f.label :orders_close, t('.orders_close')
|
||||
.six.columns.omega
|
||||
- if viewing_as_coordinator_of?(@order_cycle)
|
||||
= f.text_field :orders_close_at, 'datetimepicker' => 'order_cycle.orders_close_at', 'ng-model' => 'order_cycle.orders_close_at', 'ng-disabled' => '!loaded()'
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
- if suppliers.count > 3
|
||||
%span{'ofn-with-tip' => supplier_list}
|
||||
= suppliers.count
|
||||
suppliers
|
||||
= t('.suppliers')
|
||||
- else
|
||||
= supplier_list
|
||||
%td= order_cycle.coordinator.name
|
||||
@@ -23,12 +23,12 @@
|
||||
- if distributors.count > 3
|
||||
%span{'ofn-with-tip' => distributor_list}
|
||||
= distributors.count
|
||||
distributors
|
||||
= t('.distributors')
|
||||
- else
|
||||
= distributor_list
|
||||
|
||||
%td.products
|
||||
%span= "#{order_cycle.variants.count} variants"
|
||||
%span= "#{order_cycle.variants.count} #{t('.variants')}"
|
||||
|
||||
%td.actions
|
||||
= link_to '', main_app.edit_admin_order_cycle_path(order_cycle), class: 'edit-order-cycle icon-edit no-text'
|
||||
@@ -36,4 +36,4 @@
|
||||
= link_to '', main_app.clone_admin_order_cycle_path(order_cycle), class: 'clone-order-cycle icon-copy no-text'
|
||||
- if can_delete?(order_cycle)
|
||||
%td.actions
|
||||
= link_to '', main_app.admin_order_cycle_path(order_cycle), class: 'delete-order-cycle icon-trash no-text', :method => :delete, data: { confirm: "Are you sure?" }
|
||||
= link_to '', main_app.admin_order_cycle_path(order_cycle), class: 'delete-order-cycle icon-trash no-text', :method => :delete, data: { confirm: t(:are_you_sure) }
|
||||
|
||||
@@ -2,23 +2,23 @@
|
||||
|
||||
.row
|
||||
.alpha.two.columns
|
||||
= label_tag 'Ready for'
|
||||
= label_tag t('.ready_for')
|
||||
.six.columns
|
||||
= text_field_tag 'order_cycle_outgoing_exchange_0_pickup_time', '', 'id' => 'order_cycle_outgoing_exchange_0_pickup_time', 'placeholder' => 'Date / time', 'ng-model' => 'outgoing_exchange.pickup_time', 'size' => 30
|
||||
= text_field_tag 'order_cycle_outgoing_exchange_0_pickup_time', '', 'id' => 'order_cycle_outgoing_exchange_0_pickup_time', 'placeholder' => t('.ready_for_placeholder'), 'ng-model' => 'outgoing_exchange.pickup_time', 'size' => 30
|
||||
.two.columns
|
||||
= label_tag 'Customer instructions'
|
||||
= label_tag t('.customer_instructions')
|
||||
.six.columns.omega
|
||||
= text_field_tag 'order_cycle_outgoing_exchange_0_pickup_instructions', '', 'id' => 'order_cycle_outgoing_exchange_0_pickup_instructions', 'placeholder' => 'Pick-up or delivery notes', 'ng-model' => 'outgoing_exchange.pickup_instructions', 'size' => 30
|
||||
= text_field_tag 'order_cycle_outgoing_exchange_0_pickup_instructions', '', 'id' => 'order_cycle_outgoing_exchange_0_pickup_instructions', 'placeholder' => t('.customer_instructions_placeholder'), 'ng-model' => 'outgoing_exchange.pickup_instructions', 'size' => 30
|
||||
|
||||
= label_tag 'Products'
|
||||
= label_tag t('.products')
|
||||
%table.exchanges
|
||||
%tbody{ng: {repeat: "exchange in order_cycle.incoming_exchanges"}}
|
||||
%tr.products
|
||||
%td{ ng: { include: "'admin/panels/exchange_supplied_products.html'" } }
|
||||
|
||||
%br/
|
||||
= label_tag 'Fees'
|
||||
= label_tag t('.fees')
|
||||
= render 'coordinator_fees', f: f
|
||||
|
||||
.actions
|
||||
%span{'ng-hide' => 'loaded()'} Loading...
|
||||
%span{'ng-hide' => 'loaded()'}= t(:loading)
|
||||
|
||||
@@ -12,26 +12,24 @@
|
||||
|
||||
- if can? :notify_producers, @order_cycle
|
||||
%li
|
||||
= button_to "Notify producers", main_app.notify_producers_admin_order_cycle_path, :id => 'admin_notify_producers', :confirm => 'Are you sure?'
|
||||
= button_to "Notify producers", main_app.notify_producers_admin_order_cycle_path, :id => 'admin_notify_producers', :confirm => t(:are_you_sure)
|
||||
%li
|
||||
%button#toggle_settings{ onClick: 'toggleSettings()' }
|
||||
Advanced Settings
|
||||
= t('.advanced_settings')
|
||||
%i.icon-chevron-down
|
||||
|
||||
|
||||
#advanced_settings{ hidden: true }
|
||||
= render partial: "/admin/order_cycles/advanced_settings"
|
||||
|
||||
%h1
|
||||
= t :edit_order_cycle
|
||||
|
||||
|
||||
- ng_controller = order_cycles_simple_form ? 'AdminSimpleEditOrderCycleCtrl' : 'AdminEditOrderCycleCtrl'
|
||||
= form_for [main_app, :admin, @order_cycle], :url => '', :html => {:class => 'ng order_cycle', 'ng-app' => 'admin.orderCycles', 'ng-controller' => ng_controller, name: 'order_cycle_form'} do |f|
|
||||
|
||||
%save-bar{ dirty: "order_cycle_form.$dirty", persist: "true" }
|
||||
%input.red{ type: "button", value: "Update", ng: { click: "submit($event, null)", disabled: "!order_cycle_form.$dirty" } }
|
||||
%input.red{ type: "button", value: "Update and Close", ng: { click: "submit($event, '#{main_app.admin_order_cycles_path}')", disabled: "!order_cycle_form.$dirty" } }
|
||||
%input.red{ type: "button", value: t(:update), ng: { click: "submit($event, null)", disabled: "!order_cycle_form.$dirty" } }
|
||||
%input.red{ type: "button", value: t('.update_and_close'), ng: { click: "submit($event, '#{main_app.admin_order_cycles_path}')", disabled: "!order_cycle_form.$dirty" } }
|
||||
%input{ type: "button", ng: { value: "order_cycle_form.$dirty ? 'Cancel' : 'Close'", click: "cancel('#{main_app.admin_order_cycles_path}')" } }
|
||||
|
||||
- if order_cycles_simple_form
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
|
||||
= content_for :page_actions do
|
||||
%li#new_order_cycle_link
|
||||
= button_link_to t(:new_order_cycle), main_app.new_admin_order_cycle_path, :icon => 'icon-plus', :id => 'admin_new_order_cycle_link'
|
||||
= button_link_to t(:new_order_cycle), main_app.new_admin_order_cycle_path, icon: 'icon-plus', id: 'admin_new_order_cycle_link'
|
||||
- if @show_more
|
||||
%li
|
||||
= button_link_to t(:label_less), main_app.admin_order_cycles_path
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
= form_for [main_app, :admin, @order_cycle], :url => '', :html => {:class => 'ng order_cycle', 'ng-app' => 'admin.orderCycles', 'ng-controller' => ng_controller, name: 'order_cycle_form'} do |f|
|
||||
|
||||
%save-bar{ dirty: "order_cycle_form.$dirty", persist: "true" }
|
||||
%input.red{ type: "button", value: "Create", ng: { click: "submit($event, '#{main_app.admin_order_cycles_path}')", disabled: "!order_cycle_form.$dirty" } }
|
||||
%input.red{ type: "button", value: t(:create), ng: { click: "submit($event, '#{main_app.admin_order_cycles_path}')", disabled: "!order_cycle_form.$dirty" } }
|
||||
%input{ type: "button", ng: { value: "order_cycle_form.$dirty ? 'Cancel' : 'Close'", click: "cancel('#{main_app.admin_order_cycles_path}')" } }
|
||||
|
||||
- if order_cycles_simple_form
|
||||
|
||||
@@ -4,8 +4,8 @@
|
||||
%table.index.sortable{"data-hook" => "", "data-sortable-link" => main_app.update_positions_admin_enterprise_producer_properties_url(@enterprise)}
|
||||
%thead
|
||||
%tr{"data-hook" => "producer_properties_header"}
|
||||
%th{colspan: "2"} Property
|
||||
%th Value
|
||||
%th{colspan: "2"}= t('.property')
|
||||
%th= t('.value')
|
||||
%th.actions
|
||||
%tbody#producer_properties{"data-hook" => ""}
|
||||
= f.fields_for :producer_properties do |pp_form|
|
||||
|
||||
@@ -1,17 +1,14 @@
|
||||
- content_for :page_title do
|
||||
= "#{@enterprise.name}:"
|
||||
Producer Properties
|
||||
|
||||
= t('.title')
|
||||
|
||||
- content_for :page_actions do
|
||||
%ul.tollbar.inline-menu
|
||||
%li
|
||||
= link_to_add_fields t(:add_producer_property), 'tbody#producer_properties', class: 'icon-plus button'
|
||||
|
||||
|
||||
= render 'spree/shared/error_messages', target: @enterprise
|
||||
|
||||
|
||||
= form_for @enterprise, url: main_app.admin_enterprise_path(@enterprise), method: :put do |f|
|
||||
= render 'form', f: f
|
||||
|
||||
|
||||
@@ -1 +1 @@
|
||||
= button_link_to "User Guide", "http://www.openfoodnetwork.org/platform/user-guide/", :icon => 'icon-external-link', target: '_blank'
|
||||
= button_link_to t('.user_guide'), "http://www.openfoodnetwork.org/platform/user-guide/", icon: 'icon-external-link', target: '_blank'
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
%div.sixteen.columns.alpha.omega#loading{ ng: { cloak: true, if: 'hub_id && products.length == 0 && RequestMonitor.loading' } }
|
||||
%img.spinner{ src: "/assets/spinning-circles.svg" }
|
||||
%h1 LOADING INVENTORY
|
||||
%h1= t('.loading_inventory')
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
-# %show-more.text-center{ data: "filteredProducts", limit: "productLimit", increment: "10" }
|
||||
.text-center{ ng: { show: "filteredProducts.length > productLimit" } }
|
||||
%input{ type: 'button', value: 'Show More', ng: { click: 'productLimit = productLimit + 10' } }
|
||||
or
|
||||
%input{ type: 'button', value: "Show All ({{ filteredProducts.length - productLimit }} More)", ng: { click: 'productLimit = filteredProducts.length' } }
|
||||
%input{ type: 'button', value: t(:show_more), ng: { click: 'productLimit = productLimit + 10' } }
|
||||
= t(:or)
|
||||
%input{ type: 'button', value: "#{t(:show_all)} ({{ filteredProducts.length - productLimit }} More)", ng: { click: 'productLimit = filteredProducts.length' } }
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
-# TODO render this in Angular instead of server-side
|
||||
-# The problem being how to render the partials
|
||||
.row
|
||||
.small-6.columns
|
||||
.small-12.medium-12.large-6.columns
|
||||
- available_payment_methods.each do |method|
|
||||
.row
|
||||
.small-12.columns
|
||||
@@ -34,6 +34,6 @@
|
||||
.row{"ng-if" => "order.payment_method_id == #{method.id}"}
|
||||
.small-12.columns
|
||||
= render partial: "spree/checkout/payment/#{method.method_type}", :locals => { :payment_method => method }
|
||||
.small-12.columns.medium-6.columns.large-6.columns
|
||||
.small-12.medium-12.large-6.columns
|
||||
#distributor_address.panel{"ng-show" => "Checkout.paymentMethod().description"}
|
||||
%span.pre-wrap {{ Checkout.paymentMethod().description }}
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
"ng-class" => "{valid: shipping.$valid, open: accordion.shipping}"}
|
||||
= render 'checkout/accordion_heading'
|
||||
|
||||
.small-12.columns.medium-6.columns.large-6.columns
|
||||
.small-12.columns.medium-12.columns.large-6.columns
|
||||
%label{"ng-repeat" => "method in ShippingMethods.shipping_methods"}
|
||||
%input{type: :radio,
|
||||
required: true,
|
||||
@@ -38,7 +38,7 @@
|
||||
%input{type: :checkbox, "ng-model" => "Checkout.default_ship_address"}
|
||||
= t :checkout_default_ship_address
|
||||
|
||||
.small-12.columns.medium-6.columns.large-6.columns
|
||||
.small-12.columns.medium-12.columns.large-6.columns
|
||||
#distributor_address.panel{"ng-show" => "Checkout.shippingMethod().description"}
|
||||
%span{ style: "white-space: pre-wrap;" }{{ Checkout.shippingMethod().description }}
|
||||
%br/
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
%link{href: "https://fonts.googleapis.com/css?family=Roboto:400,300italic,400italic,300,700,700italic|Oswald:300,400,700", rel: "stylesheet", type: "text/css"}
|
||||
|
||||
= yield :scripts
|
||||
%script{src: "//maps.googleapis.com/maps/api/js?libraries=places,geometry"}
|
||||
%script{src: "//maps.googleapis.com/maps/api/js?libraries=places,geometry#{ ENV['GOOGLE_MAPS_API_KEY'] ? '&key=' + ENV['GOOGLE_MAPS_API_KEY'] : ''} "}
|
||||
= split_stylesheet_link_tag "darkswarm/all"
|
||||
= javascript_include_tag "darkswarm/all"
|
||||
|
||||
|
||||
@@ -21,3 +21,6 @@ CURRENCY: AUD
|
||||
#
|
||||
# DISCOURSE_URL must be the URL of your Discourse instance.
|
||||
#DISCOURSE_URL: "https://noticeboard.openfoodnetwork.org.au"
|
||||
|
||||
# see: https://developers.google.com/maps/documentation/javascript/get-api-key
|
||||
# GOOGLE_MAPS_API_KEY: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
|
||||
|
||||
@@ -11,7 +11,7 @@ en-GB:
|
||||
Were you a guest last time? Perhaps you need to create an account or reset your password.
|
||||
enterprise_confirmations:
|
||||
enterprise:
|
||||
confirmed: Thank you, your email address has been confirmed.
|
||||
confirmed: Thankyou, your email address has been confirmed.
|
||||
not_confirmed: Your email address could not be confirmed. Perhaps you have already completed this step?
|
||||
confirmation_sent: "Confirmation email sent!"
|
||||
confirmation_not_sent: "Could not send a confirmation email."
|
||||
@@ -522,14 +522,14 @@ en-GB:
|
||||
producers_title: Producers
|
||||
producers_headline: Find local producers
|
||||
producers_signup_title: Sign up as a producer
|
||||
producers_signup_headline: Food producers, empowered.
|
||||
producers_signup_motivation: Sell your food and tell your stories to diverse new markets. Save time and money on every overhead. We support innovation without the risk. We've levelled the playing field.
|
||||
producers_signup_send: Join now
|
||||
producers_signup_enterprise: Enterprise Accounts
|
||||
producers_signup_headline: Food producers. Meet OFN.
|
||||
producers_signup_motivation: Sell your food and tell your stories. Save time and money on every overhead. We support innovation without the risk. We're levelling the playing field.
|
||||
producers_signup_send: Register
|
||||
producers_signup_enterprise: Why the Open Food Network?
|
||||
producers_signup_studies: Stories from our producers.
|
||||
producers_signup_cta_headline: Join now!
|
||||
producers_signup_cta_action: Join now
|
||||
producers_signup_detail: Here's the detail.
|
||||
producers_signup_cta_action: Register
|
||||
producers_signup_detail: Got a question?
|
||||
products_item: Item
|
||||
products_description: Description
|
||||
products_variant: Variant
|
||||
@@ -537,7 +537,7 @@ en-GB:
|
||||
products_available: Available?
|
||||
products_producer: "Producer"
|
||||
products_price: "Price"
|
||||
register_title: Register
|
||||
register_title: Find out more
|
||||
sell_title: "Register"
|
||||
sell_headline: "Get on the Open Food Network!"
|
||||
sell_motivation: "Showcase your beautiful food."
|
||||
@@ -875,7 +875,7 @@ en-GB:
|
||||
spree_admin_single_enterprise_alert_mail_confirmation: "Please confirm the email address for"
|
||||
spree_admin_single_enterprise_alert_mail_sent: "We've sent an email to"
|
||||
spree_admin_overview_action_required: "Action Required"
|
||||
spree_admin_overview_check_your_inbox: "Please check your inbox for further instructions. Thanks!"
|
||||
spree_admin_overview_check_your_inbox: "Please check you inbox for further instructions. Thanks!"
|
||||
change_package: "Change Package"
|
||||
spree_admin_single_enterprise_hint: "Hint: To allow people to find you, turn on your visibility under"
|
||||
your_profil_live: "Your profile live"
|
||||
|
||||
@@ -70,9 +70,17 @@ en:
|
||||
say_no: "No"
|
||||
say_yes: "Yes"
|
||||
then: then
|
||||
|
||||
sort_order_cycles_on_shopfront_by: "Sort Order Cycles On Shopfront By"
|
||||
|
||||
required_fields: Required fields are denoted with an asterisk
|
||||
select_continue: Select and Continue
|
||||
remove: Remove
|
||||
or: or
|
||||
collapse_all: Collapse all
|
||||
expand_all: Expand all
|
||||
loading: Loading...
|
||||
show_more: Show more
|
||||
show_all: Show all
|
||||
cancel: Cancel
|
||||
|
||||
admin:
|
||||
# Common properties / models
|
||||
@@ -131,6 +139,31 @@ en:
|
||||
update_address: 'Update Address'
|
||||
confirm_delete: 'Sure to delete?'
|
||||
|
||||
cache_settings:
|
||||
show:
|
||||
distributor: Distributor
|
||||
order_cycle: Order Cycle
|
||||
status: Status
|
||||
diff: Diff
|
||||
|
||||
contents:
|
||||
edit:
|
||||
title: Content
|
||||
|
||||
enterprise_fees:
|
||||
index:
|
||||
title: Entreprise Fees
|
||||
enterprise: Enterprise
|
||||
fee_type: Fee Type
|
||||
name: Name
|
||||
tax_category: Tax Category
|
||||
calculator: Calculator
|
||||
calculator_values: Calculator Values
|
||||
|
||||
enterprise_groups:
|
||||
index:
|
||||
new_button: New Enterprise Group
|
||||
|
||||
products:
|
||||
bulk_edit:
|
||||
unit: Unit
|
||||
@@ -142,6 +175,8 @@ en:
|
||||
av_on: "Av. On"
|
||||
|
||||
variant_overrides:
|
||||
loading_flash:
|
||||
loading_inventory: LOADING INVENTORY
|
||||
index:
|
||||
title: Inventory
|
||||
description: Use this page to manage inventories for your enterprises. Any product details set here will override those set on the 'Products' page
|
||||
@@ -193,11 +228,89 @@ en:
|
||||
|
||||
enterprises:
|
||||
index:
|
||||
producer?: Producer?
|
||||
title: Enterprises
|
||||
new_enterprise: New Enterprise
|
||||
producer?: "Producer?"
|
||||
package: Package
|
||||
status: Status
|
||||
manage: Manage
|
||||
form:
|
||||
about_us:
|
||||
desc_short: Short Description
|
||||
desc_short_placeholder: Tell us about your enterprise in one or two sentences
|
||||
desc_long: About Us
|
||||
desc_long_placeholder: Tell customers about yourself. This information appears on your public profile.
|
||||
business_details:
|
||||
abn: ABN
|
||||
abn_placeholder: eg. 99 123 456 789
|
||||
acn: ACN
|
||||
acn_placeholder: eg. 123 456 789
|
||||
contact:
|
||||
name: Name
|
||||
name_placeholder: eg. Gustav Plum
|
||||
email_address: Email Address
|
||||
email_address_placeholder: eg. gustav@truffles.com
|
||||
phone: Phone
|
||||
phone_placeholder: eg. 98 7654 3210
|
||||
website: Website
|
||||
website_placeholder: eg. www.truffles.com
|
||||
enterprise_fees:
|
||||
name: Name
|
||||
fee_type: Fee Type
|
||||
manage_fees: Manage Enterprise Fees
|
||||
no_fees_yet: You don't have any enterprise fees yet.
|
||||
create_button: Create One Now
|
||||
images:
|
||||
logo: Logo
|
||||
promo_image_placeholder: 'This image is displayed in "About Us"'
|
||||
promo_image_note1: 'PLEASE NOTE:'
|
||||
promo_image_note2: Any promo image uploaded here will be cropped to 1200 x 260.
|
||||
promo_image_note3: The promo image is displayed at the top of an enterprise's profile page and pop-ups.
|
||||
inventory_settings:
|
||||
text1: You may opt to manage stock levels and prices in via your
|
||||
inventory: inventory
|
||||
text2: "If you are using the inventory tool, you can select whether new products \
|
||||
added by your suppliers need to be added to your inventory before they can be \
|
||||
stocked. If you are not using your inventory to manage your products you should \
|
||||
select the 'recommended' option below:"
|
||||
preferred_product_selection_from_inventory_only_yes: New products can be put into my shopfront (recommended)
|
||||
preferred_product_selection_from_inventory_only_no: New products must be added to my inventory before they can be put into my shopfront
|
||||
payment_methods:
|
||||
name: Name
|
||||
applies: Applies?
|
||||
manage: Manage Payment Methods
|
||||
not_method_yet: You don't have any payment methods yet.
|
||||
create_button: Create New Payment Method
|
||||
create_one_button: Create One Now
|
||||
primary_details:
|
||||
name: Name
|
||||
name_placeholder: eg. Professor Plum's Biodynamic Truffles
|
||||
groups: Groups
|
||||
groups_tip: Select any groups or regions that you are a member of. This will help customers find your enterprise.
|
||||
groups_placeholder: Start typing to search available groups...
|
||||
primary_producer: Primary Producer?
|
||||
primary_producer_tip: Select 'Producer' if you are a primary producer of food.
|
||||
producer: Producer
|
||||
any: Any
|
||||
none: None
|
||||
own: Own
|
||||
sells: Sells
|
||||
sells_tip: "None - enterprise does not sell to customers directly.<br />Own - Enterprise sells own products to customers.<br />Any - Enterprise can sell own or other enterprises products.<br />"
|
||||
visible_in_search: Visible in search?
|
||||
visible_in_search_tip: Determines whether this enterprise will be visible to customers when searching the site.
|
||||
visible: Visible
|
||||
not_visible: Not visible
|
||||
permalink: Permalink (no spaces)
|
||||
permalink_tip: "This permalink is used to create the url to your shop: {{link}} your-shop-name/shop"
|
||||
link_to_front: Link to shop front
|
||||
link_to_front_tip: A direct link to your shopfront on the Open Food Network.
|
||||
shipping_methods:
|
||||
name: Name
|
||||
applies: Applies?
|
||||
manage: Manage Shipping Methods
|
||||
create_button: Create New Shipping Method
|
||||
create_one_button: Create One Now
|
||||
no_method_yet: You don't have any shipping methods yet.
|
||||
shop_preferences:
|
||||
shopfront_requires_login: "Publicly visible shopfront?"
|
||||
shopfront_requires_login_tip: "Choose whether customers must login to view the shopfront or if it's visible to everybody."
|
||||
@@ -207,6 +320,142 @@ en:
|
||||
allow_guest_orders_tip: "Allow checkout as guest or require a registered user."
|
||||
allow_guest_orders_false: "Require login to order"
|
||||
allow_guest_orders_true: "Allow guest checkout"
|
||||
shopfront_message_placeholder: \
|
||||
An optional explanation for customers detailing how your shopfront works, \
|
||||
to be displayed above the product list on your shop page.
|
||||
shopfront_closed_message_placeholder: \
|
||||
A message which provides a more detailed explanation about why your shop is \
|
||||
closed and/or when customers can expect it to open again. This is displayed \
|
||||
on your shop only when you have no active order cycles (ie. shop is closed).
|
||||
open_date: Open Date
|
||||
close_date: Close Date
|
||||
social:
|
||||
twitter_placeholder: eg. @the_prof
|
||||
tag_rules:
|
||||
default_rules:
|
||||
by_default: By Default
|
||||
no_rules_yet: No default rules apply yet
|
||||
add_new_button: '+ Add A New Default Rule'
|
||||
no_tags_yet: No tags apply to this enterprise yet
|
||||
no_rules_yet: No rules apply to this tag yet
|
||||
for_customers_tagged: 'For customers tagged:'
|
||||
add_new_rule: '+ Add A New Rule'
|
||||
add_new_tag: '+ Add A New Tag'
|
||||
users:
|
||||
email_confirmation_notice_html: "Email confirmation is pending. We've sent a confirmation email to %{email}."
|
||||
resend: Resend
|
||||
owner: 'Owner'
|
||||
owner_tip: The primary user responsible for this enterprise.
|
||||
notifications: Notifications
|
||||
notifications_tip: Notifications about orders will be send to this email address.
|
||||
notifications_placeholder: eg. gustav@truffles.com
|
||||
notifications_note: 'Note: A new email address may need to be confirmed prior to use'
|
||||
managers: Managers
|
||||
managers_tip: The other users with permission to manage this enterprise.
|
||||
actions:
|
||||
edit_profile: Edit Profile
|
||||
properties: Properties
|
||||
payment_methods: Payment Methods
|
||||
payment_methods_tip: This enterprise has no payment methods
|
||||
shipping_methods: Shipping Methods
|
||||
shipping_methods_tip: This enterprise has shipping methods
|
||||
enterprise_fees: Enterprise Fees
|
||||
enterprise_fees_tip: This enterprise has no fees
|
||||
admin_index:
|
||||
name: Name
|
||||
role: Role
|
||||
sells: Sells
|
||||
visible: Visible?
|
||||
owner: Owner
|
||||
producer: Producer
|
||||
change_type_form:
|
||||
producer_profile: Producer Profile
|
||||
connect_ofn: Connect through OFN
|
||||
always_free: ALWAYS FREE
|
||||
producer_description_text: Add your products to Open Food Network, allowing hubs to stock your products in their stores.
|
||||
producer_shop: Producer Shop
|
||||
sell_your_produce: Sell your own produce
|
||||
sell_description_text: Sell your products directly to customers through your very own Open Food Network shopfront.
|
||||
sell_description_text2: A Producer Shop is for your produce only, if you want to sell produce grown/produced off site, select 'Producer Hub'.
|
||||
producer_hub: Producer Hub
|
||||
producer_hub_text: Sell produce from self and others
|
||||
producer_hub_description_text: Your enterprise is the backbone of your local food system. You can sell your own produce as well as produce aggregated from other enterprises through your shopfront on the Open Food Network.
|
||||
profile: Profile Only
|
||||
get_listing: Get a listing
|
||||
profile_description_text: People can find and contact you on the Open Food Network. Your enterprise will be visible on the map, and will be searchable in listings.
|
||||
hub_shop: Hub Shop
|
||||
hub_shop_text: Sell produce from others
|
||||
hub_shop_description_text: Your enterprise is the backbone of your local food system. You aggregate produce from other enterprises and can sell it through your shop on the Open Food Network.
|
||||
choose_option: Please choose one of the options above.
|
||||
change_now: Change now
|
||||
enterprise_user_index:
|
||||
search_placeholder: Search By Name
|
||||
manage: Manage
|
||||
new_form:
|
||||
owner: Owner
|
||||
owner_tip: The primary user responsible for this enterprise.
|
||||
i_am_producer: I am a Producer
|
||||
contact_name: Contact Name
|
||||
edit:
|
||||
editing: 'Editing:'
|
||||
back_link: Back to enterprises list
|
||||
new:
|
||||
title: New Enterprise
|
||||
back_link: Back to enterprises list
|
||||
welcome:
|
||||
welcome_title: Welcome to the Open Food Network!
|
||||
welcome_text: You have successfully created a
|
||||
next_step: Next step
|
||||
choose_starting_point: 'Choose your starting point:'
|
||||
order_cycles:
|
||||
advanced_settings:
|
||||
title: Advanced Settings
|
||||
choose_product_tip: You can opt to restrict all available products (both incoming and outgoing), to only those in {{inventory}}'s inventory.
|
||||
preferred_product_selection_from_coordinator_inventory_only_here: Coordinator's Inventory Only
|
||||
preferred_product_selection_from_coordinator_inventory_only_all: All Available Products
|
||||
save_reload: Save and Reload Page
|
||||
coordinator_fees:
|
||||
add: Add coordinator fee
|
||||
form:
|
||||
incoming: Incoming
|
||||
supplier: Supplier
|
||||
products: Products
|
||||
receival_details: Receival details
|
||||
fees: Fees
|
||||
outgoing: Outgoing
|
||||
distributor: Distributor
|
||||
products: Products
|
||||
tags: Tags
|
||||
delivery_detaisl: Pickup / Delivery details
|
||||
debug_info: Debug information
|
||||
name_and_timing_form:
|
||||
name: Name
|
||||
orders_open: Orders open at
|
||||
coordinator: Coordinator
|
||||
order_closes: Orders close
|
||||
row:
|
||||
suppliers: suppliers
|
||||
distributors: distributors
|
||||
variants: variants
|
||||
simple_form:
|
||||
ready_for: Ready for
|
||||
ready_for_placeholder: Date / time
|
||||
customer_instructions: Customer instructions
|
||||
customer_instructions_placeholder: Pick-up or delivery notes
|
||||
products: Products
|
||||
fees: Fees
|
||||
edit:
|
||||
advanced_settings: Advanced Settings
|
||||
update_and_close: Update and Close
|
||||
producer_properties:
|
||||
form:
|
||||
property: Property
|
||||
value: Value
|
||||
index:
|
||||
title: Producer Properties
|
||||
shared:
|
||||
user_guide_link:
|
||||
user_guide: User Guide
|
||||
|
||||
home:
|
||||
hubs:
|
||||
@@ -256,10 +505,14 @@ en:
|
||||
phone: Phone
|
||||
next: Next
|
||||
address: Address
|
||||
address_placeholder: eg. 123 High Street
|
||||
address2: Address (contd.)
|
||||
city: City
|
||||
city_placeholder: eg. Northcote
|
||||
state: State
|
||||
postcode: Postcode
|
||||
postcode_placeholder: eg. 3070
|
||||
state: State
|
||||
country: Country
|
||||
unauthorized: Unauthorized
|
||||
terms_of_service: "Terms of service"
|
||||
@@ -413,6 +666,8 @@ en:
|
||||
order_payment_paypal_successful: Your payment via PayPal has been processed successfully.
|
||||
order_hub_info: Hub Info
|
||||
|
||||
bom_tip: "Use this page to alter product quantities across multiple orders. Products may also be removed from orders entirely, if required."
|
||||
|
||||
unsaved_changes_warning: "Unsaved changes exist and will be lost if you continue."
|
||||
unsaved_changes_error: "Fields with red borders contain errors."
|
||||
|
||||
|
||||
@@ -53,6 +53,17 @@ fr:
|
||||
say_yes: "Oui"
|
||||
then: puis
|
||||
sort_order_cycles_on_shopfront_by: "Trier les cycles de vente par"
|
||||
required_fields: "Les champs obligatoires sont annotés d'une astérisque"
|
||||
select_continue: Sélectionner et Continuer
|
||||
remove: Supprimer
|
||||
or: ou
|
||||
collapse_all: Réduire
|
||||
expand_all: Etendre
|
||||
loading: Chargement...
|
||||
show_more: Voir plus
|
||||
show_all: Voir tout
|
||||
cancel: Annuler
|
||||
|
||||
admin:
|
||||
date: Date
|
||||
email: Email
|
||||
@@ -100,6 +111,27 @@ fr:
|
||||
select_country: 'Choisir le pays'
|
||||
select_state: 'Choisir le département'
|
||||
edit: 'Modifier'
|
||||
cache_settings:
|
||||
show:
|
||||
distributor: Distributeur
|
||||
order_cycle: Cycle de vente
|
||||
status: Statut
|
||||
diff: Diff
|
||||
contents:
|
||||
edit:
|
||||
title: Contenu
|
||||
enterprise_fees:
|
||||
index:
|
||||
title: Marges de l'entreprise
|
||||
enterprise: Entreprise
|
||||
fee_type: Type de marge
|
||||
name: Nom
|
||||
tax_category: TVA appliquée
|
||||
calculator: Calculateur
|
||||
calculator_values: Valeurs applicables
|
||||
enterprise_groups:
|
||||
index:
|
||||
new_button: Nouveau groupe d'entreprise
|
||||
products:
|
||||
bulk_edit:
|
||||
unit: Unité
|
||||
@@ -110,6 +142,8 @@ fr:
|
||||
available_on: Disponible sur
|
||||
av_on: "Disp. sur"
|
||||
variant_overrides:
|
||||
loading_flash:
|
||||
loading_inventory: LOADING INVENTORY
|
||||
index:
|
||||
title: Stock
|
||||
description: Utilisez cette page pour gérer le catalogue de votre entreprise. Les détails produits saisis ici remplaceront ceux de la page "Produit" pour votre entreprise uniquement.
|
||||
@@ -162,11 +196,231 @@ fr:
|
||||
status: Statut
|
||||
manage: Gérer
|
||||
form:
|
||||
about_us:
|
||||
desc_short: Description courte
|
||||
desc_short_placeholder: Dites nous à propos de votre entreprise en 2 lignes
|
||||
desc_long: Description publique
|
||||
desc_long_placeholder: Décrivez-vous à vos clients. Cette information apparaîtra sur votre profil public.
|
||||
business_details:
|
||||
abn: ABN
|
||||
abn_placeholder: "ex: 99 123 456 789"
|
||||
acn: ACN
|
||||
acn_placeholder: "ex: 123 456 789"
|
||||
contact:
|
||||
name: Prénom/Nom
|
||||
name_placeholder: "ex: Maurice Batot"
|
||||
email_address: Email Address
|
||||
email_address_placeholder: "ex: maurice@tomates.fr"
|
||||
phone: Téléphone
|
||||
phone_placeholder: "ex: 98 7654 3210"
|
||||
website: Site Web
|
||||
website_placeholder: "ex: www.tomates.fr"
|
||||
enterprise_fees:
|
||||
name: Nom
|
||||
fee_type: Type de marge
|
||||
manage_fees: Gérer vos marges
|
||||
no_fees_yet: Vous n'avez pas encore de marges définies.
|
||||
create_button: Créer une nouvelle marge
|
||||
images:
|
||||
logo: Logo
|
||||
promo_image_placeholder: 'Cette image est affichée dans la partie "A Propos"'
|
||||
promo_image_note1: 'NOTES :'
|
||||
promo_image_note2: Toutes les images uploadées ici seront coupées pour 1200x260 pixels.
|
||||
promo_image_note3: L'image promotionelle est affichée en haut de la page profil de l'entreprise et sur les pop-ups.
|
||||
inventory_settings:
|
||||
text1: Vous pouvez gérer votre stock et vos prix via votre
|
||||
inventory: inventaire
|
||||
text2: "If you are using the inventory tool, you can select whether new products \
|
||||
added by your suppliers need to be added to your inventory before they can be \
|
||||
stocked. If you are not using your inventory to manage your products you should \
|
||||
select the 'recommended' option below:"
|
||||
preferred_product_selection_from_inventory_only_yes: Les nouveaux produits peuvent être mis dans mon magasin (Recommendé)
|
||||
preferred_product_selection_from_inventory_only_no: Les nouveaux produits doivent être ajouté dans mon magasin avant de pouvoir être ajouté dans mon magasin
|
||||
payment_methods:
|
||||
name: Nom
|
||||
applies: Applies?
|
||||
manage: Gérer les moyens de paiement
|
||||
not_method_yet: Vous n'avez encore aucun moyen de paiement.
|
||||
create_button: Ajouter un nouveau moyen de paiement
|
||||
create_one_button: Ajouter un nouveau moyen de paiement
|
||||
primary_details:
|
||||
name: Nom
|
||||
name_placeholder: 'ex: Les Oranges Bleues'
|
||||
groups: Groupes
|
||||
groups_tip: Select any groups or regions that you are a member of. This will help customers find your enterprise.
|
||||
groups_placeholder: Commencer à taper dans rechercher les groupes disponibles...
|
||||
primary_producer: Primary Producer
|
||||
primary_producer_tip: Select 'Producer' if you are a primary producer of food.
|
||||
producer: Producteur
|
||||
any: Any
|
||||
none: None
|
||||
own: Own
|
||||
sells: Sells
|
||||
sells_tip: "None - enterprise does not sell to customers directly.<br />Own - Enterprise sells own products to customers.<br />Any - Enterprise can sell own or other enterprises products.<br />"
|
||||
visible_in_seach: Visible dans la recherche?
|
||||
visible_in_seach_tip: Determines whether this enterprise will be visible to customers when searching the site.
|
||||
visible: Visible
|
||||
not_visible: Pas visible
|
||||
permalink: Lien (pas d'espace)
|
||||
permalink_tip: "This permalink is used to create the url to your shop: {{link}} your-shop-name/shop"
|
||||
link_to_front: Link to shop front
|
||||
link_to_front_tip: A direct link to your shopfront on the Open Food Network.
|
||||
shipping_methods:
|
||||
name: Nom
|
||||
applies: Applies?
|
||||
manage: Gérer les moyens de livraison
|
||||
create_button: Ajouter un nouveau moyen de livraison
|
||||
create_one_button: Ajouter un nouveau moyen de livraison
|
||||
no_method_yet: Vous n'avez encore aucun moyen de livraison défini.
|
||||
shop_preferences:
|
||||
shopfront_requires_login: "Cette boutique exige un login?"
|
||||
shopfront_requires_login_tip: "Les acheteurs doivent-ils se connecter pour accéder à la boutique?"
|
||||
shopfront_requires_login_false: "Public"
|
||||
shopfront_requires_login_true: "Demander aux acheteurs de se connecter"
|
||||
allow_guest_orders: "Guest orders"
|
||||
allow_guest_orders_tip: "Allow checkout as guest or require a registered user."
|
||||
allow_guest_orders_false: "Require login to order"
|
||||
allow_guest_orders_true: "Allow guest checkout"
|
||||
shopfront_message_placeholder: \
|
||||
An optional explanation for customers detailing how your shopfront works, \
|
||||
to be displayed above the product list on your shop page.
|
||||
shopfront_closed_message_placeholder: \
|
||||
A message which provides a more detailed explanation about why your shop is \
|
||||
closed and/or when customers can expect it to open again. This is displayed \
|
||||
on your shop only when you have no active order cycles (ie. shop is closed).
|
||||
open_date: Open Date
|
||||
close_date: Close Date
|
||||
social:
|
||||
twitter_placeholder: 'ex: @lesorangesbleues'
|
||||
tag_rules:
|
||||
default_rules:
|
||||
by_default: Par défaut
|
||||
no_rules_yet: Aucune règle encore ajoutée
|
||||
add_new_button: + Ajouter une nouvelle règle
|
||||
no_tags_yet: Aucun tag encore défini pour cette entreprise
|
||||
no_rules_yet: Aucun régle encore définie pour ce tag
|
||||
for_customers_tagged: 'For customers tagged:'
|
||||
add_new_rule: '+ Ajouter une nouvelle régle'
|
||||
add_new_tag: '+ Ajouter un nouveau tag'
|
||||
users:
|
||||
email_confirmation_text: Email confirmation is pending.<br />We've sent a confirmation email to
|
||||
resend: Renvoyer
|
||||
owner: Propriétaire
|
||||
owner_tip: Le premier utilisateur responsable pour l'entreprise.
|
||||
notifications: Notifications
|
||||
notifications_tip: Notifications about orders will be send to this email address.
|
||||
notifications_placeholder: 'ex: gustav@truffles.com'
|
||||
notifications_note: 'Note: A new email address may need to be confirmed prior to use'
|
||||
managers: Managers
|
||||
managers_tip: The other users with permission to manage this enterprise.
|
||||
actions:
|
||||
edit_profile: Mettre à jour le profil
|
||||
properties: Propriétés
|
||||
payment_methods: Méthodes de paiement
|
||||
payment_methods_tip: Cette entreprise n'a pas de méthode de paiement
|
||||
shipping_methods: Méthodes de livraison
|
||||
shipping_methods_tip: Cette entreprise n'a pas de méthode de livraisons
|
||||
enterprise_fees: Enterprise Fees
|
||||
enterprise_fees_tip: This enterprise has no fees
|
||||
admin_index:
|
||||
name: Nom
|
||||
role: Role
|
||||
sells: Sells
|
||||
visible: Visible?
|
||||
owner: Owner
|
||||
producer: Producer
|
||||
change_type_form:
|
||||
producer_profile: Producer Profile
|
||||
connect_ofn: Connect through OFN
|
||||
always_free: ALWAYS FREE
|
||||
producer_description_text: Add your products to Open Food Network, allowing hubs to stock your products in their stores.
|
||||
producer_shop: Producer Shop
|
||||
sell_your_produce: Sell your own produce
|
||||
sell_description_text: Sell your products directly to customers through your very own Open Food Network shopfront.
|
||||
sell_description_text2: A Producer Shop is for your produce only, if you want to sell produce grown/produced off site, select 'Producer Hub'.
|
||||
producer_hub: Producer Hub
|
||||
producer_hub_text: Sell produce from self and others
|
||||
producer_hub_description_text: Your enterprise is the backbone of your local food system. You can sell your own produce as well as produce aggregated from other enterprises through your shopfront on the Open Food Network.
|
||||
profile: Profile Only
|
||||
get_listing: Get a listing
|
||||
profile_description_text: People can find and contact you on the Open Food Network. Your enterprise will be visible on the map, and will be searchable in listings.
|
||||
hub_shop: Hub Shop
|
||||
hub_shop_text: Sell produce from others
|
||||
hub_shop_description_text: Your enterprise is the backbone of your local food system. You aggregate produce from other enterprises and can sell it through your shop on the Open Food Network.
|
||||
choose_option: Please choose one of the options above.
|
||||
change_now: Change now
|
||||
enterprise_user_index:
|
||||
search_placeholder: Search By Name
|
||||
manage: Manage
|
||||
new_form:
|
||||
owner: Owner
|
||||
owner_tip: The primary user responsible for this enterprise.
|
||||
i_am_producer: I am a Producer
|
||||
contact_name: Nom du contact
|
||||
edit:
|
||||
editing: 'Editing:'
|
||||
back_link: Retour à la liste d'entreprise
|
||||
index:
|
||||
title: Enterprises
|
||||
new_enterprise: Ajouter une nouvelle entreprise
|
||||
new:
|
||||
title: Nouvelle entreprise
|
||||
back_link: Retour à la liste d'entreprise
|
||||
welcome:
|
||||
welcome_title: Bienvenue chez Open Food France !
|
||||
welcome_text: Vous avez bien créé une
|
||||
next_step: Etape suivante
|
||||
choose_starting_point: 'Choose your starting point:'
|
||||
order_cycles:
|
||||
advanced_settings:
|
||||
title: Advanced Settings
|
||||
choose_product_tip: You can opt to restrict all available products (both incoming and outgoing), to only those in {{inventory}}'s inventory.
|
||||
preferred_product_selection_from_coordinator_inventory_only_here: Coordinator's Inventory Only
|
||||
preferred_product_selection_from_coordinator_inventory_only_all: All Available Products
|
||||
save_reload: Save and Reload Page
|
||||
coordinator_fees:
|
||||
add: Add coordinator fee
|
||||
form:
|
||||
incoming: Incoming
|
||||
supplier: Supplier
|
||||
products: Products
|
||||
receival_details: Receival details
|
||||
fees: Fees
|
||||
outgoing: Outgoing
|
||||
distributor: Distributor
|
||||
products: Products
|
||||
tags: Tags
|
||||
delivery_detaisl: Pickup / Delivery details
|
||||
debug_info: Debug information
|
||||
name_and_timing_form:
|
||||
name: Name
|
||||
orders_open: Orders open
|
||||
coordinator: Coordinator
|
||||
order_closes: Orders close
|
||||
row:
|
||||
suppliers: suppliers
|
||||
distributors: distributors
|
||||
variants: variants
|
||||
simple_form:
|
||||
ready_for: Ready for
|
||||
ready_for_placeholder: Date / time
|
||||
customer_instructions: Customer instructions
|
||||
customer_instructions_placeholder: Pick-up or delivery notes
|
||||
products: Products
|
||||
fees: Fees
|
||||
edit:
|
||||
advanced_settings: Advanced Settings
|
||||
update_and_close: Update and Close
|
||||
producer_properties:
|
||||
form:
|
||||
property: Propriété
|
||||
value: Valeur
|
||||
index:
|
||||
title: Producer Properties
|
||||
shared:
|
||||
user_guide_link:
|
||||
user_guide: Guide l'utilisateur
|
||||
|
||||
home:
|
||||
hubs:
|
||||
show_closed_shops: "Aficher les boutiques fermées"
|
||||
@@ -211,10 +465,14 @@ fr:
|
||||
phone: Téléphone
|
||||
next: Suivant
|
||||
address: Adresse
|
||||
address_placeholder: "ex: 16, rue du Marché"
|
||||
address2: Adresse (suite)
|
||||
city: Ville
|
||||
city_placeholder: "ex: Lille"
|
||||
state: Département
|
||||
postcode: Code postal
|
||||
postcode_placeholder: "ex: 59000"
|
||||
state: Région
|
||||
country: Pays
|
||||
unauthorized: Non authorisé
|
||||
terms_of_service: "Conditions d'utilisation"
|
||||
|
||||
Reference in New Issue
Block a user