kit_cms 2.3.20 → 2.3.22

Sign up to get free protection for your applications and to get access to all the features.
Files changed (170) hide show
  1. data/app/assets/images/kit/toolbar/smile.png +0 -0
  2. data/app/assets/images/kit/toolbar/wink.gif +0 -0
  3. data/app/assets/images/kit/toolbar/wink.png +0 -0
  4. data/app/assets/javascripts/codemirror/editor.js +55 -17
  5. data/app/assets/javascripts/codemirror/jquery.js +0 -1
  6. data/app/assets/javascripts/codemirror/ruby.js +196 -0
  7. data/app/assets/javascripts/jquery.js +3036 -2838
  8. data/app/assets/javascripts/kit/utilities.js +655 -586
  9. data/app/assets/stylesheets/codemirror/style.css +1 -1
  10. data/app/assets/stylesheets/codemirror/theme.css +23 -3
  11. data/app/assets/stylesheets/kit/calendar.css +6 -1
  12. data/app/assets/stylesheets/kit/cms/cms.css +36 -0
  13. data/app/assets/stylesheets/kit/forums.css +5 -1
  14. data/app/assets/stylesheets/kit/kit.css +3 -1
  15. data/app/controllers/account_controller.rb +306 -0
  16. data/app/controllers/ad_controller.rb +2 -0
  17. data/app/controllers/admin/ad_units_controller.rb +1 -1
  18. data/app/controllers/admin/ad_zones_controller.rb +15 -0
  19. data/app/controllers/admin/ads_controller.rb +5 -0
  20. data/app/controllers/admin/block_controller.rb +1 -65
  21. data/app/controllers/admin/blocks_controller.rb +2 -0
  22. data/app/controllers/admin/content_controller.rb +3 -1
  23. data/app/controllers/admin/dashboard_controller.rb +28 -4
  24. data/app/controllers/admin/dj_controller.rb +45 -0
  25. data/app/controllers/admin/help_controller.rb +1 -1
  26. data/app/controllers/admin/html_asset_controller.rb +0 -12
  27. data/app/controllers/admin/q_controller.rb +120 -0
  28. data/app/controllers/admin/user_controller.rb +4 -4
  29. data/app/controllers/api_controller.rb +34 -0
  30. data/app/controllers/calendar_controller.rb +1 -1
  31. data/app/controllers/form_controller.rb +3 -3
  32. data/app/controllers/forum_controller.rb +39 -29
  33. data/app/controllers/kit_controller.rb +42 -15
  34. data/app/controllers/pages_controller.rb +25 -5
  35. data/app/controllers/q_controller.rb +235 -0
  36. data/app/controllers/repo_controller.rb +7 -0
  37. data/app/controllers/user_controller.rb +14 -10
  38. data/app/controllers/utility_controller.rb +1 -1
  39. data/app/helpers/account_helper.rb +47 -0
  40. data/app/helpers/admin/layouts_helper.rb +8 -0
  41. data/app/helpers/admin/page_templates_helper.rb +8 -0
  42. data/app/helpers/ads_helper.rb +11 -12
  43. data/app/helpers/calendar_helper.rb +6 -2
  44. data/app/helpers/form_data_helper.rb +1 -1
  45. data/app/helpers/form_helper.rb +8 -0
  46. data/app/helpers/forum_helper.rb +5 -1
  47. data/app/helpers/kit_helper.rb +65 -35
  48. data/app/helpers/kit_modules_helper.rb +4 -0
  49. data/app/helpers/user_helper.rb +0 -28
  50. data/app/jobs/page_link_job.rb +34 -0
  51. data/app/jobs/queue_job.rb +134 -0
  52. data/app/mailers/notification.rb +10 -0
  53. data/app/mailers/queue_mailer.rb +13 -0
  54. data/app/models/ad.rb +6 -6
  55. data/app/models/ad_unit.rb +1 -1
  56. data/app/models/ad_zone.rb +4 -0
  57. data/app/models/block.rb +1 -1
  58. data/app/models/delayed_job.rb +3 -0
  59. data/app/models/form.rb +16 -4
  60. data/app/models/html_asset.rb +19 -4
  61. data/app/models/html_asset_usage.rb +3 -0
  62. data/app/models/html_assetable.rb +4 -0
  63. data/app/models/layout.rb +36 -6
  64. data/app/models/newsletter.rb +1 -1
  65. data/app/models/page.rb +36 -2
  66. data/app/models/page_link.rb +5 -0
  67. data/app/models/page_template.rb +22 -2
  68. data/app/models/preference.rb +1 -1
  69. data/app/models/q_event.rb +12 -0
  70. data/app/models/q_klass.rb +5 -0
  71. data/app/models/q_message.rb +9 -0
  72. data/app/models/q_publisher.rb +35 -0
  73. data/app/models/q_subscription.rb +7 -0
  74. data/app/models/q_user.rb +29 -0
  75. data/app/models/q_users_method.rb +6 -0
  76. data/app/models/q_users_publisher.rb +6 -0
  77. data/app/models/user.rb +127 -19
  78. data/app/models/user_login.rb +4 -0
  79. data/app/validators/email_validator.rb +14 -0
  80. data/app/views/account/_edit.html.haml +40 -0
  81. data/app/views/account/_edit_intro.html.haml +3 -0
  82. data/app/views/account/_forgotten.html.haml +20 -0
  83. data/app/views/account/_forgotten_intro.html.haml +5 -0
  84. data/app/views/account/_sign_in.html.haml +31 -0
  85. data/app/views/account/_sign_in_intro.html.haml +4 -0
  86. data/app/views/account/_sign_up.html.haml +51 -0
  87. data/app/views/account/_sign_up_intro.html.haml +4 -0
  88. data/app/views/account/edit.html.haml +1 -0
  89. data/app/views/account/forgotten.html.haml +1 -0
  90. data/app/views/account/sign_in.html.haml +2 -0
  91. data/app/views/account/sign_up.html.haml +1 -0
  92. data/app/views/ad/_buy.html.haml +2 -1
  93. data/app/views/admin/ad_zones/_form.html.haml +1 -1
  94. data/app/views/admin/ad_zones/show.html.haml +2 -0
  95. data/app/views/admin/blocks/_form.html.haml +11 -1
  96. data/app/views/admin/dashboard/broken_links.html.haml +9 -0
  97. data/app/views/admin/dashboard/system.html.haml +11 -0
  98. data/app/views/admin/dj/index.html.haml +43 -0
  99. data/app/views/admin/form/_form.html.haml +15 -10
  100. data/app/views/admin/group/index.html.haml +1 -1
  101. data/app/views/admin/help/edit.html.haml +1 -1
  102. data/app/views/admin/html_asset/show.html.haml +9 -2
  103. data/app/views/admin/layouts/show.html.haml +10 -16
  104. data/app/views/admin/page_templates/_form.html.haml +9 -17
  105. data/app/views/admin/page_templates/show.html.haml +5 -4
  106. data/app/views/admin/q/events.html.haml +26 -0
  107. data/app/views/admin/q/index.html.haml +28 -0
  108. data/app/views/admin/q/klasses.html.haml +61 -0
  109. data/app/views/admin/q/messages.html.haml +37 -0
  110. data/app/views/admin/q/show.html.haml +98 -0
  111. data/app/views/admin/q/subscriptions.html.haml +26 -0
  112. data/app/views/admin/q/users.html.haml +27 -0
  113. data/app/views/admin/snippet/edit.html.erb +1 -1
  114. data/app/views/admin/snippet/new.html.erb +1 -1
  115. data/app/views/admin/stylesheet/show.html.haml +1 -1
  116. data/app/views/admin/user/index.html.erb +15 -6
  117. data/app/views/admin/user/view.html.erb +5 -4
  118. data/app/views/admin/views/_form.html.haml +3 -3
  119. data/app/views/calendar/_buy_tickets.html.haml +1 -1
  120. data/app/views/calendar/_calendar_entry.html.haml +1 -1
  121. data/app/views/calendar/_month.html.haml +7 -7
  122. data/app/views/form/_show.html.haml +1 -1
  123. data/app/views/forum/_add_post.html.haml +7 -8
  124. data/app/views/forum/_mod_thread.js.erb +46 -6
  125. data/app/views/forum/_post_moderation.html.haml +2 -1
  126. data/app/views/forum/_post_preview.html.haml +1 -9
  127. data/app/views/forum/_post_scripts.js.erb +29 -5
  128. data/app/views/forum/fetch_raw.html.haml +1 -0
  129. data/app/views/forum/moderate.html.haml +1 -0
  130. data/app/views/forum/topic_index.html.haml +4 -0
  131. data/app/views/notification/{event.txt.erb → event.text.erb} +0 -0
  132. data/app/views/notification/forgotten_password.text.erb +2 -0
  133. data/app/views/pages/content_edit.html.haml +1 -1
  134. data/app/views/pages/info.html.erb +13 -2
  135. data/app/views/pages/links.html.haml +63 -0
  136. data/app/views/user/edit_profile.html.haml +1 -1
  137. data/app/views/utility/_cm_editor.html.erb +13 -10
  138. data/app/views/utility/_cm_toolbar_markdown.html.haml +8 -1
  139. data/app/views/utility/_menu.html.haml +4 -0
  140. data/app/views/utility/mercury_html.html.haml +1 -0
  141. data/config/initializers/elastic_search.rb +6 -3
  142. data/config/initializers/extend_controller.rb +3 -0
  143. data/config/initializers/string.rb +9 -6
  144. data/config/initializers/warden.rb +49 -0
  145. data/config/locales/en.yml +29 -1
  146. data/config/routes.rb +35 -2
  147. data/lib/kit_cms.rb +7 -2
  148. data/lib/tasks/kit.rake +90 -2
  149. metadata +139 -27
  150. data/app/controllers/user/confirmations_controller.rb +0 -11
  151. data/app/controllers/user/passwords_controller.rb +0 -13
  152. data/app/controllers/user/registrations_controller.rb +0 -110
  153. data/app/controllers/user/sessions_controller.rb +0 -33
  154. data/app/controllers/user/unlocks_controller.rb +0 -13
  155. data/app/views/devise/_links.erb +0 -25
  156. data/app/views/devise/confirmations/new.html.erb +0 -12
  157. data/app/views/devise/mailer/confirmation_instructions.html.erb +0 -5
  158. data/app/views/devise/mailer/reset_password_instructions.html.erb +0 -8
  159. data/app/views/devise/mailer/unlock_instructions.html.erb +0 -7
  160. data/app/views/devise/passwords/edit.html.erb +0 -16
  161. data/app/views/devise/passwords/new.html.erb +0 -12
  162. data/app/views/devise/registrations/edit.html.erb +0 -28
  163. data/app/views/devise/registrations/new.html.erb +0 -18
  164. data/app/views/devise/sessions/new.html.erb +0 -18
  165. data/app/views/devise/shared/_links.erb +0 -25
  166. data/app/views/devise/unlocks/new.html.erb +0 -12
  167. data/app/views/pages/links.html.erb +0 -8
  168. data/app/views/user/shared/_links.erb +0 -25
  169. data/config/initializers/devise.rb +0 -196
  170. data/config/initializers/devise_extender.rb +0 -39
@@ -0,0 +1,34 @@
1
+ class ApiController < ActionController::Base
2
+ include DomainController
3
+
4
+ before_filter :set_system, :except=>[:not_found_404]
5
+ before_filter :offline, :except=>[:not_found_404, :down_for_maintenance]
6
+
7
+ after_filter :clear_session
8
+
9
+ def clear_session
10
+ session.clear
11
+ request.session_options[:skip] = true
12
+ end
13
+
14
+ def protect_against_forgery?
15
+ end
16
+
17
+ rescue_from Exception, :with => :respond_error
18
+
19
+ def respond_error(exception)
20
+ head :internal_server_error
21
+
22
+ logger.error exception.message
23
+ end
24
+
25
+ def offline
26
+ message = Preference.get_cached(_sid, "down_for_maintenance_message")
27
+ if message
28
+ head :service_unavailable, :message=>message
29
+ return false
30
+ end
31
+ end
32
+
33
+ end
34
+
@@ -19,7 +19,7 @@ class CalendarController < KitController
19
19
  item.save
20
20
 
21
21
  unless current_user.admin?
22
- Notification.moderation_required("Ticket Sales", "Ticket sales set up for #{@calendar_entry.calendar.name}. View: #{Preference.get_cached(_sid, 'host')}/admin/calendar_entries/#{@calendar_entry.id}", _sid).deliver
22
+ Notification.moderation_required("Ticket Sales", "Ticket sales set up for #{item.calendar.name}. View: #{Preference.get_cached(_sid, 'host')}/admin/calendar_entries/#{item.id}", _sid).deliver if params[:item_model]=="CalendarEntry"
23
23
  end
24
24
  redirect_to (params[:redirect] || "/") and return
25
25
  end
@@ -15,7 +15,7 @@ class FormController < KitController
15
15
  search_size = (params[:per] || "25").to_i
16
16
  the_page = (params[:page] || "1").to_i
17
17
 
18
- search = Tire.search "kit_#{app_name.downcase}_form_submissions" do
18
+ search = Tire.search "#{index_name}_form_submissions" do
19
19
  query do
20
20
  boolean do
21
21
  must do
@@ -39,7 +39,7 @@ class FormController < KitController
39
39
  @results = nil
40
40
  end
41
41
 
42
- kit_render "search", :layout=>"application"
42
+ kit_render "search", :layout=>Layout.preference(_sid, "forum-search")
43
43
  end
44
44
 
45
45
 
@@ -85,7 +85,7 @@ class FormController < KitController
85
85
 
86
86
  if @form.notify.not_blank?
87
87
  @form.notify.split(',').each do |recipient|
88
- Notification.form_submission(sub_id, _sid, recipient).deliver
88
+ Notification.form_submission(sub.id, _sid, recipient).deliver
89
89
  end
90
90
  end
91
91
 
@@ -1,8 +1,6 @@
1
1
  include ActionView::Helpers::TextHelper
2
2
 
3
3
  class ForumController < KitController
4
- append_view_path Layout.resolver
5
- layout "forums"
6
4
  before_filter :load_forum_user_options, :only => [:topic_index, :thread, :search, :add_post, :recent, :im_on, :favourites, :thread_last_unread, :index]
7
5
 
8
6
  before_filter :is_moderator
@@ -10,13 +8,13 @@ class ForumController < KitController
10
8
  before_filter :post_order, :only=>[:thread]
11
9
 
12
10
  def test
13
- kit_render "test", :layout=>get_layout('index')
11
+ kit_render "test", :layout_o=>get_layout('index')
14
12
  end
15
13
 
16
14
  def moderate
17
15
  redirect_to "/users/sign_in" and return unless @mod
18
16
  @topic_posts = TopicPost.sys(_sid).order("id desc").where(:is_visible=>1).page(params[:page]).per(25)
19
- kit_render "moderate", :layout=>get_layout('index')
17
+ kit_render "moderate", :layout_o=>get_layout('index')
20
18
  end
21
19
 
22
20
  def rate_post
@@ -60,7 +58,7 @@ class ForumController < KitController
60
58
  @threads = current_user.topic_threads.page(params[:page]).per(@user_options.threads_per_page)
61
59
  @page_title = "Forum: Favourite Threads"
62
60
  @show_watch = true
63
- kit_render "thread_list", :layout=>get_layout('im-watching', ['im-watching', 'threads'])
61
+ kit_render "thread_list", :layout_o=>get_layout('im-watching', ['im-watching', 'threads'])
64
62
  else
65
63
  redirect_to "/users/sign_in"
66
64
  end
@@ -72,7 +70,7 @@ class ForumController < KitController
72
70
  if current_user
73
71
  @page_title = "Forum: Threads I Posted To"
74
72
  @threads = TopicThread.im_on(current_user, @user_options.threads_per_page, @mod, params[:page])
75
- kit_render "thread_list", :layout=>get_layout('im-on', ['im-on', 'threads'])
73
+ kit_render "thread_list", :layout_o=>get_layout('im-on', ['im-on', 'threads'])
76
74
  else
77
75
  redirect_to "/users/sign_in"
78
76
  end
@@ -93,7 +91,7 @@ class ForumController < KitController
93
91
  @destination_last = true
94
92
 
95
93
  respond_to do |format|
96
- format.html { kit_render "thread_list", :layout=>get_layout('recent', ['recent', 'threads']) }
94
+ format.html { kit_render "thread_list", :layout_o=>get_layout('recent', ['recent', 'threads']) }
97
95
  format.rss { render "forum/thread_list.rss" }
98
96
  end
99
97
  end
@@ -120,7 +118,7 @@ class ForumController < KitController
120
118
  return
121
119
  end
122
120
 
123
- kit_render "report", :layout=>get_layout('report')
121
+ kit_render "report", :layout_o=>get_layout('report')
124
122
  end
125
123
 
126
124
  def index
@@ -129,7 +127,7 @@ class ForumController < KitController
129
127
  @categories = categories.all
130
128
  @page_title = "Forums"
131
129
  @canonical_tag = "/forums"
132
- kit_render "index", :layout=>get_layout('index')
130
+ kit_render "index", :layout_o=>get_layout('index')
133
131
  end
134
132
 
135
133
  def search
@@ -151,7 +149,7 @@ class ForumController < KitController
151
149
  log = logger
152
150
 
153
151
  [ "TopicPost", "TopicThread" ].each do |model|
154
- indexes << "kit_#{app_name.downcase}_#{model.tableize}"
152
+ indexes << "#{index_name}_#{model.tableize}"
155
153
  KitIndexed.indexed_columns(model).collect { |ic|
156
154
  search_fields << ic[:name] if ic[:user]
157
155
  }
@@ -185,7 +183,7 @@ class ForumController < KitController
185
183
  @results = nil
186
184
  end
187
185
 
188
- kit_render "search", :layout=>get_layout('search')
186
+ kit_render "search", :layout_o=>get_layout('search')
189
187
  end
190
188
 
191
189
  def topic_index
@@ -215,7 +213,7 @@ class ForumController < KitController
215
213
  @page_title = "Forums: #{@topic.name}"
216
214
  @canonical_tag = "/forums/#{@topic.url}"
217
215
  @meta_description = "Forums"
218
- kit_render "topic_index", :layout=>get_layout('threads')
216
+ kit_render "topic_index", :layout_o=>get_layout('threads')
219
217
  end
220
218
 
221
219
  def category_topic_list
@@ -292,7 +290,7 @@ class ForumController < KitController
292
290
  @page_title = "#{@thread.topic.name} - #{@thread.title}"
293
291
  @canonical_tag = @thread.link
294
292
 
295
- kit_render "thread", :layout=>get_layout('posts')
293
+ kit_render "thread", :layout_o=>get_layout('posts')
296
294
  end
297
295
 
298
296
  def preview
@@ -304,9 +302,11 @@ class ForumController < KitController
304
302
  end
305
303
 
306
304
  def add_post
307
- return unless anti_spam_okay?
308
- return unless sanity_check_okay?
309
- return unless check_post_rate?
305
+ unless current_user && current_user.admin?
306
+ return unless anti_spam_okay?
307
+ return unless sanity_check_okay?
308
+ return unless check_post_rate?
309
+ end
310
310
 
311
311
  @thread = TopicThread.where(:id=>params[:id]).first
312
312
  redirect_to "/forums" and return unless level_okay(@thread.topic.write_access_level)
@@ -325,7 +325,7 @@ class ForumController < KitController
325
325
 
326
326
  if params[:topic_post][:body] && params[:topic_post][:body].strip.length<2
327
327
  flash[:form_message] = "Your message must be at least 2 characters"
328
- kit_render "thread", :layout=>get_layout('thread')
328
+ kit_render "thread", :layout_o=>get_layout('thread')
329
329
  return
330
330
  end
331
331
 
@@ -353,7 +353,11 @@ class ForumController < KitController
353
353
  @post.update_postnumber
354
354
  end
355
355
 
356
- redirect_to @thread.link_for_post(@post.id, @user_options, @mod)
356
+ if request.xhr?
357
+ render :js=>";"
358
+ else
359
+ redirect_to @thread.link_for_post(@post.id, @user_options, @mod)
360
+ end
357
361
  end
358
362
 
359
363
  def comments
@@ -392,7 +396,7 @@ class ForumController < KitController
392
396
  @threads = nil
393
397
  @page_id = params[:page_id]
394
398
  @about_page_title = Page.find_sys_id(_sid, @page_id).title
395
- kit_render "topic_index", :layout=>get_layout('threads')
399
+ kit_render "topic_index", :layout_o=>get_layout('threads')
396
400
  end
397
401
 
398
402
  def create_thread
@@ -408,12 +412,12 @@ class ForumController < KitController
408
412
 
409
413
  if @post.raw_body.strip.length<2
410
414
  flash[:form_message] = "Your message must be at least 2 characters"
411
- kit_render "topic_index", :layout=>get_layout('threads')
415
+ kit_render "topic_index", :layout_o=>get_layout('threads')
412
416
  return
413
417
  end
414
418
  if params[:topic_post][:title].strip.length<2
415
419
  flash[:form_message] = "Title must be at least 4 characters"
416
- kit_render "topic_index", :layout=>get_layout('threads')
420
+ kit_render "topic_index", :layout_o=>get_layout('threads')
417
421
  return
418
422
  end
419
423
  @post.system_id = _sid
@@ -563,9 +567,13 @@ class ForumController < KitController
563
567
  @post = TopicPost.sys(_sid).where(:id=>params[:id]).first
564
568
 
565
569
  if can?(:moderate, self) || (@post.is_visible==1 && @post.topic_thread.is_visible==1 && @post.topic_thread.topic.is_visible==1 && level_okay(@post.topic_thread.topic.read_access_level))
566
- render :text=>@post.raw_body, :layout=>false
570
+ if params[:editor]
571
+ render "fetch_raw", :layout=>false, :locals=>{:is_mod=>params[:mod]=="1"}
572
+ else
573
+ render :text=>@post.raw_body, :layout_o=>false
574
+ end
567
575
  else
568
- render :text=>"n/a", :layout=>false
576
+ render :text=>"n/a", :layout_o=>false
569
577
  end
570
578
  end
571
579
 
@@ -642,23 +650,25 @@ class ForumController < KitController
642
650
  end
643
651
 
644
652
  def get_layout(name, names = nil)
645
- ll = Rails.cache.fetch("layout-exists-forum-#{name}", :expires_in=>5.seconds) do
653
+ ll = Rails.cache.fetch("layout-exists-forum-#{_sid}-#{name}", :expires_in=>60.seconds) do
646
654
  l = nil
647
655
  names = [name] unless names
648
656
  names.each do |aname|
649
- if Layout.name_exists?("forum-#{aname}")
657
+ if Layout.name_exists?(_sid, "forum-#{aname}")
650
658
  l = "forum-#{aname}"
651
659
  break
652
660
  end
653
661
  end
654
662
  if l==nil
655
- if Layout.name_exists?("forum")
663
+ if Layout.name_exists?(_sid, "forum")
656
664
  l = "forum"
657
- else
658
- l = "application"
659
665
  end
660
666
  end
661
- l
667
+ if l
668
+ Layout.sys(_sid).where(:name=>l).first
669
+ else
670
+ Layout.preference(_sid, "forum_layout")
671
+ end
662
672
  end
663
673
  ll
664
674
  end
@@ -5,6 +5,7 @@ class KitController < ActionController::Base
5
5
  before_filter :set_requested_url, :except=>[:not_found_404]
6
6
  before_filter :set_system, :except=>[:not_found_404]
7
7
  before_filter :offline, :except=>[:not_found_404, :down_for_maintenance]
8
+ before_filter :check_user
8
9
  before_filter :kit_session, :except=>[:not_found_404]
9
10
  after_filter :kit_session_end, :except=>[:not_found_404]
10
11
  append_view_path Layout.resolver
@@ -12,13 +13,23 @@ class KitController < ActionController::Base
12
13
  after_filter :check_and_record_goal, :except=>[:not_found_404]
13
14
 
14
15
 
15
- attr_accessor :layout_name_being_used
16
+ attr_accessor :layout_being_used
16
17
  attr_accessor :template_being_used
17
18
  attr_accessor :requested_url
18
19
 
19
20
  attr_accessor :is_image_request
20
21
  attr_accessor :kit_request
21
22
 
23
+ def check_user
24
+ return true unless self.kit_system
25
+
26
+ u = User.cookie_authenticate(_sid, cookies[:sign_in])
27
+ if u
28
+ u.record_signin(_sid, request, 'c')
29
+ warden.set_user u
30
+ end
31
+ end
32
+
22
33
  def set_requested_url
23
34
  self.is_image_request = false
24
35
  self.requested_url = request.fullpath
@@ -76,25 +87,25 @@ class KitController < ActionController::Base
76
87
 
77
88
  def stylesheets
78
89
  if @page
79
- return (@page.page_template.layout.stylesheets + "," + @page.page_template.stylesheets).split(',').uniq
90
+ return (@page.page_template.layout.stylesheets + @page.page_template.stylesheets).uniq
80
91
  elsif @form
81
- return @form.include_stylesheets
92
+ return (@form.stylesheets + @form.layout.stylesheets).uniq
82
93
  else
83
94
  layout = kit_layout_in_use
84
95
  if layout
85
- return layout.stylesheets.split(',').uniq
86
- else
87
- return ["application"]
96
+ return layout.stylesheets
88
97
  end
89
98
  end
99
+
100
+ return []
90
101
  end
91
102
 
92
103
 
93
104
  def kit_layout_in_use
94
105
  l = nil
95
106
 
96
- if self.layout_name_being_used # this gets set if kit_render is being used
97
- l = Layout.sys(_sid).where(:name=>self.layout_name_being_used).first
107
+ if self.layout_being_used # this gets set if kit_render is being used
108
+ l = self.layout_being_used
98
109
  else
99
110
  l = @page.layout if @page
100
111
  end
@@ -127,12 +138,17 @@ class KitController < ActionController::Base
127
138
  @content = render_to_string name, :layout=>false
128
139
  options[:type] = custom_template.template_type || 'erb'
129
140
  options[:inline] = custom_template.body
130
- options[:layout] = custom_template.layout.path
141
+ options[:layout] = custom_template.layout.name
131
142
  self.template_being_used = custom_template
132
- self.layout_name_being_used = custom_template.layout.name
143
+ self.layout_id_being_used = custom_template.layout_id
133
144
  super_render options
134
145
  else
135
- self.layout_name_being_used = options[:layout]
146
+ if options[:layout_o]
147
+ self.layout_being_used = options[:layout_o]
148
+ options[:layout] = self.layout_being_used.path
149
+ elsif options[:layout]
150
+ self.layout_being_used = Layout.sys(_sid).where(:path=>options[:layout]).first rescue nil
151
+ end
136
152
  super_render name, options
137
153
  end
138
154
  end
@@ -239,7 +255,8 @@ HERE
239
255
  inline_template = "<div id='page_#{page.id}' class='template_#{error_template.id}'>\n\n" + error_template.body + "\n\n</div>"
240
256
  render :inline=>inline_template, :layout=>error_template.layout.path, :type=>error_template.template_type || 'erb'
241
257
  else
242
- render "error/application", :layout=>Preference.getCached(_sid, "error_layout") || "application", :status=>status
258
+ render "error/application",
259
+ :layout=>Layout.sys(_sid).where(:id=>(Preference.getCached(_sid, "error_layout").path || Layout.sys(_sid).first.id)).first.path, :status=>status
243
260
  end
244
261
  end
245
262
 
@@ -280,12 +297,12 @@ HERE
280
297
  end
281
298
 
282
299
  def can_use
283
- authenticate_user!
300
+ authenticate!
284
301
  authorize! :use, self.class
285
302
  end
286
303
 
287
304
  def can_moderate
288
- authenticate_user!
305
+ authenticate!
289
306
  authorize! :moderate, self.class
290
307
  end
291
308
 
@@ -324,6 +341,13 @@ HERE
324
341
  Preference.get_cached(_sid, "app_name")
325
342
  end
326
343
 
344
+ def index_name
345
+ ElasticSearch::INDEX_NAME
346
+ end
347
+
348
+ def rails_app_name
349
+ Rails.application.class.to_s.split("::").first
350
+ end
327
351
 
328
352
  def show_form(form)
329
353
  @page_title = form.title
@@ -337,7 +361,7 @@ HERE
337
361
  end
338
362
  end
339
363
 
340
- render "form/show", :layout=>((form.respond_to?(:layout) && form.layout) ? form.layout : 'application')
364
+ render "form/show", :layout=>form.layout.path
341
365
  end
342
366
 
343
367
  def captcha_okay?
@@ -437,6 +461,9 @@ HERE
437
461
  @gibbon = Gibbon.new(Preference.get_cached(_sid,'mailchimp_api_key'))
438
462
  end
439
463
 
464
+ def pref(name)
465
+ Preference.get_cached(_sid, name)
466
+ end
440
467
 
441
468
  Pagebase = Page.includes([:page_contents_version0, {:page_template=>:layout}, {:block_instances0=>:block}])
442
469
 
@@ -1,8 +1,7 @@
1
1
  class PagesController < KitController
2
-
2
+
3
3
  before_filter :load_page, :except=>[:search, :cookie_text, :unique, :index, :new, :create, :stub, :zoom, :terms, :editor_trial]
4
4
  before_filter :can_use, :except=>[:show, :search, :cookie_text, :editor_trial, :save, :redir]
5
-
6
5
  layout "layouts/cms"
7
6
 
8
7
  def copy
@@ -91,6 +90,25 @@ class PagesController < KitController
91
90
  params[:mode] = 'current' unless params[:mode]
92
91
  end
93
92
 
93
+ def links
94
+ if params[:refresh]
95
+ @page.queue_crawl
96
+ redirect_to "/page/#{@page.id}/info", :notice=>"Request processed"
97
+ return
98
+ end
99
+
100
+ if params[:deep]
101
+ Page.sys(_sid).find_each do |p|
102
+ p.queue_crawl(false)
103
+ redirect_to "/page/#{@page.id}/info", :notice=>"Request processed"
104
+ return
105
+ end
106
+
107
+ @page.queue_crawl
108
+ redirect_to "/page/#{@page.id}/links"
109
+ end
110
+ end
111
+
94
112
  def search
95
113
  if params[:search]
96
114
  search_fields = []
@@ -100,7 +118,7 @@ class PagesController < KitController
100
118
  the_page = (params[:page] || "1").to_i
101
119
 
102
120
  [ "Page" ].each do |model|
103
- indexes << "kit_#{app_name.downcase}_#{model.downcase.pluralize}"
121
+ indexes << "#{index_name}_#{model.downcase.pluralize}"
104
122
  KitIndexed.indexed_columns(model).collect { |c|
105
123
  search_fields << c[:name] if c[:user]
106
124
  }
@@ -117,6 +135,7 @@ class PagesController < KitController
117
135
  size search_size
118
136
  filter :term, :system_id=>system_id
119
137
  end
138
+ logger.info "SEARCH: #{indexes.join(',')} #{search.to_json}"
120
139
  @results = search.results
121
140
  else
122
141
  @results = nil
@@ -125,7 +144,7 @@ class PagesController < KitController
125
144
  @searched_for = params[:search]
126
145
 
127
146
  @show_edit_link = user_can_edit = can?(:use, self)
128
- kit_render "pages/search", :layout=>Preference.getCached(_sid, "layout_search") || "application"
147
+ kit_render "pages/search", :layout_o=>Layout.preference(_sid, "layout_search")
129
148
  end
130
149
 
131
150
  def auto_save_delete
@@ -167,6 +186,7 @@ class PagesController < KitController
167
186
  @page.updated_at = Time.now
168
187
  @page.save
169
188
  @page.update_index
189
+ @page.queue_crawl
170
190
  end
171
191
 
172
192
  render :js=>""
@@ -271,7 +291,7 @@ class PagesController < KitController
271
291
 
272
292
  if (@page==nil || @page.is_deleted==1 || !@page.is_published?) && !@page.editable && cannot?(:use, self)
273
293
  session[:error_message] = "Page not found"
274
- render "/error/404", :status=>404, :layout=>@page ? @page.dif_template(use_mobile?).layout.path : false
294
+ render "/error/404", :status=>404, :layout_o=>@page ? @page.dif_template(use_mobile?).layout : false
275
295
  return
276
296
  end
277
297