makena 0.0.5
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.
- checksums.yaml +7 -0
- data/.gitignore +37 -0
- data/Gemfile +139 -0
- data/Gemfile.lock +469 -0
- data/README.rdoc +28 -0
- data/Rakefile +6 -0
- data/app/assets/images/.keep +0 -0
- data/app/assets/javascripts/application.js +16 -0
- data/app/assets/stylesheets/application.css +13 -0
- data/app/controllers/application_controller.rb +5 -0
- data/app/controllers/concerns/.keep +0 -0
- data/app/helpers/application_helper.rb +2 -0
- data/app/mailers/.keep +0 -0
- data/app/models/.keep +0 -0
- data/app/models/concerns/.keep +0 -0
- data/app/views/layouts/application.html.erb +14 -0
- data/bin/bundle +3 -0
- data/bin/rails +4 -0
- data/bin/rake +4 -0
- data/config.ru +4 -0
- data/config/application.rb +23 -0
- data/config/boot.rb +4 -0
- data/config/database.yml +39 -0
- data/config/environment.rb +5 -0
- data/config/environments/development.rb +29 -0
- data/config/environments/production.rb +80 -0
- data/config/environments/test.rb +36 -0
- data/config/initializers/backtrace_silencers.rb +7 -0
- data/config/initializers/filter_parameter_logging.rb +4 -0
- data/config/initializers/inflections.rb +16 -0
- data/config/initializers/mime_types.rb +5 -0
- data/config/initializers/secret_token.rb +12 -0
- data/config/initializers/session_store.rb +3 -0
- data/config/initializers/wrap_parameters.rb +14 -0
- data/config/locales/en.yml +23 -0
- data/config/routes.rb +56 -0
- data/db/seeds.rb +7 -0
- data/lib/assets/.keep +0 -0
- data/lib/generators/connection/USAGE +26 -0
- data/lib/generators/connection/connection_generator.rb +195 -0
- data/lib/generators/connection/templates/extensions/alpha_alphas.rb +17 -0
- data/lib/generators/connection/templates/extensions/alpha_betas.rb +17 -0
- data/lib/generators/connection/templates/extensions/geocoder.rb +23 -0
- data/lib/generators/connection/templates/extensions/image.rb +12 -0
- data/lib/generators/copy/USAGE +7 -0
- data/lib/generators/copy/copy_generator.rb +41 -0
- data/lib/generators/git/USAGE +8 -0
- data/lib/generators/git/git_generator.rb +59 -0
- data/lib/generators/setup/USAGE +8 -0
- data/lib/generators/setup/setup_generator.rb +151 -0
- data/lib/generators/success/USAGE +44 -0
- data/lib/generators/success/success_generator.rb +18 -0
- data/lib/tasks/.keep +0 -0
- data/makena/.gitignore +17 -0
- data/makena/Gemfile +4 -0
- data/makena/LICENSE.txt +22 -0
- data/makena/README.md +32 -0
- data/makena/Rakefile +1 -0
- data/makena/lib/makena.rb +21 -0
- data/makena/lib/makena/controllers.rb +218 -0
- data/makena/lib/makena/gps.rb +2 -0
- data/makena/lib/makena/image.rb +2 -0
- data/makena/lib/makena/layouts.rb +41 -0
- data/makena/lib/makena/models.rb +2 -0
- data/makena/lib/makena/tree.rb +181 -0
- data/makena/lib/makena/version.rb +3 -0
- data/makena/lib/makena/views.rb +225 -0
- data/makena/makena.gemspec +23 -0
- data/public/404.html +58 -0
- data/public/422.html +58 -0
- data/public/500.html +57 -0
- data/public/favicon.ico +0 -0
- data/public/robots.txt +5 -0
- data/vendor/assets/javascripts/.keep +0 -0
- data/vendor/assets/stylesheets/.keep +0 -0
- metadata +150 -0
@@ -0,0 +1,41 @@
|
|
1
|
+
module Layouts
|
2
|
+
|
3
|
+
# Broker layout form partials to obj forms
|
4
|
+
def layouts_form(*args)
|
5
|
+
f = (args.shift)
|
6
|
+
obj = (args.shift)
|
7
|
+
name_of_partial = (args.shift).to_s
|
8
|
+
name_of_attribute = (args.shift||name_of_partial).to_s
|
9
|
+
header = (args.shift||name_of_attribute).to_s.humanize.upcase
|
10
|
+
render "layouts/form/#{name_of_partial}", f: f, obj: obj, sender: name_of_attribute, header: header, args: args
|
11
|
+
end
|
12
|
+
|
13
|
+
# Broker layout form partials to obj forms
|
14
|
+
def layouts_forms(*args)
|
15
|
+
f = (args.shift)
|
16
|
+
obj = (args.shift)
|
17
|
+
name_of_partial = (args.shift).to_s
|
18
|
+
senders = (args.shift||name_of_partial)
|
19
|
+
headers = (args.shift||senders)
|
20
|
+
render "layouts/form/#{name_of_partial}", f: f, obj: obj, senders: senders, headers: headers, args: args
|
21
|
+
end
|
22
|
+
|
23
|
+
# Broker layout view partials to obj views
|
24
|
+
def layouts_show(*args)
|
25
|
+
obj = args.shift
|
26
|
+
if args.present?
|
27
|
+
name_of_partial = (args.shift).to_s
|
28
|
+
name_of_attribute = (args.shift||name_of_partial).to_s
|
29
|
+
header = args.shift
|
30
|
+
render "layouts/show/#{name_of_partial}", obj: obj, sender: name_of_attribute, header: header
|
31
|
+
else
|
32
|
+
render "layouts/show", obj: obj
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
# Broker layout view partials to obj views
|
37
|
+
def layouts_show_links(*args)
|
38
|
+
render "layouts/show/links", obj: args.shift, sender: args.shift, args: args
|
39
|
+
end
|
40
|
+
|
41
|
+
end
|
@@ -0,0 +1,181 @@
|
|
1
|
+
module Tree
|
2
|
+
|
3
|
+
# hash of application objects and infromation about objects
|
4
|
+
def makena(obj=nil, abstract=nil)
|
5
|
+
sender = makenaize_sender(obj)
|
6
|
+
if obj.present? and abstract.present?
|
7
|
+
# if obj and abstract
|
8
|
+
if makena_hsh[sender]
|
9
|
+
# if obj has a key, makena_hsh[sender][abstract]
|
10
|
+
abstract = abstract.to_s
|
11
|
+
case abstract.to_s
|
12
|
+
when "name"
|
13
|
+
headline( obj.send(makena_hsh[sender]["sender"]).to_s ).to_s
|
14
|
+
when "sender"
|
15
|
+
makena_hsh[sender]["sender"]
|
16
|
+
when "header"
|
17
|
+
makena_hsh[sender]["header"]
|
18
|
+
when "options"
|
19
|
+
makena_hsh[sender]["options"]
|
20
|
+
when "senders"
|
21
|
+
makena_hsh[sender]["senders"]
|
22
|
+
when "assocs"
|
23
|
+
makena_hsh[sender]["assocs"]
|
24
|
+
when "specials"
|
25
|
+
makena_hsh[sender]["specials"]
|
26
|
+
end
|
27
|
+
else
|
28
|
+
return nil
|
29
|
+
end
|
30
|
+
elsif obj.present?
|
31
|
+
if makena_hsh[sender]
|
32
|
+
return makena_hsh[sender]
|
33
|
+
else
|
34
|
+
return nil
|
35
|
+
end
|
36
|
+
else
|
37
|
+
return makena_hsh
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
# Actual makena hash to draw from
|
42
|
+
#def makena_hsh
|
43
|
+
# unless (@makena_hsh||=nil)
|
44
|
+
# @makena_hsh={}
|
45
|
+
# options = %w(public private new copy add remove destroy)
|
46
|
+
# @makena_hsh = @makena_hsh.merge( makena_hsh_obj(:user, nil, :name, options ) )
|
47
|
+
# specials = [:name_by_content_by_address]
|
48
|
+
# @makena_hsh = @makena_hsh.merge( makena_hsh_obj(:spot, nil, :name_with_distance, options, specials ) )
|
49
|
+
# specials = [:name_by_content]
|
50
|
+
# @makena_hsh = @makena_hsh.merge( makena_hsh_obj(:note, nil, :name, options, specials ) )
|
51
|
+
# end
|
52
|
+
# @makena_hsh
|
53
|
+
#end
|
54
|
+
# hsh = hsh.merge( makena_hsh_obj(:user, "User", :name, [], [:alpha, :beta, :ceta] ) )
|
55
|
+
# hsh = hsh.merge( makena_hsh_obj(:alpha, nil, :name, [], [], [:name_from_content]) )
|
56
|
+
# hsh = hsh.merge( makena_hsh_obj(:alpha_parent, nil, :name, [], [], [:name_from_content]) )
|
57
|
+
# hsh = hsh.merge( makena_hsh_obj(:alpha_child, nil, :name, [], [], [:name_from_content]) )
|
58
|
+
# hsh = hsh.merge( makena_hsh_obj(:beta, nil, :name, [], []) )
|
59
|
+
# hsh = hsh.merge( makena_hsh_obj(:ceta, nil, :name, [], []) )
|
60
|
+
|
61
|
+
# Find associates for each of obj senders and load into hash and return
|
62
|
+
def makena_hsh_load_assocs(hsh)
|
63
|
+
for key in hsh.keys
|
64
|
+
for sender in hsh[key]["senders"]
|
65
|
+
sender_sym = sender.singularize.to_sym
|
66
|
+
key_sender = key.to_s.pluralize
|
67
|
+
unless key==:user or hsh[sender_sym]["senders"].include?(key_sender) or hsh[sender_sym]["assocs"].include?(key_sender)
|
68
|
+
hsh[sender_sym]["assocs"] << key_sender
|
69
|
+
end
|
70
|
+
end
|
71
|
+
end
|
72
|
+
hsh
|
73
|
+
end
|
74
|
+
|
75
|
+
# Get all associates of obj and pass back as array of strings
|
76
|
+
def makena_assocs(obj)
|
77
|
+
binding.pry
|
78
|
+
#Model_1.reflect_on_association(:images)
|
79
|
+
#associations = Model_1.reflect_on_all_associations(:has_many)
|
80
|
+
#associations.any? { |a| a.name == :images }
|
81
|
+
# TODO makenabots http://stackoverflow.com/questions/8281458/is-there-any-way-to-check-that-has-many-association-exists-in-rails-3-1
|
82
|
+
end
|
83
|
+
|
84
|
+
# Create makena hash object
|
85
|
+
def makena_hsh_obj(objsym, header=nil, sender="id", options=[], specials=[])
|
86
|
+
hsh||={}
|
87
|
+
hsh[objsym]={}
|
88
|
+
hsh[objsym]["header"]=(header||objsym.to_s.humanize.titleize).to_s
|
89
|
+
hsh[objsym]["sender"]=sender.to_s
|
90
|
+
hsh[objsym]["options"]=options.map{|a| a.to_s}
|
91
|
+
hsh[objsym]["specials"]=specials.map{|a| a.to_sym}
|
92
|
+
hsh
|
93
|
+
end
|
94
|
+
|
95
|
+
# Convert name into makena ready name
|
96
|
+
def makenaize_name(obj, name)
|
97
|
+
%w(parents children).include?(name) ? "#{obj.class.to_s.underscore}_#{name.singularize}".to_sym : name.to_s.singularize.to_sym
|
98
|
+
end
|
99
|
+
|
100
|
+
# Convert obj into makena ready sender
|
101
|
+
def makenaize_sender(obj)
|
102
|
+
if obj.present?
|
103
|
+
if obj.class.to_s=="Symbol"
|
104
|
+
obj.to_s.singularize.to_sym
|
105
|
+
else
|
106
|
+
obj.class.to_s.underscore.singularize.to_sym
|
107
|
+
end
|
108
|
+
else
|
109
|
+
nil
|
110
|
+
end
|
111
|
+
end
|
112
|
+
|
113
|
+
#makena_classes
|
114
|
+
#=> [User, Foo, Foobar]
|
115
|
+
def makena_classes
|
116
|
+
unless @makena_classes
|
117
|
+
Rails.application.eager_load!
|
118
|
+
pass = ActiveRecord::Base.descendants
|
119
|
+
pass.shift
|
120
|
+
@makena_classes = pass
|
121
|
+
end
|
122
|
+
@makena_classes
|
123
|
+
end
|
124
|
+
|
125
|
+
#makena_classes_u
|
126
|
+
#=> ["user_foos", "foo_foos", "foo_foobars", "foobar_foobars"]
|
127
|
+
def makena_classes_connecting_u
|
128
|
+
unless @makena_classes_connecting_u
|
129
|
+
passdoubles=[]
|
130
|
+
for b in makena_classes
|
131
|
+
passdoubles += makena_classes.map{|a| a.to_s.underscore+"_"+b.to_s.underscore.pluralize}
|
132
|
+
end
|
133
|
+
passsingles = makena_classes.map{|a| a.to_s.underscore.pluralize}
|
134
|
+
@makena_classes_connecting_u = passsingles & passdoubles
|
135
|
+
end
|
136
|
+
@makena_classes_connecting_u
|
137
|
+
end
|
138
|
+
|
139
|
+
#makena_classes_u
|
140
|
+
#=> ["user", "foo", "foobar"]
|
141
|
+
def makena_classes_u
|
142
|
+
unless @makena_classes_u
|
143
|
+
passdoubles=[]
|
144
|
+
for b in makena_classes
|
145
|
+
passdoubles += makena_classes.map{|a| a.to_s.underscore+"_"+b.to_s.underscore.pluralize}
|
146
|
+
end
|
147
|
+
passsingles = makena_classes.map{|a| a.to_s.underscore.pluralize}
|
148
|
+
@makena_classes_u = passsingles - passdoubles
|
149
|
+
end
|
150
|
+
@makena_classes_u
|
151
|
+
end
|
152
|
+
|
153
|
+
#makena_classes_u_p_sym
|
154
|
+
#=> [:users, :foos, :foobars]
|
155
|
+
def makena_classes_u_p_sym
|
156
|
+
unless @makena_classes_u_p_sym
|
157
|
+
@makena_classes_u_p_sym = makena_classes_u.map{|a| a.underscore.pluralize.to_sym}
|
158
|
+
end
|
159
|
+
@makena_classes_u_p_sym
|
160
|
+
end
|
161
|
+
|
162
|
+
#makena_classes_u_p_sym_assocs_s_p(@user)
|
163
|
+
# => ["spots", "friendships"]
|
164
|
+
def makena_classes_u_p_sym_assocs_s_p(obj)
|
165
|
+
makena_classes_u_p_sym.map{|a| obj.class.reflect_on_association(a).present? ? a.to_s : nil}.uniq-[nil]
|
166
|
+
end
|
167
|
+
|
168
|
+
#makena_senders(@user)
|
169
|
+
# => ["spots", "friendships"]
|
170
|
+
def makena_senders(obj)
|
171
|
+
makena_classes_u_p_sym_assocs_s_p(obj)
|
172
|
+
end
|
173
|
+
|
174
|
+
# Generate list of possible foreign ids, example "user_id"
|
175
|
+
def makena_params
|
176
|
+
Rails.application.eager_load!
|
177
|
+
dants = ActiveRecord::Base.descendants
|
178
|
+
return dants.map{|a| a.to_s}.map{|a| [a.underscore+"_parent_id", a.underscore+"_id", a.underscore+"_child_id"]}.flatten
|
179
|
+
end
|
180
|
+
|
181
|
+
end
|
@@ -0,0 +1,225 @@
|
|
1
|
+
module Views
|
2
|
+
|
3
|
+
# Capitalize first letter, leave the rest as is
|
4
|
+
def headline(string=nil)
|
5
|
+
if string.present?
|
6
|
+
pass = string.to_s.slice(0,1).capitalize + string.to_s.slice(1..-1)
|
7
|
+
else
|
8
|
+
pass = ""
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
# Object is looping
|
13
|
+
def is_looping(obj=nil)
|
14
|
+
if (obj||=nil).present?
|
15
|
+
@looping_objs||={}
|
16
|
+
@looping_objs[obj.class.to_s]||=[]
|
17
|
+
if @looping_objs[obj.class.to_s].include?(obj.id)
|
18
|
+
return true
|
19
|
+
else
|
20
|
+
@looping_objs[obj.class.to_s] << obj.id
|
21
|
+
return false
|
22
|
+
end
|
23
|
+
else
|
24
|
+
false
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
# content = "Welcome to http://www.mine.com/. Email me at me@mine.com."
|
29
|
+
# auto_link content, html: {target: '_blank'} do |text|; truncate(text, length: 15); end
|
30
|
+
# markdown content
|
31
|
+
#=> "Welcome to <a href='http://www.mine.com/'>http://www.mine.com/</a>. Email me..."
|
32
|
+
# Starring:
|
33
|
+
# Redcarpet
|
34
|
+
# Nokogiri
|
35
|
+
# Albino
|
36
|
+
# RailsAutolink
|
37
|
+
# TODO - impliment - RailsAutolink
|
38
|
+
def markdown(pass_content="", pass_options={})
|
39
|
+
pass_content = auto_link( pass_content, html: {target: '_blank'} )
|
40
|
+
pass_options.reverse_merge!(
|
41
|
+
:hard_wrap => true,
|
42
|
+
:filter_html => false,
|
43
|
+
:no_intraemphasis => true,
|
44
|
+
:fenced_code => true,
|
45
|
+
:gh_blockcode => true
|
46
|
+
)
|
47
|
+
pass_options.reject! { |k, v| !v }
|
48
|
+
pass_content = Redcarpet.new(pass_content, *pass_options.keys).to_html
|
49
|
+
pass_doc = Nokogiri::HTML(pass_content)
|
50
|
+
pass_doc.search("//pre[@lang]").each do |pass_pre|
|
51
|
+
pass_pre.replace Albino.colorize(pass_pre.text.rstrip, pass_pre[:lang])
|
52
|
+
end
|
53
|
+
pass_doc.to_s.html_safe
|
54
|
+
end
|
55
|
+
|
56
|
+
# turn any string into a complete underscore
|
57
|
+
def underscore(pass="")
|
58
|
+
pass.to_s.strip.humanize.downcase.gsub(/[^a-z0-9-]/,"_")
|
59
|
+
end
|
60
|
+
|
61
|
+
# Object is not looping
|
62
|
+
def not_looping(obj)
|
63
|
+
!is_looping(obj)
|
64
|
+
end
|
65
|
+
|
66
|
+
# div collapsible generator
|
67
|
+
def div_collapse(hsh={}, obj=nil)
|
68
|
+
result=""
|
69
|
+
if hsh.class.to_s=="Hash"
|
70
|
+
for key in hsh.keys
|
71
|
+
pass_key = key.to_s.split("__")
|
72
|
+
key = long_key.shift
|
73
|
+
options = long_key.shift.to_s.split("_")
|
74
|
+
sender = long_key.shift
|
75
|
+
content = content_tag(:h3, key.to_s.humanize )
|
76
|
+
content << div_collapse(obj, hsh[key])
|
77
|
+
content = content_tag(:div, content, data: {role: "collapsible", collapsed: "true"})
|
78
|
+
content = content_tag(:div, content, data: {role: "collapsible-set"})
|
79
|
+
result << content
|
80
|
+
end
|
81
|
+
elsif key.to_s=="pass"
|
82
|
+
result << content_tag(:div, raw( key ) )
|
83
|
+
end
|
84
|
+
raw result
|
85
|
+
end
|
86
|
+
|
87
|
+
def div_collapse_content(obj, key, hsh, options="[]", sender="name")
|
88
|
+
content = ""
|
89
|
+
if obj.class.method_defined?(key.to_s)
|
90
|
+
objs = obj.send(key.to_s)
|
91
|
+
objs = objs.class.to_s=="Array" ? objs : [objs]
|
92
|
+
content << render( "layouts/collapsible/objs", obj: obj, objs: objs, header: key.to_s.humanize, sender: sender, options: options)
|
93
|
+
end
|
94
|
+
raw content
|
95
|
+
end
|
96
|
+
|
97
|
+
# jquery mobile link with prefetch
|
98
|
+
def link_to_prefetch(*args)
|
99
|
+
link_to_builder(%w(prefetch)+args)
|
100
|
+
end
|
101
|
+
|
102
|
+
# jquery mobile link that feels like a button, pass obj, or name, obj/path, args
|
103
|
+
def link_to_button(*args)
|
104
|
+
unless ["String","NilClass"].include?(args.first.class.to_s)
|
105
|
+
obj = args.shift
|
106
|
+
pass_name = makena(obj, :name)
|
107
|
+
pass_obj_or_path = obj
|
108
|
+
pass_extra = args.shift
|
109
|
+
args = [pass_name, pass_obj_or_path, pass_extra]
|
110
|
+
end
|
111
|
+
link_to_builder(%w(button)+args)
|
112
|
+
end
|
113
|
+
|
114
|
+
# jquery mobile link inline for multiple buttons per line
|
115
|
+
def link_to_inline(*args)
|
116
|
+
link_to_builder(%w(inline)+args)
|
117
|
+
end
|
118
|
+
|
119
|
+
# jquery mobile link inline for multiple buttons per line
|
120
|
+
def link_to_inline_destroy(pass_obj_or_path)
|
121
|
+
pass_class = pass_obj_or_path.new_record? ? "ui-disabled" : ""
|
122
|
+
link_to "DESTROY", pass_obj_or_path, method: :delete, data: {role: "button", inline: "true", confirm: "Are you sure?"}, class: pass_class
|
123
|
+
end
|
124
|
+
|
125
|
+
# links in button form and disables if at that url
|
126
|
+
def link_to_builder(*args)
|
127
|
+
args.flatten!
|
128
|
+
pass_type = args.shift.to_s
|
129
|
+
pass_name = args.shift.to_s
|
130
|
+
pass_obj_or_path = args.shift
|
131
|
+
pass_extra = args.shift
|
132
|
+
if pass_obj_or_path.class.to_s!="String" and
|
133
|
+
pass_obj_or_path.attribute_names.include?("image")
|
134
|
+
if pass_obj_or_path.image? and
|
135
|
+
pass_obj_or_path.image_url(:small)
|
136
|
+
pass_image = (Rails.env.test? ? "_image_showing" : "")+
|
137
|
+
"#{image_tag(pass_obj_or_path.image_url(:small).to_s)}"
|
138
|
+
else
|
139
|
+
pass_image = image_tag("orb.gif")
|
140
|
+
end
|
141
|
+
else
|
142
|
+
pass_image = ""
|
143
|
+
end
|
144
|
+
pass_style="text-overflow:normal;overflow:visible;white-space:pre-wrap;"
|
145
|
+
if current_page?(pass_obj_or_path)
|
146
|
+
pass_class = 'ui-disabled'
|
147
|
+
else
|
148
|
+
pass_class = ''
|
149
|
+
end
|
150
|
+
case pass_type
|
151
|
+
when "inline"
|
152
|
+
pass_name = pass_image+" "+pass_name
|
153
|
+
if current_page?(pass_obj_or_path)
|
154
|
+
pass_link_data = {data: {role: "button", inline: "true"}, class: "ui-disabled"}
|
155
|
+
else
|
156
|
+
pass_link_data = {data: {role: "button", inline: "true"}}
|
157
|
+
end
|
158
|
+
raw(link_to( raw(pass_name), pass_obj_or_path, pass_link_data ))
|
159
|
+
when "button"
|
160
|
+
pass_name += pass_image
|
161
|
+
if current_page?(pass_obj_or_path)
|
162
|
+
pass_link_data = {data: \
|
163
|
+
{role: "button", inline: "false", prefetch: true},
|
164
|
+
style: pass_style,
|
165
|
+
class: "ui-disabled"}
|
166
|
+
else
|
167
|
+
pass_link_data = {data: {role: "button", inline: "false", prefetch: true}, style: pass_style}
|
168
|
+
end
|
169
|
+
pass_ul_data = {data: {role: "listview", inset: "true"} }
|
170
|
+
content_tag(:ul, content_tag(:li,
|
171
|
+
raw(link_to( raw(pass_name), pass_obj_or_path, pass_link_data ) ) ), pass_ul_data)
|
172
|
+
when "prefetch"
|
173
|
+
raw("<ul data-role='listview' data-inset='true' \><li><a href='#{pass_obj_or_path}'
|
174
|
+
data-prefetch
|
175
|
+
data-role='button'
|
176
|
+
style='#{pass_style}'
|
177
|
+
class='#{pass_class}' />#{raw(pass_name)}#{raw(pass_image)}</a></li></ul>")
|
178
|
+
end
|
179
|
+
end
|
180
|
+
|
181
|
+
# links in button form and disables if at that url
|
182
|
+
def link_to_with_image(*args)
|
183
|
+
args.flatten!
|
184
|
+
pass_image = (args.shift.to_s or image_tag("white.png"))
|
185
|
+
pass_name = args.shift.to_s+pass_image.to_s
|
186
|
+
pass_obj_or_path = args.shift
|
187
|
+
pass_extra = args.shift
|
188
|
+
pass_style="text-overflow:normal;overflow:visible;white-space:pre-wrap;"
|
189
|
+
if current_page?(pass_obj_or_path)
|
190
|
+
pass_class = 'ui-disabled'
|
191
|
+
else
|
192
|
+
pass_class = ''
|
193
|
+
end
|
194
|
+
if current_page?(pass_obj_or_path)
|
195
|
+
pass_link_data = {data: {role: "button", prefetch: true}, style: pass_style, class: "ui-disabled"}
|
196
|
+
else
|
197
|
+
pass_link_data = {data: {role: "button", inline: "false", prefetch: true}, style: pass_style}
|
198
|
+
end
|
199
|
+
pass_ul_data = {data: {role: "listview", inset: "true"} }
|
200
|
+
content_tag(:ul, content_tag(:li,
|
201
|
+
raw(link_to( raw(pass_name), pass_obj_or_path, pass_link_data ) ) ), pass_ul_data)
|
202
|
+
end
|
203
|
+
|
204
|
+
def link_to_back
|
205
|
+
hsh_b = {data: {role: "button", rel: "back", icon: "back", direction: "reverse", prefetch: true} }
|
206
|
+
link_to "BACK", "#", hsh_b
|
207
|
+
end
|
208
|
+
|
209
|
+
def link_to_mapped_user(user=@user)
|
210
|
+
passpath = ""
|
211
|
+
if params[:lat_a].present?
|
212
|
+
passpath << "/user/home/#{params[:lat_a].to_s}.#{params[:lat_b].to_s}"
|
213
|
+
passpath << "/#{params[:long_a].to_s}.#{params[:long_b].to_s}"
|
214
|
+
else
|
215
|
+
passpath << "/user/home/#{user.latitude.to_s}/#{user.longitude.to_s}"
|
216
|
+
end
|
217
|
+
if current_page?(passpath)
|
218
|
+
link_to user.name, passpath, data:{role:"button",icon:"heart"}, class:"ui-disabled"
|
219
|
+
else
|
220
|
+
link_to user.name, passpath, data:{role:"button",icon:"heart"}
|
221
|
+
end
|
222
|
+
end
|
223
|
+
|
224
|
+
end
|
225
|
+
|