mongoid-forums 0.0.4 → 0.0.5

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 9a4337469d2a29dedec4dbc0a39450cca125016e
4
- data.tar.gz: c363a39163571c395122ce2cc9d58687907a182f
3
+ metadata.gz: 73b738bfa58a6743dcb67ec79b38604287d6f666
4
+ data.tar.gz: 3999f2852e03a0bfddf5e24d0e788e61e4c891f0
5
5
  SHA512:
6
- metadata.gz: 53b729da9a4e57e9c5e7fd5ede064670055da5f661cdc60536edc1175642e1b9a15b8dcbae1a5a69367e7b94dcbc7f15220f4b5e4f1e8fd50ed4375e0604aa8d
7
- data.tar.gz: 357b1cd80ee8136c9354f724a4c9c4b20f85a9881d0403f0ce1018612cbc605555307adf1e1d65e776daacefa0e6a647ac0fb9e40c889b2a9ded3a5f47ed97b0
6
+ metadata.gz: c49e8ef5e09919a913a55bc7ff9ae13761004b0efa788aac080b8fe05ffae95fad4c9c6ac2123230977bdbd47746cc612982e5e81fb659c8dfd425115e2c60c0
7
+ data.tar.gz: 43cfa20eda79aec5f0985b5d046bea08fbc3a59dd3f52c712df888c39fb376fb8dff9c5d65809d36ec970309f1aabb9d493a346627f0870a7c36d886ac6d32ab
@@ -14,7 +14,8 @@ module MongoidForums
14
14
  end
15
15
 
16
16
  def create
17
- if @forum = Forum.create(name: params[:forum][:name], category: params[:forum][:category])
17
+ @forum = Forum.new(name: params[:forum][:name], category: params[:forum][:category])
18
+ if @forum.save
18
19
  flash[:notice] = "Forum created successfully"
19
20
  redirect_to [:admin, @forum]
20
21
  else
@@ -39,8 +39,8 @@ module MongoidForums
39
39
 
40
40
  def show
41
41
  @group = Group.find(params[:id])
42
- @group_members = @group.members.map {|member_id| User.find(member_id) }
43
- @users = User.all
42
+ @group_members = @group.members.map{|member_id| User.find(member_id) }
43
+ @users = User.all.select{ |user| !@group.members.include?(user.id) }
44
44
  end
45
45
 
46
46
  def destroy
@@ -0,0 +1,48 @@
1
+ module MongoidForums
2
+ module Admin
3
+ class TopicsController < BaseController
4
+ before_filter :find_topic
5
+
6
+ def edit
7
+ end
8
+
9
+ def update
10
+ @topic.subject = params[:topic][:subject]
11
+ @topic.pinned = params[:topic][:pinned]
12
+ @topic.locked = params[:topic][:locked]
13
+ @topic.hidden = params[:topic][:hidden]
14
+ @topic.forum_id = params[:topic][:forum_id]
15
+ if @topic.save
16
+ flash[:notice] = t("mongoid_forums.topic.updated")
17
+ redirect_to topic_path(@topic)
18
+ else
19
+ flash.alert = t("mongoid_forums.topic.not_updated")
20
+ render :action => "edit"
21
+ end
22
+ end
23
+
24
+ def toggle_hide
25
+ @topic.toggle!(:hidden)
26
+ flash[:notice] = t("mongoid_forums.topic.hidden.#{@topic.hidden?}")
27
+ redirect_to topic_path(@topic)
28
+ end
29
+
30
+ def toggle_lock
31
+ @topic.toggle!(:locked)
32
+ flash[:notice] = t("mongoid_forums.topic.locked.#{@topic.locked?}")
33
+ redirect_to topic_path(@topic)
34
+ end
35
+
36
+ def toggle_pin
37
+ @topic.toggle!(:pinned)
38
+ flash[:notice] = t("mongoid_forums.topic.pinned.#{@topic.pinned?}")
39
+ redirect_to topic_path(@topic)
40
+ end
41
+
42
+ private
43
+ def find_topic
44
+ @topic = Topic.find(params[:format])
45
+ end
46
+ end
47
+ end
48
+ end
@@ -5,6 +5,7 @@ module MongoidForums
5
5
  before_filter :find_forum, :except => [:my_subscriptions, :my_posts, :my_topics]
6
6
 
7
7
  def show
8
+
8
9
  if find_topic
9
10
  register_view
10
11
 
@@ -18,7 +19,7 @@ module MongoidForums
18
19
  end
19
20
 
20
21
  def destroy
21
-
22
+
22
23
  end
23
24
 
24
25
  def my_subscriptions
@@ -61,6 +62,7 @@ module MongoidForums
61
62
  begin
62
63
  scope = @forum.topics # TODO: pending review stuff
63
64
  @topic = scope.find(params[:id])
65
+ authorize! :read, @topic
64
66
  rescue Mongoid::Errors::DocumentNotFound
65
67
  flash.alert = t("forem.topic.not_found")
66
68
  redirect_to @forum and return
@@ -4,6 +4,8 @@ module MongoidForums
4
4
  include MongoidForums::Concerns::Viewable
5
5
 
6
6
  belongs_to :category, :class_name => "MongoidForums::Category"
7
+ validates :category, :presence => true
8
+
7
9
  has_many :topics, :class_name => "MongoidForums::Topic", dependent: :destroy
8
10
 
9
11
  # Caching
@@ -24,6 +24,11 @@ module MongoidForums
24
24
  !locked?
25
25
  end
26
26
 
27
+ def toggle!(field)
28
+ send "#{field}=", !self.send("#{field}?")
29
+ save :validation => false
30
+ end
31
+
27
32
  def unread_post_count(user)
28
33
  view = View.where(:viewable_id => id, :user_id => user.id).first
29
34
  return posts.count unless view.present?
@@ -26,8 +26,9 @@
26
26
  %td
27
27
  = link_to forum.name, forum
28
28
  %td
29
- - unless forum.topics.last.nil?
30
- - last_post = forum.topics.select {|topic| !topic.hidden }.last.posts.last
29
+ - if forum.topics.select {|topic| can?(:read, topic) }.last
30
+ - last_topic = forum.topics.select {|topic| can?(:read, topic) }.last
31
+ - last_post = last_topic.posts.last
31
32
  = time_ago_in_words ( last_post.created_at )
32
33
  ago on
33
34
  = link_to last_post.topic.name, last_post.topic
@@ -22,26 +22,27 @@
22
22
  Views
23
23
 
24
24
  - @topics.each do |topic|
25
- %tr
26
- %td
27
- - if topic.locked
28
- &#128274
29
- - if topic.hidden
30
-
31
- - if topic.pinned
32
- *
33
- = link_to topic.name, topic
34
- %td
35
- = topic.user.forum_display_name
36
- = time_ago_in_words( topic.created_at )
37
- ago
38
- %td
39
- = topic.posts.last.user.forum_display_name
40
- = time_ago_in_words( topic.posts.last.created_at )
41
- ago
42
- %td
43
- = mongoid_forums_user ? topic.unread_post_count(mongoid_forums_user) : ""
44
- %td
45
- = topic.posts.count
46
- %td
47
- = topic.views_count ? topic.views_count : "None"
25
+ - if can?(:read, topic)
26
+ %tr
27
+ %td
28
+ - if topic.locked
29
+ &#128274
30
+ - if topic.hidden
31
+
32
+ - if topic.pinned
33
+ *
34
+ = link_to topic.name, topic
35
+ %td
36
+ = topic.user.forum_display_name
37
+ = time_ago_in_words( topic.created_at )
38
+ ago
39
+ %td
40
+ = topic.posts.last.user.forum_display_name
41
+ = time_ago_in_words( topic.posts.last.created_at )
42
+ ago
43
+ %td
44
+ = mongoid_forums_user ? topic.unread_post_count(mongoid_forums_user) : ""
45
+ %td
46
+ = topic.posts.count
47
+ %td
48
+ = topic.views_count ? topic.views_count : "None"
@@ -8,7 +8,7 @@
8
8
  ago
9
9
 
10
10
  = link_to 'Quote', new_topic_post_path(post.topic_id, :reply_to_id => post.id)
11
- - if post.owner_or_admin?(mongoid_forums_user)
11
+ - if mongoid_forums_user && post.owner_or_admin?(mongoid_forums_user)
12
12
  - if can?(:edit_post, post.topic.forum)
13
13
  = link_to "Edit", edit_topic_post_path(post.topic_id, post)
14
14
  - if can?(:destroy_post, post.topic.forum)
@@ -1,4 +1,9 @@
1
1
  %h1 Viewing Topic "#{@topic.name}"
2
+ - if mongoid_forums_admin?
3
+ = link_to t("mongoid_forums.topics.actions.hide.#{@topic.hidden}"), toggle_hide_admin_topic_path(@forum, @topic), :class => "btn"
4
+ = link_to t("mongoid_forums.topics.actions.lock.#{@topic.locked}"), toggle_lock_admin_topic_path(@forum, @topic), :class => "btn"
5
+ = link_to t("mongoid_forums.topics.actions.pin.#{@topic.pinned}"), toggle_pin_admin_topic_path(@forum, @topic), :class => "btn"
6
+
2
7
  - if @topic.can_be_replied_to? && can?(:reply, @topic)
3
8
  = link_to "Reply to topic", new_topic_post_path(@topic)
4
9
  - if mongoid_forums_user && @topic.subscriber?(mongoid_forums_user.id)
@@ -0,0 +1,192 @@
1
+ en:
2
+ mongoid_forums:
3
+ general:
4
+ forum: Forum
5
+ topics: Topics
6
+ topic: Topic
7
+ posts: Posts
8
+ posts_count:
9
+ zero: No posts
10
+ one: 1 post
11
+ other: "%{count} posts"
12
+ flagged_for_spam: Your account has been flagged for spam.
13
+ cannot_create_topic: You cannot create a new topic at this time.
14
+ cannot_create_post: You cannot create a new post at this time.
15
+
16
+ access_denied: "You are not allowed to do that."
17
+ admin:
18
+ area: Admin Area
19
+ welcome: "Welcome to mongoid_forum's Admin Area."
20
+ forum:
21
+ index: Manage Forums
22
+ new: Creating a new forum
23
+ new_link: New Forum
24
+ deleted: The selected forum has been deleted.
25
+ created: This forum has been created.
26
+ not_created: This forum could not be created.
27
+ updated: That forum has been updated.
28
+ not_updated: This forum could not be updated.
29
+ forums:
30
+ edit: Edit
31
+ delete: Delete
32
+ category: Category
33
+ delete_confirm: Are you sure you want to delete this forum?
34
+ index:
35
+ last_post: Last post
36
+ none: None
37
+ group:
38
+ index: Manage Groups
39
+ created: The group was successfully created.
40
+ not_created: Group could not be created.
41
+ deleted: The selected group has been deleted.
42
+ groups:
43
+ show:
44
+ add_member: Add
45
+ category:
46
+ index: Manage Forum Categories
47
+ new: Creating a new Forum Category
48
+ new_link: New Forum Category
49
+ deleted: The selected forum category has been deleted.
50
+ created: This forum category has been created.
51
+ not_created: This forum category could not be created.
52
+ updated: That forum category has been updated.
53
+ not_updated: This forum category could not be updated.
54
+ categories:
55
+ edit: Edit
56
+ delete: Delete
57
+ category: Category
58
+ delete_confirm: Are you sure you want to delete this forum category?
59
+ common:
60
+ pages: Pages
61
+ errors:
62
+ not_signed_in: You must sign in first.
63
+ access_denied: Access denied.
64
+ forum:
65
+ header: "Viewing %{title}"
66
+ forums: Forums
67
+ new: Creating a new forum
68
+ edit: "Editing the %{title} forum"
69
+ topics_count:
70
+ zero: 0 topics
71
+ one: 1 topic
72
+ other: "%{count} topics"
73
+ posts_count:
74
+ zero: 0 posts
75
+ one: 1 post
76
+ other: "%{count} posts"
77
+ moderator_tools: "Moderation Tools"
78
+ forums:
79
+ index:
80
+ title: Forums
81
+ forum: Forum
82
+ views: Views
83
+ last_post: 'Last Post:'
84
+ none: None
85
+ topic:
86
+ headings:
87
+ topic: Topic
88
+ latest: Latest
89
+ posts: Posts
90
+ views: Views
91
+ moderation:
92
+ success: The selected topic has been moderated.
93
+ reply: Reply
94
+ quote: Quote
95
+ delete: Delete
96
+ created: This topic has been created.
97
+ new: Creating a new topic
98
+ edit: Editing topic
99
+ not_created: This topic could not be created.
100
+ deleted: Your topic has been deleted.
101
+ cannot_delete: You cannot delete a topic you do not own.
102
+ updated: This topic has been updated.
103
+ not_updated: This topic could not be updated.
104
+ subscribed: You have subscribed to this topic.
105
+ unsubscribed: You have unsubscribed from this topic.
106
+ none: There are no topics in this forum currently.
107
+ links:
108
+ new: New topic
109
+ back_to_topics: Back to topics
110
+ edit: Edit topic
111
+ not_found: The topic you are looking for could not be found.
112
+ hidden:
113
+ 'true': This topic is now hidden.
114
+ 'false': This topic is now visible.
115
+ locked:
116
+ 'true': This topic is now locked.
117
+ 'false': This topic is now unlocked.
118
+ pinned:
119
+ 'true': This topic is now pinned.
120
+ 'false': This topic is now unpinned.
121
+ topics:
122
+ show:
123
+ reply: Reply
124
+ delete: Delete
125
+ subscribe: Subscribe
126
+ unsubscribe: Unsubscribe
127
+ reply_to_topic: Reply to Topic
128
+ pending_review: This topic is currently pending review. Only the user who created it and moderators can view it.
129
+ actions:
130
+ hide:
131
+ 'true': Show this topic
132
+ 'false': Hide this topic
133
+ lock:
134
+ 'true': Unlock this topic
135
+ 'false': Lock this topic
136
+ pin:
137
+ 'true': Unpin this topic
138
+ 'false': Pin this topic
139
+ post:
140
+ buttons:
141
+ reply: Post Reply
142
+ edit: Edit
143
+ created: Your reply has been posted.
144
+ new: Post reply
145
+ edit: Edit
146
+ not_created: Your reply could not be posted.
147
+ not_created_topic_locked: You cannot reply to a locked topic.
148
+ edited: Your post has been edited.
149
+ not_edited: Your post could not be edited.
150
+ deleted: Your post has been deleted.
151
+ deleted_with_topic: Only post in topic deleted. Topic also deleted.
152
+ cannot_delete: You cannot delete a post you do not own.
153
+ in_reply_to: In reply to
154
+ posts:
155
+ moderation:
156
+ moderate: Moderate
157
+ approve: Approve
158
+ success: The selected posts have been moderated.
159
+ post:
160
+ pending_review: This post is currently pending review. Only the user who posted it and moderators can view it.
161
+ moderation:
162
+ title: "Moderation tools for %{forum}"
163
+ helpers:
164
+ submit:
165
+ forum:
166
+ create: Create Forum
167
+ update: Update Forum
168
+ topic:
169
+ create: Create Topic
170
+ update: Update Topic
171
+ simple_form:
172
+ labels:
173
+ forum:
174
+ title: Title
175
+ description: Description
176
+ topic:
177
+ subject: Subject
178
+ locked: Locked
179
+ pinned: Pinned
180
+ hidden: Hidden
181
+ posts:
182
+ text: Text
183
+ post:
184
+ text: Text
185
+
186
+ # General stuff
187
+ time_ago_in_words: "%{time} ago"
188
+ ago: " ago"
189
+ ago_by: " ago by"
190
+ by: by
191
+ started_by: "Started by "
192
+ are_you_sure: Are you sure?
data/config/routes.rb CHANGED
@@ -14,6 +14,14 @@ MongoidForums::Engine.routes.draw do
14
14
  post '/add_user' => 'groups#add_member', as: :add_user
15
15
  post '/rem_user' => 'groups#remove_member', as: :rem_user
16
16
  end
17
+
18
+ resources :topics do
19
+ member do
20
+ get 'toggle_hide' => 'topics#toggle_hide', :as => 'toggle_hide'
21
+ get 'toggle_lock' => 'topics#toggle_lock', :as => 'toggle_lock'
22
+ get 'toggle_pin' => 'topics#toggle_pin', :as => 'toggle_pin'
23
+ end
24
+ end
17
25
  end
18
26
 
19
27
  root :to => "forums#index"
@@ -1,3 +1,3 @@
1
1
  module MongoidForums
2
- VERSION = "0.0.4"
2
+ VERSION = "0.0.5"
3
3
  end