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.
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