makena 0.0.5
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
+
|