my_forum 0.0.1.beta2 → 0.0.1.beta3

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 (53) hide show
  1. checksums.yaml +4 -4
  2. data/README.rdoc +9 -1
  3. data/app/assets/images/my_forum/smiles/acute.gif +0 -0
  4. data/app/assets/images/my_forum/smiles/aggressive.gif +0 -0
  5. data/app/assets/images/my_forum/smiles/beee.gif +0 -0
  6. data/app/assets/images/my_forum/smiles/blum2.gif +0 -0
  7. data/app/assets/images/my_forum/smiles/blush2.gif +0 -0
  8. data/app/assets/images/my_forum/smiles/cray.gif +0 -0
  9. data/app/assets/images/my_forum/smiles/dirol.gif +0 -0
  10. data/app/assets/images/my_forum/smiles/download.gif +0 -0
  11. data/app/assets/images/my_forum/smiles/i-m_so_happy.gif +0 -0
  12. data/app/assets/images/my_forum/smiles/ireful2.gif +0 -0
  13. data/app/assets/javascripts/my_forum/application.js +3 -0
  14. data/app/assets/javascripts/my_forum/jquery.scrollTo.min.js +7 -0
  15. data/app/assets/javascripts/my_forum/jquery.selection.js +354 -0
  16. data/app/assets/javascripts/my_forum/my_forum.js.coffee +38 -0
  17. data/app/assets/stylesheets/my_forum/application.css.scss +12 -0
  18. data/app/assets/stylesheets/my_forum/posts.css.scss +5 -0
  19. data/app/assets/stylesheets/my_forum/topics.css.scss +4 -0
  20. data/app/assets/stylesheets/my_forum/welcome.css.scss +1 -0
  21. data/app/controllers/my_forum/application_controller.rb +7 -0
  22. data/app/controllers/my_forum/attachments_controller.rb +23 -0
  23. data/app/controllers/my_forum/forums_controller.rb +1 -1
  24. data/app/controllers/my_forum/images_controller.rb +7 -0
  25. data/app/controllers/my_forum/posts_controller.rb +15 -1
  26. data/app/controllers/my_forum/private_messages_controller.rb +1 -1
  27. data/app/controllers/my_forum/topics_controller.rb +3 -0
  28. data/app/helpers/my_forum/posts_helper.rb +15 -6
  29. data/app/helpers/my_forum/users_helper.rb +2 -0
  30. data/app/models/my_forum/attachment.rb +8 -0
  31. data/app/models/my_forum/avatar.rb +4 -0
  32. data/app/models/my_forum/image.rb +5 -0
  33. data/app/models/my_forum/post.rb +2 -0
  34. data/app/models/my_forum/topic.rb +10 -9
  35. data/app/models/my_forum/user.rb +1 -0
  36. data/app/views/layouts/my_forum/_user_navbar.html.haml +1 -0
  37. data/app/views/my_forum/forums/_topic_subject.html.haml +2 -2
  38. data/app/views/my_forum/private_messages/inbox.haml +4 -2
  39. data/app/views/my_forum/topics/_post.haml +6 -2
  40. data/app/views/my_forum/topics/_quick_answer.haml +80 -2
  41. data/app/views/my_forum/topics/show.haml +11 -3
  42. data/config/locales/ru.yml +2 -0
  43. data/config/routes.rb +5 -0
  44. data/db/migrate/20141117122751_create_my_forum_posts.rb +1 -1
  45. data/db/migrate/20141118131215_create_my_forum_users.rb +6 -5
  46. data/db/migrate/20151012095554_create_my_forum_images.rb +12 -0
  47. data/lib/my_forum/engine.rb +1 -1
  48. data/lib/my_forum/version.rb +1 -1
  49. data/lib/tasks/my_forum_tasks.rake +131 -4
  50. data/spec/controllers/my_forum/attachments_controller_spec.rb +7 -0
  51. data/spec/controllers/my_forum/images_controller_controller_spec.rb +7 -0
  52. data/spec/models/my_forum/image_spec.rb +7 -0
  53. metadata +40 -2
@@ -8,6 +8,8 @@ module MyForum
8
8
 
9
9
  # Display user avatar
10
10
  def user_avatar(user)
11
+ return image_tag(user.avatar, class: 'user-avatar') unless user.avatar.blank?
12
+
11
13
  image_tag('blank_avatar.png', class: 'user-avatar')
12
14
  end
13
15
 
@@ -0,0 +1,8 @@
1
+ module MyForum
2
+ class Attachment < Image
3
+ belongs_to :user, class_name: 'MyForum::User'
4
+ belongs_to :post, class_name: 'MyForum::Post'
5
+
6
+ UPLOAD_PATH = File.join(Rails.public_path, 'uploads', 'attachments')
7
+ end
8
+ end
@@ -0,0 +1,4 @@
1
+ module MyForum
2
+ class Avatar < Image
3
+ end
4
+ end
@@ -0,0 +1,5 @@
1
+ module MyForum
2
+ class Image < ActiveRecord::Base
3
+ belongs_to :user
4
+ end
5
+ end
@@ -5,6 +5,8 @@ module MyForum
5
5
 
6
6
  after_create :update_topic_latest_post
7
7
 
8
+ PER_PAGE = 15
9
+
8
10
  private
9
11
 
10
12
  def update_topic_latest_post
@@ -1,7 +1,7 @@
1
1
  module MyForum
2
2
  class Topic < ActiveRecord::Base
3
- has_many :posts, :counter_cache => true, dependent: :destroy
4
- belongs_to :forum, :counter_cache => true
3
+ has_many :posts, counter_cache: true, dependent: :destroy
4
+ belongs_to :forum, counter_cache: true
5
5
  belongs_to :user
6
6
 
7
7
  def info
@@ -16,18 +16,19 @@ module MyForum
16
16
  end
17
17
 
18
18
  def unread?(current_user, last_post)
19
- return true unless current_user
20
-
21
- log = LogReadMark.where(user_id: current_user.id, topic_id: self.id, post_id: last_post.id).count
22
- log >= 1 ? false : true
19
+ return false unless current_user
20
+ !LogReadMark.where(user_id: current_user.id, topic_id: self.id, post_id: last_post.id).present?
23
21
  end
24
22
 
25
- def mark_as_read(current_user, last_topic)
23
+ def mark_as_read(current_user, last_post)
26
24
  return true unless current_user
27
25
 
28
26
  log = LogReadMark.find_or_create_by(user_id: current_user.id, topic_id: self.id)
29
- log.post_id = last_topic.id
30
- log.save
27
+
28
+ if last_post.id.to_i > log.post_id.to_i
29
+ log.post_id = last_post.id
30
+ log.save
31
+ end
31
32
  end
32
33
  end
33
34
  end
@@ -3,6 +3,7 @@ module MyForum
3
3
  require 'digest'
4
4
 
5
5
  has_many :posts, class_name: 'MyForum::Post'
6
+ has_many :attachments
6
7
  has_many :user_roles
7
8
  has_many :roles, through: :user_roles
8
9
  has_many :user_group_links
@@ -1,5 +1,6 @@
1
1
  .col-md-6
2
2
  = "#{t('.welcome_to_forum')}, #{current_user.login}"
3
+ = current_user.id if Rails.env.development?
3
4
 
4
5
  .col-md-6
5
6
  .btn-group.pull-right{ role: 'group' }
@@ -11,5 +11,5 @@
11
11
  = link_to topic.name.html_safe, forum_topic_path(forum, topic)
12
12
  .row
13
13
  .col-md-12.topic_description
14
- =topic.description.html_safe
15
- =# t('.author', author: topic.owner.login)
14
+ =# topic.description.html_safe
15
+ = t('.author', author: topic.owner.login)
@@ -19,6 +19,8 @@
19
19
  - @private_messages.each do |message|
20
20
  %tr
21
21
  - html_class = 'unread' if message.unread?
22
- %td=link_to message.created_at, private_message_url(message), class: html_class
22
+ %td=link_to message.created_at.strftime('%d-%b-%y %H:%M'), private_message_url(message), class: html_class
23
23
  %td=link_to message.sender_login, private_message_url(message), class: html_class
24
- %td=link_to message.subject, private_message_url(message), class: html_class
24
+ %td=link_to message.subject, private_message_url(message), class: html_class
25
+
26
+ = will_paginate @private_messages
@@ -1,8 +1,12 @@
1
- .row.post-header
2
- .col-md-12.post_from_user_login
1
+ - post_counter += 1
2
+
3
+ .row.post-header{ id: "post_number_#{post_counter}"}
4
+ .col-md-10.post_from_user_login
3
5
  - user_login = post.user.try(:login)
4
6
  = online_user_marker(user_login)
5
7
  = user_login
8
+ .col-md-1.post_number.pull-right
9
+ =link_to t('.number', post_number: post_counter), forum_topic_path(@forum, post.topic, show_post: post_counter)
6
10
  .row
7
11
  .col-md-2
8
12
  = render 'user_info', post: post
@@ -1,8 +1,86 @@
1
1
  .row
2
2
  .col-md-10.col-md-offset-1
3
+ .text-editor-buttons{ data: { apply_to: 'quick_answer_textarea' } }
4
+ %div.btn-group
5
+ =link_to '#', class: 'btn btn-default btn-sm' do
6
+ %i{ class: 'fa fa-bold' }
7
+ =link_to '#', class: 'btn btn-default btn-sm' do
8
+ %i{ class: 'fa fa-italic' }
9
+ =link_to '#', class: 'btn btn-default btn-sm' do
10
+ %i{ class: 'fa fa-strikethrough' }
11
+ =link_to '#', class: 'btn btn-default btn-sm' do
12
+ %i{ class: 'fa fa-underline' }
13
+
14
+ -# %div.btn-group
15
+ -# =link_to '#', class: 'btn btn-default btn-sm' do
16
+ -# %i{ class: 'fa fa-align-left' }
17
+ -# =link_to '#', class: 'btn btn-default btn-sm' do
18
+ -# %i{ class: 'fa fa-align-center' }
19
+ -# =link_to '#', class: 'btn btn-default btn-sm' do
20
+ -# %i{ class: 'fa fa-align-right' }
21
+ -# =link_to '#', class: 'btn btn-default btn-sm' do
22
+ -# %i{ class: 'fa fa-align-justify' }
23
+
24
+ %div.btn-group
25
+ =link_to '#', class: 'btn btn-default btn-sm', data: { toggle: 'modal' } do
26
+ %i{ class: 'fa fa-camera-retro' }
27
+
28
+ =link_to '#', class: 'btn btn-default btn-sm' do
29
+ %i{ class: 'fa fa-video-camera' }
30
+ =link_to '#', class: 'btn btn-default btn-sm' do
31
+ %i{ class: 'fa fa-link' }
32
+
33
+ %div.btn-group.smiles
34
+ - smiles = %w(acute aggressive beee blum2 blush2 cray dirol download i-m_so_happy ireful2)
35
+ - smiles.each do |smile_file|
36
+ =link_to '#', class: 'btn btn-default btn-sm' do
37
+ %img{ src: asset_path("my_forum/smiles/#{smile_file}.gif"), class: 'smile' }
38
+
3
39
  = form_for @new_post, url: forum_topic_posts_path(forum, topic), role: 'form' do |form|
4
- .form-group= form.text_area :text, class: 'form-control'
40
+ .form-group= form.text_area :text, class: 'form-control quick-answer', id: 'quick_answer_textarea'
5
41
 
6
42
  .pull-right
7
43
  = form.submit t('.quick_answer'), class: 'btn btn-primary'
8
- = link_to t('.advanced_answer'), '#', class: 'btn btn-primary'
44
+ =# link_to t('.advanced_answer'), '#', class: 'btn btn-primary'
45
+
46
+
47
+ #add_photo.modal.fade
48
+ .modal-dialog
49
+ .modal-content
50
+ .modal-header
51
+ %button.close{ type: 'button', aria_label: 'Close', data: { dismiss: 'modal' } }
52
+ %span{ aria_hidden: "true" }
53
+ &times;
54
+ %h4.modal-title
55
+ = t('.add_new_photo')
56
+ .modal-body
57
+ = form_for MyForum::Attachment.new, url: attachments_path, multipart: true, remote: true do |f|
58
+ = f.file_field :file
59
+
60
+ #loaded-content
61
+
62
+ :coffee
63
+ $('#attachment_file').change ->
64
+ file_data = $('#attachment_file').prop('files')[0]
65
+ form_data = new FormData()
66
+ form_data.append('file', file_data)
67
+
68
+ $.ajax({
69
+ url: "#{attachments_path}"
70
+ dataType: 'html'
71
+ cache: false
72
+ contentType: false
73
+ processData: false
74
+ data: form_data
75
+ type: 'post',
76
+ success: (data, textStatus, jqXHR) ->
77
+ response = $.parseJSON(data)
78
+ $('#quick_answer_textarea').append('[attachment=' + response.attachment_id + ']')
79
+ })
80
+
81
+
82
+ .modal-footer
83
+ %button.btn.btn-default{ type: 'button', aria_label: 'Close', data: { dismiss: 'modal' } }
84
+ Close
85
+ %button.btn.btn-primary{ type: 'button' }
86
+ Save changes
@@ -11,11 +11,19 @@
11
11
  =t('.messages_in_topic', count: @topic.posts.count)
12
12
  .row.post-list-container
13
13
  .box
14
- - @topic_posts.each do |post|
15
- = render 'post', post: post
14
+ = render partial: 'post', collection: @topic_posts
16
15
 
17
- = will_paginate @topic_posts
16
+ .row
17
+ = will_paginate @topic_posts
18
18
 
19
19
  - if can_quick_answer?(@topic)
20
20
  #quick_answer
21
21
  = render 'quick_answer', forum: @forum, topic: @topic
22
+
23
+ :coffee
24
+ $(document).on 'ready page:load', ->
25
+ container = $('body')
26
+ scroll_to = $('post_number_' + "#{params[:show_post]}")
27
+ scroll_to = 'post_number_' + "#{params[:show_post]}"
28
+
29
+ $('body').scrollTo(scroll_to);
@@ -63,6 +63,7 @@ ru:
63
63
  advanced_answer: 'Расширенный ответ'
64
64
  post:
65
65
  sent: "Отправленно: %{datetime}"
66
+ number: "Сообщение #%{post_number}"
66
67
 
67
68
  users:
68
69
  signin:
@@ -116,6 +117,7 @@ ru:
116
117
  will_paginate:
117
118
  previous_label: 'Назад'
118
119
  next_label: 'Вперед'
120
+ page_gap: ''
119
121
 
120
122
 
121
123
  activerecord:
data/config/routes.rb CHANGED
@@ -8,11 +8,16 @@ MyForum::Engine.routes.draw do
8
8
  match 'unread_topics', to: 'forums#unread_topics', via: [:get], as: :unread_topics
9
9
  match 'mark_all_as_read', to: 'forums#mark_all_as_read', via: [:get], as: :mark_all_as_read
10
10
 
11
+ resources :images
12
+ resources :avatars
13
+ resources :attachments
14
+
11
15
  resources :users do
12
16
  collection do
13
17
  get :autocomplete
14
18
  end
15
19
  end
20
+
16
21
  resources :private_messages
17
22
 
18
23
  resources :forums, only: [:index, :show] do
@@ -4,7 +4,7 @@ class CreateMyForumPosts < ActiveRecord::Migration
4
4
  t.integer :user_id
5
5
  t.integer :topic_id
6
6
  t.integer :forum_id
7
- t.text :text
7
+ t.text :text, :limit => 4294967295
8
8
  t.timestamps null: false
9
9
  end
10
10
  end
@@ -7,17 +7,18 @@ class CreateMyForumUsers < ActiveRecord::Migration
7
7
  t.string :real_name
8
8
  t.integer :gender
9
9
  t.date :birthdate
10
- t.string :signature
10
+ t.text :signature
11
11
  t.string :avatar
12
12
  t.string :location
13
13
  t.string :user_ip
14
14
  t.text :additional_info
15
15
  t.string :email
16
16
  t.integer :posts_count
17
- t.boolean :is_admin, default: false
18
- t.boolean :is_moderator, default: false
19
- t.boolean :is_deleted, default: false
20
- t.boolean :permanently_banned, default: false
17
+ t.boolean :activated, default: false
18
+ t.boolean :is_admin, default: false
19
+ t.boolean :is_moderator, default: false
20
+ t.boolean :is_deleted, default: false
21
+ t.boolean :permanently_banned, default: false
21
22
  t.timestamps null: false
22
23
  t.timestamp :last_logged_in
23
24
  end
@@ -0,0 +1,12 @@
1
+ class CreateMyForumImages < ActiveRecord::Migration
2
+ def change
3
+ create_table :my_forum_images do |t|
4
+ t.integer :user_id
5
+ t.integer :post_id
6
+ t.string :file_name
7
+ t.integer :file_size
8
+ t.string :type
9
+ t.timestamps null: false
10
+ end
11
+ end
12
+ end
@@ -2,7 +2,7 @@ module MyForum
2
2
  class Engine < ::Rails::Engine
3
3
  isolate_namespace MyForum
4
4
 
5
- require "jquery-rails"
5
+ require 'jquery-rails'
6
6
  require 'bootstrap-sass'
7
7
 
8
8
  config.generators do |g|
@@ -1,3 +1,3 @@
1
1
  module MyForum
2
- VERSION = "0.0.1.beta2"
2
+ VERSION = "0.0.1.beta3"
3
3
  end
@@ -1,4 +1,131 @@
1
- # desc "Explaining what the task does"
2
- # task :my_forum do
3
- # # Task goes here
4
- # end
1
+ namespace :my_forum do
2
+ namespace :import do
3
+ namespace :smf do
4
+
5
+ $connection = Mysql2::Client.new Rails.configuration.database_configuration['smf_import']
6
+
7
+ desc "Import Boards"
8
+ task boards: :environment do
9
+ MyForum::Category.delete_all
10
+ MyForum::Forum.delete_all
11
+
12
+ sql = <<-SQL
13
+ SELECT
14
+ `smf_categories`.`name` AS category_name,
15
+ `smf_boards`.`name` AS board_name,
16
+ `smf_boards`.`description` AS board_description
17
+ FROM smf_boards
18
+ INNER JOIN `smf_categories` ON `smf_boards`.`id_cat` = `smf_categories`.`id_cat`
19
+ SQL
20
+
21
+ result = $connection.query sql
22
+ result.each do |row|
23
+ category = MyForum::Category.find_or_create_by(name: row['category_name'])
24
+ category.forums.create(name: row['board_name'], description: row['board_description'])
25
+ end
26
+ end
27
+
28
+ desc "Import Users"
29
+ task users: :environment do
30
+ MyForum::User.destroy_all
31
+
32
+ sql = "SELECT member_name, date_registered, real_name, email_address, personal_text, birthdate, website_title, website_url, signature, avatar, is_activated FROM smf_members;"
33
+ result = $connection.query sql
34
+ result.each do |row|
35
+ begin
36
+ date_registered = Time.at(row['date_registered'].to_i) rescue nil
37
+ user = MyForum::User.create!(
38
+ login: row['member_name'],
39
+ email: row['email_address'],
40
+ real_name: row['real_name'],
41
+ birthdate: row['birthdate'],
42
+ signature: row['signature'],
43
+ avatar: row['avatar'],
44
+ created_at: date_registered,
45
+ additional_info: {
46
+ personal_text: row['personal_text'],
47
+ website_title: row['website_title'],
48
+ website_url: row['website_url'],
49
+ is_activated: row['is_activated']
50
+ })
51
+ rescue => e
52
+ print e
53
+ end
54
+ end
55
+ end
56
+
57
+ desc "Import Topics and Posts"
58
+ task topics: :environment do
59
+ MyForum::Topic.delete_all
60
+ MyForum::Post.delete_all
61
+
62
+ sql = <<-SQL
63
+ SELECT
64
+ `smf_boards`.`name` AS board_name, `smf_messages`.`poster_email`, `smf_messages`.`poster_name`, `smf_messages`.`body`,
65
+ `smf_messages`.`subject`, `smf_messages`.`poster_time`, `smf_messages`.`id_topic`
66
+ FROM `smf_messages`
67
+ INNER JOIN `smf_boards` ON `smf_messages`.`id_board` = `smf_boards`.`id_board`
68
+ ORDER BY `id_msg` ASC, `id_topic` ASC;
69
+ SQL
70
+ result = $connection.query sql
71
+ result.each do |row|
72
+ begin
73
+ user = MyForum::User.find_by_email(row['poster_email']) || MyForum::User.find_by_login(row['poster_name'])
74
+ user = MyForum::User.create!(login: row['poster_name'], email: row['poster_email'], is_deleted: true) unless user
75
+
76
+ forum = MyForum::Forum.find_or_create_by(name: row['board_name'])
77
+
78
+ # smf does not uses description field, so i use it temponary while import process
79
+ unless topic = MyForum::Topic.where(description: row['id_topic']).first
80
+ topic = forum.topics.create!(name: row['subject'], description: row['id_topic'])
81
+ end
82
+
83
+ post_time = Time.at(row['poster_time'].to_i)
84
+ topic.posts.create!(user: user, text: row['body'], forum_id: forum.id, created_at: post_time, updated_at: post_time)
85
+ rescue => e
86
+ print e
87
+ end
88
+ end
89
+ MyForum::Topic.update_all(description: nil)
90
+
91
+ end
92
+
93
+ desc "Import Private Messages"
94
+ task pms: :environment do
95
+ MyForum::PrivateMessage.delete_all
96
+
97
+ sql = <<-SQL
98
+ SELECT
99
+ smf_personal_messages.msgtime, smf_personal_messages.subject, smf_personal_messages.body, smf_personal_messages.from_name,
100
+ smf_pm_recipients.id_member as to_member, smf_members.member_name
101
+ FROM smf_personal_messages
102
+ LEFT JOIN smf_pm_recipients ON smf_personal_messages.id_pm = smf_pm_recipients.id_pm
103
+ LEFT JOIN smf_members ON smf_members.id_member = smf_pm_recipients.id_member
104
+ SQL
105
+
106
+ result = $connection.query sql
107
+ result.each do |row|
108
+ sender = MyForum::User.find_by_login(row['from_name'])
109
+ recipient = MyForum::User.find_by_login(row['member_name'])
110
+ next unless sender and recipient
111
+
112
+ pm_time = Time.at(row['msgtime'].to_i)
113
+
114
+ MyForum::PrivateMessage.create!(
115
+ sender_id: sender.id,
116
+ sender_login: sender.login,
117
+ recipient_id: recipient.id,
118
+ recipient_login: recipient.login,
119
+ sender_deleted: false,
120
+ recipient_deleted: false,
121
+ unread: false,
122
+ subject: row['subject'],
123
+ body: row['body'],
124
+ created_at: pm_time,
125
+ updated_at: pm_time)
126
+ end
127
+
128
+ end
129
+ end
130
+ end
131
+ end
@@ -0,0 +1,7 @@
1
+ require 'rails_helper'
2
+
3
+ module MyForum
4
+ RSpec.describe AttachmentsController, type: :controller do
5
+
6
+ end
7
+ end
@@ -0,0 +1,7 @@
1
+ require 'rails_helper'
2
+
3
+ module MyForum
4
+ RSpec.describe ImagesControllerController, type: :controller do
5
+
6
+ end
7
+ end
@@ -0,0 +1,7 @@
1
+ require 'rails_helper'
2
+
3
+ module MyForum
4
+ RSpec.describe Image, type: :model do
5
+ pending "add some examples to (or delete) #{__FILE__}"
6
+ end
7
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: my_forum
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1.beta2
4
+ version: 0.0.1.beta3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Vitaly Omelchenko
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-03-25 00:00:00.000000000 Z
11
+ date: 2015-11-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -108,6 +108,20 @@ dependencies:
108
108
  - - "~>"
109
109
  - !ruby/object:Gem::Version
110
110
  version: 3.0.6
111
+ - !ruby/object:Gem::Dependency
112
+ name: font-awesome-sass
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :runtime
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ">="
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
111
125
  description: Simple forum engine.
112
126
  email:
113
127
  - prosto.vint@gmail.com
@@ -118,6 +132,16 @@ files:
118
132
  - MIT-LICENSE
119
133
  - README.rdoc
120
134
  - Rakefile
135
+ - app/assets/images/my_forum/smiles/acute.gif
136
+ - app/assets/images/my_forum/smiles/aggressive.gif
137
+ - app/assets/images/my_forum/smiles/beee.gif
138
+ - app/assets/images/my_forum/smiles/blum2.gif
139
+ - app/assets/images/my_forum/smiles/blush2.gif
140
+ - app/assets/images/my_forum/smiles/cray.gif
141
+ - app/assets/images/my_forum/smiles/dirol.gif
142
+ - app/assets/images/my_forum/smiles/download.gif
143
+ - app/assets/images/my_forum/smiles/i-m_so_happy.gif
144
+ - app/assets/images/my_forum/smiles/ireful2.gif
121
145
  - app/assets/javascripts/my_forum/admin/categories.js.coffee
122
146
  - app/assets/javascripts/my_forum/admin/dashboard.js.coffee
123
147
  - app/assets/javascripts/my_forum/admin/forums.js.coffee
@@ -125,6 +149,8 @@ files:
125
149
  - app/assets/javascripts/my_forum/admin/users.js
126
150
  - app/assets/javascripts/my_forum/application.js
127
151
  - app/assets/javascripts/my_forum/forums.js.coffee
152
+ - app/assets/javascripts/my_forum/jquery.scrollTo.min.js
153
+ - app/assets/javascripts/my_forum/jquery.selection.js
128
154
  - app/assets/javascripts/my_forum/my_forum.js.coffee
129
155
  - app/assets/javascripts/my_forum/posts.js.coffee
130
156
  - app/assets/javascripts/my_forum/topics.js.coffee
@@ -148,7 +174,9 @@ files:
148
174
  - app/controllers/my_forum/admin/roles_controller.rb
149
175
  - app/controllers/my_forum/admin/users_controller.rb
150
176
  - app/controllers/my_forum/application_controller.rb
177
+ - app/controllers/my_forum/attachments_controller.rb
151
178
  - app/controllers/my_forum/forums_controller.rb
179
+ - app/controllers/my_forum/images_controller.rb
152
180
  - app/controllers/my_forum/posts_controller.rb
153
181
  - app/controllers/my_forum/private_messages_controller.rb
154
182
  - app/controllers/my_forum/topics_controller.rb
@@ -167,9 +195,12 @@ files:
167
195
  - app/helpers/my_forum/welcome_helper.rb
168
196
  - app/mailers/application_mailer.rb
169
197
  - app/mailers/my_forum/user_mailer.rb
198
+ - app/models/my_forum/attachment.rb
199
+ - app/models/my_forum/avatar.rb
170
200
  - app/models/my_forum/category.rb
171
201
  - app/models/my_forum/category_permission.rb
172
202
  - app/models/my_forum/forum.rb
203
+ - app/models/my_forum/image.rb
173
204
  - app/models/my_forum/log_read_mark.rb
174
205
  - app/models/my_forum/post.rb
175
206
  - app/models/my_forum/private_message.rb
@@ -229,10 +260,13 @@ files:
229
260
  - db/migrate/20150215204852_create_my_forum_user_group_links.rb
230
261
  - db/migrate/20150215212443_create_my_forum_category_permissions.rb
231
262
  - db/migrate/20150227210814_create_my_forum_private_messages.rb
263
+ - db/migrate/20151012095554_create_my_forum_images.rb
232
264
  - lib/my_forum.rb
233
265
  - lib/my_forum/engine.rb
234
266
  - lib/my_forum/version.rb
235
267
  - lib/tasks/my_forum_tasks.rake
268
+ - spec/controllers/my_forum/attachments_controller_spec.rb
269
+ - spec/controllers/my_forum/images_controller_controller_spec.rb
236
270
  - spec/controllers/my_forum/private_messages_controller_spec.rb
237
271
  - spec/controllers/my_forum/users_controller_spec.rb
238
272
  - spec/dummy/README.rdoc
@@ -274,6 +308,7 @@ files:
274
308
  - spec/dummy/public/500.html
275
309
  - spec/dummy/public/favicon.ico
276
310
  - spec/helpers/my_forum/private_messages_helper_spec.rb
311
+ - spec/models/my_forum/image_spec.rb
277
312
  - spec/models/my_forum/private_message_spec.rb
278
313
  - spec/models/my_forum/user_spec.rb
279
314
  - spec/rails_helper.rb
@@ -303,6 +338,8 @@ signing_key:
303
338
  specification_version: 4
304
339
  summary: Simple Forum
305
340
  test_files:
341
+ - spec/controllers/my_forum/attachments_controller_spec.rb
342
+ - spec/controllers/my_forum/images_controller_controller_spec.rb
306
343
  - spec/controllers/my_forum/private_messages_controller_spec.rb
307
344
  - spec/controllers/my_forum/users_controller_spec.rb
308
345
  - spec/dummy/app/assets/javascripts/application.js
@@ -344,6 +381,7 @@ test_files:
344
381
  - spec/dummy/Rakefile
345
382
  - spec/dummy/README.rdoc
346
383
  - spec/helpers/my_forum/private_messages_helper_spec.rb
384
+ - spec/models/my_forum/image_spec.rb
347
385
  - spec/models/my_forum/private_message_spec.rb
348
386
  - spec/models/my_forum/user_spec.rb
349
387
  - spec/rails_helper.rb