upmin-admin 0.0.39 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +25 -14
- data/Rakefile +24 -15
- data/app/assets/javascripts/upmin/application.js +0 -1
- data/app/assets/stylesheets/upmin/base.css.scss +4 -0
- data/app/assets/stylesheets/upmin/instances.css.scss +11 -1
- data/app/controllers/upmin/models_controller.rb +52 -42
- data/app/views/layouts/upmin/_navbar.html.haml +3 -3
- data/app/views/layouts/upmin/application.html.haml +2 -1
- data/app/views/upmin/models/new.html.haml +3 -3
- data/app/views/upmin/models/search.html.haml +5 -4
- data/app/views/upmin/models/show.html.haml +3 -3
- data/app/views/upmin/partials/actions/_action.html.haml +6 -21
- data/app/views/upmin/partials/associations/_associations.html.haml +8 -10
- data/app/views/upmin/partials/attributes/_boolean.html.haml +8 -6
- data/app/views/upmin/partials/attributes/_datetime.html.haml +38 -36
- data/app/views/upmin/partials/attributes/_decimal.html.haml +10 -0
- data/app/views/upmin/partials/attributes/_float.html.haml +10 -6
- data/app/views/upmin/partials/attributes/_integer.html.haml +10 -6
- data/app/views/upmin/partials/attributes/_progress_bar.html.haml +1 -0
- data/app/views/upmin/partials/attributes/_string.html.haml +17 -6
- data/app/views/upmin/partials/attributes/_text.html.haml +8 -6
- data/app/views/upmin/partials/attributes/_unknown.html.haml +5 -3
- data/app/views/upmin/partials/models/_model.html.haml +18 -46
- data/app/views/upmin/partials/models/_new_model.html.haml +9 -31
- data/app/views/upmin/partials/parameters/_block_parameter.haml +0 -0
- data/app/views/upmin/partials/parameters/_opt_parameter.html.haml +14 -0
- data/app/views/upmin/partials/parameters/_req_parameter.html.haml +4 -0
- data/app/views/upmin/partials/search_boxes/_ransack_search_box.html.haml +2 -3
- data/app/views/upmin/partials/search_results/_results.html.haml +9 -2
- data/lib/upmin/action.rb +50 -0
- data/lib/upmin/active_record/association.rb +47 -0
- data/lib/upmin/active_record/model.rb +54 -0
- data/lib/upmin/active_record/query.rb +12 -0
- data/lib/upmin/admin.rb +24 -2
- data/lib/upmin/association.rb +73 -0
- data/lib/upmin/attribute.rb +87 -0
- data/lib/upmin/automatic_delegation.rb +76 -0
- data/lib/upmin/configuration.rb +103 -0
- data/lib/upmin/data_mapper/association.rb +57 -0
- data/lib/upmin/data_mapper/model.rb +62 -0
- data/lib/upmin/data_mapper/query.rb +57 -0
- data/lib/upmin/engine.rb +2 -0
- data/lib/upmin/errors.rb +43 -0
- data/lib/upmin/model.rb +267 -98
- data/lib/upmin/parameter.rb +43 -0
- data/lib/upmin/query.rb +51 -0
- data/lib/upmin/railtie.rb +11 -1
- data/lib/upmin/railties/active_record.rb +5 -50
- data/lib/upmin/railties/data_mapper.rb +18 -0
- data/lib/upmin/railties/render.rb +34 -98
- data/lib/upmin/railties/render_helpers.rb +119 -53
- data/lib/upmin/version.rb +1 -1
- data/spec/factories/factories.rb +6 -0
- data/spec/features/action_spec.rb +39 -46
- data/spec/features/edit_model_spec.rb +4 -2
- data/spec/features/navbar_spec.rb +48 -0
- data/spec/features/new_model_spec.rb +1 -0
- data/spec/features/search_spec.rb +7 -4
- data/spec/lib/configuration_spec.rb +60 -0
- data/spec/spec_helper.rb +14 -8
- metadata +25 -7
- data/app/assets/javascripts/upmin/moment.js +0 -2856
- data/app/helpers/upmin/instances_helper.rb +0 -13
- data/app/views/upmin/partials/attributes/_nilable.html.haml +0 -14
- data/app/views/upmin/partials/search_results/_result.html.haml +0 -8
- data/lib/upmin/klass.rb +0 -170
@@ -0,0 +1,43 @@
|
|
1
|
+
module Upmin
|
2
|
+
class Parameter
|
3
|
+
attr_reader :action
|
4
|
+
attr_reader :name
|
5
|
+
|
6
|
+
def initialize(action, parameter_name, options = {})
|
7
|
+
@action = action
|
8
|
+
@name = parameter_name.to_sym
|
9
|
+
@type = options[:type] if options[:type]
|
10
|
+
end
|
11
|
+
|
12
|
+
def model
|
13
|
+
return action.model
|
14
|
+
end
|
15
|
+
|
16
|
+
def title
|
17
|
+
return name.to_s.humanize
|
18
|
+
end
|
19
|
+
|
20
|
+
def label_name
|
21
|
+
name.to_s.capitalize.gsub("_", " ")
|
22
|
+
end
|
23
|
+
|
24
|
+
def type
|
25
|
+
return @type if defined?(@type)
|
26
|
+
@type = action.model.method(action.name).parameters.select do |param_type, param_name|
|
27
|
+
param_name == name
|
28
|
+
end.first.first || :req
|
29
|
+
return @type
|
30
|
+
end
|
31
|
+
|
32
|
+
def form_id
|
33
|
+
return "#{action.name}_#{name}"
|
34
|
+
end
|
35
|
+
|
36
|
+
def nil_form_id
|
37
|
+
return "#{form_id}_is_nil"
|
38
|
+
end
|
39
|
+
|
40
|
+
private
|
41
|
+
|
42
|
+
end
|
43
|
+
end
|
data/lib/upmin/query.rb
ADDED
@@ -0,0 +1,51 @@
|
|
1
|
+
module Upmin
|
2
|
+
class Query
|
3
|
+
|
4
|
+
attr_reader :klass
|
5
|
+
attr_reader :search_options
|
6
|
+
attr_reader :page
|
7
|
+
attr_reader :per_page
|
8
|
+
|
9
|
+
delegate(:underscore_name, to: :klass)
|
10
|
+
|
11
|
+
def initialize(klass, search_options = {}, options = {})
|
12
|
+
if klass.active_record?
|
13
|
+
extend Upmin::ActiveRecord::Query
|
14
|
+
elsif klass.data_mapper?
|
15
|
+
extend Upmin::DataMapper::Query
|
16
|
+
else
|
17
|
+
raise ArgumentError.new(klass)
|
18
|
+
end
|
19
|
+
|
20
|
+
@klass = klass
|
21
|
+
@search_options = search_options
|
22
|
+
@page = options[:page]
|
23
|
+
@per_page = options[:per_page]
|
24
|
+
end
|
25
|
+
|
26
|
+
def results
|
27
|
+
raise NotImplementedError
|
28
|
+
end
|
29
|
+
|
30
|
+
def paginated_results
|
31
|
+
return @paginated_results if defined?(@paginated_results)
|
32
|
+
if page && per_page
|
33
|
+
pr = Upmin::Paginator.paginate(results, page, per_page)
|
34
|
+
else
|
35
|
+
pr = Upmin::Paginator.paginate(results)
|
36
|
+
end
|
37
|
+
@paginated_results = pr
|
38
|
+
return @paginated_results
|
39
|
+
end
|
40
|
+
|
41
|
+
def upmin_results
|
42
|
+
return @upmin_results if defined?(@upmin_results)
|
43
|
+
@upmin_results = paginated_results.map{ |r| r.upmin_model }
|
44
|
+
return @upmin_results
|
45
|
+
end
|
46
|
+
|
47
|
+
|
48
|
+
private
|
49
|
+
|
50
|
+
end
|
51
|
+
end
|
data/lib/upmin/railtie.rb
CHANGED
@@ -1,12 +1,22 @@
|
|
1
|
+
require 'rails/railtie'
|
2
|
+
|
1
3
|
module Upmin
|
2
4
|
require 'rails'
|
3
5
|
class Railtie < Rails::Railtie
|
4
6
|
initializer('upmin.insert_into_active_record') do
|
5
7
|
ActiveSupport.on_load(:active_record) do
|
6
|
-
|
8
|
+
if defined?(ActiveRecord)
|
9
|
+
::ActiveRecord::Base.send(:include, Upmin::Railties::ActiveRecord)
|
10
|
+
end
|
11
|
+
|
12
|
+
if defined?(DataMapper)
|
13
|
+
::DataMapper::Resource.send(:include, Upmin::Railties::DataMapper)
|
14
|
+
end
|
7
15
|
# ::ActiveRecord::Relation.send(:include, Upmin::ActiveRecordRelation)
|
8
16
|
end
|
17
|
+
end
|
9
18
|
|
19
|
+
initializer('upmin.insert_view_helpers') do
|
10
20
|
ActiveSupport.on_load(:action_controller) do
|
11
21
|
::ActionController::Base.send(:include, Upmin::Railties::Render)
|
12
22
|
::ActionController::Base.send(:include, Upmin::Railties::Paginator)
|
@@ -4,60 +4,15 @@ module Upmin::Railties
|
|
4
4
|
module ActiveRecord
|
5
5
|
extend ::ActiveSupport::Concern
|
6
6
|
|
7
|
+
def upmin_model
|
8
|
+
klass = Upmin::Model.find_class(self.class)
|
9
|
+
return klass.new(self)
|
10
|
+
end
|
11
|
+
|
7
12
|
included do
|
8
13
|
end
|
9
14
|
|
10
15
|
module ClassMethods
|
11
|
-
|
12
|
-
# Add a single attribute to upmin attributes. If this is called
|
13
|
-
# before upmin_attributes the attributes will not include any defaults
|
14
|
-
# attributes.
|
15
|
-
def upmin_attribute(attribute = nil)
|
16
|
-
@upmin_extra_attrs = [] unless defined?(@upmin_extra_attrs)
|
17
|
-
@upmin_extra_attrs << attribute.to_sym if attribute
|
18
|
-
end
|
19
|
-
|
20
|
-
# Sets the upmin_attributes to the provided attributes if any are
|
21
|
-
# provided.
|
22
|
-
# If no attributes are provided, and upmin_attributes hasn't been defined,
|
23
|
-
# then the upmin_attributes are set to the default attributes.
|
24
|
-
# Returns the upmin_attributes
|
25
|
-
def upmin_attributes(*attributes)
|
26
|
-
@upmin_extra_attrs = [] unless defined?(@upmin_extra_attrs)
|
27
|
-
|
28
|
-
if attributes.any?
|
29
|
-
@upmin_attributes = attributes.map{|a| a.to_sym}
|
30
|
-
end
|
31
|
-
|
32
|
-
@upmin_attributes ||= attribute_names.map{|a| a.to_sym}
|
33
|
-
return (@upmin_attributes + @upmin_extra_attrs).uniq
|
34
|
-
end
|
35
|
-
|
36
|
-
|
37
|
-
# Add a single action to upmin actions. If this is called
|
38
|
-
# before upmin_actions the actions will not include any defaults
|
39
|
-
# actions.
|
40
|
-
def upmin_action(action)
|
41
|
-
@upmin_actions ||= []
|
42
|
-
|
43
|
-
action = action.to_sym
|
44
|
-
@upmin_actions << action unless @upmin_actions.include?(action)
|
45
|
-
end
|
46
|
-
|
47
|
-
# Sets the upmin_actions to the provided actions if any are
|
48
|
-
# provided.
|
49
|
-
# If no actions are provided, and upmin_actions hasn't been defined,
|
50
|
-
# then the upmin_actions are set to the default actions.
|
51
|
-
# Returns the upmin_actions
|
52
|
-
def upmin_actions(*actions)
|
53
|
-
if actions.any?
|
54
|
-
# set the actions
|
55
|
-
@upmin_actions = actions.map{|a| a.to_sym}
|
56
|
-
end
|
57
|
-
@upmin_actions ||= []
|
58
|
-
return @upmin_actions
|
59
|
-
end
|
60
|
-
|
61
16
|
end
|
62
17
|
end
|
63
18
|
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require 'active_support/concern'
|
2
|
+
|
3
|
+
module Upmin::Railties
|
4
|
+
module DataMapper
|
5
|
+
extend ::ActiveSupport::Concern
|
6
|
+
|
7
|
+
def upmin_model
|
8
|
+
klass = Upmin::Model.find_class(self.class)
|
9
|
+
return klass.new(self)
|
10
|
+
end
|
11
|
+
|
12
|
+
included do
|
13
|
+
end
|
14
|
+
|
15
|
+
module ClassMethods
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -2,105 +2,41 @@
|
|
2
2
|
module Upmin::Railties
|
3
3
|
module Render
|
4
4
|
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
5
|
+
# Render method that is used by upmin-admin. Tries to render partials in order, passing data in as the :object, along with options.
|
6
|
+
def up_render(data, options = {})
|
7
|
+
if data.is_a?(Upmin::Model)
|
8
|
+
options = RenderHelpers.model_options(data, options)
|
9
|
+
partials = RenderHelpers.model_partials(data, options)
|
10
|
+
|
11
|
+
elsif data.is_a?(Upmin::Attribute)
|
12
|
+
options = RenderHelpers.attribute_options(data, options)
|
13
|
+
partials = RenderHelpers.attribute_partials(data, options)
|
14
|
+
|
15
|
+
elsif data.is_a?(Upmin::Association)
|
16
|
+
options = RenderHelpers.association_options(data, options)
|
17
|
+
partials = RenderHelpers.association_partials(data, options)
|
18
|
+
|
19
|
+
elsif data.is_a?(Upmin::Action)
|
20
|
+
options = RenderHelpers.action_options(data, options)
|
21
|
+
partials = RenderHelpers.action_partials(data, options)
|
22
|
+
|
23
|
+
elsif data.is_a?(Upmin::Parameter)
|
24
|
+
options = RenderHelpers.parameter_options(data, options)
|
25
|
+
partials = RenderHelpers.parameter_partials(data, options)
|
26
|
+
|
27
|
+
elsif data.is_a?(Upmin::Query)
|
28
|
+
options = RenderHelpers.search_results_options(data, options)
|
29
|
+
partials = RenderHelpers.search_results_partials(data, options)
|
30
|
+
|
31
|
+
elsif data.superclass == Upmin::Model
|
32
|
+
# Probably rendering a search box
|
33
|
+
options = RenderHelpers.search_box_options(data, options)
|
34
|
+
partials = RenderHelpers.search_box_partials(data, options)
|
35
|
+
|
36
|
+
else
|
37
|
+
raise Upmin::ArgumentError.new(data)
|
27
38
|
end
|
28
39
|
|
29
|
-
|
30
|
-
partials = RenderHelpers.attribute_partials(upmin_model, attr_name, options)
|
31
|
-
|
32
|
-
data = upmin_model.attribute(attr_name)
|
33
|
-
return up_render(data, partials, options, :up_attribute)
|
34
|
-
end
|
35
|
-
|
36
|
-
def up_association(model, assoc_name, options = {})
|
37
|
-
options[:locals] ||= {}
|
38
|
-
options[:locals][:model] ||= model
|
39
|
-
options[:locals][:assoc_name] = assoc_name
|
40
|
-
|
41
|
-
upmin_model = Upmin::Model.new(model)
|
42
|
-
options[:locals][:upmin_model] ||= upmin_model
|
43
|
-
|
44
|
-
partials = RenderHelpers.association_partials(upmin_model, assoc_name, options)
|
45
|
-
|
46
|
-
data = upmin_model.association(assoc_name, options)
|
47
|
-
return up_render([data].flatten, partials, options, :up_association)
|
48
|
-
end
|
49
|
-
|
50
|
-
def up_action(model, action_name, options = {})
|
51
|
-
options[:locals] ||= {}
|
52
|
-
options[:locals][:model] ||= model
|
53
|
-
options[:locals][:action_name] = action_name
|
54
|
-
|
55
|
-
upmin_model = Upmin::Model.new(model)
|
56
|
-
options[:locals][:upmin_model] ||= upmin_model
|
57
|
-
|
58
|
-
partials = RenderHelpers.action_partials(upmin_model, action_name, options)
|
59
|
-
|
60
|
-
data = upmin_model.action_parameters(action_name)
|
61
|
-
return up_render(data, partials, options, :up_action)
|
62
|
-
end
|
63
|
-
|
64
|
-
def up_search_results(ransack_search, ransack_results, options = {})
|
65
|
-
options[:locals] ||= {}
|
66
|
-
options[:locals][:klass] ||= Upmin::Klass.find(ransack_search.klass)
|
67
|
-
options[:locals][:ransack_search] ||= ransack_search
|
68
|
-
options[:locals][:ransack_results] ||= ransack_results
|
69
|
-
|
70
|
-
partials = RenderHelpers.search_results_partials(ransack_search, options)
|
71
|
-
|
72
|
-
return up_render(ransack_results, partials, options, :up_search_results)
|
73
|
-
end
|
74
|
-
|
75
|
-
def up_search_result(model, options = {})
|
76
|
-
options[:locals] ||= {}
|
77
|
-
|
78
|
-
upmin_model = Upmin::Model.new(model)
|
79
|
-
options[:locals][:upmin_model] ||= upmin_model
|
80
|
-
|
81
|
-
partials = RenderHelpers.search_result_partials(upmin_model, options)
|
82
|
-
|
83
|
-
return up_render(model, partials, options, :up_search_result)
|
84
|
-
end
|
85
|
-
|
86
|
-
def up_search_box(klass, options = {})
|
87
|
-
options[:locals] ||= {}
|
88
|
-
|
89
|
-
klass = Upmin::Klass.find(klass) unless klass.is_a?(Upmin::Klass)
|
90
|
-
if klass.nil?
|
91
|
-
raise "Invalid klass provided in `up_search_box`"
|
92
|
-
end
|
93
|
-
|
94
|
-
options[:locals][:klass] = klass
|
95
|
-
|
96
|
-
partials = RenderHelpers.search_box_partials(klass, options)
|
97
|
-
|
98
|
-
return up_render(klass, partials, options, :up_search_box)
|
99
|
-
end
|
100
|
-
|
101
|
-
|
102
|
-
# Generic render method that is used by all of the up_<something> methods. Tries to render the partials in order, passing data in as the :object, along with options.
|
103
|
-
def up_render(data, partials, options = {}, calling_method = nil)
|
104
40
|
# Use options as the render hash, and set :object as the data being used for rendering.
|
105
41
|
options[:object] = data
|
106
42
|
|
@@ -113,7 +49,7 @@ module Upmin::Railties
|
|
113
49
|
end
|
114
50
|
|
115
51
|
# If we get here we tried all of the partials and nothing matched. This *shouldn't* be possible but might happen if partials are deleted.
|
116
|
-
raise
|
52
|
+
raise Upmin::MissingPartial.new(data)
|
117
53
|
end
|
118
54
|
|
119
55
|
end
|
@@ -2,21 +2,33 @@
|
|
2
2
|
module Upmin::Railties
|
3
3
|
module RenderHelpers
|
4
4
|
|
5
|
-
def RenderHelpers.model_partials(
|
5
|
+
def RenderHelpers.model_partials(model, options = {})
|
6
6
|
partials = []
|
7
7
|
# Add "new_" in front of any partial for the partial for new view.
|
8
8
|
# <options[:as]>
|
9
9
|
# <model_name>
|
10
10
|
# model
|
11
|
-
prefix =
|
11
|
+
prefix = model.new_record? ? "new_" : ""
|
12
12
|
|
13
13
|
partials << build_model_path(options[:as]) if options[:as]
|
14
|
-
partials << build_model_path(
|
14
|
+
partials << build_model_path(model.underscore_name, prefix)
|
15
15
|
partials << build_model_path(:model, prefix)
|
16
16
|
return partials
|
17
17
|
end
|
18
18
|
|
19
|
-
def RenderHelpers.
|
19
|
+
def RenderHelpers.model_options(model, options = {})
|
20
|
+
options[:locals] ||= {}
|
21
|
+
options[:locals][:model] ||= model
|
22
|
+
return options
|
23
|
+
end
|
24
|
+
|
25
|
+
def RenderHelpers.build_model_path(partial, prefix = "")
|
26
|
+
return build_path("models", "#{prefix}#{partial}")
|
27
|
+
end
|
28
|
+
|
29
|
+
|
30
|
+
|
31
|
+
def RenderHelpers.attribute_partials(attribute, options = {})
|
20
32
|
partials = []
|
21
33
|
# <options[:as]>
|
22
34
|
# <model_name>_<attr_name>, eg: user_name
|
@@ -24,85 +36,148 @@ module Upmin::Railties
|
|
24
36
|
# <attr_type>, eg: string
|
25
37
|
# unknown
|
26
38
|
|
27
|
-
model_name =
|
28
|
-
attr_type =
|
39
|
+
model_name = attribute.model.underscore_name
|
40
|
+
attr_type = attribute.type
|
29
41
|
|
30
42
|
partials << build_attribute_path(options[:as]) if options[:as]
|
31
|
-
partials << build_attribute_path("#{model_name}_#{
|
43
|
+
partials << build_attribute_path("#{model_name}_#{attribute.name}")
|
32
44
|
partials << build_attribute_path("#{model_name}_#{attr_type}")
|
33
45
|
partials << build_attribute_path(attr_type)
|
34
46
|
partials << build_attribute_path(:unknown)
|
35
47
|
return partials
|
36
48
|
end
|
37
49
|
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
50
|
+
def RenderHelpers.attribute_options(attribute, options = {})
|
51
|
+
options[:locals] ||= {}
|
52
|
+
options[:locals][:model] ||= attribute.model
|
53
|
+
options[:locals][:attribute] = attribute
|
54
|
+
return options
|
55
|
+
end
|
56
|
+
|
57
|
+
def RenderHelpers.build_attribute_path(partial)
|
58
|
+
return build_path("attributes", partial)
|
59
|
+
end
|
60
|
+
|
43
61
|
|
44
62
|
|
45
63
|
# NOTE: assoc_type is sketchy at best. It tries to determine it, but in some cases it has to be guessed at, so if you have polymorphic associations it will choose the data type of the first association it finds - eg if user.things returns [Order, Product, Review] it will use the type of "order"
|
46
|
-
def RenderHelpers.association_partials(
|
64
|
+
def RenderHelpers.association_partials(association, options = {})
|
47
65
|
partials = []
|
48
66
|
# <options[:as]>
|
49
67
|
# <model_name>_<assoc_name>, eg: user_recent_orders
|
50
68
|
# <model_name>_<assoc_type>, eg: user_orders
|
51
69
|
# <attr_type>, eg: orders
|
52
70
|
# associations
|
53
|
-
model_name =
|
54
|
-
assoc_type =
|
71
|
+
model_name = association.model.underscore_name
|
72
|
+
assoc_type = association.type
|
55
73
|
|
56
74
|
partials << build_association_path(options[:as]) if options[:as]
|
57
|
-
partials << build_association_path("#{model_name}_#{
|
75
|
+
partials << build_association_path("#{model_name}_#{association.name}")
|
58
76
|
partials << build_association_path("#{model_name}_#{assoc_type}")
|
59
77
|
partials << build_association_path(assoc_type)
|
60
78
|
partials << build_association_path(:associations)
|
61
79
|
return partials
|
62
80
|
end
|
63
81
|
|
64
|
-
def RenderHelpers.
|
82
|
+
def RenderHelpers.association_options(association, options = {})
|
83
|
+
options[:locals] ||= {}
|
84
|
+
options[:locals][:model] ||= association.model
|
85
|
+
options[:locals][:association] = association
|
86
|
+
return options
|
87
|
+
end
|
88
|
+
|
89
|
+
def RenderHelpers.build_association_path(partial)
|
90
|
+
return build_path("associations", partial)
|
91
|
+
end
|
92
|
+
|
93
|
+
|
94
|
+
|
95
|
+
def RenderHelpers.action_partials(action, options = {})
|
65
96
|
partials = []
|
66
97
|
# <options[:as]>
|
67
98
|
# <model_name>_<action_name>, eg: order_refund
|
68
99
|
# <action_name>, eg: refund
|
69
100
|
# action
|
70
|
-
model_name =
|
101
|
+
model_name = action.model.underscore_name
|
71
102
|
|
72
103
|
partials << build_action_path(options[:as]) if options[:as]
|
73
|
-
partials << build_action_path("#{model_name}_#{
|
74
|
-
partials << build_action_path(
|
104
|
+
partials << build_action_path("#{model_name}_#{action.name}")
|
105
|
+
partials << build_action_path(action.name)
|
75
106
|
partials << build_action_path(:action)
|
76
107
|
return partials
|
77
108
|
end
|
78
109
|
|
79
|
-
def RenderHelpers.
|
110
|
+
def RenderHelpers.action_options(action, options = {})
|
111
|
+
options[:locals] ||= {}
|
112
|
+
options[:locals][:model] ||= action.model
|
113
|
+
options[:locals][:action] = action
|
114
|
+
return options
|
115
|
+
end
|
116
|
+
|
117
|
+
def RenderHelpers.build_action_path(partial)
|
118
|
+
return build_path("actions", partial)
|
119
|
+
end
|
120
|
+
|
121
|
+
|
122
|
+
|
123
|
+
def RenderHelpers.parameter_partials(parameter, options = {})
|
80
124
|
partials = []
|
81
125
|
# <options[:as]>
|
82
|
-
# <model_name
|
83
|
-
#
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
126
|
+
# <model_name>_<action_name>_<param_name>, eg: order_refund_amount
|
127
|
+
# <action_name>_<param_name>, eg: refund_amount
|
128
|
+
# <param_name>, eg: amount
|
129
|
+
# <param_type>_parameter, eg: opt_parameter and req_parameter
|
130
|
+
model_name = parameter.model.underscore_name
|
131
|
+
action_name = parameter.action.name
|
132
|
+
|
133
|
+
partials << build_parameter_path(options[:as]) if options[:as]
|
134
|
+
partials << build_parameter_path("#{model_name}_#{action_name}_#{parameter.name}")
|
135
|
+
partials << build_parameter_path("#{action_name}_#{parameter.name}")
|
136
|
+
partials << build_parameter_path(parameter.name)
|
137
|
+
partials << build_parameter_path("#{parameter.type}_parameter")
|
89
138
|
return partials
|
90
139
|
end
|
91
140
|
|
92
|
-
def RenderHelpers.
|
141
|
+
def RenderHelpers.parameter_options(parameter, options = {})
|
142
|
+
options[:locals] ||= {}
|
143
|
+
options[:locals][:model] ||= parameter.model
|
144
|
+
options[:locals][:action] ||= parameter.action
|
145
|
+
options[:locals][:parameter] = parameter
|
146
|
+
return options
|
147
|
+
end
|
148
|
+
|
149
|
+
def RenderHelpers.build_parameter_path(partial)
|
150
|
+
return build_path("parameters", partial)
|
151
|
+
end
|
152
|
+
|
153
|
+
|
154
|
+
|
155
|
+
def RenderHelpers.search_results_partials(query, options = {})
|
93
156
|
partials = []
|
94
157
|
# <options[:as]>
|
95
|
-
# <model_name #
|
158
|
+
# <model_name # plural>, eg: orders
|
96
159
|
# results
|
97
|
-
|
160
|
+
model_name_plural = query.underscore_name(:plural)
|
98
161
|
|
99
|
-
partials <<
|
100
|
-
partials <<
|
101
|
-
partials <<
|
162
|
+
partials << build_search_results_path(options[:as]) if options[:as]
|
163
|
+
partials << build_search_results_path(model_name_plural)
|
164
|
+
partials << build_search_results_path(:results)
|
102
165
|
return partials
|
103
166
|
end
|
104
167
|
|
105
|
-
def RenderHelpers.
|
168
|
+
def RenderHelpers.search_results_options(query, options = {})
|
169
|
+
options[:locals] ||= {}
|
170
|
+
options[:locals][:query] = query
|
171
|
+
return options
|
172
|
+
end
|
173
|
+
|
174
|
+
def RenderHelpers.build_search_results_path(partial)
|
175
|
+
return build_path("search_results", partial)
|
176
|
+
end
|
177
|
+
|
178
|
+
|
179
|
+
|
180
|
+
def RenderHelpers.search_box_partials(klass, options = {})
|
106
181
|
partials = []
|
107
182
|
# <options[:as]>
|
108
183
|
# ransack_search_box
|
@@ -112,30 +187,21 @@ module Upmin::Railties
|
|
112
187
|
return partials
|
113
188
|
end
|
114
189
|
|
115
|
-
|
116
|
-
|
117
|
-
|
190
|
+
def RenderHelpers.search_box_options(klass, options = {})
|
191
|
+
options[:locals] ||= {}
|
192
|
+
options[:locals][:klass] = klass
|
193
|
+
return options
|
118
194
|
end
|
119
195
|
|
120
|
-
def RenderHelpers.
|
121
|
-
return "
|
196
|
+
def RenderHelpers.build_search_box_path(partial)
|
197
|
+
return build_path("search_boxes", partial)
|
122
198
|
end
|
123
199
|
|
124
|
-
def RenderHelpers.build_action_path(partial_name)
|
125
|
-
partial_name = partial_name.to_s.gsub(/[!?]/, "")
|
126
|
-
return "#{root_path}/actions/#{partial_name}"
|
127
|
-
end
|
128
200
|
|
129
|
-
def RenderHelpers.build_association_path(partial_name)
|
130
|
-
return "#{root_path}/associations/#{partial_name}"
|
131
|
-
end
|
132
|
-
|
133
|
-
def RenderHelpers.build_search_result_path(partial_name)
|
134
|
-
return "#{root_path}/search_results/#{partial_name}"
|
135
|
-
end
|
136
201
|
|
137
|
-
def RenderHelpers.
|
138
|
-
|
202
|
+
def RenderHelpers.build_path(folder, partial)
|
203
|
+
partial = partial.to_s.gsub(/[!?]/, "")
|
204
|
+
"#{root_path}/#{folder}/#{partial}"
|
139
205
|
end
|
140
206
|
|
141
207
|
def RenderHelpers.root_path
|