spree_suppliers 0.1.0 → 0.60.3
Sign up to get free protection for your applications and to get access to all the features.
- data/README +46 -0
- data/Rakefile +137 -0
- data/app/controllers/admin/pickup_locations_controller.rb +52 -0
- data/app/controllers/admin/pickups_controller.rb +84 -0
- data/app/controllers/admin/shipping_options_controller.rb +32 -0
- data/app/controllers/admin/supplier_taxons_controller.rb +65 -0
- data/app/controllers/admin/suppliers_controller.rb +203 -0
- data/app/controllers/admin/vendor_overview_controller.rb +18 -0
- data/app/controllers/dash/base_controller.rb +10 -0
- data/app/controllers/dash/overview_controller.rb +6 -0
- data/app/controllers/dash/pickup_locations_controller.rb +27 -0
- data/app/controllers/dash/pickups_controller.rb +40 -0
- data/app/controllers/dash/products_controller.rb +15 -0
- data/app/controllers/messages_controller.rb +17 -0
- data/app/controllers/suppliers_controller.rb +19 -0
- data/app/controllers/user_sessions_decorator.rb +39 -0
- data/app/helpers/admin/suppliers_helper.rb +21 -0
- data/app/helpers/cities_helper.rb +2 -0
- data/app/helpers/dragonfly_helper.rb +16 -0
- data/app/helpers/messages_helper.rb +2 -0
- data/app/helpers/suppliers_helper.rb +16 -0
- data/app/mailers/supplier_mailer.rb +11 -0
- data/app/models/ability_decorator.rb +19 -0
- data/app/models/delivery.rb +6 -0
- data/app/models/hour.rb +4 -0
- data/app/models/item.rb +5 -0
- data/app/models/message.rb +3 -0
- data/app/models/pickup.rb +10 -0
- data/app/models/pickup_date.rb +3 -0
- data/app/models/pickup_location.rb +7 -0
- data/app/models/supplier.rb +33 -0
- data/app/models/supplier_invoice.rb +5 -0
- data/app/views/admin/orders/index.html.erb +107 -0
- data/app/views/admin/orders/show.html.erb +35 -0
- data/app/views/admin/orders/user.html.erb +19 -0
- data/app/views/admin/pickup_locations/_pickup_location.html.erb +10 -0
- data/app/views/admin/pickup_locations/edit.html.erb +44 -0
- data/app/views/admin/pickup_locations/new.html.erb +48 -0
- data/app/views/admin/pickup_locations/show.html.erb +1 -0
- data/app/views/admin/pickups/_pickup.erb +0 -0
- data/app/views/admin/pickups/index.html.erb +44 -0
- data/app/views/admin/pickups/new.html.erb +33 -0
- data/app/views/admin/pickups/show.html.erb +42 -0
- data/app/views/admin/products/_suppliers_form.html.erb +5 -0
- data/app/views/admin/shared/_order_tabs_decide.html.erb +5 -0
- data/app/views/admin/shared/_vendor_order_tabs.html.erb +39 -0
- data/app/views/admin/shipping_options/edit.html.erb +38 -0
- data/app/views/admin/supplier_taxons/_form.html.erb +23 -0
- data/app/views/admin/supplier_taxons/_taxon_table.html.erb +23 -0
- data/app/views/admin/supplier_taxons/available.js.erb +33 -0
- data/app/views/admin/supplier_taxons/edit.html.erb +11 -0
- data/app/views/admin/supplier_taxons/remove.html.erb +1 -0
- data/app/views/admin/supplier_taxons/select.js.erb +2 -0
- data/app/views/admin/supplier_taxons/selected.html.erb +51 -0
- data/app/views/admin/suppliers/_edit_form.html.erb +75 -0
- data/app/views/admin/suppliers/_edit_hours_form.html.erb +18 -0
- data/app/views/admin/suppliers/_form.html.erb +72 -0
- data/app/views/admin/suppliers/_hours_form.html.erb +11 -0
- data/app/views/admin/suppliers/_image_form.html.erb +40 -0
- data/app/views/admin/suppliers/_supplier.html.erb +37 -0
- data/app/views/admin/suppliers/_supplier_tabs.html.erb +18 -0
- data/app/views/admin/suppliers/_suppliers_table.html.erb +25 -0
- data/app/views/admin/suppliers/_upload_image.html.erb +14 -0
- data/app/views/admin/suppliers/available.js.erb +34 -0
- data/app/views/admin/suppliers/edit.html.erb +20 -0
- data/app/views/admin/suppliers/index.html.erb +102 -0
- data/app/views/admin/suppliers/line_items.html.erb +20 -0
- data/app/views/admin/suppliers/new.html.erb +22 -0
- data/app/views/admin/suppliers/remove.html.erb +1 -0
- data/app/views/admin/suppliers/select.html.erb +1 -0
- data/app/views/admin/suppliers/selected.html.erb +40 -0
- data/app/views/admin/suppliers/show.html.erb +2 -0
- data/app/views/admin/users/_form.html.erb +40 -0
- data/app/views/admin/vendor_overview/index.html.erb +1 -0
- data/app/views/checkout/_delivery.html.erb +5 -0
- data/app/views/dash/overview/index.html.erb +58 -0
- data/app/views/dash/pickup_locations/_pickup_location.html.erb +3 -0
- data/app/views/dash/pickup_locations/new.html.erb +47 -0
- data/app/views/dash/pickups/_pickup.erb +3 -0
- data/app/views/dash/pickups/new.html.erb +24 -0
- data/app/views/dash/products/new.html.erb +38 -0
- data/app/views/layouts/admin.html.erb +81 -0
- data/app/views/messages/_message_form.html.erb +17 -0
- data/app/views/messages/create.html.erb +2 -0
- data/app/views/messages/destroy.html.erb +2 -0
- data/app/views/messages/new.html.erb +2 -0
- data/app/views/shared/_deliveries.html.erb +113 -0
- data/app/views/shared/_hours.html.erb +21 -0
- data/app/views/shared/_products_vendor.html.erb +49 -0
- data/app/views/shared/_supplier_invoices.html.erb +67 -0
- data/app/views/supplier_mailer/invoice_email.html.erb +72 -0
- data/app/views/suppliers/_supplier.html.erb +7 -0
- data/app/views/suppliers/_supplier_list.erb +20 -0
- data/app/views/suppliers/index.html.erb +17 -0
- data/app/views/suppliers/show.html.erb +106 -0
- data/app/views/suppliers/supplier_list.erb +14 -0
- data/config/initializers/dragonfly.rb +8 -0
- data/config/initializers/supplier_invoice_mailer.rb +10 -0
- data/config/locales/en-US.yml +13 -0
- data/config/routes.rb +48 -0
- data/db/migrate/20091209201716_supplier_setup.rb +36 -0
- data/db/migrate/20110922213437_create_messages.rb +18 -0
- data/db/migrate/20110928203155_create_hours.rb +21 -0
- data/db/migrate/20111006185052_create_pickups.rb +17 -0
- data/db/migrate/20111010191125_add_location_to_addresses.rb +9 -0
- data/db/migrate/20111010214313_create_pickup_dates.rb +14 -0
- data/db/migrate/20111011180211_add_supplier_id_to_user.rb +9 -0
- data/db/migrate/20111012211422_create_pickup_locations.rb +21 -0
- data/db/migrate/20111013155257_create_supplier_invoices.rb +16 -0
- data/db/migrate/20111013161225_create_items.rb +18 -0
- data/db/migrate/20111018133543_add_attributes_to_products.rb +17 -0
- data/db/migrate/20111028190454_add_attributes_to_assets.rb +11 -0
- data/db/migrate/20111029230805_create_suppliers_taxons.rb +16 -0
- data/db/migrate/20111101165933_create_deliveries.rb +17 -0
- data/db/migrate/20111108213108_create_shipping_methods_suppliers.rb +16 -0
- data/db/seeds.rb +14 -0
- data/lib/spree_suppliers.rb +411 -0
- data/lib/spree_suppliers_hooks.rb +40 -0
- data/lib/tasks/spree_suppliers.rake +27 -0
- data/public/javascripts/jquery-ui.js +312 -0
- data/public/javascripts/jquery-ui.multidatespicker.js +398 -0
- data/public/javascripts/jquery.ui.datepicker.js +1791 -0
- data/public/stylesheets/suppliers.css +676 -0
- data/spec/controllers/cities_controller_spec.rb +157 -0
- data/spec/controllers/shipping_options_controller_spec.rb +12 -0
- data/spec/helpers/cities_helper_spec.rb +15 -0
- data/spec/models/city_spec.rb +5 -0
- data/spec/models/comment_spec.rb +64 -0
- data/spec/models/item_spec.rb +5 -0
- data/spec/models/message_spec.rb +5 -0
- data/spec/models/pickup_date_spec.rb +5 -0
- data/spec/models/pickup_location_spec.rb +5 -0
- data/spec/models/pickup_spec.rb +5 -0
- data/spec/models/rating_spec.rb +24 -0
- data/spec/models/supplier_invoice_spec.rb +5 -0
- data/spec/models/supplier_spec.rb +11 -0
- data/spec/requests/cities_spec.rb +11 -0
- data/spec/routing/cities_routing_spec.rb +35 -0
- data/spec/spec.opts +6 -0
- data/spec/spec_helper.rb +37 -0
- data/spec/views/cities/edit.html.erb_spec.rb +22 -0
- data/spec/views/cities/index.html.erb_spec.rb +28 -0
- data/spec/views/cities/new.html.erb_spec.rb +22 -0
- data/spec/views/cities/show.html.erb_spec.rb +21 -0
- data/spec/views/shipping_options/edit.html.erb_spec.rb +5 -0
- data/spree_suppliers.gemspec +24 -0
- metadata +181 -14
@@ -0,0 +1,33 @@
|
|
1
|
+
<h1>Products Pickup Settings</h1>
|
2
|
+
<h1>Pickups</h1>
|
3
|
+
|
4
|
+
<div class="locations">
|
5
|
+
<% if @pickups.empty? %>
|
6
|
+
<p>No Pickup Locations Specified</p>
|
7
|
+
<% else %>
|
8
|
+
<ul>
|
9
|
+
<%= render @pickups %>
|
10
|
+
</ul>
|
11
|
+
<% end %>
|
12
|
+
</div>
|
13
|
+
|
14
|
+
<div>
|
15
|
+
<% form_tag({:controller => "pickups", :action => "create"}, :method => :post) do %>
|
16
|
+
<% if current_user.has_role?("vendor") %>
|
17
|
+
<%= hidden_field_tag :supplier_id, current_user.supplier.id %>
|
18
|
+
<% else %>
|
19
|
+
<%= select_tag :supplier_id, options_from_collection_for_select(@suppliers, "id", "title") %>
|
20
|
+
<% end %>
|
21
|
+
<%= select_tag :pickup_location_id, options_from_collection_for_select(@locations, "id", "location_name") %>
|
22
|
+
Dates: <%= text_field :dates, nil, :id => :dates %> (click in the field to add)
|
23
|
+
<br />
|
24
|
+
<%= submit_tag "Save" %>
|
25
|
+
<br />
|
26
|
+
<% end %>
|
27
|
+
</div>
|
28
|
+
|
29
|
+
<%= link_to "Create new location", new_admin_pickup_location_path %>
|
30
|
+
|
31
|
+
<script type="text/javascript">
|
32
|
+
$("#dates").multiDatesPicker();
|
33
|
+
</script>
|
@@ -0,0 +1,42 @@
|
|
1
|
+
<h1>
|
2
|
+
<%= @supplier.title %>'s <%= t("pickups") %>
|
3
|
+
</h1>
|
4
|
+
|
5
|
+
<table class="admin-report" width="545">
|
6
|
+
<thead>
|
7
|
+
<tr>
|
8
|
+
<th width="300px">
|
9
|
+
<%= @supplier.title %>
|
10
|
+
</th>
|
11
|
+
<th width="600px">
|
12
|
+
<%= t("pickup_address") %>
|
13
|
+
</th>
|
14
|
+
<th width="300px">
|
15
|
+
<%= t("edit") %>
|
16
|
+
</th>
|
17
|
+
<th>
|
18
|
+
<%= t("delete") %>
|
19
|
+
</th>
|
20
|
+
</tr>
|
21
|
+
</thead>
|
22
|
+
<tbody>
|
23
|
+
<% @supplier.pickups.each do |pickup| %>
|
24
|
+
<tr class="<%= cycle('even', 'odd') %>">
|
25
|
+
<td>
|
26
|
+
<%= link_to pickup.pickup_location.location_name, admin_pickup_location_path(pickup) %>
|
27
|
+
</td>
|
28
|
+
<td>
|
29
|
+
<%= pickup.pickup_location.address1 %>, <%= pickup.pickup_location.city %>, <%= State.find_by_id(pickup.pickup_location.state_id) %>
|
30
|
+
</td>
|
31
|
+
<td>
|
32
|
+
<%= link_to "edit", edit_admin_pickup_location_path(pickup.pickup_location) %>
|
33
|
+
</td>
|
34
|
+
<td>
|
35
|
+
<%= button_to "delete", admin_pickup_path(pickup), :method => :delete %>
|
36
|
+
</td>
|
37
|
+
</tr>
|
38
|
+
<% end %>
|
39
|
+
</tbody>
|
40
|
+
</table>
|
41
|
+
|
42
|
+
<%= link_to t("new_pickup"), new_admin_pickup_path %>
|
@@ -0,0 +1,39 @@
|
|
1
|
+
<h1><%= t(:order) + " #{@order.number}" %></h1>
|
2
|
+
|
3
|
+
<% content_for :sidebar do %>
|
4
|
+
<div id="order_tab_summary">
|
5
|
+
<h3 id="order_number"><%= "#{t(:order)} ##{@order.number} " %></h3>
|
6
|
+
<h5 id="order_status"><%= "#{t(:status)}: #{t("order_state.#{@order.state}")}" %></h5>
|
7
|
+
<h5 id="order_total"><%= "#{t(:total)}: #{number_to_currency(@order.total)}" %></h5>
|
8
|
+
<% if @order.completed? %>
|
9
|
+
<h5 id="shipment_status"><%= "#{t(:shipment)}: #{t("shipment_states.#{@order.shipment_state}")}" %></h5>
|
10
|
+
<h5 id="payment_status"><%= "#{t(:payment)}: #{t("payment_states.#{@order.payment_state}")}" %></h5>
|
11
|
+
<% end %>
|
12
|
+
<br class="clear" />
|
13
|
+
</div>
|
14
|
+
<br class="clear" />
|
15
|
+
|
16
|
+
<ul class="sidebar">
|
17
|
+
<%= hook :admin_order_tabs, {:current => current} do %>
|
18
|
+
<% unless @order.completed? %>
|
19
|
+
<li<%== ' class="active"' if current == "Order Details" %>>
|
20
|
+
<%= link_to t("order_details"), edit_admin_order_url(@order) %>
|
21
|
+
</li>
|
22
|
+
<li<%== ' class="active"' if current == "Customer Details" %>>
|
23
|
+
<%= link_to t("customer_details"), user_admin_order_url(@order) %>
|
24
|
+
</li>
|
25
|
+
<% else %>
|
26
|
+
<li<%== ' class="active"' if current == "Order Details" %>>
|
27
|
+
<%= link_to t("order_details"), admin_order_url(@order) %>
|
28
|
+
</li>
|
29
|
+
<li<%== ' class="active"' if current == "Customer Details" %>>
|
30
|
+
<%= link_to t("customer_details"), user_admin_order_url(@order) %>
|
31
|
+
</li>
|
32
|
+
<% end %>
|
33
|
+
|
34
|
+
|
35
|
+
|
36
|
+
<% end %>
|
37
|
+
</ul>
|
38
|
+
|
39
|
+
<% end %>
|
@@ -0,0 +1,38 @@
|
|
1
|
+
<h1>Shipping Options</h1>
|
2
|
+
|
3
|
+
<%= render :partial => 'admin/suppliers/supplier_tabs', :locals => {:current => "Shipping"} %>
|
4
|
+
|
5
|
+
|
6
|
+
<table class="index">
|
7
|
+
<thead>
|
8
|
+
<tr>
|
9
|
+
<th><%= t("name") %></th>
|
10
|
+
<th><%= t("zone") %></th>
|
11
|
+
<th><%= t("action") %></th>
|
12
|
+
</tr>
|
13
|
+
</thead>
|
14
|
+
<tbody>
|
15
|
+
<% @supplier.shipping_methods.each do |s| %>
|
16
|
+
<tr>
|
17
|
+
<td><%= s.name %></td>
|
18
|
+
<td><%= s.zone.name %></td>
|
19
|
+
<% form_tag(:controller => 'shipping_options', :method=>'post', :multipart => true) do %>
|
20
|
+
<%= hidden_field_tag("supplier_id", @supplier.id) %>
|
21
|
+
<%= hidden_field_tag("remove[#{"id"}]", s.id) %>
|
22
|
+
<td><%= submit_tag "Remove" %></td>
|
23
|
+
<% end %>
|
24
|
+
</tr>
|
25
|
+
<% end %>
|
26
|
+
</tbody>
|
27
|
+
</table>
|
28
|
+
|
29
|
+
|
30
|
+
<% form_tag(:controller => 'shipping_options', :method=>'post', :multipart => true) do %>
|
31
|
+
|
32
|
+
<%= select_tag "shipping_options", options_from_collection_for_select(@shipping_methods, "id", "name") %>
|
33
|
+
<%= hidden_field_tag("supplier_id", @supplier.id) %>
|
34
|
+
<%= submit_tag "add" %>
|
35
|
+
<p />
|
36
|
+
<%= link_to 'Create new shipping method', new_admin_shipping_method_path %>
|
37
|
+
|
38
|
+
<% end %>
|
@@ -0,0 +1,23 @@
|
|
1
|
+
<%= hook :admin_inside_taxon_form, {:f => f} do %>
|
2
|
+
<%= f.field_container :name do %>
|
3
|
+
<%= f.label :name, t("name") %> <span class="required">*</span><br />
|
4
|
+
<%= error_message_on :taxon, :name, :class => 'fullwidth title' %>
|
5
|
+
<%= text_field :taxon, :name %>
|
6
|
+
<% end %>
|
7
|
+
|
8
|
+
<%= f.field_container :permalink_part do %>
|
9
|
+
<%= f.label :permalink_part, t("permalink") %><span class="required">*</span><br />
|
10
|
+
<%= @taxon.permalink.split("/")[0...-1].join("/") + "/" %><%= text_field_tag :permalink_part, @permalink_part %>
|
11
|
+
<% end %>
|
12
|
+
|
13
|
+
<%= f.field_container :icon do %>
|
14
|
+
<%= f.label :icon, t('icon') %><br />
|
15
|
+
<%= f.file_field :icon %>
|
16
|
+
<% end %>
|
17
|
+
|
18
|
+
<%= f.field_container :description do %>
|
19
|
+
<%= f.label :description, t(:description) %><br />
|
20
|
+
<%= f.text_area :description %>
|
21
|
+
<% end %>
|
22
|
+
|
23
|
+
<% end %>
|
@@ -0,0 +1,23 @@
|
|
1
|
+
<table class="index">
|
2
|
+
<thead>
|
3
|
+
<tr>
|
4
|
+
<th><%= t("name") %></th>
|
5
|
+
<th><%= t("path") %></th>
|
6
|
+
<th></th>
|
7
|
+
</tr>
|
8
|
+
</thead>
|
9
|
+
<tbody>
|
10
|
+
<% taxons.each do |taxon| %>
|
11
|
+
<tr id="<%= dom_id(taxon)%>">
|
12
|
+
<td><%= taxon.name %></td>
|
13
|
+
<td><%= taxon_path taxon %></td>
|
14
|
+
<td lass="actions">
|
15
|
+
<%= link_to_delete taxon, :url => remove_admin_supplier_taxon_url(@supplier, taxon), :name => icon("delete") + ' ' + t("remove") %>
|
16
|
+
</td>
|
17
|
+
</tr>
|
18
|
+
<% end %>
|
19
|
+
<% if taxons.empty? %>
|
20
|
+
<tr><td colspan="3"><%= t('none') %>.</td></tr>
|
21
|
+
<% end %>
|
22
|
+
</tbody>
|
23
|
+
</table>
|
@@ -0,0 +1,33 @@
|
|
1
|
+
<script type="text/javascript">
|
2
|
+
function displayRow(){
|
3
|
+
var row = document.getElementById("captionRow");
|
4
|
+
if (row.style.display == '') row.style.display = 'none';
|
5
|
+
else row.style.display = '';
|
6
|
+
}
|
7
|
+
</script>
|
8
|
+
<h4><%= t('available_taxons') %></h4>
|
9
|
+
<table class="index">
|
10
|
+
<thead>
|
11
|
+
<tr>
|
12
|
+
<th><%= t("name") %></th>
|
13
|
+
<th><%= t("path") %></th>
|
14
|
+
<th><%= t("action") %></th>
|
15
|
+
</tr>
|
16
|
+
</thead>
|
17
|
+
<tbody>
|
18
|
+
<% @taxons.each do |taxon| %>
|
19
|
+
<tr id="<%= dom_id(taxon, :sel) %>">
|
20
|
+
<td><%= taxon.name %></td>
|
21
|
+
<td><%= taxon_path taxon %></td>
|
22
|
+
<td class="actions">
|
23
|
+
<%= link_to icon('add') + ' ' + t("select"),
|
24
|
+
select_admin_supplier_taxon_path(@supplier, taxon),
|
25
|
+
:remote => true, :class => 'iconlink' %>
|
26
|
+
</td>
|
27
|
+
</tr>
|
28
|
+
<% end %>
|
29
|
+
<% if @taxons.empty? %>
|
30
|
+
<tr><td colspan="3"><%= t('no_match_found') %>.</td></tr>
|
31
|
+
<% end %>
|
32
|
+
</tbody>
|
33
|
+
</table>
|
@@ -0,0 +1,11 @@
|
|
1
|
+
<%= render :partial => 'admin/shared/configuration_menu' %>
|
2
|
+
|
3
|
+
<h1><%= t("taxon_edit")%></h1>
|
4
|
+
|
5
|
+
<%= form_for(:taxon, :url => admin_taxonomy_taxon_url(@taxonomy, @taxon), :html => { :method => :put, :multipart => true}) do |f| %>
|
6
|
+
<%= render :partial => 'form', :locals => {:f => f} %>
|
7
|
+
|
8
|
+
<p class="form-buttons">
|
9
|
+
<%= button t("update") %> <%= t("or") %> <%= link_to t("cancel"), edit_admin_taxonomy_url(@taxonomy) %>
|
10
|
+
</p>
|
11
|
+
<% end %>
|
@@ -0,0 +1 @@
|
|
1
|
+
<%= render :partial => "taxon_table", :locals => {:taxons => @taxons} %>
|
@@ -0,0 +1,51 @@
|
|
1
|
+
<h1>Editing Vendor</h1>
|
2
|
+
|
3
|
+
<%= render :partial => 'admin/suppliers/supplier_tabs', :locals => {:current => "Taxons"} %>
|
4
|
+
|
5
|
+
<div id="selected-taxons">
|
6
|
+
<%= render :partial => "taxon_table", :locals => {:taxons => @taxons} %>
|
7
|
+
</div>
|
8
|
+
<%= form_tag(update_taxons_admin_supplier_taxons_path(@supplier), :method => :post) do %>
|
9
|
+
<h3>Category</h3>
|
10
|
+
<ul>
|
11
|
+
<% @options.each do |o| %>
|
12
|
+
<li><%= check_box_tag o.name, o.id %><%= label_tag o.name %></li>
|
13
|
+
<% end %>
|
14
|
+
</ul>
|
15
|
+
<%= submit_tag "Update" %>
|
16
|
+
<% end %>
|
17
|
+
|
18
|
+
<%= form_tag('#') do %>
|
19
|
+
<label><%= t('search') %>:</label>
|
20
|
+
<input id="searchtext" size="25">
|
21
|
+
<% end %>
|
22
|
+
|
23
|
+
<%= javascript_tag do %>
|
24
|
+
function search_for_taxons(){
|
25
|
+
jQuery.ajax({
|
26
|
+
data: {q: jQuery("#searchtext").val() },
|
27
|
+
dataType: 'script',
|
28
|
+
success: function(request){
|
29
|
+
jQuery('#search_hits').html(request);
|
30
|
+
},
|
31
|
+
type: 'post',
|
32
|
+
url: '<%= available_admin_supplier_taxons_url(@supplier) %>'
|
33
|
+
});
|
34
|
+
}
|
35
|
+
|
36
|
+
jQuery("#searchtext").keypress(function (e) {
|
37
|
+
if ((e.which && e.which == 13) || (e.keyCode && e.keyCode == 13)) {
|
38
|
+
search_for_taxons();
|
39
|
+
|
40
|
+
return false;
|
41
|
+
} else {
|
42
|
+
return true;
|
43
|
+
}
|
44
|
+
});
|
45
|
+
|
46
|
+
jQuery("#searchtext").delayedObserver(function() {
|
47
|
+
search_for_taxons();
|
48
|
+
}, 0.75);
|
49
|
+
<% end %>
|
50
|
+
<br/>
|
51
|
+
<div id="search_hits"></div>
|
@@ -0,0 +1,75 @@
|
|
1
|
+
<table class="admin-report" width="545">
|
2
|
+
<tr>
|
3
|
+
<td valign="top">Company name:</td>
|
4
|
+
<td><%= f.text_field :title, :value => @supplier.title %></td>
|
5
|
+
</tr>
|
6
|
+
<tr>
|
7
|
+
<td valign="top">Company Description:</td>
|
8
|
+
<td><%= f.text_field :notes, :value => @supplier.notes %></td>
|
9
|
+
</tr>
|
10
|
+
</table>
|
11
|
+
|
12
|
+
<h3>Company Information</h3>
|
13
|
+
<table class="admin-report" width="545">
|
14
|
+
<tr>
|
15
|
+
<td valign="top">Phone:</td>
|
16
|
+
<td><%= f.text_field :phone, :value => @supplier.phone %></td>
|
17
|
+
</tr>
|
18
|
+
<tr>
|
19
|
+
<td valign="top">Address:</td>
|
20
|
+
<td><%= f.text_field :address1, :value => @supplier.address1 %></td>
|
21
|
+
</tr>
|
22
|
+
<tr>
|
23
|
+
<td valign="top">Town:</td>
|
24
|
+
<td><%= f.text_field :town, :value => @supplier.town %></td>
|
25
|
+
</tr>
|
26
|
+
<tr>
|
27
|
+
<td valign="top">State:</td>
|
28
|
+
<td><%= f.collection_select :state_id, State.find(:all, :order => 'name ASC'), :id, :name, :include_blank => true %></td>
|
29
|
+
</tr>
|
30
|
+
<tr>
|
31
|
+
<td valign="top">Market:</td>
|
32
|
+
<td><%= f.collection_select :city_id, City.find(:all, :order => 'name ASC'), :id, :name, :include_blank => true %></td>
|
33
|
+
</tr>
|
34
|
+
<tr>
|
35
|
+
<td valign="top">Zip-code:</td>
|
36
|
+
<td><%= f.text_field :zip_code, :value => @supplier.zip_code %></td>
|
37
|
+
</tr>
|
38
|
+
<tr>
|
39
|
+
<td valign="top">Fax:</td>
|
40
|
+
<td><%= f.text_field :fax, :value => @supplier.fax %></td>
|
41
|
+
</tr>
|
42
|
+
<tr>
|
43
|
+
<td valign="top">Email:</td>
|
44
|
+
<td><%= f.text_field :email, :value => @supplier.email %></td>
|
45
|
+
</tr>
|
46
|
+
<tr>
|
47
|
+
<td valign="top">Facebook:</td>
|
48
|
+
<td><%= f.text_field :facebook, :value => @supplier.facebook %></td>
|
49
|
+
</tr>
|
50
|
+
<tr>
|
51
|
+
<td valign="top">Twitter:</td>
|
52
|
+
<td><%= f.text_field :twitter, :value => @supplier.twitter %></td>
|
53
|
+
</tr>
|
54
|
+
<tr>
|
55
|
+
<td valign="top">Website:</td>
|
56
|
+
<td><%= f.text_field :website, :value => @supplier.website %></td>
|
57
|
+
</tr>
|
58
|
+
<tr>
|
59
|
+
<td valign="top">Products Sold:</td>
|
60
|
+
<td><%= f.text_area :products_sold %></td>
|
61
|
+
</tr>
|
62
|
+
</table>
|
63
|
+
|
64
|
+
<h3>Owner Information</h3>
|
65
|
+
<table class="admin-report" width="545">
|
66
|
+
<tr>
|
67
|
+
<td valign="top">Owner Name:</td>
|
68
|
+
<td><%= f.text_field :name, :value => @supplier.name %></td>
|
69
|
+
</tr>
|
70
|
+
<tr>
|
71
|
+
<td valign="top">Owner Description:</td>
|
72
|
+
<td><%= f.text_field :description2, :value => @supplier.description2 %></td>
|
73
|
+
</tr>
|
74
|
+
</table>
|
75
|
+
|
@@ -0,0 +1,18 @@
|
|
1
|
+
<tr>
|
2
|
+
<td><h4><%= day %></h4></td>
|
3
|
+
<% outcome = @supplier.hours.first.send(day.downcase) %>
|
4
|
+
<% if outcome == "Closed" || outcome == "Information Unavailable" %>
|
5
|
+
<% if outcome == "Information Unavailable" %>
|
6
|
+
<% outcome = "Unavailable" %>
|
7
|
+
<% end %>
|
8
|
+
<td><%= select_tag "#{day}_closed", options_for_select(@closed, outcome) %></td>
|
9
|
+
<% else %>
|
10
|
+
<td><%= select_tag "#{day}_closed", options_for_select(@closed, "Open") %></td>
|
11
|
+
<% end %>
|
12
|
+
<td>From: <%= select_tag "#{day}_begin", options_for_select(@hours, find_hours(outcome)[0]) %></td>
|
13
|
+
<td><%= select_tag "#{day}_begin_mins", options_for_select(@minutes,find_minutes(outcome)[0]) %></td>
|
14
|
+
<td><%= select_tag "#{day}_begin_type", options_for_select(@periods,find_periods(outcome)[0]) %>, to</td>
|
15
|
+
<td><%= select_tag "#{day}_end", options_for_select(@hours,find_hours(outcome)[1]) %><td>
|
16
|
+
<td><%= select_tag "#{day}_end_mins", options_for_select(@minutes, find_minutes(outcome)[1]) %></td>
|
17
|
+
<td><%= select_tag "#{day}_end_type", options_for_select(@periods,find_periods(outcome)[1]) %></td>
|
18
|
+
</tr>
|
@@ -0,0 +1,72 @@
|
|
1
|
+
<table class="admin-report" width="545">
|
2
|
+
<tr>
|
3
|
+
<td valign="top">Company name:</td>
|
4
|
+
<td><%= f.text_field :title %></td>
|
5
|
+
</tr>
|
6
|
+
<tr>
|
7
|
+
<td valign="top">Company Description:</td>
|
8
|
+
<td><%= f.text_field :notes %></td>
|
9
|
+
</tr>
|
10
|
+
</table>
|
11
|
+
|
12
|
+
<h3>Information</h3>
|
13
|
+
<table class="admin-report" width="545">
|
14
|
+
<tr>
|
15
|
+
<td valign="top">Phone:</td>
|
16
|
+
<td><%= f.text_field :phone %></td>
|
17
|
+
</tr>
|
18
|
+
<tr>
|
19
|
+
<td valign="top">Address:</td>
|
20
|
+
<td><%= f.text_field :address1 %></td>
|
21
|
+
</tr>
|
22
|
+
<tr>
|
23
|
+
<td valign="top">Town:</td>
|
24
|
+
<td><%= f.text_field :town %></td>
|
25
|
+
</tr>
|
26
|
+
<tr>
|
27
|
+
<td valign="top">State:</td>
|
28
|
+
<td><%= f.select :state_id, options_from_collection_for_select(State.all, "id", "name") %></td>
|
29
|
+
</tr>
|
30
|
+
<tr>
|
31
|
+
<td valign="top">Zip-code:</td>
|
32
|
+
<td><%= f.text_field :zip_code %></td>
|
33
|
+
</tr>
|
34
|
+
<tr>
|
35
|
+
<td valign="top">Fax:</td>
|
36
|
+
<td><%= f.text_field :fax %></td>
|
37
|
+
</tr>
|
38
|
+
<tr>
|
39
|
+
<td valign="top">Email:</td>
|
40
|
+
<td><%= f.text_field :email %></td>
|
41
|
+
</tr>
|
42
|
+
<tr>
|
43
|
+
<td valign="top">Facebook:</td>
|
44
|
+
<td><%= f.text_field :facebook %></td>
|
45
|
+
</tr>
|
46
|
+
<tr>
|
47
|
+
<td valign="top">Twitter:</td>
|
48
|
+
<td><%= f.text_field :twitter %></td>
|
49
|
+
</tr>
|
50
|
+
<tr>
|
51
|
+
<td valign="top">Website:</td>
|
52
|
+
<td><%= f.text_field :website %></td>
|
53
|
+
</tr>
|
54
|
+
<tr>
|
55
|
+
<td valign="top">Products Sold:</td>
|
56
|
+
<td><%= f.text_area :products_sold %></td>
|
57
|
+
</tr>
|
58
|
+
</table>
|
59
|
+
|
60
|
+
<h3>Proprietor Information</h3>
|
61
|
+
<table class="admin-report" width="545">
|
62
|
+
<tr>
|
63
|
+
<td valign="top">Owner Name:</td>
|
64
|
+
<td><%= f.text_field :name %></td>
|
65
|
+
</tr>
|
66
|
+
<tr>
|
67
|
+
<td valign="top">Owner Description:</td>
|
68
|
+
<td><%= f.text_field :description2 %></td>
|
69
|
+
</tr>
|
70
|
+
</table>
|
71
|
+
|
72
|
+
|
@@ -0,0 +1,11 @@
|
|
1
|
+
<tr>
|
2
|
+
<td><h4><%= day %></h4></td>
|
3
|
+
<td><%= select_tag "#{day}_closed", "<option>Unavailable</option><option>Open</option><option>Closed</option>".html_safe %></td>
|
4
|
+
<td>From: <%= select_tag "#{day}_begin", "<option>1</option><option>2</option><option>3</option><option>4</option><option>5</option><option>6</option><option>7</option><option>8</option><option>9</option><option>10</option><option>11</option><option>12</option>".html_safe %></td>
|
5
|
+
<td><%= select_tag "#{day}_begin_mins", "<option>00</option><option>15</option><option>30</option><option>45</option>".html_safe %></td>
|
6
|
+
<td><%= select_tag "#{day}_begin_type", "<option>am</option><option>pm</option>".html_safe %>, to</td>
|
7
|
+
<td><%= select_tag "#{day}_end", "<option>1</option><option>2</option><option>3</option><option>4</option><option>5</option><option>6</option><option>7</option><option>8</option><option>9</option><option>10</option><option>11</option><option>12</option>".html_safe %></td>
|
8
|
+
<td><%= select_tag "#{day}_end_mins", "<option>00</option><option>15</option><option>30</option><option>45</option>".html_safe %></td>
|
9
|
+
<td><%= select_tag "#{day}_end_type", "<option>pm</option><option>am</option>".html_safe %></td>
|
10
|
+
|
11
|
+
</tr>
|
@@ -0,0 +1,40 @@
|
|
1
|
+
<div id="image_upload">
|
2
|
+
<%= form_for(:image, :url => { :controller => 'suppliers', :action => 'upload_image', :method => :post}, :html => { :multipart => true }) do |f| %>
|
3
|
+
<%= render :partial => 'upload_image', :locals => { :f => f } %>
|
4
|
+
<p class="form-buttons">
|
5
|
+
<% if @status == true %>
|
6
|
+
<button id="upload" type="submit">
|
7
|
+
<span>Upload Image</span>
|
8
|
+
</button>
|
9
|
+
<% else %>
|
10
|
+
<%= button t("upload") %>
|
11
|
+
<% end %>
|
12
|
+
<%= t('or') %> <%= link_to t("cancel"), "#", :id => "cancel_link" %>
|
13
|
+
</p>
|
14
|
+
<% end %>
|
15
|
+
|
16
|
+
<h3>Current images:</h3>
|
17
|
+
<% @supplier.images.each do |image| %>
|
18
|
+
<ul>
|
19
|
+
<li><%= sized_image(image, '100x100#') %></li>
|
20
|
+
<li><%= link_to "destroy", { :action => 'destroy_image', :id => image.id}, :method => :delete %></li>
|
21
|
+
<% if image.logo == true %>
|
22
|
+
<li>This image is the current logo.</li>
|
23
|
+
<% else %>
|
24
|
+
<li><%= link_to "appoint logo", { :action => "make_logo", :id => image.id} %></li>
|
25
|
+
<% end %>
|
26
|
+
<% if image.featured == true %>
|
27
|
+
<li>This image is currently featured</li>
|
28
|
+
<% else %>
|
29
|
+
<li><%= link_to "make featured", { :action => "feature_image", :id => image.id} %></li>
|
30
|
+
<% end %>
|
31
|
+
|
32
|
+
</ul>
|
33
|
+
<% end %>
|
34
|
+
<script>
|
35
|
+
$("#upload").click(function(event){
|
36
|
+
event.preventDefault();
|
37
|
+
alert("You are not allowed to create an image without first creating a supplier");
|
38
|
+
});
|
39
|
+
</script>
|
40
|
+
</div>
|
@@ -0,0 +1,37 @@
|
|
1
|
+
<h2>Supplier Info: <%= supplier.title %></h2>
|
2
|
+
<ul>
|
3
|
+
<li><b>Company name:</b> <%= supplier.title %></li>
|
4
|
+
<li><b>Vendor page:</b> <%= link_to supplier.title, supplier_path(supplier) %></li>
|
5
|
+
<li><b>Description:</b> <%= supplier.notes %></li>
|
6
|
+
<li><b>Phone:</b> <%= supplier.phone %></li>
|
7
|
+
<li><b>Address1:</b> <%= supplier.address1 %></li>
|
8
|
+
<li><b>Town:</b> <%= supplier.town %></li>
|
9
|
+
<li><b>State:</b><%= State.find_by_id(supplier.state).name %></li>
|
10
|
+
<li><b>Zip-code:</b><%= supplier.zip_code %></li>
|
11
|
+
<li><b>Fax:</b><%= supplier.fax %></li>
|
12
|
+
<li><b>Email:</b><%= supplier.email %></li>
|
13
|
+
<li><b>Facebook:</b><%= supplier.facebook %></li>
|
14
|
+
<li><b>Twitter:</b><%= supplier.twitter %></li>
|
15
|
+
<li><b>Website:</b><%= supplier.website %></li>
|
16
|
+
<li><b>Product Solds:</b><%= supplier.products_sold %></li>
|
17
|
+
</ul>
|
18
|
+
<h2>Proprietor Info</h2>
|
19
|
+
<ul>
|
20
|
+
<li><b>Owner Name:</b><%= supplier.name %></li>
|
21
|
+
<li><b>Owner Description:</b><%= supplier.description2 %></li>
|
22
|
+
</ul>
|
23
|
+
|
24
|
+
<%= render :partial => "shared/hours", :locals => {:supplier => @supplier} %>
|
25
|
+
<h2>Images</h2>
|
26
|
+
<% supplier.images.each do |image| %>
|
27
|
+
<ul>
|
28
|
+
<li><%= sized_image(image, '100x100#')%></li>
|
29
|
+
<% if image.logo == true %>
|
30
|
+
<li>This image is the current logo</li>
|
31
|
+
<% end %>
|
32
|
+
<% if image.featured == true %>
|
33
|
+
<li>This image is currently featured</li>
|
34
|
+
<% end %>
|
35
|
+
</ul>
|
36
|
+
<% end %>
|
37
|
+
|
@@ -0,0 +1,18 @@
|
|
1
|
+
<% content_for :sidebar do %>
|
2
|
+
<ul class="sidebar supplier-menu">
|
3
|
+
<%= hook :admin_supplier_tabs, {:current => current} do %>
|
4
|
+
<li<%== ' class="active"' if current == "Supplier Details" %>>
|
5
|
+
<%= link_to "Supplier Details", edit_admin_supplier_url(@supplier) %>
|
6
|
+
</li>
|
7
|
+
<li<%== ' class="active"' if current == "Taxons" %>>
|
8
|
+
<%= link_to t("taxons"), selected_admin_supplier_taxons_url(@supplier) %>
|
9
|
+
</li>
|
10
|
+
<li<%== ' class="active"' if current == "Shipping" %>>
|
11
|
+
<%= link_to "Shipping Options", edit_admin_shipping_option_url(@supplier) %>
|
12
|
+
</li>
|
13
|
+
<li<%== ' class="active"' if current == "Pickups" %>>
|
14
|
+
<%= link_to "Pickups", admin_pickup_url(@supplier) %>
|
15
|
+
</li>
|
16
|
+
<% end %>
|
17
|
+
</ul>
|
18
|
+
<% end %>
|
@@ -0,0 +1,25 @@
|
|
1
|
+
<table class="index">
|
2
|
+
<thead>
|
3
|
+
<tr>
|
4
|
+
<th><%= t("supplier_name") %></th>
|
5
|
+
<th></th>
|
6
|
+
</tr>
|
7
|
+
</thead>
|
8
|
+
<tbody>
|
9
|
+
<% unless supplier.blank? %>
|
10
|
+
<tr id="<%= dom_id(supplier, :sel)%>">
|
11
|
+
<td><%= supplier.name %></td>
|
12
|
+
<td class="actions">
|
13
|
+
<%= image_tag "spinner.gif", :style => "display:none", :id => "#{dom_id(supplier, :rem_spinner)}" %>
|
14
|
+
<%= link_to_remote icon('delete') + ' ' + t('remove'),
|
15
|
+
{:url => remove_admin_product_supplier_url(@product, supplier),
|
16
|
+
:loading => "jQuery('##{dom_id(supplier, :rem_spinner)}').show()",
|
17
|
+
:update => 'selected-supplier',
|
18
|
+
:complete => "jQuery('##{dom_id(supplier, :sel)}').remove(); jQuery('##{dom_id(supplier, :rem_spinner)}').hide();"}, :class => 'iconlink' %>
|
19
|
+
</td>
|
20
|
+
</tr>
|
21
|
+
<% else %>
|
22
|
+
<tr><td colspan="3"><%= t('none') %>.</td></tr>
|
23
|
+
<% end %>
|
24
|
+
</tbody>
|
25
|
+
</table>
|
@@ -0,0 +1,14 @@
|
|
1
|
+
<table class="basic-table">
|
2
|
+
<h3>Company images</h3>
|
3
|
+
<tr>
|
4
|
+
<td><%= t("filename") %>:</td>
|
5
|
+
<td><%= f.file_field :attachment %></td>
|
6
|
+
</tr>
|
7
|
+
<tr>
|
8
|
+
<td><%= t("alt_text") %>:</td>
|
9
|
+
<td><%= f.text_field :alt, :value => "There is no image available" %></td>
|
10
|
+
</tr>
|
11
|
+
<tr>
|
12
|
+
<td><%= f.hidden_field :viewable_id, :value => @supplier.id %></td>
|
13
|
+
</tr>
|
14
|
+
</table>
|