kit_cms 2.3.20 → 2.3.22
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/app/assets/images/kit/toolbar/smile.png +0 -0
- data/app/assets/images/kit/toolbar/wink.gif +0 -0
- data/app/assets/images/kit/toolbar/wink.png +0 -0
- data/app/assets/javascripts/codemirror/editor.js +55 -17
- data/app/assets/javascripts/codemirror/jquery.js +0 -1
- data/app/assets/javascripts/codemirror/ruby.js +196 -0
- data/app/assets/javascripts/jquery.js +3036 -2838
- data/app/assets/javascripts/kit/utilities.js +655 -586
- data/app/assets/stylesheets/codemirror/style.css +1 -1
- data/app/assets/stylesheets/codemirror/theme.css +23 -3
- data/app/assets/stylesheets/kit/calendar.css +6 -1
- data/app/assets/stylesheets/kit/cms/cms.css +36 -0
- data/app/assets/stylesheets/kit/forums.css +5 -1
- data/app/assets/stylesheets/kit/kit.css +3 -1
- data/app/controllers/account_controller.rb +306 -0
- data/app/controllers/ad_controller.rb +2 -0
- data/app/controllers/admin/ad_units_controller.rb +1 -1
- data/app/controllers/admin/ad_zones_controller.rb +15 -0
- data/app/controllers/admin/ads_controller.rb +5 -0
- data/app/controllers/admin/block_controller.rb +1 -65
- data/app/controllers/admin/blocks_controller.rb +2 -0
- data/app/controllers/admin/content_controller.rb +3 -1
- data/app/controllers/admin/dashboard_controller.rb +28 -4
- data/app/controllers/admin/dj_controller.rb +45 -0
- data/app/controllers/admin/help_controller.rb +1 -1
- data/app/controllers/admin/html_asset_controller.rb +0 -12
- data/app/controllers/admin/q_controller.rb +120 -0
- data/app/controllers/admin/user_controller.rb +4 -4
- data/app/controllers/api_controller.rb +34 -0
- data/app/controllers/calendar_controller.rb +1 -1
- data/app/controllers/form_controller.rb +3 -3
- data/app/controllers/forum_controller.rb +39 -29
- data/app/controllers/kit_controller.rb +42 -15
- data/app/controllers/pages_controller.rb +25 -5
- data/app/controllers/q_controller.rb +235 -0
- data/app/controllers/repo_controller.rb +7 -0
- data/app/controllers/user_controller.rb +14 -10
- data/app/controllers/utility_controller.rb +1 -1
- data/app/helpers/account_helper.rb +47 -0
- data/app/helpers/admin/layouts_helper.rb +8 -0
- data/app/helpers/admin/page_templates_helper.rb +8 -0
- data/app/helpers/ads_helper.rb +11 -12
- data/app/helpers/calendar_helper.rb +6 -2
- data/app/helpers/form_data_helper.rb +1 -1
- data/app/helpers/form_helper.rb +8 -0
- data/app/helpers/forum_helper.rb +5 -1
- data/app/helpers/kit_helper.rb +65 -35
- data/app/helpers/kit_modules_helper.rb +4 -0
- data/app/helpers/user_helper.rb +0 -28
- data/app/jobs/page_link_job.rb +34 -0
- data/app/jobs/queue_job.rb +134 -0
- data/app/mailers/notification.rb +10 -0
- data/app/mailers/queue_mailer.rb +13 -0
- data/app/models/ad.rb +6 -6
- data/app/models/ad_unit.rb +1 -1
- data/app/models/ad_zone.rb +4 -0
- data/app/models/block.rb +1 -1
- data/app/models/delayed_job.rb +3 -0
- data/app/models/form.rb +16 -4
- data/app/models/html_asset.rb +19 -4
- data/app/models/html_asset_usage.rb +3 -0
- data/app/models/html_assetable.rb +4 -0
- data/app/models/layout.rb +36 -6
- data/app/models/newsletter.rb +1 -1
- data/app/models/page.rb +36 -2
- data/app/models/page_link.rb +5 -0
- data/app/models/page_template.rb +22 -2
- data/app/models/preference.rb +1 -1
- data/app/models/q_event.rb +12 -0
- data/app/models/q_klass.rb +5 -0
- data/app/models/q_message.rb +9 -0
- data/app/models/q_publisher.rb +35 -0
- data/app/models/q_subscription.rb +7 -0
- data/app/models/q_user.rb +29 -0
- data/app/models/q_users_method.rb +6 -0
- data/app/models/q_users_publisher.rb +6 -0
- data/app/models/user.rb +127 -19
- data/app/models/user_login.rb +4 -0
- data/app/validators/email_validator.rb +14 -0
- data/app/views/account/_edit.html.haml +40 -0
- data/app/views/account/_edit_intro.html.haml +3 -0
- data/app/views/account/_forgotten.html.haml +20 -0
- data/app/views/account/_forgotten_intro.html.haml +5 -0
- data/app/views/account/_sign_in.html.haml +31 -0
- data/app/views/account/_sign_in_intro.html.haml +4 -0
- data/app/views/account/_sign_up.html.haml +51 -0
- data/app/views/account/_sign_up_intro.html.haml +4 -0
- data/app/views/account/edit.html.haml +1 -0
- data/app/views/account/forgotten.html.haml +1 -0
- data/app/views/account/sign_in.html.haml +2 -0
- data/app/views/account/sign_up.html.haml +1 -0
- data/app/views/ad/_buy.html.haml +2 -1
- data/app/views/admin/ad_zones/_form.html.haml +1 -1
- data/app/views/admin/ad_zones/show.html.haml +2 -0
- data/app/views/admin/blocks/_form.html.haml +11 -1
- data/app/views/admin/dashboard/broken_links.html.haml +9 -0
- data/app/views/admin/dashboard/system.html.haml +11 -0
- data/app/views/admin/dj/index.html.haml +43 -0
- data/app/views/admin/form/_form.html.haml +15 -10
- data/app/views/admin/group/index.html.haml +1 -1
- data/app/views/admin/help/edit.html.haml +1 -1
- data/app/views/admin/html_asset/show.html.haml +9 -2
- data/app/views/admin/layouts/show.html.haml +10 -16
- data/app/views/admin/page_templates/_form.html.haml +9 -17
- data/app/views/admin/page_templates/show.html.haml +5 -4
- data/app/views/admin/q/events.html.haml +26 -0
- data/app/views/admin/q/index.html.haml +28 -0
- data/app/views/admin/q/klasses.html.haml +61 -0
- data/app/views/admin/q/messages.html.haml +37 -0
- data/app/views/admin/q/show.html.haml +98 -0
- data/app/views/admin/q/subscriptions.html.haml +26 -0
- data/app/views/admin/q/users.html.haml +27 -0
- data/app/views/admin/snippet/edit.html.erb +1 -1
- data/app/views/admin/snippet/new.html.erb +1 -1
- data/app/views/admin/stylesheet/show.html.haml +1 -1
- data/app/views/admin/user/index.html.erb +15 -6
- data/app/views/admin/user/view.html.erb +5 -4
- data/app/views/admin/views/_form.html.haml +3 -3
- data/app/views/calendar/_buy_tickets.html.haml +1 -1
- data/app/views/calendar/_calendar_entry.html.haml +1 -1
- data/app/views/calendar/_month.html.haml +7 -7
- data/app/views/form/_show.html.haml +1 -1
- data/app/views/forum/_add_post.html.haml +7 -8
- data/app/views/forum/_mod_thread.js.erb +46 -6
- data/app/views/forum/_post_moderation.html.haml +2 -1
- data/app/views/forum/_post_preview.html.haml +1 -9
- data/app/views/forum/_post_scripts.js.erb +29 -5
- data/app/views/forum/fetch_raw.html.haml +1 -0
- data/app/views/forum/moderate.html.haml +1 -0
- data/app/views/forum/topic_index.html.haml +4 -0
- data/app/views/notification/{event.txt.erb → event.text.erb} +0 -0
- data/app/views/notification/forgotten_password.text.erb +2 -0
- data/app/views/pages/content_edit.html.haml +1 -1
- data/app/views/pages/info.html.erb +13 -2
- data/app/views/pages/links.html.haml +63 -0
- data/app/views/user/edit_profile.html.haml +1 -1
- data/app/views/utility/_cm_editor.html.erb +13 -10
- data/app/views/utility/_cm_toolbar_markdown.html.haml +8 -1
- data/app/views/utility/_menu.html.haml +4 -0
- data/app/views/utility/mercury_html.html.haml +1 -0
- data/config/initializers/elastic_search.rb +6 -3
- data/config/initializers/extend_controller.rb +3 -0
- data/config/initializers/string.rb +9 -6
- data/config/initializers/warden.rb +49 -0
- data/config/locales/en.yml +29 -1
- data/config/routes.rb +35 -2
- data/lib/kit_cms.rb +7 -2
- data/lib/tasks/kit.rake +90 -2
- metadata +139 -27
- data/app/controllers/user/confirmations_controller.rb +0 -11
- data/app/controllers/user/passwords_controller.rb +0 -13
- data/app/controllers/user/registrations_controller.rb +0 -110
- data/app/controllers/user/sessions_controller.rb +0 -33
- data/app/controllers/user/unlocks_controller.rb +0 -13
- data/app/views/devise/_links.erb +0 -25
- data/app/views/devise/confirmations/new.html.erb +0 -12
- data/app/views/devise/mailer/confirmation_instructions.html.erb +0 -5
- data/app/views/devise/mailer/reset_password_instructions.html.erb +0 -8
- data/app/views/devise/mailer/unlock_instructions.html.erb +0 -7
- data/app/views/devise/passwords/edit.html.erb +0 -16
- data/app/views/devise/passwords/new.html.erb +0 -12
- data/app/views/devise/registrations/edit.html.erb +0 -28
- data/app/views/devise/registrations/new.html.erb +0 -18
- data/app/views/devise/sessions/new.html.erb +0 -18
- data/app/views/devise/shared/_links.erb +0 -25
- data/app/views/devise/unlocks/new.html.erb +0 -12
- data/app/views/pages/links.html.erb +0 -8
- data/app/views/user/shared/_links.erb +0 -25
- data/config/initializers/devise.rb +0 -196
- data/config/initializers/devise_extender.rb +0 -39
@@ -0,0 +1,235 @@
|
|
1
|
+
class QController < ApiController
|
2
|
+
before_filter :publisher_authenticate, :except=>[:token, :extauth, :auth, :messages, :subscribe, :unsubscribe]
|
3
|
+
before_filter :user_authenticate, :only=>[:messages, :subscribe, :unsubscribe]
|
4
|
+
|
5
|
+
# notification messages
|
6
|
+
# params: auth_id, user_id, session_token
|
7
|
+
# optional: after (date/time)
|
8
|
+
# status
|
9
|
+
# page (paginated results)
|
10
|
+
# per (number per page, default 10)
|
11
|
+
# limit (default 100)
|
12
|
+
# min_id (IDs must be greater than this)
|
13
|
+
def messages
|
14
|
+
s = @quser.q_messages.sys(_sid).includes(:q_publisher).order("id desc")
|
15
|
+
s = s.where(["created_at > ?", params[:after]]) if params[:after]
|
16
|
+
s = s.where(["status = ?", params[:status]]) if params[:status]
|
17
|
+
s = s.where(["id > ?", params[:min_id]]) if params[:min_id]
|
18
|
+
s = s.limit(params[:limit] || 100)
|
19
|
+
s = s.page(params[:page]).per(params[:per] || 10) if params[:page]
|
20
|
+
|
21
|
+
r = []
|
22
|
+
s.all.each do |ss|
|
23
|
+
r << { :id=>ss.id, :status=>ss.status, :h1=>ss.h1, :h2=>ss.h2, :body=>ss.body, :publisher=>ss.q_publisher.name, :created_at=>ss.created_at }
|
24
|
+
unless params[:nomark]
|
25
|
+
ss.status = "OK"
|
26
|
+
ss.save
|
27
|
+
end
|
28
|
+
end
|
29
|
+
logger.debug r.to_json
|
30
|
+
render :json=>r, :callback=>params[:callback]
|
31
|
+
end
|
32
|
+
|
33
|
+
# call client's authentication URL with whatever params are passed to this method
|
34
|
+
# returns: if auth URL returns status code 200, return the same as "register" would return
|
35
|
+
# else, return whatever the auth URL returned
|
36
|
+
def extauth
|
37
|
+
head :error
|
38
|
+
end
|
39
|
+
|
40
|
+
# authenticate an already-registered user, and potentially set their notification method
|
41
|
+
# params: auth_id
|
42
|
+
# user: id
|
43
|
+
# password: unencrypted
|
44
|
+
def auth
|
45
|
+
@publisher = QPublisher.sys(_sid).where(:auth_id=>params[:auth_id]).first
|
46
|
+
|
47
|
+
quser = @publisher.q_users.sys(_sid).where(:id=>params[:user_id]).first
|
48
|
+
|
49
|
+
if quser && quser.password == params[:password]
|
50
|
+
update_notification(quser)
|
51
|
+
quser.generate_session_token
|
52
|
+
quser.save
|
53
|
+
render :json=>{:error=>nil, :session=>quser.session_token}, :callback=>params[:callback]
|
54
|
+
else
|
55
|
+
render :json=>{:error=>"Incorrect username or password"}, :callback=>params[:callback]
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
# send system_id and password to get a token which can be use for token authentication (if publisher auth method is token) or encrypting requests (if publisher auth method is digest)
|
60
|
+
# params: auth_id, auth_secret
|
61
|
+
# returns: token
|
62
|
+
def token
|
63
|
+
publisher = QPublisher.sys(_sid).where(:auth_id=>params[:auth_id]).first
|
64
|
+
|
65
|
+
if publisher && publisher.auth_secret == params[:auth_secret]
|
66
|
+
render :json=>{:auth_id=>publisher.auth_id, :token=>publisher.token}
|
67
|
+
else
|
68
|
+
head :forbidden
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
72
|
+
# associate a user ID with a notification method/address
|
73
|
+
# params: user (the external ID by which the user is known)
|
74
|
+
# auth_id (the publisher auth ID)
|
75
|
+
# method (the notification method)
|
76
|
+
# address (the address at which they can be notified)
|
77
|
+
# encrypted_password (optional, to allow direct authentication, should already be bcrypted)
|
78
|
+
# password (optional, to allow direct authentication, will be bcrypted)
|
79
|
+
def register
|
80
|
+
quser = @publisher.q_users.sys(_sid).where(:q_external_id=>params[:user]).first
|
81
|
+
|
82
|
+
if quser
|
83
|
+
if quser.password != params[:password]
|
84
|
+
head :forbidden
|
85
|
+
return
|
86
|
+
else
|
87
|
+
quser.password = params[:new_password] if params[:new_password]
|
88
|
+
end
|
89
|
+
else
|
90
|
+
quser = QUser.new
|
91
|
+
quser.system_id = _sid
|
92
|
+
quser.q_publisher = @publisher.id
|
93
|
+
quser.q_external_id = params[:user]
|
94
|
+
quser.encrypted_password = params[:encrypted_password] if params[:encrypted_password]
|
95
|
+
end
|
96
|
+
|
97
|
+
update_notification(quser)
|
98
|
+
quser.save
|
99
|
+
unless quser.q_external_id
|
100
|
+
quser.q_external_id = quser.id
|
101
|
+
quser.save
|
102
|
+
end
|
103
|
+
render :json=>{:id=>quser.q_external_id}, :callback=>params[:callback]
|
104
|
+
end
|
105
|
+
|
106
|
+
|
107
|
+
# deregistered a User ID with a notification method/address - i.e. destroy the user account
|
108
|
+
# params: user (the external ID by which the user is known)
|
109
|
+
def deregister
|
110
|
+
quser = @publisher.q_users.sys(_sid).where(:q_external_id=>params[:user]).first
|
111
|
+
|
112
|
+
quser.destroy
|
113
|
+
head :ok
|
114
|
+
end
|
115
|
+
|
116
|
+
# subscribe to a topic (i.e. receive a notification when that topic happens)
|
117
|
+
# params: user (the external ID by which the user is known)
|
118
|
+
# topic (the topic to which is being subscribed)
|
119
|
+
def subscribe
|
120
|
+
quser = @publisher.q_users.sys(_sid).where(:q_external_id=>params[:user]).first
|
121
|
+
|
122
|
+
unless quser
|
123
|
+
head :bad_request
|
124
|
+
return
|
125
|
+
end
|
126
|
+
|
127
|
+
qs = QSubscription.sys(_sid).where(:q_publisher_id=>@publisher.id).where(:q_user_id=>quser.id).where(:topic=>params[:topic]).first
|
128
|
+
unless qs
|
129
|
+
qs = QSubscription.new
|
130
|
+
qs.system_id = _sid
|
131
|
+
qs.q_publisher = @publisher
|
132
|
+
qs.q_user = quser
|
133
|
+
qs.topic = params[:topic]
|
134
|
+
qs.save
|
135
|
+
end
|
136
|
+
|
137
|
+
render :json=>{:subscription=>qs.id}
|
138
|
+
end
|
139
|
+
|
140
|
+
# unsubscribe from topic (i.e. stop receiving notifications when a topic happens)
|
141
|
+
# params: user (the external ID by which the user is known)
|
142
|
+
# topic (the topic to which is being unsubscribed)
|
143
|
+
def unsubscribe
|
144
|
+
quser = @publisher.q_users.sys(_sid).where(:q_external_id=>params[:user]).first
|
145
|
+
|
146
|
+
unless quser
|
147
|
+
head :bad_request
|
148
|
+
return
|
149
|
+
end
|
150
|
+
|
151
|
+
qs = QSubscription.sys(_sid).where(:q_publisher_id=>@publisher.id).where(:q_user_id=>quser.id).where(:topic=>params[:topic]).first
|
152
|
+
|
153
|
+
qs.destroy
|
154
|
+
|
155
|
+
head :ok
|
156
|
+
end
|
157
|
+
|
158
|
+
def event
|
159
|
+
event = QEvent.create(:system_id=>_sid, :q_publisher_id=>@publisher.id,
|
160
|
+
:topic=>params[:topic], :data=>params[:data],
|
161
|
+
:klass=>params[:class])
|
162
|
+
|
163
|
+
render :json=>{:event=>event.id}
|
164
|
+
end
|
165
|
+
|
166
|
+
private
|
167
|
+
|
168
|
+
def user_authenticate
|
169
|
+
if params[:auth_id] && params[:user_id]
|
170
|
+
@publisher = QPublisher.sys(_sid).where(:auth_id=>params[:auth_id]).first
|
171
|
+
@quser = @publisher.q_users.sys(_sid).where(:id=>params[:user_id]).first if @publisher
|
172
|
+
end
|
173
|
+
|
174
|
+
unless @publisher && @quser
|
175
|
+
head :forbidden
|
176
|
+
return
|
177
|
+
end
|
178
|
+
|
179
|
+
return true if @quser.session_token && @quser.session_token == params[:session_token]
|
180
|
+
return publisher_authenticate
|
181
|
+
end
|
182
|
+
|
183
|
+
def publisher_authenticate
|
184
|
+
@publisher ||= QPublisher.sys(_sid).where(:auth_id=>params[:auth_id]).first
|
185
|
+
|
186
|
+
auth = false
|
187
|
+
|
188
|
+
if @publisher.auth_method=='token'
|
189
|
+
auth = authenticate_token
|
190
|
+
elsif @publisher.auth_method=='digest'
|
191
|
+
auth = authenticate_digest
|
192
|
+
end
|
193
|
+
|
194
|
+
if auth
|
195
|
+
return true
|
196
|
+
else
|
197
|
+
head :forbidden
|
198
|
+
return false
|
199
|
+
end
|
200
|
+
end
|
201
|
+
|
202
|
+
# encrypt, using the token, the digest_secret, the user ID (or '0'), the topic (or '0')
|
203
|
+
def authenticate_digest
|
204
|
+
return false unless params[:digest]
|
205
|
+
aes = FastAES.new(@publisher.token)
|
206
|
+
data = aes.decrypt(params[:digest]).split('-')
|
207
|
+
# logger.debug "*** #{data[0]} #{data[1]} #{data[2]}"
|
208
|
+
return false unless data[0] == @publisher.digest_secret
|
209
|
+
return false unless data[1] == params[:user] unless data[1]=='0'
|
210
|
+
return false unless data[2] == params[:topic] unless data[2]=='0'
|
211
|
+
return true
|
212
|
+
end
|
213
|
+
|
214
|
+
def authenticate_token
|
215
|
+
if @publisher.token == params[:token]
|
216
|
+
return true
|
217
|
+
else
|
218
|
+
return false
|
219
|
+
end
|
220
|
+
end
|
221
|
+
|
222
|
+
def update_notification(quser)
|
223
|
+
quser.notification_method = params[:method] if params[:method]
|
224
|
+
if params[:method]=='twitter'
|
225
|
+
quser.twitter_handle = params[:address]
|
226
|
+
elsif params[:method]=='email'
|
227
|
+
quser.email = params[:address]
|
228
|
+
elsif params[:method]=='ios'
|
229
|
+
quser.ios_device_token = params[:address]
|
230
|
+
end
|
231
|
+
|
232
|
+
return quser
|
233
|
+
end
|
234
|
+
end
|
235
|
+
|
@@ -1,15 +1,12 @@
|
|
1
1
|
class UserController < KitController
|
2
2
|
|
3
|
-
|
4
|
-
append_view_path Layout.resolver
|
5
|
-
|
6
|
-
before_filter :authenticate_user!
|
3
|
+
before_filter :authenticate
|
7
4
|
|
8
5
|
def preferences
|
9
6
|
@page_title = 'Preferences'
|
10
7
|
@user = current_user
|
11
8
|
|
12
|
-
|
9
|
+
render "preferences", :layout=>profile_layout
|
13
10
|
end
|
14
11
|
|
15
12
|
def profile
|
@@ -28,9 +25,11 @@ class UserController < KitController
|
|
28
25
|
def edit_profile
|
29
26
|
form = Preference.get_cached(_sid, 'user_profile_edit_form')
|
30
27
|
if form.not_blank?
|
31
|
-
render :inline=>form, :layout=>Preference.get_cached!(0,"user_profile_layout", "application") #TODO sub in auth token
|
28
|
+
render :inline=>form, :layout=>profile_layout # Preference.get_cached!(0,"user_profile_layout", "application") #TODO sub in auth token
|
32
29
|
return
|
33
30
|
end
|
31
|
+
|
32
|
+
render "edit_profile", :layout=>profile_layout
|
34
33
|
end
|
35
34
|
|
36
35
|
def attribute
|
@@ -135,7 +134,7 @@ class UserController < KitController
|
|
135
134
|
end
|
136
135
|
end
|
137
136
|
|
138
|
-
kit_render "preferences", :layout=>
|
137
|
+
kit_render "preferences", :layout=>profile_layout
|
139
138
|
end
|
140
139
|
|
141
140
|
private
|
@@ -144,11 +143,16 @@ class UserController < KitController
|
|
144
143
|
render :text=>"User not found" and return unless @user
|
145
144
|
|
146
145
|
form = Preference.get_cached(_sid, "user_profile_#{owner ? 'owner' : 'view'}_form")
|
146
|
+
|
147
147
|
if form.not_blank?
|
148
|
-
render :inline=>form, :layout=>
|
148
|
+
render :inline=>form, :layout=>profile_layout
|
149
149
|
else
|
150
|
-
render "user_profile"
|
150
|
+
render "user_profile", :layout=>profile_layout
|
151
151
|
end
|
152
152
|
end
|
153
|
-
|
153
|
+
|
154
|
+
def profile_layout
|
155
|
+
Layout.preference(_sid, 'user_profile_layout').path
|
156
|
+
end
|
157
|
+
|
154
158
|
end
|
@@ -0,0 +1,47 @@
|
|
1
|
+
module AccountHelper
|
2
|
+
include KitHelper
|
3
|
+
|
4
|
+
def users_have_profiles?
|
5
|
+
UserAttribute.sys(_sid).where(:owner_editable=>1).count>0
|
6
|
+
end
|
7
|
+
|
8
|
+
def account_forgotten(options = {})
|
9
|
+
render :partial=>"account/forgotten", :locals=>{:options=>options}
|
10
|
+
end
|
11
|
+
|
12
|
+
def account_sign_in_form(options = {})
|
13
|
+
render :partial=>"account/sign_in", :locals=>{:options=>options}
|
14
|
+
end
|
15
|
+
|
16
|
+
def account_sign_up_form(options = {})
|
17
|
+
render :partial=>"account/sign_up", :locals=>{:options=>options}
|
18
|
+
end
|
19
|
+
|
20
|
+
def account_edit_form(options = {})
|
21
|
+
render :partial=>"account/edit", :locals=>{:options=>options}
|
22
|
+
end
|
23
|
+
|
24
|
+
def sign_up_url
|
25
|
+
sys_pref("account_sign_up_url") || "/users/sign_up"
|
26
|
+
end
|
27
|
+
|
28
|
+
def sign_in_url
|
29
|
+
sys_pref("account_sign_in_url") || "/users/sign_in"
|
30
|
+
end
|
31
|
+
|
32
|
+
def sign_out_url
|
33
|
+
sys_pref("account_sign_out_url") || "/users/sign_out"
|
34
|
+
end
|
35
|
+
|
36
|
+
def forgotten_url
|
37
|
+
sys_pref("account_forgotten_url") || "/users/forgotten"
|
38
|
+
end
|
39
|
+
|
40
|
+
def reset_url
|
41
|
+
sys_pref("account_reset_url") || "/users/reset"
|
42
|
+
end
|
43
|
+
|
44
|
+
def account_reset_failed(options = {})
|
45
|
+
render :partial=>"account/account_reset_failed", :locals=>{:options=>options}
|
46
|
+
end
|
47
|
+
end
|
@@ -1,5 +1,13 @@
|
|
1
1
|
module Admin::PageTemplatesHelper
|
2
2
|
|
3
|
+
def page_template_asset_selected(asset)
|
4
|
+
if @page_template && @page_template.id!=nil
|
5
|
+
@page_template.html_assets.include?(asset)
|
6
|
+
else
|
7
|
+
false
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
3
11
|
def show_html_assets(list, type)
|
4
12
|
return '' unless list
|
5
13
|
o = ''
|
data/app/helpers/ads_helper.rb
CHANGED
@@ -28,6 +28,7 @@ module AdsHelper
|
|
28
28
|
end
|
29
29
|
|
30
30
|
def kit_ad_by_unit(unit_id, options = {})
|
31
|
+
return "[[ads may appear here]]" if params[:edit]
|
31
32
|
begin
|
32
33
|
possible_zones = []
|
33
34
|
highest_priority = nil
|
@@ -43,7 +44,7 @@ module AdsHelper
|
|
43
44
|
if possible_zones.length>0
|
44
45
|
return kit_ad_by_zone(possible_zones, options)
|
45
46
|
else
|
46
|
-
return
|
47
|
+
return nil
|
47
48
|
end
|
48
49
|
rescue Exception => e
|
49
50
|
logger.error e.message
|
@@ -68,17 +69,15 @@ module AdsHelper
|
|
68
69
|
end
|
69
70
|
|
70
71
|
def kit_ad(id, options = {})
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
72
|
+
begin
|
73
|
+
ad = Ad.sys(_sid).where(:id=>id).includes(:ad_zones).first
|
74
|
+
|
75
|
+
ad = Ad.ensure_ad(ad)
|
76
|
+
ad.impress
|
77
|
+
ad.render
|
78
|
+
rescue Exception => e
|
79
|
+
e.message
|
80
|
+
end
|
82
81
|
end
|
83
82
|
|
84
83
|
def zone_with_price(zone)
|
@@ -129,6 +129,7 @@ module CalendarHelper
|
|
129
129
|
entries = {}
|
130
130
|
days_in_this_month = days_in_month(month)
|
131
131
|
|
132
|
+
logger.debug "**** days in month #{month} #{days_in_this_month}"
|
132
133
|
for i in 1..days_in_this_month do
|
133
134
|
entries[i] = []
|
134
135
|
end
|
@@ -160,8 +161,11 @@ module CalendarHelper
|
|
160
161
|
end
|
161
162
|
end
|
162
163
|
|
163
|
-
|
164
|
-
|
164
|
+
COMMON_YEAR_DAYS_IN_MONTH = [nil, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
|
165
|
+
|
166
|
+
def days_in_month(month, year = Time.now.year)
|
167
|
+
return 29 if month == 2 && Date.gregorian_leap?(year)
|
168
|
+
COMMON_YEAR_DAYS_IN_MONTH[month]
|
165
169
|
end
|
166
170
|
|
167
171
|
def regions_list
|