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
@@ -55,7 +55,7 @@
55
55
  = f.label :priority
56
56
  = f.text_field :priority
57
57
  .field_help
58
- Optional, unless using URL Pattern, then mandatory. If this zone uses a URL pattern and other zones also have patterns that match the current URL, the zone with the highest priority figure will be used
58
+ Optional, unless using URL Pattern, then mandatory. If this zone uses a URL pattern and other zones also have patterns that match the current URL, the zone with the greatest priority figure will be used (e.g. a priority of 9 won't be shown if a priority of 10 exists)
59
59
 
60
60
 
61
61
  %li
@@ -41,6 +41,8 @@
41
41
  %p
42
42
  = icon_to "Edit", edit_admin_ad_zone_path(@ad_zone)
43
43
  = link_to "Destroy", [:admin, @ad_zone], :confirm => 'Are you sure?', :method => :delete, :class=>"action"
44
+
45
+ = link_to "Create Block For This Ad Zone", "/admin/ad_zone/#{@ad_zone.id}/create_block", :class=>"action", :method=>:post
44
46
 
45
47
  %p
46
48
  = icon_to "Ad Zones", admin_ad_zones_path
@@ -24,7 +24,17 @@
24
24
  %a(name='editor')
25
25
  %p
26
26
  = f.label :body
27
- = cm_editor('xml', :block, :body, f)
27
+ = cm_editor('block[body]', {:mode=>'xml'})
28
+
29
+ - if Preference.get_cached(_sid, "cms_server")=='true'
30
+ %p
31
+ = f.label "Share in CMS Repo"
32
+ = f.check_box :repo
33
+
34
+ %p
35
+ = f.label "Repo Tags"
36
+ = f.text_field :repo_tags
37
+
28
38
  %p
29
39
  = kit_submit "Save"
30
40
  = kit_submit "Save And Edit Again"
@@ -0,0 +1,9 @@
1
+ - content_for :main do
2
+
3
+ %h1 Broken Links
4
+
5
+ %ul
6
+ - @broken.each do |broken|
7
+ %li
8
+ = broken
9
+
@@ -63,4 +63,15 @@
63
63
  = best_in_place pref, :value, :path=>"/admin/system/#{pref.name}"
64
64
  %td(nowrap)= pref.updated_at.to_formatted_s(:short)
65
65
 
66
+ - if is_admin?
67
+ %h4 New Preference Setting
68
+ = form_for @preference, :url=>"/admin/system" do |f|
69
+ %p
70
+ %label Name
71
+ = f.text_field :name
72
+ %p
73
+ %label Value
74
+ = f.text_field :value
75
+ %p
76
+ = f.submit "Create"
66
77
 
@@ -0,0 +1,43 @@
1
+ - content_for :main do
2
+
3
+ %h1 Delayed Jobs Queue
4
+
5
+ %h3
6
+ Status:
7
+ = @running ? "Running [ #{@pid} ]" : "NOT Running"
8
+
9
+ - if @running
10
+ = icon_to "Stop Process", "/admin/dj?process=stop", false, :method=>:post
11
+ = icon_to "Restart Process", "/admin/dj?process=restart", false, :method=>:post
12
+ - else
13
+ = icon_to "Start Process", "/admin/dj?process=start", false,:method=>:post
14
+
15
+ %table.loosen
16
+ %tr
17
+ %th ID
18
+ %th Created
19
+ %th Priority
20
+ %th Attempts
21
+ %th
22
+ Run At
23
+ %br
24
+ Click to run now
25
+ %th(nowrap) Failed At
26
+ %th Queue
27
+ - @delayed_jobs.each do |job|
28
+ %tr
29
+ %td
30
+ = job.id
31
+ = link_to "Delete", "/admin/dj?delete=#{job.id}", :method=>:post
32
+ %td= job.created_at
33
+ %td= job.priority
34
+ %td= job.attempts
35
+ %td= link_to job.run_at, "/admin/dj?id=#{job.id}", :method=>:post
36
+ %td= job.failed_at
37
+ %td= job.queue
38
+ %tr
39
+ %td(colspan='7')= truncate(job.handler, :length=>800)
40
+ - if job.last_error
41
+ %tr
42
+ %td(colspan='7')= truncate(job.last_error, :length=>800)
43
+
@@ -52,19 +52,24 @@
52
52
  .field_help
53
53
  Include new and updated entries in system activity log
54
54
 
55
- - if @form.respond_to?(:layout)
56
- %li.advanced
57
- = f.label "Layout"
58
- = f.select :layout, options_from_collection_for_select(Layout.sys(_sid).order(:name).all, 'name', 'name')
55
+ %li.advanced
56
+ = f.label "Layout"
57
+ = f.select :layout_id, options_from_collection_for_select(Layout.sys(_sid).order(:name).all, 'id', 'name', @form.layout_id)
59
58
 
60
- .field_help
61
- The layout to use for this form when rendering it as a page.
59
+ .field_help
60
+ The layout to use for this form when rendering it as a page.
62
61
 
63
62
  %li.advanced
64
- = f.label "Stylesheets"
65
- = f.text_field :stylesheets
66
- .field_help
67
- Optional. A comma separated list of stylesheets to include when showing this form. 'Application' is included by default if none are specified. This is not included if the form is rendered as a block.
63
+ %label CSS
64
+ - HtmlAsset.sys(_sid).order(:name).where(:file_type=>"css").each do |ha|
65
+ = ha.name
66
+ = check_box_tag "form[html_asset_ids][]", ha.id, form_asset_selected(ha)
67
+ %li.advanced
68
+ %label Javascript
69
+ - HtmlAsset.sys(_sid).order(:name).where(:file_type=>"js").each do |ha|
70
+ = ha.name
71
+ = check_box_tag "form[html_asset_ids][]", ha.id, form_asset_selected(ha)
72
+
68
73
 
69
74
  %li.advanced
70
75
  = f.label "Class"
@@ -8,7 +8,7 @@
8
8
  = f.submit "Save"
9
9
 
10
10
  %ul
11
- - Group.order(:name).all.each do |group|
11
+ - @groups.each do |group|
12
12
  %li(class='clearfix' style="margin-top: 5px;")
13
13
  = link_to group.name, "/admin/user?grp_id=#{group.id}", :style=>"margin-right: 20px;"
14
14
  = link_to "Delete", "/admin/group/#{group.id}", :method=>:delete, :class=>"action"
@@ -11,7 +11,7 @@
11
11
  = f.text_field :path
12
12
 
13
13
  %label Content
14
- = cm_editor('html', :help, :body, f)
14
+ = cm_editor("help[body]", {:mode=>'html'})
15
15
  %br
16
16
  = kit_submit "Save"
17
17
  or
@@ -16,7 +16,14 @@
16
16
 
17
17
  %li
18
18
  %label Used By:
19
- = (Layout.sys(_sid).where("(stylesheets='' and '#{@html_asset.name}'='application' and '#{@html_asset.file_type}'='css') or stylesheets like '%#{@html_asset.name}%' or javascripts like '%#{@html_asset.name}%'")+ PageTemplate.sys(_sid).where("(stylesheets='' and '#{@html_asset.name}'='application' ) or stylesheets like '%#{@html_asset.name}%' or javascripts like '%#{@html_asset.name}%'")).collect { |i| link_to "'#{i.name}' #{i.class.name.titleize}", "/admin/#{i.class.name.tableize}/#{i.id}" }.join(', ').html_safe
19
+ Layouts:
20
+ = @html_asset.layouts.pluck(:name).join(', ')
21
+ %br
22
+ Page Templates:
23
+ = @html_asset.page_templates.pluck(:name).join(', ')
24
+ %br
25
+ Forms:
26
+ = @html_asset.forms.pluck(:title).join(', ')
20
27
  %li
21
28
  %label Last Updated By:
22
29
  = @html_asset.user.email rescue ''
@@ -31,7 +38,7 @@
31
38
  = flash[:notice]
32
39
 
33
40
  %a(name='editor')
34
- = cm_editor(@html_asset.file_type, :html_asset, :body, f, "html_asset_body")
41
+ = cm_editor("html_asset[body]", {:mode=>@html_asset.file_type, :show_toolbar=>false})
35
42
 
36
43
  %p
37
44
  = render :partial=>"utility/design_history", :locals=>{:object=>@html_asset}
@@ -23,24 +23,18 @@
23
23
  %label Updated:
24
24
  = @layout.updated_at
25
25
  %li
26
- %label Stylesheets
27
- = f.text_field :stylesheets
28
- %br
29
- Existing stylesheets:
30
- = HtmlAsset.where(:file_type=>"css").sys(_sid).order(:name).all.collect {|s| s.name}.join(", ")
31
- .dehighlight
32
- Comma separated list of stylesheets to include. If left blank it will default to the standard 'application'.
33
- %li
34
- %label Javascripts
35
- = f.text_field :javascripts
36
- %br
37
- Existing javascripts:
38
- = HtmlAsset.where(:file_type=>"js").sys(_sid).order(:name).all.collect {|s| s.name}.join(", ")
39
- .dehighlight
40
- Comma separated list of javascripts to include. If left blank it will default to none.
26
+ %label CSS
27
+ - HtmlAsset.sys(_sid).order(:name).where(:file_type=>"css").each do |ha|
28
+ = ha.name
29
+ = check_box_tag "layout[html_asset_ids][]", ha.id, layout_asset_selected(ha)
30
+ %li
31
+ %label Javascript
32
+ - HtmlAsset.sys(_sid).order(:name).where(:file_type=>"js").each do |ha|
33
+ = ha.name
34
+ = check_box_tag "layout[html_asset_ids][]", ha.id, layout_asset_selected(ha)
41
35
  %li
42
36
  %label Body
43
- = cm_editor('html', :layout, :body, f)
37
+ = cm_editor('layout[body]', {:mode=>'html'})
44
38
 
45
39
  %li(style="margin-top: 10px;")
46
40
  = render :partial=>"utility/design_history", :locals=>{:object=>@layout}
@@ -43,27 +43,19 @@
43
43
  If this template has an equivalent version for mobile devices, select it here. As such, practically this is mutually exclusive with the "For mobile devices" option above.
44
44
  %p
45
45
  = f.label :body
46
- = cm_editor('xml', :page_template, :body, f)
46
+ = cm_editor('page_template[body]', {:mode=>'xml'})
47
47
  .field_help
48
48
  The content of the template.
49
49
  %p
50
- = f.label :stylesheets
51
- = f.text_field :stylesheets
52
- %br
53
- Existing stylesheets:
54
- = HtmlAsset.sys(_sid).order(:name).where(:file_type=>"css").all.collect {|s| s.name}.join(", ")
55
- .field_help
56
- Comma separated list of stylesheets to include. If left blank it will default to the standard 'application'. Do not use a file extension.
57
-
50
+ %label CSS
51
+ - HtmlAsset.sys(_sid).order(:name).where(:file_type=>"css").each do |ha|
52
+ = ha.name
53
+ = check_box_tag "page_template[html_asset_ids][]", ha.id, page_template_asset_selected(ha)
58
54
  %p
59
- = f.label :javascripts
60
- = f.text_field :javascripts
61
- %br
62
- Existing javascripts:
63
- = HtmlAsset.sys(_sid).order(:name).where(:file_type=>"js").all.collect {|s| s.name}.join(", ")
64
- .field_help
65
- Comma separated list of javascripts to include. If left blank it will default to none. Do not use a file extension.
66
-
55
+ %label Javascript
56
+ - HtmlAsset.sys(_sid).order(:name).where(:file_type=>"js").each do |ha|
57
+ = ha.name
58
+ = check_box_tag "page_template[html_asset_ids][]", ha.id, page_template_asset_selected(ha)
67
59
 
68
60
  %p
69
61
  = kit_submit "Save"
@@ -60,19 +60,20 @@
60
60
  %strong Stylesheets
61
61
  %br
62
62
  Layout:
63
- = show_html_assets(@page_template.layout.stylesheets, "css")
63
+ = @page_template.layout.html_assets.where(:file_type=>"css").pluck(:name).join(", ")
64
64
  %br
65
65
  Template:
66
- = show_html_assets(@page_template.stylesheets, "css")
66
+ = @page_template.html_assets.where(:file_type=>"css").pluck(:name).join(", ")
67
67
 
68
68
  %p
69
69
  %strong Javascripts
70
70
  %br
71
71
  Layout:
72
- = show_html_assets(@page_template.layout.javascripts, "js")
72
+ = @page_template.layout.html_assets.where(:file_type=>"js").pluck(:name).join(", ")
73
73
  %br
74
74
  Template:
75
- = show_html_assets(@page_template.javascripts, "js")
75
+ = @page_template.html_assets.where(:file_type=>"js").pluck(:name).join(", ")
76
+
76
77
 
77
78
  %p
78
79
  %strong= icon_to "Terms: ", "/admin/page_template_terms?page_template_id=#{@page_template.id}", false, :style=>"margin-right: 20px;"
@@ -0,0 +1,26 @@
1
+ - content_for :main do
2
+
3
+ %h1.notificationqueue_icon= "Notification Queue '#{@publisher.name}' Events"
4
+
5
+ .link(style='margin: 20px 0;')
6
+ = icon_to "Notification Queue", "/admin/q/#{@publisher.id}"
7
+
8
+ - events = @publisher.q_events.order("id desc").page(params[:e_page]).per(100)
9
+
10
+ = paginate events, :params_name=>:e_page
11
+ %table.loosen_more
12
+ %tr
13
+ %th Topic
14
+ %th Occurred
15
+ %th Processed
16
+ %th Class
17
+ %th Data
18
+ - events.each do |e|
19
+ %tr
20
+ %td= e.topic
21
+ %td= time_ago_in_words e.created_at
22
+ %td= time_ago_in_words e.processed_at rescue ''
23
+ %td= e.klass
24
+ %td= field_reveal(e.data, 250)
25
+ = paginate events, :param_name=>:e_page
26
+
@@ -0,0 +1,28 @@
1
+ - content_for :main do
2
+
3
+ %h1.notificationqueue_icon Notification Queue Publishers
4
+
5
+ .link(style="margin: 20px 0;")
6
+ = icon_to_show "Create", "create"
7
+
8
+ #create(style="display: none;")
9
+ = form_for @q_publisher, :url=>"/admin/q" do |f|
10
+ %label Name:
11
+ = f.text_field :name
12
+
13
+ = kit_submit "Create"
14
+
15
+ %table.loosen
16
+ %tr
17
+ %th Name
18
+ %th Authentication Method
19
+ %th Authentication ID
20
+ %th Delete
21
+ - @publishers.each do |publisher|
22
+ %tr
23
+ %td= link_to publisher.name, "/admin/q/#{publisher.id}"
24
+ %td= publisher.auth_method
25
+ %td= publisher.auth_id
26
+ %td= button_to "Delete", "/admin/q/#{publisher.id}", :method=>:delete, :confirm=>"Are you sure?"
27
+
28
+
@@ -0,0 +1,61 @@
1
+ - content_for :main do
2
+
3
+ %h1.notificationqueue_icon= "Notification Queue '#{@publisher.name}' Classes"
4
+
5
+ .link(style='margin: 20px 0;')
6
+ = icon_to "Notification Queue", "/admin/q/#{@publisher.id}"
7
+
8
+ = icon_to_show 'Create', 'create' unless params[:klass_id]
9
+
10
+ #create.klass(style="#{'display: none;' unless params[:klass_id]}")
11
+ = form_for @q_klass, :url=>"/admin/q/#{@publisher.id}/klasses" do |f|
12
+ = f.hidden_field :id if @q_klass.id
13
+ %p
14
+ %label Name:
15
+ = f.text_field :name
16
+
17
+ %p
18
+ %label Method:
19
+ = f.select :notification_method, options_for_select(["twitter", "email"])
20
+
21
+ %p
22
+ %label Heading 1 (h1) Code:
23
+ - @q_klass.h1_code ||= ''
24
+ = cm_editor('q_klass[h1_code]', {:mode=>'ruby'})
25
+ %p
26
+ %label Heading 2 (h2) Code:
27
+ - @q_klass.h2_code ||= ''
28
+ = cm_editor('q_klass[h2_code]', {:mode=>'ruby'})
29
+ %p
30
+ %label Message Code:
31
+ - @q_klass.message_code ||= ''
32
+ = cm_editor('q_klass[message_code]', {:mode=>'ruby'})
33
+
34
+ %p
35
+ = kit_submit "Save"
36
+
37
+ - klasses = @publisher.q_klasses.order("id desc").page(params[:page]).per(100)
38
+
39
+ = paginate klasses, :param_name=>:page
40
+
41
+ %table.loosen_more
42
+ %tr
43
+ %th Name
44
+ %th Method
45
+ %th h1 Code
46
+ %th h2 Code
47
+ - klasses.each do |k|
48
+ %tr
49
+ %td= link_to k.name, "/admin/q/#{@publisher.id}/klasses/#{k.id}"
50
+ %td= k.notification_method
51
+ %td
52
+ %pre
53
+ = k.h1_code
54
+ %td
55
+ %pre
56
+ = k.h2_code
57
+
58
+
59
+ = paginate klasses, :param_name=>:page
60
+
61
+
@@ -0,0 +1,37 @@
1
+ - content_for :main do
2
+
3
+ %h1.notificationqueue_icon= "Notification Queue '#{@publisher.name}' Sent Notifications"
4
+
5
+ .link(style='margin: 20px 0;')
6
+ = icon_to "Notification Queue", "/admin/q/#{@publisher.id}"
7
+
8
+ - sents = @publisher.q_messages.includes([:q_user, :q_event]).order("id desc").page(params[:page]).per(100)
9
+
10
+ = paginate sents
11
+
12
+ %table.loosen_more
13
+ %tr
14
+ %th User
15
+ %th Status
16
+ %th Topic
17
+ %th Sent
18
+ %th Destination
19
+
20
+ %th Message
21
+ - sents.each do |s|
22
+ %tr
23
+ %td(nowrap)= "#{s.q_user.email} [ #{s.q_user.id} ]"
24
+ %td(width="150")= s.status
25
+ %td= s.q_event.topic
26
+ %td= time_ago_in_words s.created_at rescue ''
27
+ %td= s.destination
28
+ %td
29
+ = s.h1
30
+ %br
31
+ = s.h2
32
+ %br
33
+ = field_reveal(s.body, 500)
34
+
35
+ = paginate sents
36
+
37
+