radiant-forum-extension 1.2.1 → 2.0.0
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +37 -56
- data/VERSION +1 -1
- data/app/controllers/forum_base_controller.rb +78 -0
- data/app/controllers/forums_controller.rb +5 -34
- data/app/controllers/posts_controller.rb +61 -153
- data/app/controllers/topics_controller.rb +6 -63
- data/app/helpers/forum_helper.rb +24 -48
- data/app/models/forum.rb +5 -18
- data/app/models/post.rb +53 -55
- data/app/models/post_attachment.rb +9 -6
- data/app/models/topic.rb +20 -113
- data/app/views/admin/reader_configuration/_edit_forum.html.haml +4 -2
- data/app/views/admin/reader_configuration/_forum.html.haml +6 -2
- data/app/views/forums/_forum.html.haml +14 -20
- data/app/views/forums/_latest.html.haml +12 -0
- data/app/views/forums/_standard_parts.html.haml +49 -0
- data/app/views/forums/index.html.haml +16 -24
- data/app/views/forums/show.html.haml +18 -28
- data/app/views/pages/_comment.html.haml +1 -1
- data/app/views/posts/_attachments.html.haml +13 -0
- data/app/views/posts/_confirm_delete.html.haml +10 -0
- data/app/views/posts/_context.html.haml +16 -0
- data/app/views/posts/_edit_links.html.haml +11 -0
- data/app/views/posts/_form.html.haml +40 -2
- data/app/views/posts/_latest.html.haml +10 -17
- data/app/views/posts/_new_attachment.html.haml +2 -0
- data/app/views/posts/_post.html.haml +25 -60
- data/app/views/posts/{_search.html.haml → _search_form.html.haml} +1 -1
- data/app/views/posts/_uploader.html.haml +2 -2
- data/app/views/posts/edit.html.haml +26 -13
- data/app/views/posts/index.html.haml +19 -27
- data/app/views/posts/new.html.haml +27 -7
- data/app/views/posts/remove.html.haml +27 -0
- data/app/views/posts/show.html.haml +20 -7
- data/app/views/readers/_forum_messages.html.haml +20 -0
- data/app/views/readers/_messages_summary.html.haml +3 -0
- data/app/views/topics/_context.html.haml +12 -0
- data/app/views/topics/_latest.html.haml +14 -16
- data/app/views/topics/_locked.html.haml +1 -1
- data/app/views/topics/_replies.html.haml +6 -0
- data/app/views/topics/_reply.html.haml +23 -0
- data/app/views/topics/_topic.html.haml +14 -43
- data/app/views/topics/_voices.html.haml +5 -0
- data/app/views/topics/index.html.haml +11 -24
- data/app/views/topics/show.html.haml +25 -38
- data/config/initializers/radiant_config.rb +5 -1
- data/config/locales/en.yml +73 -27
- data/config/routes.rb +3 -4
- data/db/migrate/20101222160900_page_posts.rb +21 -0
- data/db/migrate/20101222163605_no_comment_forum.rb +10 -0
- data/db/migrate/20110105103827_topic_merely_associative.rb +23 -0
- data/db/migrate/20110111080550_detach_observer.rb +11 -0
- data/db/migrate/20110127113852_import_attachments.rb +9 -0
- data/forum_extension.rb +12 -13
- data/lib/commentable_model.rb +98 -0
- data/lib/forum_page.rb +2 -22
- data/lib/forum_reader_sessions_controller.rb +14 -0
- data/lib/forum_readers_controller.rb +2 -9
- data/lib/forum_red_cloth3.rb +23 -4
- data/lib/forum_red_cloth4.rb +23 -4
- data/lib/forum_tags.rb +298 -194
- data/lib/sanitize/config/forum.rb +47 -0
- data/public/images/furniture/blank.png +0 -0
- data/public/images/furniture/emoticons.png +0 -0
- data/public/javascripts/forum.js +349 -93
- data/public/javascripts/jquery.tools.min.js +195 -0
- data/public/punymce/blank.htm +1 -0
- data/public/punymce/css/content.css +4 -0
- data/public/punymce/css/editor.css +58 -0
- data/public/punymce/i18n/sv.js +28 -0
- data/public/punymce/img/icons.gif +0 -0
- data/public/punymce/img/icons_uncompressed.png +0 -0
- data/public/punymce/plugins/bbcode.js +1 -0
- data/public/punymce/plugins/bbcode_src.js +50 -0
- data/public/punymce/plugins/editsource/css/editor.css +3 -0
- data/public/punymce/plugins/editsource/editsource.js +1 -0
- data/public/punymce/plugins/editsource/editsource_src.js +81 -0
- data/public/punymce/plugins/editsource/img/icons.gif +0 -0
- data/public/punymce/plugins/emoticons/css/content.css +13 -0
- data/public/punymce/plugins/emoticons/css/editor.css +17 -0
- data/public/punymce/plugins/emoticons/emoticons.js +1 -0
- data/public/punymce/plugins/emoticons/emoticons_src.js +303 -0
- data/public/punymce/plugins/emoticons/img/emoticons.gif +0 -0
- data/public/punymce/plugins/emoticons/img/emoticons.png +0 -0
- data/public/punymce/plugins/emoticons/img/trans.gif +0 -0
- data/public/punymce/plugins/entities.js +1 -0
- data/public/punymce/plugins/entities_src.js +37 -0
- data/public/punymce/plugins/forceblocks.js +1 -0
- data/public/punymce/plugins/forceblocks_src.js +465 -0
- data/public/punymce/plugins/forcenl.js +1 -0
- data/public/punymce/plugins/forcenl_src.js +26 -0
- data/public/punymce/plugins/image/css/editor.css +1 -0
- data/public/punymce/plugins/image/image.js +1 -0
- data/public/punymce/plugins/image/image_src.js +30 -0
- data/public/punymce/plugins/image/img/icons.gif +0 -0
- data/public/punymce/plugins/link/css/editor.css +2 -0
- data/public/punymce/plugins/link/img/icons.gif +0 -0
- data/public/punymce/plugins/link/link.js +1 -0
- data/public/punymce/plugins/link/link_src.js +36 -0
- data/public/punymce/plugins/paste.js +1 -0
- data/public/punymce/plugins/paste_src.js +169 -0
- data/public/punymce/plugins/protect.js +1 -0
- data/public/punymce/plugins/protect_src.js +30 -0
- data/public/punymce/plugins/safari2x.js +1 -0
- data/public/punymce/plugins/safari2x_src.js +284 -0
- data/public/punymce/plugins/tabfocus.js +1 -0
- data/public/punymce/plugins/tabfocus_src.js +45 -0
- data/public/punymce/plugins/textcolor/css/editor.css +7 -0
- data/public/punymce/plugins/textcolor/img/icons.gif +0 -0
- data/public/punymce/plugins/textcolor/textcolor.js +1 -0
- data/public/punymce/plugins/textcolor/textcolor_src.js +73 -0
- data/public/punymce/puny_mce.js +1 -0
- data/public/punymce/puny_mce_full.js +1 -0
- data/public/punymce/puny_mce_src.js +1460 -0
- data/public/stylesheets/sass/forum.sass +175 -169
- data/radiant-forum-extension.gemspec +81 -19
- data/spec/controllers/admin/forums_controller_spec.rb +2 -2
- data/spec/controllers/forums_controller_spec.rb +3 -6
- data/spec/controllers/posts_controller_spec.rb +76 -59
- data/spec/controllers/topics_controller_spec.rb +4 -95
- data/spec/datasets/forum_readers_dataset.rb +1 -0
- data/spec/datasets/forums_dataset.rb +91 -10
- data/spec/lib/commentable_model_spec.rb +88 -0
- data/spec/lib/forum_page_spec.rb +2 -34
- data/spec/lib/forum_site_spec.rb +2 -3
- data/spec/lib/forum_tags_spec.rb +35 -0
- data/spec/models/forum_spec.rb +31 -20
- data/spec/models/post_spec.rb +40 -39
- data/spec/models/topic_spec.rb +29 -71
- data/spec/spec_helper.rb +10 -1
- metadata +84 -22
- data/app/views/posts/_reply.html.haml +0 -35
- data/app/views/posts/_upload.html.haml +0 -2
- data/app/views/posts/preview.html.haml +0 -32
- data/app/views/posts/search.html.haml +0 -63
- data/app/views/posts/search.rss.builder +0 -14
- data/app/views/topics/_form.html.haml +0 -30
- data/app/views/topics/_help.html.haml +0 -8
- data/app/views/topics/comments.html.haml +0 -6
- data/app/views/topics/edit.html.haml +0 -26
- data/app/views/topics/new.html.haml +0 -56
- data/spec/datasets/forum_pages_dataset.rb +0 -11
- data/spec/datasets/posts_dataset.rb +0 -31
- data/spec/datasets/topics_dataset.rb +0 -37
@@ -1,56 +0,0 @@
|
|
1
|
-
- content_for :signals do
|
2
|
-
= render :partial => 'readers/flasher'
|
3
|
-
|
4
|
-
- content_for :form do
|
5
|
-
.post_wrapper
|
6
|
-
.post_header
|
7
|
-
%h2
|
8
|
-
= t('new_topic_heading')
|
9
|
-
%p.context
|
10
|
-
= t('logged_in_as', :name => current_reader.name)
|
11
|
-
= t('if_not_you')
|
12
|
-
= link_to(t('log_out'), reader_logout_url) + '.'
|
13
|
-
|
14
|
-
- form_for :topic, @topic, :url => @forum ? forum_topics_path(@forum) : topics_path, :html => {:class => 'friendly', :multipart => true} do |f|
|
15
|
-
= render :partial => "form", :object => f
|
16
|
-
%p.buttons
|
17
|
-
= submit_tag t('new_topic_button')
|
18
|
-
= t('or')
|
19
|
-
- if @forum
|
20
|
-
= link_to t('cancel'), forum_path(@forum)
|
21
|
-
- else
|
22
|
-
= link_to t('cancel'), :back
|
23
|
-
|
24
|
-
- content_for :speaker do
|
25
|
-
%div.speaker
|
26
|
-
%a{:href => reader_url(current_reader), :class => 'main'}
|
27
|
-
= gravatar_for(current_reader, {:size => 40}, {:alt => current_reader.name, :class => 'gravatar', :width => '40', :height => '40'})
|
28
|
-
|
29
|
-
- content_for :title do
|
30
|
-
= t('new_topic_heading')
|
31
|
-
|
32
|
-
- content_for :introduction do
|
33
|
-
= t('new_topic_introduction')
|
34
|
-
|
35
|
-
- content_for :breadhead do
|
36
|
-
= link_to t('forum'), forum_home_url
|
37
|
-
= t('separator')
|
38
|
-
- if @forum
|
39
|
-
= link_to @forum.name, forum_url(@forum)
|
40
|
-
|
41
|
-
- content_for :controls do
|
42
|
-
= render :partial => 'readers/controls'
|
43
|
-
|
44
|
-
- content_for :breadcrumbs do
|
45
|
-
= link_to t('forum'), topics_url
|
46
|
-
= t('separator')
|
47
|
-
- if @forum
|
48
|
-
= link_to @forum.name, forum_url(@forum)
|
49
|
-
= t('separator')
|
50
|
-
= t('new_topic')
|
51
|
-
|
52
|
-
#forum
|
53
|
-
.post.first
|
54
|
-
= yield :speaker
|
55
|
-
= yield :form
|
56
|
-
|
@@ -1,11 +0,0 @@
|
|
1
|
-
class ForumPagesDataset < Dataset::Base
|
2
|
-
uses :home_page, :users
|
3
|
-
|
4
|
-
def load
|
5
|
-
create_page "Ordinary", :created_by => users(:admin)
|
6
|
-
create_page "Commentable", :commentable => true, :comments_closed => false, :created_by => users(:admin)
|
7
|
-
create_page "Uncommentable", :commentable => false, :comments_closed => false, :created_by => users(:admin)
|
8
|
-
create_page "Comments closed", :commentable => true, :comments_closed => true, :created_by => users(:admin)
|
9
|
-
end
|
10
|
-
|
11
|
-
end
|
@@ -1,31 +0,0 @@
|
|
1
|
-
class PostsDataset < Dataset::Base
|
2
|
-
uses :topics, :forum_readers
|
3
|
-
|
4
|
-
def load
|
5
|
-
Page.current_site = sites(:test) if defined? Site
|
6
|
-
|
7
|
-
create_post "First", :topic => topics(:older), :created_at => 2.days.ago, :body => 'first reply: to public topic'
|
8
|
-
create_post "Second", :topic => topics(:older), :created_at => 1.day.ago, :body => 'second reply: to public topic'
|
9
|
-
create_post "Third", :topic => topics(:private), :created_at => 4.hours.ago, :body => 'third reply: to private topic'
|
10
|
-
create_post "Comment", :topic => topics(:comments), :created_at => 1.day.ago, :body => 'first comment on page'
|
11
|
-
end
|
12
|
-
|
13
|
-
helpers do
|
14
|
-
def create_post(name, attributes={})
|
15
|
-
attributes = post_attributes(attributes.update(:name => name))
|
16
|
-
create_model :post, name.symbolize, attributes
|
17
|
-
end
|
18
|
-
end
|
19
|
-
|
20
|
-
def post_attributes(attributes={})
|
21
|
-
name = attributes[:name] || "A topic"
|
22
|
-
att = {
|
23
|
-
:name => name,
|
24
|
-
:reader => readers(:normal),
|
25
|
-
:created_at => Time.now
|
26
|
-
}.merge(attributes)
|
27
|
-
att[:site_id] ||= site_id(:test) if Reader.reflect_on_association(:site)
|
28
|
-
att
|
29
|
-
end
|
30
|
-
|
31
|
-
end
|
@@ -1,37 +0,0 @@
|
|
1
|
-
class TopicsDataset < Dataset::Base
|
2
|
-
uses :forum_readers, :forum_pages, :forums
|
3
|
-
|
4
|
-
def load
|
5
|
-
create_topic "older", :reader => readers(:normal), :forum => forums(:public), :body => 'this goes in the first post really', :created_at => 4.days.ago, :replied_at => 2.days.ago
|
6
|
-
create_topic "newer", :reader => readers(:normal), :forum => forums(:public), :body => 'this goes in the first post really', :created_at => 2.days.ago, :replied_at => 1.day.ago
|
7
|
-
create_topic "sticky", :reader => readers(:normal), :forum => forums(:private), :body => 'this goes in the first post really', :created_at => 2.days.ago, :replied_at => 3.days.ago, :sticky => true
|
8
|
-
create_topic "locked", :reader => readers(:normal), :forum => forums(:public), :body => 'this goes in the first post really', :locked => true, :replied_at => 1.year.ago
|
9
|
-
create_topic "private", :reader => readers(:normal), :forum => forums(:private), :body => 'this goes in the first post really', :created_at => 2.days.ago, :replied_at => 1.day.ago
|
10
|
-
create_topic "minimal", :reader => readers(:normal), :forum => forums(:misc), :body => 'this goes in the first post really'
|
11
|
-
create_topic "comments", :reader => readers(:normal), :forum => forums(:comments), :body => 'this goes in the first post really', :locked => false, :page => pages(:commentable)
|
12
|
-
end
|
13
|
-
|
14
|
-
helpers do
|
15
|
-
def create_topic(name, attributes={})
|
16
|
-
attributes = topic_attributes(attributes.update(:name => name))
|
17
|
-
create_model :topic, name.symbolize, attributes
|
18
|
-
end
|
19
|
-
end
|
20
|
-
|
21
|
-
def topic_attributes(attributes={})
|
22
|
-
name = attributes[:name] || "A topic"
|
23
|
-
att = {
|
24
|
-
:name => name,
|
25
|
-
:reader => readers(:normal),
|
26
|
-
:created_at => Time.now
|
27
|
-
}.merge(attributes)
|
28
|
-
attributes[:site_id] ||= site_id(:test) if Reader.reflect_on_association(:site)
|
29
|
-
att
|
30
|
-
end
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
end
|