my_forum 0.0.1.beta32 → 0.0.1.beta33
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/controllers/my_forum/attachments_controller.rb +1 -1
- data/app/controllers/my_forum/posts_controller.rb +2 -2
- data/app/controllers/my_forum/topics_controller.rb +1 -1
- data/app/controllers/my_forum/users_controller.rb +1 -1
- data/app/helpers/my_forum/posts_helper.rb +2 -1
- data/app/models/my_forum/attachment.rb +2 -1
- data/app/models/my_forum/avatar.rb +2 -1
- data/app/views/my_forum/private_messages/show.haml +1 -1
- data/app/views/my_forum/topics/_profile_popover.haml +13 -13
- data/app/views/my_forum/topics/show.haml +2 -7
- data/config/locales/ru.yml +1 -0
- data/lib/my_forum/engine.rb +2 -2
- data/lib/my_forum/version.rb +1 -1
- data/spec/dummy/db/schema.rb +43 -22
- data/spec/dummy/db/test.sqlite3 +0 -0
- data/spec/dummy/log/test.log +3290 -0
- data/spec/dummy/test.db +0 -0
- data/spec/helpers/my_forum/posts_helper_spec.rb +24 -0
- metadata +6 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 42d3c4effdd86a539eb88301254c27338b41e46c
|
4
|
+
data.tar.gz: 6aa22f02793852e3978d20090e4bff5bc22ea810
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ba7c4fe57317a26cf37ca85ac973dd47c41de8601b5353405536b4e34a3be18fee3619dae762db1611a5ee1bf381dbf7f01fc9619c62314b538e8f23b345e8b9
|
7
|
+
data.tar.gz: 327d3b5eea5608aeb07fbb0ea1f1e7796296c7748abe1cb72ae799e68a585ca2612cd44d7a8f3386bc1f08c21facb6d6f1cfcd119ae8b27366e175689a649117
|
@@ -12,7 +12,7 @@ module MyForum
|
|
12
12
|
attachment_ids = []
|
13
13
|
|
14
14
|
params[:files].each do |uploaded_io|
|
15
|
-
next unless Attachment::
|
15
|
+
next unless Attachment::ALLOWED_FILE_CONTENT_TYPE.include? uploaded_io.content_type
|
16
16
|
|
17
17
|
file_name = "#{Time.now.to_i}_#{uploaded_io.original_filename}"
|
18
18
|
File.open(File.join(upload_path, file_name), 'wb') do |file|
|
@@ -14,9 +14,9 @@ module MyForum
|
|
14
14
|
process_attachments(post)
|
15
15
|
end
|
16
16
|
|
17
|
-
last_page = @topic.posts.count / Post::PER_PAGE
|
17
|
+
last_page = (@topic.posts.count.to_f / Post::PER_PAGE).ceil
|
18
18
|
last_page = 1 if last_page == 0
|
19
|
-
redirect_to forum_topic_path(@forum, @topic, page: last_page)
|
19
|
+
redirect_to forum_topic_path(@forum, @topic, page: last_page, go_to_last_post: true)
|
20
20
|
end
|
21
21
|
|
22
22
|
def destroy
|
@@ -12,7 +12,7 @@ module MyForum
|
|
12
12
|
def show
|
13
13
|
@topic = Topic.find(params[:id])
|
14
14
|
check_access_permissions(@topic)
|
15
|
-
@topic_posts = @topic.posts.paginate(per_page:
|
15
|
+
@topic_posts = @topic.posts.paginate(per_page: Post::PER_PAGE, page: params[:page])
|
16
16
|
@new_post = Post.new #TODO if quick_answer_enabled
|
17
17
|
|
18
18
|
@topic.mark_as_read(current_user, @topic_posts.last)
|
@@ -112,7 +112,7 @@ module MyForum
|
|
112
112
|
end
|
113
113
|
|
114
114
|
def upload_avatar(avatar_param)
|
115
|
-
return false unless Avatar::
|
115
|
+
return false unless Avatar::ALLOWED_FILE_CONTENT_TYPE.include? avatar_param.content_type
|
116
116
|
|
117
117
|
current_avatar = current_user.avatar
|
118
118
|
upload_path = File.join(Avatar::UPLOAD_PATH, current_user.id.to_s)
|
@@ -13,7 +13,8 @@ module MyForum
|
|
13
13
|
text.gsub!(/\[\/img\]/i, '" />')
|
14
14
|
|
15
15
|
# Youtube
|
16
|
-
|
16
|
+
#[?!\s]
|
17
|
+
text.gsub!(/(?:https?:\/\/)?(?:www\.)?youtu(?:\.be|be\.com)\/(?:watch\?v=)?(?<video_code>[\w-]{10,})/i) do |match|
|
17
18
|
"<iframe width='560' height='315' src='https://www.youtube.com/embed/#{$~[:video_code]}' frameborder='0' allowfullscreen></iframe>"
|
18
19
|
end
|
19
20
|
|
@@ -6,6 +6,7 @@ module MyForum
|
|
6
6
|
UPLOAD_PATH = File.join(Rails.public_path, 'uploads', 'attachments')
|
7
7
|
URL = File.join('/uploads', 'attachments')
|
8
8
|
|
9
|
-
ALLOWED_FILE_EXTENSIONS
|
9
|
+
ALLOWED_FILE_EXTENSIONS = %w(.jpg .jpeg .png .gif)
|
10
|
+
ALLOWED_FILE_CONTENT_TYPE = %w(image/jpeg image/png image/gif)
|
10
11
|
end
|
11
12
|
end
|
@@ -5,6 +5,7 @@ module MyForum
|
|
5
5
|
UPLOAD_PATH = File.join(Rails.public_path, 'uploads', 'avatars')
|
6
6
|
URL = File.join('/uploads', 'avatars')
|
7
7
|
|
8
|
-
ALLOWED_FILE_EXTENSIONS
|
8
|
+
ALLOWED_FILE_EXTENSIONS = %w(.jpg .jpeg .png .gif)
|
9
|
+
ALLOWED_FILE_CONTENT_TYPE = %w(image/jpeg image/png image/gif)
|
9
10
|
end
|
10
11
|
end
|
@@ -1,22 +1,22 @@
|
|
1
1
|
.profile-popover
|
2
2
|
.row
|
3
|
-
.col-sm-5
|
4
|
-
|
5
|
-
.col-sm-4
|
6
|
-
= user.posts_count
|
3
|
+
.col-sm-5= t('my_forum.profile_popover.posts_count')
|
4
|
+
.col-sm-4= user.posts_count
|
7
5
|
|
8
6
|
.row
|
9
|
-
.col-sm-5
|
10
|
-
|
11
|
-
.col-sm-4
|
12
|
-
= time(user.created_at)
|
7
|
+
.col-sm-5= t('my_forum.profile_popover.registered_at')
|
8
|
+
.col-sm-4= time(user.created_at)
|
13
9
|
|
14
10
|
.row
|
15
|
-
.col-sm-5
|
16
|
-
= t('my_forum.profile_popover.status')
|
11
|
+
.col-sm-5= t('my_forum.profile_popover.status')
|
17
12
|
.col-sm-4
|
18
|
-
= is_online_user?(user.login)
|
13
|
+
- is_online = is_online_user?(user.login)
|
14
|
+
= is_online ? t('my_forum.profile_popover.online') : t('my_forum.profile_popover.offline')
|
15
|
+
|
16
|
+
- unless
|
17
|
+
.row
|
18
|
+
.col-sm-5= t('my_forum.profile_popover.last_online')
|
19
|
+
.col-sm-4= time(user.updated_at)
|
19
20
|
|
20
21
|
.row.pm
|
21
|
-
.col-sm-12
|
22
|
-
= link_to t('my_forum.profile_popover.write_pm'), new_private_message_path(to: user.login), class: 'btn btn-xs btn-warning'
|
22
|
+
.col-sm-12= link_to t('my_forum.profile_popover.write_pm'), new_private_message_path(to: user.login), class: 'btn btn-xs btn-warning'
|
@@ -13,7 +13,7 @@
|
|
13
13
|
.box
|
14
14
|
= render partial: 'post', collection: @topic_posts
|
15
15
|
|
16
|
-
.row
|
16
|
+
.row{ id: 'pagination' }
|
17
17
|
= will_paginate @topic_posts
|
18
18
|
|
19
19
|
- if is_admin?
|
@@ -56,9 +56,4 @@
|
|
56
56
|
setTimeout (-> $(_this).popover("hide") if !$(".popover:hover").length ), 300
|
57
57
|
)
|
58
58
|
|
59
|
-
|
60
|
-
container = $('body')
|
61
|
-
scroll_to = $('post_number_' + "#{params[:show_post]}")
|
62
|
-
scroll_to = 'post_number_' + "#{params[:show_post]}"
|
63
|
-
|
64
|
-
$('body').scrollTo(scroll_to)
|
59
|
+
$('body').scrollTo('#pagination')
|
data/config/locales/ru.yml
CHANGED
data/lib/my_forum/engine.rb
CHANGED
@@ -6,8 +6,8 @@ module MyForum
|
|
6
6
|
require 'bootstrap-sass'
|
7
7
|
|
8
8
|
config.after_initialize do
|
9
|
-
ActionView::Base.sanitized_allowed_tags = %w(strong em a img br p i pre div span)
|
10
|
-
ActionView::Base.sanitized_allowed_attributes = %w(href title class src)
|
9
|
+
ActionView::Base.sanitized_allowed_tags = %w(strong em a img br p i pre div span iframe)
|
10
|
+
ActionView::Base.sanitized_allowed_attributes = %w(href title class src width height)
|
11
11
|
end
|
12
12
|
|
13
13
|
config.generators do |g|
|
data/lib/my_forum/version.rb
CHANGED
data/spec/dummy/db/schema.rb
CHANGED
@@ -11,12 +11,12 @@
|
|
11
11
|
#
|
12
12
|
# It's strongly recommended that you check this file into your version control system.
|
13
13
|
|
14
|
-
ActiveRecord::Schema.define(version:
|
14
|
+
ActiveRecord::Schema.define(version: 20151221205045) do
|
15
15
|
|
16
16
|
create_table "my_forum_categories", force: :cascade do |t|
|
17
17
|
t.string "name"
|
18
|
-
t.datetime "created_at"
|
19
|
-
t.datetime "updated_at"
|
18
|
+
t.datetime "created_at", null: false
|
19
|
+
t.datetime "updated_at", null: false
|
20
20
|
end
|
21
21
|
|
22
22
|
create_table "my_forum_category_permissions", force: :cascade do |t|
|
@@ -26,14 +26,22 @@ ActiveRecord::Schema.define(version: 20151012095554) do
|
|
26
26
|
t.datetime "updated_at", null: false
|
27
27
|
end
|
28
28
|
|
29
|
+
create_table "my_forum_emoticons", force: :cascade do |t|
|
30
|
+
t.string "file_name"
|
31
|
+
t.string "code"
|
32
|
+
t.boolean "is_active", default: true
|
33
|
+
t.datetime "created_at", null: false
|
34
|
+
t.datetime "updated_at", null: false
|
35
|
+
end
|
36
|
+
|
29
37
|
create_table "my_forum_forums", force: :cascade do |t|
|
30
38
|
t.integer "category_id"
|
31
39
|
t.string "name"
|
32
40
|
t.string "description"
|
33
41
|
t.integer "topics_count"
|
34
42
|
t.integer "posts_count"
|
35
|
-
t.datetime "created_at"
|
36
|
-
t.datetime "updated_at"
|
43
|
+
t.datetime "created_at", null: false
|
44
|
+
t.datetime "updated_at", null: false
|
37
45
|
end
|
38
46
|
|
39
47
|
create_table "my_forum_images", force: :cascade do |t|
|
@@ -50,22 +58,25 @@ ActiveRecord::Schema.define(version: 20151012095554) do
|
|
50
58
|
t.integer "user_id"
|
51
59
|
t.integer "topic_id"
|
52
60
|
t.integer "post_id"
|
53
|
-
t.datetime "created_at"
|
54
|
-
t.datetime "updated_at"
|
61
|
+
t.datetime "created_at", null: false
|
62
|
+
t.datetime "updated_at", null: false
|
55
63
|
end
|
56
64
|
|
57
65
|
create_table "my_forum_posts", force: :cascade do |t|
|
58
66
|
t.integer "user_id"
|
59
67
|
t.integer "topic_id"
|
60
68
|
t.integer "forum_id"
|
61
|
-
t.text "text"
|
62
|
-
t.datetime "created_at"
|
63
|
-
t.datetime "updated_at"
|
69
|
+
t.text "text", limit: 4294967295
|
70
|
+
t.datetime "created_at", null: false
|
71
|
+
t.datetime "updated_at", null: false
|
72
|
+
t.boolean "is_deleted", default: false
|
64
73
|
end
|
65
74
|
|
66
75
|
create_table "my_forum_private_messages", force: :cascade do |t|
|
67
76
|
t.integer "sender_id"
|
77
|
+
t.string "sender_login"
|
68
78
|
t.integer "recipient_id"
|
79
|
+
t.string "recipient_login"
|
69
80
|
t.boolean "sender_deleted", default: false
|
70
81
|
t.boolean "recipient_deleted", default: false
|
71
82
|
t.boolean "unread", default: true
|
@@ -79,8 +90,8 @@ ActiveRecord::Schema.define(version: 20151012095554) do
|
|
79
90
|
t.string "name"
|
80
91
|
t.string "color"
|
81
92
|
t.text "rights"
|
82
|
-
t.datetime "created_at"
|
83
|
-
t.datetime "updated_at"
|
93
|
+
t.datetime "created_at", null: false
|
94
|
+
t.datetime "updated_at", null: false
|
84
95
|
end
|
85
96
|
|
86
97
|
create_table "my_forum_topics", force: :cascade do |t|
|
@@ -94,44 +105,54 @@ ActiveRecord::Schema.define(version: 20151012095554) do
|
|
94
105
|
t.boolean "pinned", default: false
|
95
106
|
t.boolean "closed", default: false
|
96
107
|
t.boolean "deleted", default: false
|
97
|
-
t.datetime "created_at"
|
98
|
-
t.datetime "updated_at"
|
108
|
+
t.datetime "created_at", null: false
|
109
|
+
t.datetime "updated_at", null: false
|
110
|
+
t.boolean "is_deleted", default: false
|
99
111
|
end
|
100
112
|
|
101
113
|
create_table "my_forum_user_group_links", force: :cascade do |t|
|
102
114
|
t.integer "user_id"
|
103
115
|
t.integer "user_group_id"
|
104
|
-
t.datetime "created_at"
|
105
|
-
t.datetime "updated_at"
|
116
|
+
t.datetime "created_at", null: false
|
117
|
+
t.datetime "updated_at", null: false
|
106
118
|
end
|
107
119
|
|
108
120
|
create_table "my_forum_user_groups", force: :cascade do |t|
|
109
121
|
t.string "name"
|
110
122
|
t.string "html_color"
|
111
123
|
t.boolean "default", default: false
|
112
|
-
t.datetime "created_at"
|
113
|
-
t.datetime "updated_at"
|
124
|
+
t.datetime "created_at", null: false
|
125
|
+
t.datetime "updated_at", null: false
|
114
126
|
end
|
115
127
|
|
116
128
|
create_table "my_forum_user_roles", force: :cascade do |t|
|
117
129
|
t.integer "user_id"
|
118
130
|
t.integer "role_id"
|
119
|
-
t.datetime "created_at"
|
120
|
-
t.datetime "updated_at"
|
131
|
+
t.datetime "created_at", null: false
|
132
|
+
t.datetime "updated_at", null: false
|
121
133
|
end
|
122
134
|
|
123
135
|
create_table "my_forum_users", force: :cascade do |t|
|
124
136
|
t.string "login"
|
125
137
|
t.string "password"
|
126
138
|
t.string "salt"
|
139
|
+
t.string "real_name"
|
140
|
+
t.integer "gender"
|
141
|
+
t.date "birthdate"
|
142
|
+
t.text "signature"
|
143
|
+
t.text "avatar_url"
|
144
|
+
t.string "location"
|
145
|
+
t.string "user_ip"
|
146
|
+
t.text "additional_info"
|
127
147
|
t.string "email"
|
128
148
|
t.integer "posts_count"
|
149
|
+
t.boolean "activated", default: false
|
129
150
|
t.boolean "is_admin", default: false
|
130
151
|
t.boolean "is_moderator", default: false
|
131
152
|
t.boolean "is_deleted", default: false
|
132
153
|
t.boolean "permanently_banned", default: false
|
133
|
-
t.datetime "created_at"
|
134
|
-
t.datetime "updated_at"
|
154
|
+
t.datetime "created_at", null: false
|
155
|
+
t.datetime "updated_at", null: false
|
135
156
|
t.datetime "last_logged_in"
|
136
157
|
end
|
137
158
|
|
data/spec/dummy/db/test.sqlite3
CHANGED
Binary file
|