homeland 0.0.9 → 1.0.0.beta2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (76) hide show
  1. checksums.yaml +4 -4
  2. data/MIT-LICENSE +20 -0
  3. data/README.md +139 -43
  4. data/Rakefile +23 -0
  5. data/app/assets/javascripts/homeland/application.coffee +31 -0
  6. data/app/assets/javascripts/homeland/bootstrap.min.js +7 -0
  7. data/{lib/generators/homeland/install/templates/javascripts → app/assets/javascripts/homeland}/jquery.timeago.js +13 -13
  8. data/app/assets/javascripts/homeland/tether.min.js +1 -0
  9. data/app/assets/stylesheets/homeland/application.scss +114 -0
  10. data/app/assets/stylesheets/homeland/bootstrap-theme.scss +165 -0
  11. data/app/assets/stylesheets/homeland/bootstrap.min.css +5 -0
  12. data/app/assets/stylesheets/homeland/markdown.scss +13 -0
  13. data/app/assets/stylesheets/homeland/tether.min.css +1 -0
  14. data/app/controllers/homeland/application_controller.rb +37 -12
  15. data/app/controllers/homeland/replies_controller.rb +25 -11
  16. data/app/controllers/homeland/topics_controller.rb +50 -58
  17. data/app/helpers/homeland/application_helper.rb +45 -13
  18. data/app/models/homeland/concerns/markdown_body.rb +17 -0
  19. data/app/models/homeland/concerns/pagination.rb +14 -0
  20. data/app/models/homeland/concerns/soft_delete.rb +29 -0
  21. data/app/models/homeland/concerns/user_methods.rb +23 -0
  22. data/app/models/homeland/node.rb +10 -25
  23. data/app/models/homeland/reply.rb +16 -17
  24. data/app/models/homeland/topic.rb +19 -29
  25. data/app/views/homeland/replies/_reply.html.erb +35 -0
  26. data/app/views/homeland/replies/edit.html.erb +17 -27
  27. data/app/views/homeland/shared/_error_messages.html.erb +2 -4
  28. data/app/views/homeland/topics/_form.html.erb +21 -24
  29. data/app/views/homeland/topics/_node_info.html.erb +9 -0
  30. data/app/views/homeland/topics/_reply_form.html.erb +16 -0
  31. data/app/views/homeland/topics/_topic.html.erb +17 -26
  32. data/app/views/homeland/topics/edit.html.erb +6 -10
  33. data/app/views/homeland/topics/index.html.erb +28 -51
  34. data/app/views/homeland/topics/new.html.erb +5 -10
  35. data/app/views/homeland/topics/show.html.erb +16 -89
  36. data/app/views/layouts/homeland/application.html.erb +42 -0
  37. data/config/locales/homeland.en.yml +40 -0
  38. data/config/locales/homeland.zh-CN.yml +8 -0
  39. data/config/routes.rb +6 -8
  40. data/db/migrate/20160321125035_create_homeland_nodes.rb +15 -0
  41. data/db/migrate/20160321125610_create_homeland_topics.rb +25 -0
  42. data/db/migrate/20160321125920_create_homeland_replies.rb +16 -0
  43. data/db/migrate/20160322062228_add_reply_to_id_to_replies.rb +7 -0
  44. data/lib/generators/homeland/controllers_generator.rb +14 -0
  45. data/lib/generators/homeland/i18n_generator.rb +22 -0
  46. data/lib/generators/homeland/install_generator.rb +8 -54
  47. data/lib/generators/homeland/templates/config/initializers/homeland.rb +34 -0
  48. data/lib/generators/homeland/views_generator.rb +3 -10
  49. data/lib/homeland.rb +29 -3
  50. data/lib/homeland/action_view/will_paginate.rb +38 -0
  51. data/lib/homeland/configuration.rb +66 -0
  52. data/lib/homeland/engine.rb +4 -27
  53. data/lib/homeland/markup.rb +17 -0
  54. data/lib/homeland/markup/base.rb +11 -0
  55. data/lib/homeland/markup/html.rb +12 -0
  56. data/lib/homeland/markup/markdown.rb +17 -0
  57. data/lib/homeland/markup/simple.rb +14 -0
  58. data/lib/homeland/version.rb +3 -0
  59. data/lib/tasks/homeland_tasks.rake +4 -0
  60. metadata +119 -38
  61. data/Changelogs.md +0 -29
  62. data/app/assets/images/reply.png +0 -0
  63. data/app/assets/javascripts/homeland.coffee +0 -51
  64. data/app/assets/stylesheets/homeland.scss +0 -100
  65. data/app/helpers/homeland/topics_helper.rb +0 -14
  66. data/app/models/homeland/section.rb +0 -21
  67. data/app/views/homeland/topics/_base.html.erb +0 -4
  68. data/app/views/homeland/topics/_sidebar.html.erb +0 -49
  69. data/app/views/homeland/topics/feed.builder +0 -20
  70. data/lib/generators/homeland/install/templates/images/jquery.chosen.png +0 -0
  71. data/lib/generators/homeland/install/templates/initializer.rb +0 -8
  72. data/lib/generators/homeland/install/templates/javascripts/jquery.chosen.js +0 -898
  73. data/lib/generators/homeland/install/templates/javascripts/jquery.hotkeys.js +0 -99
  74. data/lib/generators/homeland/install/templates/locales/homeland.zh-CN.yml +0 -14
  75. data/lib/generators/homeland/install/templates/stylesheets/jquery.chosen.scss +0 -367
  76. data/lib/homeland/setting.rb +0 -37
@@ -0,0 +1,3 @@
1
+ module Homeland
2
+ VERSION = "1.0.0.beta2"
3
+ end
@@ -0,0 +1,4 @@
1
+ # desc "Explaining what the task does"
2
+ # task :homeland do
3
+ # # Task goes here
4
+ # end
metadata CHANGED
@@ -1,104 +1,186 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: homeland
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.9
4
+ version: 1.0.0.beta2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jason Lee
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-08-26 00:00:00.000000000 Z
11
+ date: 2016-03-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ">"
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: 4.2.0
20
+ - - "<="
21
+ - !ruby/object:Gem::Version
22
+ version: 5.1.0
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ version: 4.2.0
30
+ - - "<="
31
+ - !ruby/object:Gem::Version
32
+ version: 5.1.0
33
+ - !ruby/object:Gem::Dependency
34
+ name: activerecord
35
+ requirement: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - ">="
38
+ - !ruby/object:Gem::Version
39
+ version: 4.2.0
40
+ - - "<="
41
+ - !ruby/object:Gem::Version
42
+ version: 5.1.0
43
+ type: :runtime
44
+ prerelease: false
45
+ version_requirements: !ruby/object:Gem::Requirement
46
+ requirements:
47
+ - - ">="
48
+ - !ruby/object:Gem::Version
49
+ version: 4.2.0
50
+ - - "<="
18
51
  - !ruby/object:Gem::Version
19
- version: 3.1.0
52
+ version: 5.1.0
53
+ - !ruby/object:Gem::Dependency
54
+ name: redcarpet
55
+ requirement: !ruby/object:Gem::Requirement
56
+ requirements:
57
+ - - ">="
58
+ - !ruby/object:Gem::Version
59
+ version: 3.3.0
60
+ type: :runtime
61
+ prerelease: false
62
+ version_requirements: !ruby/object:Gem::Requirement
63
+ requirements:
64
+ - - ">="
65
+ - !ruby/object:Gem::Version
66
+ version: 3.3.0
67
+ - !ruby/object:Gem::Dependency
68
+ name: will_paginate
69
+ requirement: !ruby/object:Gem::Requirement
70
+ requirements:
71
+ - - ">="
72
+ - !ruby/object:Gem::Version
73
+ version: 3.0.0
20
74
  type: :runtime
21
75
  prerelease: false
22
76
  version_requirements: !ruby/object:Gem::Requirement
23
77
  requirements:
24
- - - ">"
78
+ - - ">="
25
79
  - !ruby/object:Gem::Version
26
- version: 3.1.0
80
+ version: 3.0.0
27
81
  - !ruby/object:Gem::Dependency
28
- name: jquery-atwho-rails
82
+ name: jquery-rails
29
83
  requirement: !ruby/object:Gem::Requirement
30
84
  requirements:
31
- - - "~>"
85
+ - - ">="
86
+ - !ruby/object:Gem::Version
87
+ version: 4.0.0
88
+ - - "<="
32
89
  - !ruby/object:Gem::Version
33
- version: 0.1.5
90
+ version: 5.1.0
34
91
  type: :runtime
35
92
  prerelease: false
36
93
  version_requirements: !ruby/object:Gem::Requirement
37
94
  requirements:
38
- - - "~>"
95
+ - - ">="
39
96
  - !ruby/object:Gem::Version
40
- version: 0.1.5
97
+ version: 4.0.0
98
+ - - "<="
99
+ - !ruby/object:Gem::Version
100
+ version: 5.1.0
41
101
  - !ruby/object:Gem::Dependency
42
- name: rails_autolink
102
+ name: font-awesome-rails
43
103
  requirement: !ruby/object:Gem::Requirement
44
104
  requirements:
45
105
  - - ">="
46
106
  - !ruby/object:Gem::Version
47
- version: 1.0.0
107
+ version: 4.4.0.0
48
108
  type: :runtime
49
109
  prerelease: false
50
110
  version_requirements: !ruby/object:Gem::Requirement
51
111
  requirements:
52
112
  - - ">="
53
113
  - !ruby/object:Gem::Version
54
- version: 1.0.0
55
- description: A new style forum for small communitys.
114
+ version: 4.4.0.0
115
+ description: A new style forum for tiny community as Rails Engine. You can mount this
116
+ in you apps.
56
117
  email:
57
118
  - huacnlee@gmail.com
58
119
  executables: []
59
120
  extensions: []
60
121
  extra_rdoc_files: []
61
122
  files:
62
- - Changelogs.md
123
+ - MIT-LICENSE
63
124
  - README.md
64
- - app/assets/images/reply.png
65
- - app/assets/javascripts/homeland.coffee
66
- - app/assets/stylesheets/homeland.scss
125
+ - Rakefile
126
+ - app/assets/javascripts/homeland/application.coffee
127
+ - app/assets/javascripts/homeland/bootstrap.min.js
128
+ - app/assets/javascripts/homeland/jquery.timeago.js
129
+ - app/assets/javascripts/homeland/tether.min.js
130
+ - app/assets/stylesheets/homeland/application.scss
131
+ - app/assets/stylesheets/homeland/bootstrap-theme.scss
132
+ - app/assets/stylesheets/homeland/bootstrap.min.css
133
+ - app/assets/stylesheets/homeland/markdown.scss
134
+ - app/assets/stylesheets/homeland/tether.min.css
67
135
  - app/controllers/homeland/application_controller.rb
68
136
  - app/controllers/homeland/replies_controller.rb
69
137
  - app/controllers/homeland/topics_controller.rb
70
138
  - app/helpers/homeland/application_helper.rb
71
- - app/helpers/homeland/topics_helper.rb
139
+ - app/models/homeland/concerns/markdown_body.rb
140
+ - app/models/homeland/concerns/pagination.rb
141
+ - app/models/homeland/concerns/soft_delete.rb
142
+ - app/models/homeland/concerns/user_methods.rb
72
143
  - app/models/homeland/node.rb
73
144
  - app/models/homeland/reply.rb
74
- - app/models/homeland/section.rb
75
145
  - app/models/homeland/topic.rb
146
+ - app/views/homeland/replies/_reply.html.erb
76
147
  - app/views/homeland/replies/edit.html.erb
77
148
  - app/views/homeland/shared/_error_messages.html.erb
78
- - app/views/homeland/topics/_base.html.erb
79
149
  - app/views/homeland/topics/_form.html.erb
80
- - app/views/homeland/topics/_sidebar.html.erb
150
+ - app/views/homeland/topics/_node_info.html.erb
151
+ - app/views/homeland/topics/_reply_form.html.erb
81
152
  - app/views/homeland/topics/_topic.html.erb
82
153
  - app/views/homeland/topics/edit.html.erb
83
- - app/views/homeland/topics/feed.builder
84
154
  - app/views/homeland/topics/index.html.erb
85
155
  - app/views/homeland/topics/new.html.erb
86
156
  - app/views/homeland/topics/show.html.erb
157
+ - app/views/layouts/homeland/application.html.erb
158
+ - config/locales/homeland.en.yml
159
+ - config/locales/homeland.zh-CN.yml
87
160
  - config/routes.rb
88
- - lib/generators/homeland/install/templates/images/jquery.chosen.png
89
- - lib/generators/homeland/install/templates/initializer.rb
90
- - lib/generators/homeland/install/templates/javascripts/jquery.chosen.js
91
- - lib/generators/homeland/install/templates/javascripts/jquery.hotkeys.js
92
- - lib/generators/homeland/install/templates/javascripts/jquery.timeago.js
93
- - lib/generators/homeland/install/templates/locales/homeland.zh-CN.yml
94
- - lib/generators/homeland/install/templates/stylesheets/jquery.chosen.scss
161
+ - db/migrate/20160321125035_create_homeland_nodes.rb
162
+ - db/migrate/20160321125610_create_homeland_topics.rb
163
+ - db/migrate/20160321125920_create_homeland_replies.rb
164
+ - db/migrate/20160322062228_add_reply_to_id_to_replies.rb
165
+ - lib/generators/homeland/controllers_generator.rb
166
+ - lib/generators/homeland/i18n_generator.rb
95
167
  - lib/generators/homeland/install_generator.rb
168
+ - lib/generators/homeland/templates/config/initializers/homeland.rb
96
169
  - lib/generators/homeland/views_generator.rb
97
170
  - lib/homeland.rb
171
+ - lib/homeland/action_view/will_paginate.rb
172
+ - lib/homeland/configuration.rb
98
173
  - lib/homeland/engine.rb
99
- - lib/homeland/setting.rb
100
- homepage: http://github.com/huacnlee/homeland
101
- licenses: []
174
+ - lib/homeland/markup.rb
175
+ - lib/homeland/markup/base.rb
176
+ - lib/homeland/markup/html.rb
177
+ - lib/homeland/markup/markdown.rb
178
+ - lib/homeland/markup/simple.rb
179
+ - lib/homeland/version.rb
180
+ - lib/tasks/homeland_tasks.rake
181
+ homepage: https://github.com/huacnlee/homeland
182
+ licenses:
183
+ - MIT
102
184
  metadata: {}
103
185
  post_install_message:
104
186
  rdoc_options: []
@@ -111,14 +193,13 @@ required_ruby_version: !ruby/object:Gem::Requirement
111
193
  version: '0'
112
194
  required_rubygems_version: !ruby/object:Gem::Requirement
113
195
  requirements:
114
- - - ">="
196
+ - - ">"
115
197
  - !ruby/object:Gem::Version
116
- version: 1.3.6
198
+ version: 1.3.1
117
199
  requirements: []
118
200
  rubyforge_project:
119
- rubygems_version: 2.4.7
201
+ rubygems_version: 2.6.2
120
202
  signing_key:
121
203
  specification_version: 4
122
204
  summary: A new style forum for small communitys.
123
205
  test_files: []
124
- has_rdoc:
@@ -1,29 +0,0 @@
1
- 0.0.8 / 2012-07-02
2
-
3
- * Mongoid 3.0.0.rc support;
4
- * Fix body text font size to 14px;
5
-
6
- 0.0.7 / 2012-06-28
7
-
8
- * Add Early loading for queries;
9
-
10
- 0.0.6 / 2012-05-28
11
-
12
- * Remove hits field from Topic model.
13
-
14
- 0.0.5 / 2012-05-08
15
-
16
- * Add test app.
17
- * Add markdown like image syntax.
18
- * Bug fix in using.
19
-
20
- 0.0.4 / 2012-04-19
21
- ==================
22
-
23
- * Add chosen; Add @ reply feature.
24
- * More style improve.
25
-
26
- 0.0.3 / 2012-04-17
27
- ==================
28
-
29
- * 实现基础功能
Binary file
@@ -1,51 +0,0 @@
1
- #= require jquery.hotkeys
2
- #= require jquery.timeago
3
- #= require jquery.atwho
4
- #= require jquery.chosen
5
- #= require_self
6
- # TopicsController 下所有页面的 JS 功能
7
- window.Topics =
8
- # 往话题编辑器里面插入图片代码
9
- appendImageFromUpload : (srcs) ->
10
- txtBox = $(".topic_body_text_area")
11
- for src in srcs
12
- txtBox.val("#{txtBox.val()}[img]#{src}[/img]\n")
13
- txtBox.focus()
14
- $("#add_image").jDialog.close()
15
-
16
- # 上传图片
17
- addImageClick : () ->
18
- opts =
19
- title:"插入图片"
20
- width: 350
21
- height: 145
22
- content: '<iframe src="/photos/tiny_new" frameborder="0" style="width:330px; height:145px;"></iframe>',
23
- close_on_body_click : false
24
-
25
- $("#add_image").jDialog(opts)
26
- return false
27
-
28
- # 回复
29
- reply : (floor,login) ->
30
- reply_body = $("#reply_body")
31
- new_text = "##{floor}楼 @#{login} "
32
- if reply_body.val().trim().length == 0
33
- new_text += ''
34
- else
35
- new_text = "\n#{new_text}"
36
- reply_body.focus().val(reply_body.val() + new_text)
37
- return false
38
-
39
- # 高亮楼层
40
- hightlightReply : (floor) ->
41
- $("#replies .reply").removeClass("light")
42
- $("#reply"+floor).addClass("light")
43
-
44
- # Page.ready
45
- $(document).ready ->
46
- $("abbr.timeago").timeago()
47
- $("select").chosen()
48
- $("textarea").bind "keydown","ctrl+return",(el) ->
49
- if $(el.target).val().trim().length > 0
50
- $("#reply form").submit()
51
-
@@ -1,100 +0,0 @@
1
- /*
2
- *= require jquery.atwho
3
- *= require jquery.chosen
4
- */
5
- .bbs_name { text-align:right; font-size:18px;}
6
- .topics .topic .title a:link,
7
- .topics .topic .title a:visited,
8
- .node_topics .title a:link,
9
- .node_topics .title a:visited {color:#2c64d7; text-decoration: none;}
10
- .topics .topic .title a:hover,
11
- .node_topics .title a:hover { text-decoration: underline; }
12
-
13
- .sidebar p { margin-bottom:8px;}
14
-
15
- #sections {
16
- ul {
17
- margin:0; list-style:none;
18
- li {
19
- margin-bottom:10px;
20
- position:relative;
21
- min-height:20px;
22
- label { display:block; width:80px; text-align:right; color:#999; padding-right:10px; position:absolute; left:0; top:0; }
23
- a { display:inline-block; margin-right:8px; }
24
- .items { padding-left:90px; }
25
- }
26
-
27
- }
28
- }
29
-
30
- .topics { }
31
- .topics .topic { }
32
- .topics .topic_line {border-top:1px solid #DDD; padding:10px 0; margin:0 -10px; vertical-align:top; }
33
- #main .topics .topic h1 { font-size:22px; color:#333; margin-top:6px; text-align: left; line-height:100%;margin-bottom:8px;}
34
- .topics .topic .avatar_large { width:80px; }
35
- .topics .topic .avatar { width:56px; margin-left:10px; }
36
- .topics .topic .infos { padding-right:90px;}
37
- .topics .topic .right_info { padding-left:66px;}
38
- .topics .topic .title { font-size:14px; }
39
- .topics .topic .info { color:#999; margin-bottom:2px; }
40
- .topics .topic .info a:link,
41
- .topics .topic .info a:visited { color:#999; text-decoration: underline; }
42
- .topics .body { line-height:160%; font-size:14px; margin-top:8px;}
43
- .topics .body p { margin-bottom:10px; font-size:14px; }
44
- .topics .tools { text-align:right; }
45
- .topics .tools a {margin-left:6px;}
46
- .topics .topic .replies { width:70px; margin-right:10px; text-align:right; vertical-align:middle; }
47
- .topics .topic .replies a.count:link { line-height: 12px; font-weight: bold; color: white;
48
- background-color: #1c7fdb; display: inline-block;
49
- padding: 2px 10px 2px 10px;
50
- -moz-border-radius: 12px; -webkit-border-radius: 12px;
51
- margin: 18px 12px 0px 0px; text-decoration: none; }
52
- .topics .topic .replies a.count:visited { background:#ddd; color:#aaa;}
53
- .topics .topic .replies a.count:hover { color:write; background-color:#1F8AEE; }
54
-
55
- .topics tr.topic td.replies { text-align:right; width:50px; font-size:14px; color:green;font-weight:bold; }
56
- .more { padding:8px; border-top:1px solid #DDD; font-size:14px; text-align:right; }
57
-
58
- /* topics list in node page */
59
- .node_topics { margin-bottom:16px;}
60
- .node_topics tr td { padding:8px; }
61
- .node_topics tr.head td { padding-top:14px; color:#CCC; font-weight:bold; font-size:12px; }
62
- .node_topics tr.topic td.title { font-size:14px; font-weight:bold; }
63
- .node_topics tr.topic td.author { width:80px;}
64
- .node_topics tr.topic td.author a { color:#666; font-weight:bold; }
65
-
66
- .no_result { margin-bottom:20px; text-align:center; }
67
-
68
- #node_info { padding:8px;margin-bottom:8px;padding-top:0px; }
69
- #node_info h1 { font-size:18px; color:000; display:inline; margin-right:5px; }
70
- #node_info p { margin-bottom:8px; }
71
- #node_info p.summary { color:#999; }
72
-
73
- #replies {}
74
- #replies .total { padding-bottom:6px; color:#999; }
75
- #replies .reply { border-top:1px solid #DDD; padding:8px 10px; margin:0 -10px;}
76
- #replies .reply.light { background:#EFFCEE;}
77
- #replies .reply .face { padding-right:8px; width:48px; margin-left:0; }
78
- #replies .reply .infos { padding-left:58px;}
79
- #replies .reply .info { margin-top:4px; color:#999;height:20px;}
80
- #replies .reply .info a:link,
81
- #replies .reply .info a:visited { color:#999; text-decoration: underline;}
82
- #replies .reply .info .name { float:left; }
83
- #replies .reply .info .time { float:right; text-align:right; }
84
- #replies .reply .info a.reply_link img { vertical-align:middle;}
85
- #replies .reply .body { line-height:180%; font-size:14px; text-overflow: ellipsis;}
86
- #replies .reply .body p { font-size:14px; }
87
- #replies .reply .body img { max-width:622px;}
88
-
89
- #reply.form textarea { width:578px; }
90
-
91
- .edit_tools { text-align:right; margin-bottom:3px;}
92
-
93
- .totals ul li { line-height:150%;}
94
-
95
- #topic_new_tip li { margin-bottom:6px;}
96
-
97
- .body a.at_floor { color:#376B43; }
98
- .body a.at_user { }
99
-
100
- .topic_body_text_area { width:600px;}
@@ -1,14 +0,0 @@
1
- # coding: utf-8
2
- module Homeland
3
- module TopicsHelper
4
- def format_topic_body(text,title = "",allow_image = true)
5
- text.gsub!(/\!\[(.+?|)\]\((http:\/\/.+?)\)/i,'<img src="\2" alt="\1" />')
6
- auto_link(simple_format(text),:all, :target => '_blank', :rel => "nofollow")
7
- end
8
-
9
- def render_topic_node_select_tag(topic, opts = {})
10
- return "" if topic.blank?
11
- grouped_collection_select(:topic, :node_id, Section.all,:sorted_nodes, :name, :id, :name, {:value => topic.node_id, :include_blank => false}, opts)
12
- end
13
- end
14
- end