opensteam 0.9.1 → 0.9.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/CHANGELOG +12 -1
- data/generators/opensteam/opensteam_generator.rb +5 -0
- data/generators/opensteam/templates/app/controllers/admin/invoices_controller.rb +31 -25
- data/generators/opensteam/templates/app/controllers/admin/orders_controller.rb +22 -69
- data/generators/opensteam/templates/app/controllers/admin/shipments_controller.rb +29 -26
- data/generators/opensteam/templates/app/controllers/admin/users_controller.rb +28 -13
- data/generators/opensteam/templates/app/controllers/admin_controller.rb +39 -1
- data/generators/opensteam/templates/app/controllers/profile/orders_controller.rb +20 -59
- data/generators/opensteam/templates/app/helpers/webshop_helper.rb +3 -0
- data/generators/opensteam/templates/app/models/filter_entry.rb +17 -0
- data/generators/opensteam/templates/app/views/admin/filters/_filter.html.erb +14 -0
- data/generators/opensteam/templates/app/views/admin/filters/_filter_entry.html.erb +6 -0
- data/generators/opensteam/templates/app/views/admin/filters/_filter_fields.html.erb +8 -0
- data/generators/opensteam/templates/app/views/admin/invoices/_invoices.html.erb +9 -9
- data/generators/opensteam/templates/app/views/admin/invoices/index.html.erb +5 -1
- data/generators/opensteam/templates/app/views/admin/orders/_orders.html.erb +15 -16
- data/generators/opensteam/templates/app/views/admin/orders/show.html.erb +9 -8
- data/generators/opensteam/templates/app/views/admin/shipments/_shipments.html.erb +11 -11
- data/generators/opensteam/templates/app/views/admin/shipments/index.html.erb +3 -0
- data/generators/opensteam/templates/app/views/admin/users/edit.html.erb +3 -1
- data/generators/opensteam/templates/app/views/admin/users/index.html.erb +18 -6
- data/generators/opensteam/templates/app/views/admin/users/new.html.erb +2 -0
- data/generators/opensteam/templates/app/views/layouts/admin.html.erb +4 -0
- data/generators/opensteam/templates/app/views/profile/orders/_orders.html.erb +9 -19
- data/generators/opensteam/templates/config/initializers/opensteam_model_tables.rb +80 -41
- data/generators/opensteam/templates/db/migrate/20080609095728_create_order_items.rb +1 -0
- data/generators/opensteam/templates/db/migrate/20080609095729_create_orders.rb +2 -2
- data/generators/opensteam/templates/db/migrate/20080804152615_create_filter_entries.rb +16 -0
- data/generators/opensteam/templates/public/stylesheets/opensteam_white.css +25 -25
- data/generators/opensteam_product/templates/controllers/product_controller.rb +1 -1
- data/lib/opensteam/extension_base.rb +1 -0
- data/lib/opensteam/helpers/config_table_helper.rb +139 -0
- data/lib/opensteam/initializer.rb +3 -3
- data/lib/opensteam/invoice_base.rb +4 -0
- data/lib/opensteam/order_base.rb +5 -3
- data/lib/opensteam/shipment_base.rb +6 -0
- data/lib/opensteam/user_base.rb +1 -0
- data/lib/opensteam/version.rb +1 -1
- metadata +8 -3
- data/lib/opensteam/helper/configurable_table.rb +0 -228
@@ -1,6 +1,9 @@
|
|
1
1
|
# Methods added to this helper will be available to all templates in the application.
|
2
2
|
## TEMPLATE ##
|
3
3
|
module <%= file_name.classify %>Helper
|
4
|
+
|
5
|
+
include Opensteam::Helpers::ConfigTableHelper::HelperMethods
|
6
|
+
|
4
7
|
|
5
8
|
# return first partial-file that exist in *a
|
6
9
|
def existing_partial( *a )
|
@@ -0,0 +1,17 @@
|
|
1
|
+
class FilterEntry < ActiveRecord::Base
|
2
|
+
|
3
|
+
validates_inclusion_of :op, :in => %w( LIKE = > < )
|
4
|
+
|
5
|
+
def to_sql
|
6
|
+
m = model.classify.constantize.osteam_configtable[ key.downcase ] rescue nil
|
7
|
+
m ? "(" << Array(m.sql).collect { |s| "#{s} #{op} :#{key.downcase}" }.join(" OR ") << ")" : "#{key.tableize} #{op} :#{key.downcase}"
|
8
|
+
end
|
9
|
+
|
10
|
+
|
11
|
+
def to_val
|
12
|
+
op =~ /LIKE/ ? { key.downcase.to_sym => "%#{val}%" } : { key.downcase.to_sym => "#{val}" }
|
13
|
+
end
|
14
|
+
|
15
|
+
|
16
|
+
|
17
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
<%= link_to_function "add filter" do |page|
|
2
|
+
page.insert_html :bottom, :filter_fields, :partial => "admin/filters/filter_fields", :object => FilterEntry.new, :locals => { :model => model }
|
3
|
+
end %>
|
4
|
+
|
5
|
+
<div id="<%= id %>" >
|
6
|
+
<ul>
|
7
|
+
<%= render :partial => "admin/filters/filter_entry", :collection => @filter_entries %>
|
8
|
+
</ul>
|
9
|
+
<% form_tag( { :controller => "admin/#{model.tableize}", :action => 'index' } ) do %>
|
10
|
+
<div id="filter_fields"></div>
|
11
|
+
<br />
|
12
|
+
<%= submit_tag "find" %>
|
13
|
+
<% end %>
|
14
|
+
</div>
|
@@ -0,0 +1,6 @@
|
|
1
|
+
<%- form_tag :action => 'delete_filter', :id => filter_entry.id, :model => filter_entry.model do -%>
|
2
|
+
<li>
|
3
|
+
<%=h filter_entry.key %> <%=h filter_entry.op %> <%= filter_entry.val %> <%= submit_tag_with_image( "delete_filter", "cross.png", { :alt => "delete filter?" } ) -%>
|
4
|
+
</li>
|
5
|
+
<%- end -%>
|
6
|
+
|
@@ -0,0 +1,8 @@
|
|
1
|
+
<% fields_for "filter[]", filter_fields do |filter| %>
|
2
|
+
<%= filter.hidden_field :id %>
|
3
|
+
<%= hidden_field_tag "filter[][model]", model %>
|
4
|
+
|
5
|
+
<%= filter.select :key, model.classify.constantize.osteam_configtable.columns.collect(&:id) %> -
|
6
|
+
<%= filter.select :op, ["LIKE", "=", ">", "<" ] %> -
|
7
|
+
<%= filter.text_field :val, :size => 5 %><br />
|
8
|
+
<% end %>
|
@@ -1,11 +1,11 @@
|
|
1
|
-
<%
|
2
|
-
<%=
|
3
|
-
url = { :controller =>"admin/invoices", :action => '
|
1
|
+
<% osteam_sort_table Opensteam::InvoiceBase::Invoice do |t| %>
|
2
|
+
<%= t.table_header do |column|
|
3
|
+
url = { :controller => "admin/invoices", :action => 'index', :sort => column.id }
|
4
4
|
url[:order_id] = @order.id if @order
|
5
|
-
link_to_remote( column.name,
|
6
|
-
:url => url,
|
7
|
-
:update => id )
|
8
|
-
end %>
|
9
5
|
|
10
|
-
|
11
|
-
|
6
|
+
link_to_remote( column.name, :url => url, :update => id, :method => 'get' )
|
7
|
+
end %>
|
8
|
+
<tbody id="<%= id %>">
|
9
|
+
<%= render :partial => "admin/invoices/invoice", :collection => invoices, :id => id %>
|
10
|
+
</tbody>
|
11
|
+
<% end %>
|
@@ -1,6 +1,10 @@
|
|
1
1
|
<h2> Invoices </h2>
|
2
2
|
<br />
|
3
3
|
<div id="invoices_content_div">
|
4
|
-
<%= render :partial => "
|
4
|
+
<%= render :partial => "invoices", :object => @invoices, :locals => { :id => "invoices_content_table1" } %>
|
5
5
|
</div>
|
6
6
|
|
7
|
+
<% content_for( :admin_sidebar2 ) do %>
|
8
|
+
<%= render :partial => "admin/filters/filter", :locals => { :id => "invoice_filter", :model => "Invoice" } %>
|
9
|
+
<% end %>
|
10
|
+
|
@@ -1,19 +1,18 @@
|
|
1
1
|
|
2
|
-
|
3
|
-
<%
|
4
|
-
<%=
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
2
|
+
|
3
|
+
<% osteam_sort_table Opensteam::OrderBase::Order do |t| %>
|
4
|
+
<%= t.table_header do |column|
|
5
|
+
url = { :controller => "admin/orders", :action => 'index', :sort => column.id }
|
6
|
+
url[:customer_id] = @customer.id if @customer
|
7
|
+
|
8
|
+
link_to_remote( column.name, :url => url, :update => id, :method => 'get' )
|
9
|
+
end %>
|
10
|
+
<tbody id="<%= id %>">
|
11
|
+
<%= render :partial => "admin/orders/order", :collection => orders, :id => id %>
|
12
|
+
</tbody>
|
12
13
|
<% end %>
|
13
14
|
|
14
|
-
|
15
|
-
|
16
|
-
:
|
17
|
-
|
18
|
-
:with => :livesearch
|
19
|
-
%>
|
15
|
+
|
16
|
+
<% content_for( :admin_sidebar2 ) do %>
|
17
|
+
<%= render :partial => "admin/filters/filter", :locals => { :id => "users_filter", :model => "Order" } %>
|
18
|
+
<% end %>
|
@@ -11,6 +11,12 @@
|
|
11
11
|
<h2>Order # <%= @order.id %></h2>
|
12
12
|
<h3>State: <%= @order.state %></h3>
|
13
13
|
|
14
|
+
<% @order.events.select { |s| s =~ /^view_link_to_/ }.each do |o| %>
|
15
|
+
<% o =~ /^view_link_to_(.+)$/ %>
|
16
|
+
<%= link_to $1 ? $1.humanize : o , @order.__send__( o ) %>
|
17
|
+
<% end %>
|
18
|
+
|
19
|
+
|
14
20
|
<div id="order_customer" class="sub_content_box">
|
15
21
|
<h3>Customer <%= link_to "show", admin_user_path( @order.customer ) %></h3>
|
16
22
|
<%= render :partial => "profile/infos/customer", :object => @order.customer %>
|
@@ -19,14 +25,8 @@
|
|
19
25
|
<div id="order_shipments" class="sub_content_box" style="display:none;">
|
20
26
|
<h3>Shipments</h3>
|
21
27
|
|
22
|
-
|
23
|
-
<% @order.events.select { |s| s =~ /^view_link_to_/ }.each do |o| %>
|
24
|
-
<% o =~ /^view_link_to_(.+)$/ %>
|
25
|
-
<%= link_to $1 ? $1.humanize : o , @order.__send__( o ) %>
|
26
|
-
<% end %>
|
27
|
-
|
28
28
|
<%# unless @order.finished? %>
|
29
|
-
|
29
|
+
<%# = link_to "Create Shipment", :controller => 'shipments', :action => 'new', :order_id => @order.id %>
|
30
30
|
<%# end %>
|
31
31
|
<%= render :partial => "admin/shipments/shipments", :object => @order.shipments,
|
32
32
|
:locals => { :id => "order_shipments_table" } %>
|
@@ -34,7 +34,8 @@
|
|
34
34
|
|
35
35
|
<div id="order_invoices" class="sub_content_box" style="display:none;">
|
36
36
|
<h3>Invoices</h3>
|
37
|
-
<%= render :partial => "admin/invoices/invoices", :object => @order.invoices
|
37
|
+
<%= render :partial => "admin/invoices/invoices", :object => @order.invoices,
|
38
|
+
:locals => { :id => "order_invoices_table" } %>
|
38
39
|
</div>
|
39
40
|
|
40
41
|
<div id="order_order_items" class="sub_content_box" style="display:none;">
|
@@ -1,11 +1,11 @@
|
|
1
|
-
<%
|
2
|
-
<%=
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
<% end %>
|
1
|
+
<% osteam_sort_table Opensteam::ShipmentBase::Shipment do |t| %>
|
2
|
+
<%= t.table_header do |column|
|
3
|
+
url = { :controller => "admin/shipments", :action => 'index', :sort => column.id }
|
4
|
+
url[:order_id] = @order.id if @order
|
5
|
+
|
6
|
+
link_to_remote( column.name, :url => url, :update => id, :method => 'get' )
|
7
|
+
end %>
|
8
|
+
<tbody id="<%= id %>">
|
9
|
+
<%= render :partial => "admin/shipments/shipment", :collection => shipments, :id => id %>
|
10
|
+
</tbody>
|
11
|
+
<% end %>
|
@@ -4,3 +4,6 @@
|
|
4
4
|
<%= render :partial => "shipments", :object => @shipments, :locals => { :id => "new_order" } %>
|
5
5
|
</div>
|
6
6
|
|
7
|
+
<% content_for( :admin_sidebar2 ) do %>
|
8
|
+
<%= render :partial => "admin/filters/filter", :locals => { :id => "shipment_filter", :model => "Shipment" } %>
|
9
|
+
<% end %>
|
@@ -1,6 +1,8 @@
|
|
1
1
|
<h3>Edit <%= params[:type] ? params[:type].humanize : "User" %></h3>
|
2
2
|
|
3
3
|
<% form_for :user, @user, :url => { :controller => 'admin/users', :action => 'update', :type => params[:type] }, :html => { :method => 'put' } do |f| %>
|
4
|
-
|
4
|
+
|
5
|
+
<%= select_tag :type, options_for_select( @profiles.collect { |s| [s.name, s.id] }, @user.profile_id ) %>
|
6
|
+
<%= render :partial => "common/signup_fields", :locals => { :f => f } %>
|
5
7
|
|
6
8
|
<% end %>
|
@@ -1,7 +1,19 @@
|
|
1
1
|
<h3><%= params[:type] ? params[:type].humanize : "Users" %></h3>
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
2
|
+
|
3
|
+
|
4
|
+
<%= link_to "New #{params[:type] ? params[:type].classify : 'User'} ", new_admin_user_path %>
|
5
|
+
|
6
|
+
<% osteam_sort_table Opensteam::UserBase::User do |t| %>
|
7
|
+
<%= t.table_header do |column|
|
8
|
+
url = { :controller => "admin/users", :action => 'index', :sort => column.id }
|
9
|
+
url[:type] = params[:type] if params[:type]
|
10
|
+
link_to_remote( column.name, :url => url, :update => "users_table1", :method => :get )
|
11
|
+
end %>
|
12
|
+
<tbody id="users_table1">
|
13
|
+
<%= render :partial => "admin/users/#{ params[:type] ? params[:type] + 's' : 'users' }", :collection => @users, :id => :users_tyble1 %>
|
14
|
+
</tbody>
|
15
|
+
<% end %>
|
16
|
+
|
17
|
+
<% content_for(:admin_sidebar) do %>
|
18
|
+
<%= render :partial => "admin/filters/filter", :locals => { :id => "users_filter", :model => "User" } %>
|
19
|
+
<% end %>
|
@@ -2,5 +2,7 @@
|
|
2
2
|
|
3
3
|
<% form_for :user, @user, :url => { :controller => 'admin/users', :action => 'create', :type => params[:type] } do |f| %>
|
4
4
|
<%= render :partial => "common/signup_fields", :locals => { :f => f } %>
|
5
|
+
<%= select_tag :type, options_for_select( @profiles.collect { |s| [s.name, s.id] }, @user.profile_id ) %>
|
6
|
+
|
5
7
|
|
6
8
|
<% end %>
|
@@ -1,19 +1,9 @@
|
|
1
|
-
|
2
|
-
<%=
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
<%= render_configured_table_content( :partial => "profile/orders/order", :collection => orders, :id => id ) %>
|
12
|
-
<% end %>
|
13
|
-
|
14
|
-
<%= observe_field :livesearch,
|
15
|
-
:url => { :action => :livesearch, :controller => 'profile/orders', :update_id => id },
|
16
|
-
:update => id,
|
17
|
-
:frequency => 2,
|
18
|
-
:with => :livesearch
|
19
|
-
%>
|
1
|
+
<% osteam_sort_table Opensteam::OrderBase::Order do |t| %>
|
2
|
+
<%= t.table_header do |column|
|
3
|
+
url = { :controller => "profile/orders", :action => 'index', :sort => column.id }
|
4
|
+
link_to_remote( column.name, :url => url, :update => id, :method => 'get' )
|
5
|
+
end %>
|
6
|
+
<tbody id="<%= id %>">
|
7
|
+
<%= render :partial => "profile/orders/order", :collection => orders, :id => id %>
|
8
|
+
</tbody>
|
9
|
+
<% end %>
|
@@ -1,57 +1,96 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
1
|
+
require 'opensteam/helpers/config_table_helper'
|
2
|
+
require 'opensteam/user_base'
|
3
|
+
|
4
|
+
|
5
|
+
Opensteam::OrderBase::Order.send( :include, Opensteam::Helpers::ConfigTableHelper )
|
6
|
+
|
7
|
+
|
8
|
+
Opensteam::OrderBase::Order.class_eval do
|
9
|
+
opensteam_filter :order do
|
10
|
+
include_associations [:customer, :shipping_address, :payment_address, :order_items ]
|
11
|
+
|
12
|
+
default_order_column :id
|
13
|
+
|
14
|
+
column :id, :name => "#", :order => "orders.id"
|
8
15
|
column :order_items, :name => "OrderItems", :method => :size
|
9
|
-
column :customer, :name => "Customer", :
|
10
|
-
column :shipping_address, :name => "Shipping Address", :method => :to_s
|
16
|
+
column :customer, :name => "Customer", :order => "users.email"
|
17
|
+
column :shipping_address, :name => "Shipping Address", :method => :to_s, :sql => ["addresses.street", "addresses.city" ]
|
11
18
|
column :payment_address, :name => "Payment Address", :method => :to_s
|
12
|
-
column :state, :name => "State"
|
13
|
-
column :created_at, :name => "Created"
|
14
|
-
column :updated_at, :name => "Updated"
|
19
|
+
column :state, :name => "State", :order => "orders.state"
|
20
|
+
column :created_at, :name => "Created", :order => "orders.created_at"
|
21
|
+
column :updated_at, :name => "Updated", :order => "orders.updated_at"
|
22
|
+
|
15
23
|
end
|
16
24
|
|
17
25
|
|
26
|
+
|
18
27
|
end
|
19
28
|
|
29
|
+
Opensteam::UserBase::User.send( :include, Opensteam::Helpers::ConfigTableHelper )
|
20
30
|
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
31
|
+
|
32
|
+
Opensteam::UserBase::User.class_eval do
|
33
|
+
opensteam_filter :user do
|
34
|
+
include_associations [ :orders, :profile ]
|
35
|
+
|
36
|
+
default_order_column :id
|
37
|
+
|
38
|
+
column :id, :name => "#", :order => "users.id"
|
39
|
+
column :profile, :name => "Profile", :order => "profiles.name"
|
40
|
+
column :email, :name => "Email", :order => "users.email"
|
41
|
+
column :firstname, :name => "Firstname", :order => "users.firstname"
|
42
|
+
column :lastname, :name => "Lastname", :order => "users.lastname"
|
43
|
+
column :orders, :name => "Orders", :method => :size, :sql => "count(orders)"
|
44
|
+
column :created_at, :name => "Created", :order => "users.created_at"
|
45
|
+
column :updated_at, :name => "Updated", :order => "users.updated_at"
|
46
|
+
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
|
51
|
+
Opensteam::ShipmentBase::Shipment.send( :include, Opensteam::Helpers::ConfigTableHelper )
|
52
|
+
|
53
|
+
Opensteam::ShipmentBase::Shipment.class_eval do
|
54
|
+
opensteam_filter :shipment do
|
55
|
+
include_associations [ :order, :order_items, :address ]
|
56
|
+
|
57
|
+
default_order_column :id
|
58
|
+
|
59
|
+
column :id, :name => "#", :order => "shipments.id"
|
28
60
|
column :order_items, :name => "OrderItems", :method => :size
|
29
|
-
column :address, :name => "Address", :method => :to_s
|
30
|
-
column :state, :name => "State"
|
31
|
-
column :comment, :name => "Comment"
|
32
|
-
column :created_at, :name => "Created"
|
33
|
-
column :updated_at, :name => "Updated"
|
61
|
+
column :address, :name => "Address", :method => :to_s, :sql => ["addresses.street", "addresses.city" ]
|
62
|
+
column :state, :name => "State", :order => "shipments.state"
|
63
|
+
column :comment, :name => "Comment", :order => "shipments.comment"
|
64
|
+
column :created_at, :name => "Created", :order => "shipments.created_at"
|
65
|
+
column :updated_at, :name => "Updated", :order => "shipments.updated_at"
|
66
|
+
|
34
67
|
end
|
35
|
-
|
36
|
-
|
37
|
-
|
38
68
|
end
|
39
69
|
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
70
|
+
|
71
|
+
Opensteam::InvoiceBase::Invoice.send( :include, Opensteam::Helpers::ConfigTableHelper )
|
72
|
+
|
73
|
+
Opensteam::InvoiceBase::Invoice.class_eval do
|
74
|
+
opensteam_filter :invoice do
|
75
|
+
include_associations [ :order, :order_items, :address ]
|
76
|
+
|
77
|
+
default_order_column :id
|
78
|
+
|
79
|
+
column :id, :name => "#", :order => "invoices.id"
|
47
80
|
column :order_items, :name => "OrderItems", :method => :size
|
48
|
-
column :address, :name => "Address", :method => :to_s
|
49
|
-
column :state, :name => "State"
|
50
|
-
column :comment, :name => "Comment"
|
51
|
-
column :price, :name => "Price"
|
52
|
-
column :created_at, :name => "Created"
|
53
|
-
column :updated_at, :name => "Updated"
|
81
|
+
column :address, :name => "Address", :method => :to_s, :sql => ["addresses.street", "addresses.city" ]
|
82
|
+
column :state, :name => "State", :order => "invoices.state"
|
83
|
+
column :comment, :name => "Comment", :order => "invoices.comment"
|
84
|
+
column :price, :name => "Price", :order => "invoices.price"
|
85
|
+
column :created_at, :name => "Created", :order => "invoices.created_at"
|
86
|
+
column :updated_at, :name => "Updated", :order => "invoices.updated_at"
|
87
|
+
|
54
88
|
end
|
89
|
+
end
|
90
|
+
|
91
|
+
|
92
|
+
|
93
|
+
|
55
94
|
|
56
95
|
|
57
|
-
|
96
|
+
|
@@ -1,7 +1,7 @@
|
|
1
1
|
class CreateOrders < ActiveRecord::Migration
|
2
2
|
def self.up
|
3
|
-
create_table :orders, :
|
4
|
-
|
3
|
+
create_table :orders, :force => true do |t|
|
4
|
+
# t.string :id, :null => false
|
5
5
|
t.references :customer
|
6
6
|
|
7
7
|
t.references :payment_type
|