community_engine 3.0.0 → 3.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (198) hide show
  1. checksums.yaml +5 -13
  2. data/.gitignore +4 -1
  3. data/.travis.yml +5 -2
  4. data/CHANGELOG.markdown +270 -0
  5. data/Gemfile +3 -0
  6. data/README.markdown +20 -21
  7. data/Rakefile +8 -6
  8. data/TODO.markdown +3 -0
  9. data/UPGRADING.markdown +46 -36
  10. data/app/assets/javascripts/active_admin.js.coffee +19 -0
  11. data/app/assets/javascripts/ckeditor/configs/ads.js.coffee +175 -0
  12. data/app/assets/javascripts/ckeditor/configs/comments.js.coffee +2 -0
  13. data/app/assets/javascripts/ckeditor/configs/posts.js.coffee +248 -0
  14. data/app/assets/javascripts/ckeditor/rte/rte.ads.js.coffee +7 -0
  15. data/app/assets/javascripts/ckeditor/rte/rte.comments.js.coffee +8 -0
  16. data/app/assets/javascripts/ckeditor/rte/rte.js.coffee +20 -0
  17. data/app/assets/javascripts/ckeditor/rte/rte.posts.js.coffee +14 -0
  18. data/app/assets/javascripts/community_engine.js +114 -123
  19. data/{vendor → app}/assets/javascripts/jcrop/jquery.Jcrop.js +0 -0
  20. data/{vendor → app}/assets/javascripts/jcrop/jquery.color.js +0 -0
  21. data/{vendor → app}/assets/javascripts/tag-it/tag-it.js +0 -0
  22. data/app/assets/stylesheets/active_admin.css.scss +27 -0
  23. data/{vendor → app}/assets/stylesheets/jcrop/Jcrop.gif +0 -0
  24. data/{vendor → app}/assets/stylesheets/jcrop/jquery.Jcrop.min.css +0 -0
  25. data/{vendor → app}/assets/stylesheets/tag-it/tag-it.css +0 -0
  26. data/{vendor → app}/assets/stylesheets/tag-it/tagit.ui-zendesk.css +0 -0
  27. data/app/controllers/activities_controller.rb +4 -4
  28. data/app/controllers/albums_controller.rb +13 -18
  29. data/app/controllers/authorizations_controller.rb +1 -1
  30. data/app/controllers/base_controller.rb +9 -32
  31. data/app/controllers/categories_controller.rb +1 -78
  32. data/app/controllers/clippings_controller.rb +3 -7
  33. data/app/controllers/comments_controller.rb +4 -24
  34. data/app/controllers/events_controller.rb +3 -12
  35. data/app/controllers/favorites_controller.rb +2 -2
  36. data/app/controllers/forums_controller.rb +5 -9
  37. data/app/controllers/invitations_controller.rb +1 -1
  38. data/app/controllers/messages_controller.rb +4 -8
  39. data/app/controllers/moderators_controller.rb +1 -1
  40. data/app/controllers/monitorships_controller.rb +1 -1
  41. data/app/controllers/pages_controller.rb +0 -62
  42. data/app/controllers/password_resets_controller.rb +2 -2
  43. data/app/controllers/photo_manager_controller.rb +3 -3
  44. data/app/controllers/photos_controller.rb +43 -14
  45. data/app/controllers/posts_controller.rb +7 -14
  46. data/app/controllers/rsvps_controller.rb +3 -3
  47. data/app/controllers/sb_posts_controller.rb +20 -20
  48. data/app/controllers/sessions_controller.rb +1 -1
  49. data/app/controllers/tags_controller.rb +4 -52
  50. data/app/controllers/topics_controller.rb +15 -10
  51. data/app/controllers/users_controller.rb +9 -16
  52. data/app/controllers/votes_controller.rb +2 -2
  53. data/app/helpers/base_helper.rb +4 -14
  54. data/app/models/acts_as_taggable_on/tag.rb +9 -41
  55. data/app/models/clipping.rb +1 -1
  56. data/app/models/forum.rb +2 -2
  57. data/app/models/photo.rb +1 -1
  58. data/app/models/post.rb +1 -1
  59. data/app/models/sb_post.rb +19 -15
  60. data/app/models/topic.rb +10 -10
  61. data/app/models/user.rb +1 -1
  62. data/app/policies/active_admin/page_policy.rb +11 -0
  63. data/app/policies/application_policy.rb +59 -0
  64. data/app/policies/post_policy.rb +13 -0
  65. data/app/policies/sb_post_policy.rb +15 -0
  66. data/app/policies/topic_policy.rb +23 -0
  67. data/app/views/ckeditor/pictures/index.html.haml +15 -0
  68. data/app/views/ckeditor/shared/_asset.html.haml +9 -0
  69. data/app/views/ckeditor/shared/_asset_tmpl.html.erb +14 -0
  70. data/app/views/comments/approve.js.haml +1 -1
  71. data/app/views/comments/create.js.erb +1 -1
  72. data/app/views/comments/edit.js.erb +2 -1
  73. data/app/views/events/_subscribe.html.haml +1 -1
  74. data/app/views/forums/show.html.haml +8 -4
  75. data/app/views/posts/show.html.haml +4 -0
  76. data/app/views/sb_posts/_edit_script.js.erb +2 -3
  77. data/app/views/sb_posts/_reply_script.js.erb +2 -4
  78. data/app/views/sb_posts/_sb_post.html.haml +7 -6
  79. data/app/views/sb_posts/create.js.erb +4 -4
  80. data/app/views/sb_posts/edit.js.erb +2 -1
  81. data/app/views/sessions/_menu_item.html.haml +4 -4
  82. data/app/views/shared/_end_javascript.html.haml +1 -2
  83. data/app/views/shared/_login_sidebar.html.haml +2 -2
  84. data/app/views/tags/show.html.haml +3 -3
  85. data/app/views/topics/show.html.haml +1 -1
  86. data/app/views/users/_profile_user_info_sidebar.html.haml +2 -2
  87. data/app/views/users/destroy.js.erb +3 -0
  88. data/app/views/users/new.html.haml +1 -1
  89. data/app/views/users/show.html.haml +1 -1
  90. data/app/views/users/signup_completed.html.haml +1 -1
  91. data/community_engine.gemspec +14 -11
  92. data/config/initializers/active_admin.rb +239 -0
  93. data/config/initializers/ckeditor.rb +8 -0
  94. data/config/initializers/ransack_bootstrap_fix.rb +25 -0
  95. data/config/locales/de-DE.yml +1 -0
  96. data/config/locales/en.yml +3 -0
  97. data/config/routes.rb +14 -19
  98. data/config/spring.rb +1 -0
  99. data/db/migrate/083_create_active_admin_comments.rb +19 -0
  100. data/lib/community_engine.rb +7 -3
  101. data/lib/community_engine/admin/ads.rb +3 -0
  102. data/lib/community_engine/admin/categories.rb +20 -0
  103. data/lib/community_engine/admin/comments.rb +4 -0
  104. data/lib/community_engine/admin/dashboard.rb +38 -0
  105. data/lib/community_engine/admin/events.rb +3 -0
  106. data/lib/community_engine/admin/forums.rb +3 -0
  107. data/lib/community_engine/admin/homepage_features.rb +25 -0
  108. data/lib/community_engine/admin/metro_areas.rb +4 -0
  109. data/lib/community_engine/admin/pages.rb +26 -0
  110. data/lib/community_engine/admin/posts.rb +92 -0
  111. data/lib/community_engine/admin/tags.rb +21 -0
  112. data/lib/community_engine/admin/users.rb +54 -0
  113. data/lib/community_engine/authenticated_system.rb +5 -20
  114. data/lib/community_engine/engine.rb +5 -0
  115. data/lib/community_engine/version.rb +1 -1
  116. data/lib/resource_feeder/atom.rb +2 -0
  117. data/lib/resource_feeder/rss.rb +2 -0
  118. data/lib/white_list.rb +6 -11
  119. data/test/fixtures/events.yml +10 -0
  120. data/test/fixtures/tags.yml +6 -5
  121. data/test/functional/activities_controller_test.rb +19 -19
  122. data/test/functional/admin/posts_controller_test.rb +16 -0
  123. data/test/functional/admin_controller_test.rb +82 -82
  124. data/test/functional/categories_controller_test.rb +0 -39
  125. data/test/functional/comments_controller_test.rb +14 -7
  126. data/test/functional/favorites_controller_test.rb +15 -16
  127. data/test/functional/pages_controller_test.rb +0 -71
  128. data/test/functional/posts_controller_test.rb +21 -2
  129. data/test/functional/sb_posts_controller_test.rb +3 -3
  130. data/test/functional/sessions_controller_test.rb +2 -2
  131. data/test/functional/tags_controller_test.rb +9 -20
  132. data/test/functional/users_controller_test.rb +0 -8
  133. data/test/functional/votes_controller_test.rb +1 -1
  134. data/test/testapp/config/spring.rb +1 -0
  135. data/test/testapp/db/schema.rb +16 -1
  136. data/test/unit/event_test.rb +1 -1
  137. metadata +204 -170
  138. data/CHANGELOG +0 -144
  139. data/app/controllers/admin_controller.rb +0 -80
  140. data/app/controllers/ads_controller.rb +0 -90
  141. data/app/controllers/homepage_features_controller.rb +0 -74
  142. data/app/controllers/metro_areas_controller.rb +0 -74
  143. data/app/controllers/statistics_controller.rb +0 -35
  144. data/app/views/admin/comments.html.haml +0 -53
  145. data/app/views/admin/events.html.haml +0 -26
  146. data/app/views/admin/messages.html.haml +0 -3
  147. data/app/views/admin/update.js.erb +0 -1
  148. data/app/views/admin/users.html.haml +0 -57
  149. data/app/views/ads/_form.html.haml +0 -21
  150. data/app/views/ads/edit.html.haml +0 -7
  151. data/app/views/ads/index.html.haml +0 -29
  152. data/app/views/ads/new.html.haml +0 -6
  153. data/app/views/ads/show.html.haml +0 -19
  154. data/app/views/categories/_form.html.haml +0 -8
  155. data/app/views/categories/edit.html.haml +0 -4
  156. data/app/views/categories/index.html.haml +0 -20
  157. data/app/views/categories/new.html.haml +0 -4
  158. data/app/views/homepage_features/_form.html.haml +0 -6
  159. data/app/views/homepage_features/edit.html.haml +0 -6
  160. data/app/views/homepage_features/index.html.haml +0 -24
  161. data/app/views/homepage_features/new.html.haml +0 -2
  162. data/app/views/homepage_features/show.html.haml +0 -27
  163. data/app/views/metro_areas/_form.html.haml +0 -6
  164. data/app/views/metro_areas/edit.html.haml +0 -8
  165. data/app/views/metro_areas/index.html.haml +0 -21
  166. data/app/views/metro_areas/new.html.haml +0 -6
  167. data/app/views/metro_areas/show.html.haml +0 -14
  168. data/app/views/pages/_form.html.haml +0 -18
  169. data/app/views/pages/edit.html.haml +0 -4
  170. data/app/views/pages/index.html.haml +0 -34
  171. data/app/views/pages/new.html.haml +0 -7
  172. data/app/views/shared/_admin_nav.html.haml +0 -17
  173. data/app/views/shared/_load_tinymce.js.erb +0 -15
  174. data/app/views/statistics/activities.xml.builder +0 -33
  175. data/app/views/statistics/index.html.haml +0 -48
  176. data/app/views/tags/edit.html.haml +0 -12
  177. data/app/views/tags/manage.html.haml +0 -30
  178. data/app/views/users/update.js.erb +0 -1
  179. data/test/functional/ads_controller_test.rb +0 -51
  180. data/test/functional/homepage_features_controller_test.rb +0 -69
  181. data/test/functional/metro_areas_controller_test.rb +0 -63
  182. data/test/functional/statistics_controller_test.rb +0 -18
  183. data/test/unit/acts_as_taggable_on/tag_test.rb +0 -22
  184. data/vendor/converted2.3plugins_to_lib_leftovers/acts_as_publishable/README +0 -3
  185. data/vendor/converted2.3plugins_to_lib_leftovers/acts_as_publishable/Rakefile +0 -22
  186. data/vendor/converted2.3plugins_to_lib_leftovers/acts_as_publishable/generators/publishing/publishing_generator.rb +0 -34
  187. data/vendor/converted2.3plugins_to_lib_leftovers/acts_as_publishable/generators/publishing/templates/migration.rb +0 -13
  188. data/vendor/converted2.3plugins_to_lib_leftovers/acts_as_publishable/install.rb +0 -3
  189. data/vendor/converted2.3plugins_to_lib_leftovers/acts_as_publishable/test/acts_as_publishable_test.rb +0 -8
  190. data/vendor/converted2.3plugins_to_lib_leftovers/acts_as_publishable/uninstall.rb +0 -1
  191. data/vendor/converted2.3plugins_to_lib_leftovers/resource_feeder/README +0 -4
  192. data/vendor/converted2.3plugins_to_lib_leftovers/resource_feeder/Rakefile +0 -22
  193. data/vendor/converted2.3plugins_to_lib_leftovers/resource_feeder/test/atom_feed_test.rb +0 -85
  194. data/vendor/converted2.3plugins_to_lib_leftovers/resource_feeder/test/rss_feed_test.rb +0 -61
  195. data/vendor/converted2.3plugins_to_lib_leftovers/resource_feeder/test/test_helper.rb +0 -60
  196. data/vendor/converted2.3plugins_to_lib_leftovers/white_list/README +0 -35
  197. data/vendor/converted2.3plugins_to_lib_leftovers/white_list/Rakefile +0 -22
  198. data/vendor/converted2.3plugins_to_lib_leftovers/white_list/test/white_list_test.rb +0 -120
@@ -0,0 +1,15 @@
1
+
2
+ #fileupload.gal-holder
3
+ .gal-item
4
+ .fileupload-button.gal-upload-holder
5
+ = link_to I18n.t(:upload, :scope => [:ckeditor, :buttons]), 'javascript:void(0)', :class => "add"
6
+ .fileupload-list
7
+ = render :partial => 'ckeditor/shared/asset', :collection => @pictures
8
+
9
+ #pagination{style: 'clear:both;'}
10
+ = paginate @pictures
11
+
12
+ :javascript
13
+ #{Ckeditor::Utils.js_fileuploader('image')}
14
+
15
+
@@ -0,0 +1,9 @@
1
+ = content_tag(:div, id: dom_id(asset), class: "gal-item", data: {url: image_path(asset.photo.url)} ) do
2
+ .fileupload-file.gal-inner-holder
3
+ .img
4
+ = image_tag(asset.photo.url(:thumb), :title => asset.photo_file_name, :id => "photo-#{asset.id}")
5
+ .img-data
6
+ .img-name= asset.photo_file_name
7
+ .time-size
8
+ .time= asset.created_at
9
+ .fileupload-size.size= number_to_human_size(asset.photo_file_size) if asset.photo_file_size
@@ -0,0 +1,14 @@
1
+ <script id="fileupload_tmpl" type="text/x-jquery-tmpl">
2
+ <div id="asset_${id}" class="gal-item" data-url="${url_content}">
3
+ <div class="fileupload-file gal-inner-holder">
4
+ <div class="img"><img src="${url_thumb}" title="${filename}"></div>
5
+ <div class="img-data">
6
+ <div class="img-name">${filename}</div>
7
+ <div class="time-size">
8
+ <div class="time">${format_created_at}</div>
9
+ <div class="fileupload-size size">${size}</div>
10
+ </div>
11
+ </div>
12
+ </div>
13
+ </div>
14
+ </script>
@@ -1 +1 @@
1
- $$('#comment_#{@comment.id} .approve a').invoke('hide');
1
+ $$('#comment-#{@comment.id} .approve a').invoke('hide');
@@ -8,7 +8,7 @@
8
8
  <% end %>
9
9
 
10
10
  $('#newest_comment').after("<%= escape_javascript(render(:partial => 'comments/comment', :formats => [:html], :locals => {:comment => @comment})) %>");
11
- tinyMCE.activeEditor.setContent('');
11
+ CKEDITOR.instances.comment_comment.setData('')
12
12
  $('#comment-<%= @comment.id.to_s %>').scrollTo();
13
13
  <% end %>
14
14
 
@@ -3,7 +3,8 @@
3
3
  <% else %>
4
4
  $('#comment-<%= @comment.id %>').html("<%= escape_javascript(render :partial => 'comments/edit_form', :locals => {:comment => @comment}) %>");
5
5
  $('#comment-<%= @comment.id %>').scrollTo();
6
- <%= tiny_mce_js.html_safe %>
6
+ $.remove_rte()
7
+ $.rte_comments()
7
8
  <% end %>
8
9
 
9
10
  if (typeof($.CE.commentUpdatedCallback) != 'undefined'){
@@ -2,6 +2,6 @@
2
2
  %h3= :subscribe_to.l + ' ' + :events.l
3
3
  %p= :subscribe_events_instructions.l
4
4
  .icon_row
5
- = link_to image_tag('/assets/icons/ical.gif'), ical_events_url(:protocol => 'webcal://', :format=>'ics')
5
+ = link_to image_tag('icons/ical.gif'), ical_events_url(:protocol => 'webcal://', :format=>'ics')
6
6
  = link_to image_tag("http://www.google.com/calendar/images/ext/gc_button1.gif"), "http://www.google.com/calendar/render?cid=#{ical_events_url(:format=>'ics')}", :target=>'_blank'
7
7
 
@@ -38,18 +38,22 @@
38
38
  %td
39
39
  - icon, color, post = icon_and_color_and_post_for topic
40
40
 
41
- - if recent_topic_activity(topic)
42
- %span.badge.badge-warning
41
+ -if recent_topic_activity(topic)
42
+ %span.badge
43
43
  =fa_icon "fire inverse"
44
44
  %td
45
45
  -if topic.sticky?
46
- =:sticky.l
47
46
  %strong
48
47
  = link_to h(topic.title), forum_topic_path(@forum, topic), :class => "entry-title", :rel => "bookmark"
48
+ .pull-right
49
+ =fa_icon "thumb-tack fw"
49
50
  -else
50
51
  = link_to h(topic.title), forum_topic_path(@forum, topic), :class => "entry-title", :rel => "bookmark"
51
- - if topic.paged?
52
+ -if topic.paged?
52
53
  %small= link_to :last.l, forum_topic_path(:forum_id => @forum, :id => topic, :page => topic.last_page)
54
+ -if topic.locked?
55
+ .pull-right
56
+ =fa_icon "lock fw"
53
57
  %td= topic.sb_posts_count
54
58
  %td= number_with_delimiter(topic.views)
55
59
  %td
@@ -73,6 +73,10 @@
73
73
 
74
74
  -content_for :end_javascript do
75
75
  :javascript
76
+ $.ajax({
77
+ type: "PATCH",
78
+ url: "#{update_views_user_post_path(@post.user, @post)}",
79
+ });
76
80
  $('.email').on('click', function(e){
77
81
  e.preventDefault();
78
82
  $.post("#{send_to_friend_user_post_path(:user_id => @user.id, :id => @post.id)}", function(response){
@@ -2,8 +2,7 @@ console.log("configuring " + $('edit_post'));
2
2
  $('edit_post').observe("ajax:before", function () {
3
3
  console.log("Submitting");
4
4
  $('editbox_spinner').show();
5
- tinyMCE.triggerSave();
6
- console.log( "Returning " + tinyMCE.get('edit_post_body').save());
5
+ $.save_rte
7
6
  console.log("saved");
8
7
  return false;
9
8
  });
@@ -11,4 +10,4 @@ console.log("Setting button " + $('cancelButton'));
11
10
  $('cancelButton').observe('click', function () {
12
11
  EditForm.cancel();
13
12
  return false;
14
- });
13
+ });
@@ -1,13 +1,11 @@
1
1
  $('new_post').observe("ajax:before", function () {
2
2
  console.log("Submitting");
3
3
  $('editbox_spinner').show();
4
- tinyMCE.triggerSave();
5
- console.log( "Returning " + tinyMCE.get('edit_post_body').save());
6
- console.log("saved");
4
+ $.save_rte
7
5
  return false;
8
6
  });
9
7
  console.log("Setting button");
10
8
  $('cancelButton').observe('click', function () {
11
9
  $('reply').hide();
12
10
  return false;
13
- });
11
+ });
@@ -1,5 +1,5 @@
1
1
  %tr
2
-
2
+
3
3
  %td{:id=>"post-body-#{post.id}"}
4
4
  .editable
5
5
  - if logged_in?
@@ -10,23 +10,24 @@
10
10
  %td.col-sm-3{:style => 'border-left:0'}
11
11
  %ul.list-unstyled
12
12
  -if post.user
13
- %li= link_to avatar_for(post.user), post.user
13
+ %li= link_to avatar_for(post.user), post.user
14
14
  %li= link_to truncate(h(post.username), :length => 15), user_path(post.user), :class => (post.topic.editable_by?(post.user) ? "admin" : nil)
15
15
  %li
16
16
  = :post.l.pluralize
17
17
  %span.badge.badge-info
18
18
  =post.user.sb_posts_count
19
19
  -else
20
- %li= image_tag(configatron.photo.missing_thumb, :class => 'thumbnail')
20
+ %li= image_tag(configatron.photo.missing_thumb, :class => 'thumbnail')
21
21
  %li= truncate(h(post.username), :length => 15)
22
22
  %li
23
23
  %a{"href"=>"##{post.dom_id}", "rel"=>"bookmark"}
24
24
  %abbr.updated{"title"=>"#{post.created_at.xmlschema}"}= time_ago_in_words(post.created_at)
25
-
26
- - if logged_in? && post.editable_by?(current_user)
25
+
26
+ - if policy(post).update?
27
27
  %li
28
- = ajax_spinner_for "edit-post-#{post.id}"
28
+ = ajax_spinner_for "edit-post-#{post.id}"
29
29
  = link_to :edit_post.l, edit_forum_topic_sb_post_path(@forum, @topic, post), :class => 'edit-via-ajax', :id => "edit-post-#{post.id}"
30
+
30
31
  - if admin? && post.user && !post.user.admin?
31
32
  %li{"class"=>"make-moderator-#{post.user_id}"}
32
33
  = render :partial => '/moderators/toggle', :locals => {:user => post.user, :forum => @forum}
@@ -1,6 +1,6 @@
1
1
  <% if @post.new_record? %>
2
2
  reply = $('.reply');
3
- reply.prepend(escape_javascript("<%=raw escape_javascript(render 'shared/messages') %>");
3
+ reply.prepend("<%=raw escape_javascript(render 'shared/messages') %>");
4
4
  message = reply.find('.alert')
5
5
  message.scrollTo();
6
6
  <% else %>
@@ -18,13 +18,13 @@
18
18
  editable.switchClass('alert alert-info','normal', 3000,'easeInCubic');
19
19
  });
20
20
 
21
- tinyMCE.activeEditor.setContent('')
21
+ CKEDITOR.instances.sb_post_body.setData('')
22
22
 
23
23
  reply.addClass('hide');
24
24
  <% end %>
25
25
 
26
- <% if configatron.has_key?(:recaptcha_pub_key) %>
26
+ <% if !logged_in? && configatron.has_key?(:recaptcha_pub_key) %>
27
27
  if($('dynamic_recaptcha')){
28
- Recaptcha.create('#{configatron.recaptcha_pub_key}', $('dynamic_recaptcha') )
28
+ Recaptcha.create('<%= configatron.recaptcha_pub_key %>', $('dynamic_recaptcha') )
29
29
  }
30
30
  <% end %>
@@ -5,7 +5,8 @@ editable = post.find('.editable');
5
5
  editable.addClass('hide');
6
6
  editor.html("<%= escape_javascript(render :partial => 'sb_posts/edit', :locals => {:post => @post}) %>");
7
7
 
8
- <%= render 'shared/load_tinymce' %>
8
+ $.remove_rte()
9
+ $.rte_posts();
9
10
 
10
11
  post.scrollTo();
11
12
 
@@ -1,13 +1,13 @@
1
1
  -if logged_in?
2
2
  - if !current_page?(users_path) && (params[:controller] == 'users' && !@user.nil? && @user == current_user)
3
3
  - css_class = 'active'
4
- - else
4
+ - else
5
5
  - css_class = 'inactive'
6
6
  %li{:class => 'dropdown ' + css_class}
7
- %a.dropdown-toggle{:href=>dashboard_user_path(current_user), 'data-target'=> '#', 'data-toggle' => 'dropdown'}
7
+ %a.dropdown-toggle{:href=>dashboard_user_path(current_user), 'data-target'=> '#', 'data-toggle' => 'dropdown', "data-no-turbolink" => true}
8
8
  =:logged_in.l + ' ' + current_user.login
9
9
  %b.caret
10
- %ul.dropdown-menu
10
+ %ul.dropdown-menu{"data-no-turbolink" => true}
11
11
  -if current_user.admin?
12
12
  %li= link_to :admin_dashboard.l, admin_dashboard_path
13
13
  %li.divider
@@ -25,4 +25,4 @@
25
25
  %li= link_to :log_out.l, logout_path
26
26
  -else
27
27
  %li= link_to(:log_in.l, login_path)
28
- %li= link_to(:sign_up.l, signup_path)
28
+ %li= link_to(:sign_up.l, signup_path)
@@ -1,5 +1,4 @@
1
- = javascript_include_tag 'community_engine'
2
- = tiny_mce_init_if_needed
1
+ = javascript_include_tag 'community_engine', "data-turbolinks-track" => true, "data-turbolinks-eval" => false
3
2
 
4
3
  -if show_footer_content?
5
4
  :javascript
@@ -4,7 +4,7 @@
4
4
  %p
5
5
  =:dont_have_an_account.l
6
6
  %br
7
- = link_to :click_here_to_sign_up.l, "/signup"
7
+ = link_to :click_here_to_sign_up.l, signup_path
8
8
  %p
9
9
  =:forgot_your_password.l
10
10
  %br
@@ -12,4 +12,4 @@
12
12
  %p
13
13
  =:forgot_your_username.l
14
14
  %br
15
- = link_to :click_here_to_retrieve_it.l, forgot_username_url
15
+ = link_to :click_here_to_retrieve_it.l, forgot_username_url
@@ -8,7 +8,7 @@
8
8
  %ul.list-unstyled
9
9
  - @tags.each do |tag|
10
10
  %li= link_to h(tag.name), tag_path(tag)
11
-
11
+
12
12
  -if @related_tags.to_a.size > 0
13
13
  -widget do
14
14
  %h3=:related_tags.l
@@ -17,9 +17,9 @@
17
17
  %p
18
18
  = link_to fa_icon('plus-circle', :text => :all_tags.l), tags_path
19
19
 
20
- .clearfix
20
+ .clearfix
21
21
  - if @posts.any?
22
- -unless params[:type]
22
+ -unless params[:type]
23
23
  %h2=:posts.l
24
24
  %ul
25
25
  - @posts.each do |post|
@@ -18,7 +18,7 @@
18
18
  - if @topic.locked?
19
19
  %h2= :locked2.l
20
20
 
21
- - if logged_in? && @topic.editable_by?(current_user)
21
+ - if policy(@topic).update?
22
22
  %p
23
23
  = link_to :back.l, @forum, :class => 'btn btn-default'
24
24
  = link_to :edit.l, edit_forum_topic_path(@forum, @topic), :class => "btn btn-warning"
@@ -42,6 +42,6 @@
42
42
  %ul.list-unstyled
43
43
  %li= link_to(:assume_user_id.l, assume_user_path(@user), {:method => :post} )
44
44
  %li= link_to(:delete_this_user.l, user_path(@user), {:method => :delete, data: { confirm: :are_you_sure_you_want_to_permanently_delete_this_user.l }} )
45
- %li= link_to("#{:toggle.l} #{:featured_writer.l}".html_safe, toggle_featured_user_path(@user), {:method => :put} )
46
- %li= link_to("#{:assign_role.l}: #{@user.moderator? ? :member.l : :moderator.l}".html_safe, toggle_moderator_user_path(@user), {:method => :put} )
45
+ %li= link_to("#{:toggle.l} #{:featured_writer.l}".html_safe, toggle_featured_user_path(@user), {:method => :patch} )
46
+ %li= link_to("#{:assign_role.l}: #{@user.moderator? ? :member.l : :moderator.l}".html_safe, toggle_moderator_user_path(@user), {:method => :patch} )
47
47
 
@@ -0,0 +1,3 @@
1
+ $('#user-<%= @user.id.to_s %>').hide('slow', function () {
2
+ $(this).remove()
3
+ });
@@ -12,7 +12,7 @@
12
12
  =:after_signing_up_youll_receive_an_e_mail_confirmation_message.l
13
13
  %p
14
14
  =:click_the_activation_link_in_the_e_mail_to_log_in.l
15
- %p= link_to :already_have_an_account.l, "/login"
15
+ %p= link_to :already_have_an_account.l, login_path
16
16
 
17
17
 
18
18
  = bootstrap_form_for @user, :layout => :horizontal do |f|
@@ -65,7 +65,7 @@
65
65
  %dd
66
66
  = truncate_words(comment.comment, 10).html_safe
67
67
  %br
68
- = link_to "&raquo; ".html_safe + :view_comment.l, user_photo_path(@user, comment.commentable) + "#comment_#{comment.id}"
68
+ = link_to "&raquo; ".html_safe + :view_comment.l, user_photo_path(@user, comment.commentable) + "#comment-#{comment.id}"
69
69
 
70
70
  - unless @photos.empty?
71
71
  .clearfix
@@ -5,4 +5,4 @@
5
5
  %li= :see_you_back_here_in_a_short_while.l
6
6
 
7
7
  %h2= :no_activation_email.l
8
- = button_to :resend_my_activation_e_mail.l, "/resend_activation?id=#{@user.to_param}", :class => 'btn btn-primary'
8
+ = button_to :resend_my_activation_e_mail.l, resend_activation_path(@user.to_param), :class => 'btn btn-primary'
@@ -6,7 +6,7 @@ require 'community_engine/version'
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "community_engine"
8
8
  s.version = CommunityEngine::Version::STRING
9
- s.summary = "CommunityEngine for Rails 4"
9
+ s.summary = "CommunityEngine for Rails 4.1"
10
10
  s.description = "CommunityEngine is a free, open-source social network platform for Ruby on Rails applications. Drop it into your new or existing application, and you’ll instantly have all the features of a basic community site."
11
11
  s.homepage = "http://www.communityengine.org"
12
12
 
@@ -24,18 +24,20 @@ Gem::Specification.new do |s|
24
24
  s.files = `git ls-files`.split("\n") rescue ''
25
25
  s.test_files = `git ls-files -- {test}/*`.split("\n")
26
26
 
27
+ s.add_dependency "activeadmin", "~> 1.0.0.pre2"
28
+ s.add_dependency "pundit", "0.3.0"
27
29
  s.add_dependency "actionpack-action_caching", ">= 0"
28
30
  s.add_dependency "actionpack-page_caching", ">= 0"
29
31
  s.add_dependency "acts_as_commentable", "~> 4.0.2"
30
32
  s.add_dependency "acts_as_list", ">= 0.3.0"
31
- s.add_dependency "acts-as-taggable-on", '~> 2.4.1'
32
- s.add_dependency "authlogic", ">= 3.3.0"
33
- s.add_dependency "aws-sdk", ">= 0"
33
+ s.add_dependency "acts-as-taggable-on", '~> 3.4.4'
34
+ s.add_dependency "authlogic", "~> 3.4.6"
35
+ s.add_dependency "aws-sdk", "< 2.0"
34
36
  s.add_dependency "bcrypt", ">= 0"
35
37
  s.add_dependency "cocaine", "~> 0.5.1"
36
38
  s.add_dependency "configatron", "~> 4.2.0"
37
39
  s.add_dependency "dynamic_form", ">= 0"
38
- s.add_dependency "friendly_id", "~> 5.0.0.beta1"
40
+ s.add_dependency "friendly_id", "~> 5.1.0"
39
41
  s.add_dependency "haml", ">= 0"
40
42
  s.add_dependency "hpricot", ">= 0"
41
43
  s.add_dependency "htmlentities", ">= 0"
@@ -43,13 +45,13 @@ Gem::Specification.new do |s|
43
45
  s.add_dependency "koala", "~> 1.6.0"
44
46
  s.add_dependency "omniauth", "~> 1.1.4"
45
47
  s.add_dependency "rails_autolink", ">= 0"
46
- s.add_dependency "paperclip", "~> 3.5.1"
47
- s.add_dependency "power_enum", "~> 2.0.1"
48
+ s.add_dependency "paperclip", "~> 4.3.0"
49
+ s.add_dependency "power_enum", "~> 2.7"
48
50
  s.add_dependency "rack", ">= 1.5.2"
49
- s.add_dependency "rails", "~> 4.0.0"
51
+ s.add_dependency "rails", "~> 4.1.0"
50
52
  s.add_dependency "rails-observers", ">= 0"
51
53
  s.add_dependency "rakismet", ">= 0"
52
- s.add_dependency "ransack", "~> 1.0.0"
54
+ s.add_dependency "ransack", "~> 1.7.0"
53
55
  s.add_dependency "recaptcha", ">= 0"
54
56
  s.add_dependency "ri_cal", ">= 0"
55
57
  s.add_dependency "sanitize", ">= 2.0.6"
@@ -58,8 +60,9 @@ Gem::Specification.new do |s|
58
60
  s.add_dependency "font-awesome-rails", ">= 0"
59
61
  s.add_dependency "jquery-rails", ">= 0"
60
62
  s.add_dependency "jquery-ui-rails", "~> 5.0.0"
63
+ s.add_dependency "jquery-turbolinks"
64
+ s.add_dependency "turbolinks"
61
65
  s.add_dependency "sass-rails", "~> 4.0.0"
62
66
  s.add_dependency "sprockets", "~> 2.10.0"
63
- s.add_dependency "tinymce-rails", "~> 4.0.2"
67
+ s.add_dependency "ckeditor", "~> 4.1.1"
64
68
  end
65
-
@@ -0,0 +1,239 @@
1
+ module ActiveAdmin
2
+ class BaseController
3
+ include AuthenticatedSystem
4
+ end
5
+ end
6
+
7
+ ActiveAdmin.setup do |config|
8
+ # == Site Title
9
+ #
10
+ # Set the title that is displayed on the main layout
11
+ # for each of the active admin pages.
12
+ #
13
+ config.site_title = configatron.community_name
14
+
15
+ # Set the link url for the title. For example, to take
16
+ # users to your main site. Defaults to no link.
17
+ #
18
+ # config.site_title_link = "/"
19
+
20
+ # Set an optional image to be displayed for the header
21
+ # instead of a string (overrides :site_title)
22
+ #
23
+ # Note: Aim for an image that's 21px high so it fits in the header.
24
+ #
25
+ # config.site_title_image = "logo.png"
26
+
27
+ # == Default Namespace
28
+ #
29
+ # Set the default namespace each administration resource
30
+ # will be added to.
31
+ #
32
+ # eg:
33
+ # config.default_namespace = :hello_world
34
+ #
35
+ # This will create resources in the HelloWorld module and
36
+ # will namespace routes to /hello_world/*
37
+ #
38
+ # To set no namespace by default, use:
39
+ # config.default_namespace = false
40
+ #
41
+ # Default:
42
+ # config.default_namespace = :admin
43
+ #
44
+ # You can customize the settings for each namespace by using
45
+ # a namespace block. For example, to change the site title
46
+ # within a namespace:
47
+ #
48
+ # config.namespace :admin do |admin|
49
+ # admin.site_title = "Custom Admin Title"
50
+ # end
51
+ #
52
+ # This will ONLY change the title for the admin section. Other
53
+ # namespaces will continue to use the main "site_title" configuration.
54
+
55
+ # == User Authentication
56
+ #
57
+ # Active Admin will automatically call an authentication
58
+ # method in a before filter of all controller actions to
59
+ # ensure that there is a currently logged in admin user.
60
+ #
61
+ # This setting changes the method which Active Admin calls
62
+ # within the application controller.
63
+ config.authentication_method = :login_required
64
+
65
+ # == User Authorization
66
+ #
67
+ # Active Admin will automatically call an authorization
68
+ # method in a before filter of all controller actions to
69
+ # ensure that there is a user with proper rights. You can use
70
+ # CanCanAdapter or make your own. Please refer to documentation.
71
+ config.authorization_adapter = ActiveAdmin::PunditAdapter
72
+
73
+ # In case you prefer Pundit over other solutions you can here pass
74
+ # the name of default policy class. This policy will be used in every
75
+ # case when Pundit is unable to find suitable policy.
76
+ config.pundit_default_policy = "ApplicationPolicy"
77
+
78
+ # You can customize your CanCan Ability class name here.
79
+ # config.cancan_ability_class = "Ability"
80
+
81
+ # You can specify a method to be called on unauthorized access.
82
+ # This is necessary in order to prevent a redirect loop which happens
83
+ # because, by default, user gets redirected to Dashboard. If user
84
+ # doesn't have access to Dashboard, he'll end up in a redirect loop.
85
+ # Method provided here should be defined in application_controller.rb.
86
+ config.on_unauthorized_access = :access_denied
87
+
88
+ # == Current User
89
+ #
90
+ # Active Admin will associate actions with the current
91
+ # user performing them.
92
+ #
93
+ # This setting changes the method which Active Admin calls
94
+ # (within the application controller) to return the currently logged in user.
95
+ config.current_user_method = :current_user
96
+
97
+ # == Logging Out
98
+ #
99
+ # Active Admin displays a logout link on each screen. These
100
+ # settings configure the location and method used for the link.
101
+ #
102
+ # This setting changes the path where the link points to. If it's
103
+ # a string, the strings is used as the path. If it's a Symbol, we
104
+ # will call the method to return the path.
105
+ #
106
+ # Default:
107
+ config.logout_link_path = :logout_path
108
+
109
+ # This setting changes the http method used when rendering the
110
+ # link. For example :get, :delete, :put, etc..
111
+ #
112
+ # Default:
113
+ # config.logout_link_method = :get
114
+
115
+ # == Root
116
+ #
117
+ # Set the action to call for the root path. You can set different
118
+ # roots for each namespace.
119
+ #
120
+ # Default:
121
+ # config.root_to = 'dashboard#index'
122
+
123
+ # == Admin Comments
124
+ #
125
+ # This allows your users to comment on any resource registered with Active Admin.
126
+ #
127
+ # You can completely disable comments:
128
+ config.comments = false
129
+ #
130
+ # You can disable the menu item for the comments index page:
131
+ # config.show_comments_in_menu = false
132
+ #
133
+ # You can change the name under which comments are registered:
134
+ config.comments_registration_name = 'AdminComment'
135
+
136
+ # == Batch Actions
137
+ #
138
+ # Enable and disable Batch Actions
139
+ #
140
+ config.batch_actions = true
141
+
142
+ # == Controller Filters
143
+ #
144
+ # You can add before, after and around filters to all of your
145
+ # Active Admin resources and pages from here.
146
+ #
147
+ # config.before_filter :do_something_awesome
148
+
149
+ # == Setting a Favicon
150
+ #
151
+ # config.favicon = '/assets/favicon.ico'
152
+
153
+ # == Removing Breadcrumbs
154
+ #
155
+ # Breadcrumbs are enabled by default. You can customize them for individual
156
+ # resources or you can disable them globally from here.
157
+ #
158
+ # config.breadcrumb = false
159
+
160
+ # == Register Stylesheets & Javascripts
161
+ #
162
+ # We recommend using the built in Active Admin layout and loading
163
+ # up your own stylesheets / javascripts to customize the look
164
+ # and feel.
165
+ #
166
+ # To load a stylesheet:
167
+ # config.register_stylesheet 'my_stylesheet.css'
168
+ #
169
+ # You can provide an options hash for more control, which is passed along to stylesheet_link_tag():
170
+ # config.register_stylesheet 'my_print_stylesheet.css', media: :print
171
+ #
172
+ # To load a javascript file:
173
+ # config.register_javascript 'my_javascript.js'
174
+
175
+ # == CSV options
176
+ #
177
+ # Set the CSV builder separator
178
+ # config.csv_options = { col_sep: ';' }
179
+ #
180
+ # Force the use of quotes
181
+ # config.csv_options = { force_quotes: true }
182
+
183
+ # == Menu System
184
+ #
185
+ # You can add a navigation menu to be used in your application, or configure a provided menu
186
+ #
187
+ # To change the default utility navigation to show a link to your website & a logout btn
188
+ #
189
+ # config.namespace :admin do |admin|
190
+ # admin.build_menu :utility_navigation do |menu|
191
+ # menu.add label: "My Great Website", url: "http://www.mygreatwebsite.com", html_options: { target: :blank }
192
+ # admin.add_logout_button_to_menu menu
193
+ # end
194
+ # end
195
+ #
196
+ # If you wanted to add a static menu item to the default menu provided:
197
+ #
198
+ # config.namespace :admin do |admin|
199
+ # admin.build_menu :default do |menu|
200
+ # menu.add label: "My Great Website", url: "http://www.mygreatwebsite.com", html_options: { target: :blank }
201
+ # end
202
+ # end
203
+
204
+ # == Download Links
205
+ #
206
+ # You can disable download links on resource listing pages,
207
+ # or customize the formats shown per namespace/globally
208
+ #
209
+ # To disable/customize for the :admin namespace:
210
+ #
211
+ # config.namespace :admin do |admin|
212
+ #
213
+ # # Disable the links entirely
214
+ # admin.download_links = false
215
+ #
216
+ # # Only show XML & PDF options
217
+ # admin.download_links = [:xml, :pdf]
218
+ #
219
+ # # Enable/disable the links based on block
220
+ # # (for example, with cancan)
221
+ # admin.download_links = proc { can?(:view_download_links) }
222
+ #
223
+ # end
224
+
225
+ # == Pagination
226
+ #
227
+ # Pagination is enabled by default for all resources.
228
+ # You can control the default per page count for all resources here.
229
+ #
230
+ # config.default_per_page = 30
231
+
232
+ # == Filters
233
+ #
234
+ # By default the index screen includes a "Filters" sidebar on the right
235
+ # hand side with a filter for each attribute of the registered model.
236
+ # You can enable or disable them for all resources here.
237
+ #
238
+ # config.filters = true
239
+ end