moxie_forum 0.2.4

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 (44) hide show
  1. data/README.rdoc +47 -0
  2. data/app/controllers/moxie/admin/forums_controller.rb +71 -0
  3. data/app/controllers/moxie/admin_controller.rb +10 -0
  4. data/app/controllers/moxie/forums_controller.rb +29 -0
  5. data/app/controllers/moxie/posts_controller.rb +52 -0
  6. data/app/controllers/moxie/topics_controller.rb +63 -0
  7. data/app/helpers/moxie/application_helper.rb +3 -0
  8. data/app/helpers/moxie/forums_helper.rb +5 -0
  9. data/app/models/moxie/forum.rb +16 -0
  10. data/app/models/moxie/post.rb +34 -0
  11. data/app/models/moxie/topic.rb +39 -0
  12. data/app/views/layouts/forums.html.erb +14 -0
  13. data/app/views/moxie/admin/forums/_form.html.erb +28 -0
  14. data/app/views/moxie/admin/forums/edit.html.erb +6 -0
  15. data/app/views/moxie/admin/forums/index.html.erb +28 -0
  16. data/app/views/moxie/admin/forums/new.html.erb +5 -0
  17. data/app/views/moxie/admin/forums/show.html.erb +20 -0
  18. data/app/views/moxie/admin/index.html.erb +3 -0
  19. data/app/views/moxie/forums/authorization_error.html.erb +4 -0
  20. data/app/views/moxie/forums/index.html.erb +20 -0
  21. data/app/views/moxie/forums/show.html.erb +38 -0
  22. data/app/views/moxie/posts/_form.html.erb +51 -0
  23. data/app/views/moxie/posts/_post.html.erb +23 -0
  24. data/app/views/moxie/topics/_form.html.erb +50 -0
  25. data/app/views/moxie/topics/new.html.erb +1 -0
  26. data/app/views/moxie/topics/show.html.erb +12 -0
  27. data/config/routes.rb +26 -0
  28. data/lib/application_helper.rb +24 -0
  29. data/lib/moxie_forum/acts_as_moxie_user/base.rb +53 -0
  30. data/lib/moxie_forum/engine.rb +54 -0
  31. data/lib/moxie_forum.rb +4 -0
  32. data/lib/rails/generators/moxie_forum/moxie_forum_generator.rb +76 -0
  33. data/lib/rails/generators/moxie_forum/templates/config.yml +5 -0
  34. data/lib/rails/generators/moxie_forum/templates/initializer.rb +15 -0
  35. data/lib/rails/generators/moxie_forum/templates/migration.rb +20 -0
  36. data/lib/rails/generators/moxie_forum/templates/schema.rb +43 -0
  37. data/lib/rails/railties/tasks.rake +8 -0
  38. data/lib/tasks/tasks.rb +9 -0
  39. data/public/images/gradient_grey.png +0 -0
  40. data/public/stylesheets/moxie_forum.css +223 -0
  41. data/test/generators/moxie_forum_generator_test.rb +10 -0
  42. data/test/test_helper.rb +77 -0
  43. data/test/unit/forum_test.rb +78 -0
  44. metadata +111 -0
@@ -0,0 +1,50 @@
1
+
2
+ <%= form_for [ @topic ] do |f| %>
3
+ <% if @topic.errors.any? %>
4
+ <div id="errorExplanation">
5
+ <h2><%= pluralize(@topic.errors.count, "error") %> prohibited this forum from being saved:</h2>
6
+ <ul>
7
+ <% @topic.errors.full_messages.each do |msg| %>
8
+ <li><%= msg %></li>
9
+ <% end %>
10
+ </ul>
11
+ </div>
12
+ <% end %>
13
+
14
+ <div class="m_post clearfix">
15
+
16
+ <div class="m_user">
17
+ <%= raw current_user.profile_pic %>
18
+ </div>
19
+
20
+ <div class="m_contents">
21
+ <div class="m_meta">
22
+ <div class="m_prompt field"><%= f.label :title, MoxieForum::Engine.config.prompt_for_new_topic_creation %></div>
23
+ <%= f.text_field :title %>
24
+ <div class="m_prompt_explanation"></div>
25
+ </div>
26
+
27
+ <%= f.fields_for :posts do |p| %>
28
+
29
+ <div class="m_body">
30
+ <div class="m_prompt field"><%= p.label :body, "Explanation" %></div>
31
+ <%= p.text_area :body %>
32
+ </div>
33
+
34
+ <% end %>
35
+
36
+ <%= hidden_field_tag 'moxie_topic[forum_id]', @forum.id %>
37
+
38
+ <div class="m_actions">
39
+ <%= f.submit "Create #{moxie_topic_name.titleize}" %>
40
+ or <%= link_to "Cancel",
41
+ moxie_forum_path( @forum ),
42
+ :class => "action" %>
43
+ </div>
44
+
45
+ </div> <!-- contents -->
46
+ </div> <!-- post -->
47
+
48
+
49
+
50
+ <% end %>
@@ -0,0 +1 @@
1
+ <%= render 'form' %>
@@ -0,0 +1,12 @@
1
+ <div class="m_nav">< <%= link_to "All #{moxie_topic_name.titleize.pluralize} in #{@topic.forum.title}", moxie_forum_path( @topic.forum ), :class => "always_underlined "%></div>
2
+
3
+ <div class="m_header"><%= @topic.title %></div>
4
+
5
+ <div>
6
+
7
+ <%= render :partial => 'moxie/posts/post',
8
+ :collection => @topic.posts %>
9
+
10
+ </div>
11
+
12
+ <%= render :partial => 'moxie/posts/form' %>
data/config/routes.rb ADDED
@@ -0,0 +1,26 @@
1
+ Rails.application.routes.draw do |map|
2
+
3
+ mount_at = MoxieForum::Engine.config.mount_at
4
+
5
+ match mount_at => 'moxie/forums#index'
6
+
7
+ scope mount_at do
8
+ scope :module => 'moxie', :as => 'moxie' do
9
+ resources :forums, :only => [ :index, :show ] do
10
+ match 'topics/new', :to => 'topics#new', :module => 'moxie', :as => 'new_moxie_topic'
11
+ end
12
+ resources :topics, :only => [ :create, :show ] do
13
+ get :show_postable, :as => 'show_postable_moxie_topic'
14
+ end
15
+ resources :posts
16
+
17
+ namespace :admin, :name_prefix => 'admin' do
18
+ resources :forums
19
+ end
20
+ end
21
+ end
22
+
23
+ match "#{mount_at}/authorization_error" => 'moxie/forums#authorization_error',
24
+ :as => 'moxie_authorization_error'
25
+
26
+ end
@@ -0,0 +1,24 @@
1
+ module ApplicationHelper
2
+
3
+ def moxie_forum_name
4
+ MoxieForum::Engine.config.forum_entity_name
5
+ end
6
+
7
+ def moxie_topic_name
8
+ MoxieForum::Engine.config.topic_entity_name
9
+ end
10
+
11
+ def moxie_post_name
12
+ MoxieForum::Engine.config.post_entity_name
13
+ end
14
+
15
+ def current_user
16
+ if defined?( MoxieForum::Engine.config.user_model ) == 'constant' &&
17
+ MoxieForum::Engine.config.user_model.class == Class
18
+ MoxieForum::Engine.config.user_model.create
19
+ else
20
+ nil
21
+ end
22
+ end
23
+
24
+ end
@@ -0,0 +1,53 @@
1
+ module MoxieForum
2
+ module ActsAsMoxieUser
3
+
4
+ module Base
5
+ def self.included(klass)
6
+ klass.class_eval do
7
+ extend Config
8
+ end
9
+ end
10
+
11
+ module Config
12
+ def acts_as_moxie_user
13
+
14
+ has_many :posts, :foreign_key => 'author_id',
15
+ :order => "created_at",
16
+ :class_name => 'Moxie::Post'
17
+
18
+ has_many :topics, :foreign_key => 'author_id',
19
+ :order => "created_at",
20
+ :class_name => 'Moxie::Topic'
21
+
22
+ include MoxieForum::ActsAsMoxieUser::Base::InstanceMethods
23
+ end
24
+ end
25
+
26
+ module InstanceMethods
27
+
28
+ def profile_pic
29
+ if self.id == nil
30
+ "<span style='color: red;'><b>WARNING:</b> There is no current_user helper method within your application_controller.rb. Create this method such that it returns the instance of your logged in user object. The forum will not work correctly until you do this.</span>"
31
+ else
32
+ "[user.profile_pic]"
33
+ end
34
+ end
35
+
36
+ def display_name
37
+ "[user.display_name]"
38
+ end
39
+
40
+ def admin?
41
+ false
42
+ end
43
+
44
+ def moderator?
45
+ false
46
+ end
47
+
48
+ end # InstanceMethods
49
+ end
50
+ end
51
+ end
52
+
53
+ ::ActiveRecord::Base.send :include, MoxieForum::ActsAsMoxieUser::Base
@@ -0,0 +1,54 @@
1
+ require 'moxie_forum'
2
+ require 'rails'
3
+ require 'action_controller'
4
+ require 'application_helper'
5
+
6
+ module MoxieForum
7
+ class Engine < Rails::Engine
8
+
9
+ # Defaults
10
+ config.mount_at = "/"
11
+ config.user_model = :user
12
+ config.forum_entity_name = 'forum'
13
+ config.topic_entity_name = 'discussion'
14
+ config.prompt_for_new_topic_creation = "What's your question?"
15
+ config.post_entity_name = 'post'
16
+
17
+ rake_tasks do
18
+ load File.join(File.dirname(__FILE__), '../rails/railties/tasks.rake')
19
+ end
20
+
21
+ initializer "moxie_forum.check_config" do |app|
22
+
23
+ # convert symbol to a string and upcase first letter
24
+ if config.user_model.is_a? Symbol
25
+ config.user_model_name = config.user_model.to_s.classify # [0..0].upcase + config.user_model.to_s[1..9]
26
+ end
27
+
28
+ if defined?( config.user_model ) == 'constant'
29
+ config.user_model = eval config.user_model_name
30
+ end
31
+
32
+ # make sure mount_at ends with trailing slash
33
+ config.mount_at += '/' unless config.mount_at.last == '/'
34
+ end
35
+
36
+ initializer "static assets" do |app|
37
+ app.middleware.use ::ActionDispatch::Static, "#{root}/public"
38
+
39
+ # ActionController::Base.helpers_path << "#{RAILS_ROOT}/vendor/plugins/moxieforum/app/helpers/moxie"
40
+ end
41
+
42
+ end
43
+ end
44
+
45
+ # app_config_file = "#{Rails.root}/config/moxie_forum.yml"
46
+ # if File.exists?( app_config_file )
47
+ # open app_config_file do |f|
48
+ # YAML.load( f ).each do |e,c|
49
+ # if e == RAILS_ENV
50
+ # @mount_at = c['mount_at']
51
+ # end
52
+ # end
53
+ # end
54
+ # end
@@ -0,0 +1,4 @@
1
+ module MoxieForum
2
+ require 'moxie_forum/engine' if defined?(Rails) && Rails::VERSION::MAJOR == 3
3
+ require 'moxie_forum/acts_as_moxie_user/base'
4
+ end
@@ -0,0 +1,76 @@
1
+ require 'rails/generators'
2
+ require 'rails/generators/migration'
3
+
4
+ class MoxieForumGenerator < Rails::Generators::Base
5
+ include Rails::Generators::Migration
6
+
7
+ def self.source_root
8
+ File.join(File.dirname(__FILE__), 'templates')
9
+ end
10
+
11
+ # Implement the required interface for Rails::Generators::Migration.
12
+ # taken from http://github.com/rails/rails/blob/master/activerecord/lib/generators/active_record.rb
13
+ # examples: http://caffeinedd.com/guides/331-making-generators-for-rails-3-with-thor
14
+
15
+ def self.next_migration_number(dirname) #:nodoc:
16
+ if ActiveRecord::Base.timestamped_migrations
17
+ Time.now.utc.strftime("%Y%m%d%H%M%S")
18
+ else
19
+ "%.3d" % (current_migration_number(dirname) + 1)
20
+ end
21
+ end
22
+
23
+ def create_migration_file
24
+ f = File.open File.join(File.dirname(__FILE__), 'templates', 'schema.rb')
25
+ schema = f.read; f.close
26
+
27
+ schema.gsub!(/ActiveRecord::Schema.*\n/, '')
28
+ schema.gsub!(/^end\n*$/, '')
29
+
30
+ f = File.open File.join(File.dirname(__FILE__), 'templates', 'migration.rb')
31
+ migration = f.read; f.close
32
+ migration.gsub!(/INSERT_SCHEMA/, schema)
33
+
34
+ tmp = File.open "tmp/~migration_ready.rb", "w"
35
+ tmp.write migration
36
+ tmp.close
37
+
38
+ migration_template '../../../tmp/~migration_ready.rb',
39
+ 'db/migrate/create_moxie_forum_tables.rb'
40
+ remove_file 'tmp/~migration_ready.rb'
41
+ end
42
+
43
+ def copy_initializer_file
44
+ copy_file 'initializer.rb', 'config/initializers/moxie_forum.rb'
45
+ end
46
+
47
+ def update_application_template
48
+ f = File.open "app/views/layouts/application.html.erb"
49
+ layout = f.read; f.close
50
+
51
+ if layout =~ /<%=[ ]+yield[ ]+%>/
52
+ print " \e[1m\e[34mquestion\e[0m Your layouts/application.html.erb layout currently has the line <%= yield %>. MoxieForum needs to change this line to <%= content_for?(:content) ? yield(:content) : yield %> to support its nested layouts. This change should not affect any of your existing layouts or views. Is this okay? [y/n] "
53
+ begin
54
+ answer = gets.chomp
55
+ end while not answer =~ /[yn]/i
56
+
57
+ if answer =~ /y/i
58
+
59
+ layout.gsub!(/<%=[ ]+yield[ ]+%>/, '<%= content_for?(:content) ? yield(:content) : yield %>')
60
+
61
+ tmp = File.open "tmp/~application.html.erb", "w"
62
+ tmp.write layout; tmp.close
63
+
64
+ remove_file 'app/views/layouts/application.html.erb'
65
+ copy_file '../../../tmp/~application.html.erb',
66
+ 'app/views/layouts/application.html.erb'
67
+ remove_file 'tmp/~application.html.erb'
68
+ end
69
+ elsif layout =~ /<%=[ ]+content_for\?\(:content\) \? yield\(:content\) : yield[ ]+%>/
70
+ puts " \e[1m\e[33mskipping\e[0m layouts/application.html.erb modification is already done."
71
+ else
72
+ puts " \e[1m\e[31mconflict\e[0m MoxieForum is confused by your layouts/application.html.erb. It does not contain the default line <%= yield %>, you may need to make manual changes to get MoxieForum's nested layouts working. Visit ###### for details."
73
+ end
74
+ end
75
+
76
+ end
@@ -0,0 +1,5 @@
1
+ development:
2
+ mount_at: /keithie
3
+
4
+ production:
5
+ mount_at: /keither
@@ -0,0 +1,15 @@
1
+ module MoxieForum
2
+ class Engine < Rails::Engine
3
+
4
+ config.mount_at = '/forum'
5
+ config.user_model = :user
6
+ config.forum_entity_name = 'forum'
7
+ config.topic_entity_name = 'discussion'
8
+ config.prompt_for_new_topic_creation = "What's your question?"
9
+ config.post_entity_name = 'post'
10
+
11
+ # need a link to the login page for messages that direct the user there
12
+ # need a link to the user's profile page so names are clickable
13
+
14
+ end
15
+ end
@@ -0,0 +1,20 @@
1
+ class CreateMoxieForumTables < ActiveRecord::Migration
2
+ def self.up
3
+ INSERT_SCHEMA
4
+
5
+ # Seed with some initial data
6
+
7
+ f = Moxie::Forum.create( :title => "Sample forum", :description => "Description of this forum" )
8
+ t1 = Moxie::Topic.create( :forum => f, :title => "First topic" )
9
+ t2 = Moxie::Topic.create( :forum => f, :title => "Second topic" )
10
+ Moxie::Post.create( :topic => t1, :body => "First post in the first topic" )
11
+ Moxie::Post.create( :topic => t1, :body => "Second post in the first topic" )
12
+ Moxie::Post.create( :topic => t2, :body => "First post in the second topic" )
13
+ end
14
+
15
+ def self.down
16
+ drop_table :moxie_forums
17
+ drop_table :moxie_topics
18
+ drop_table :moxie_posts
19
+ end
20
+ end
@@ -0,0 +1,43 @@
1
+ ActiveRecord::Schema.define(:version => 0) do
2
+
3
+ create_table :moxie_forums, :force => true do |t|
4
+ t.string :title
5
+ t.text :description
6
+ t.integer :position, :default => 1
7
+ t.integer :topic_count, :default => 0
8
+ t.datetime :created_at
9
+ t.datetime :updated_at
10
+ end
11
+
12
+ create_table :moxie_topics, :force => true do |t|
13
+ t.integer :forum_id
14
+ t.integer :author_id
15
+ t.string :title
16
+ t.integer :post_count, :default => 0
17
+ t.integer :views, :default => 0
18
+ t.boolean :locked, :default => false
19
+ t.boolean :sticky, :default => false
20
+ t.integer :last_post_author_id
21
+ t.datetime :last_post_at
22
+ t.datetime :created_at
23
+ t.datetime :updated_at
24
+ end
25
+
26
+ add_index :moxie_topics, [:author_id], :name => "topics_author_id"
27
+ add_index :moxie_topics, [:created_at], :name => "topics_created_at"
28
+ add_index :moxie_topics, [:forum_id], :name => "topics_forum_id"
29
+ add_index :moxie_topics, [:last_post_at], :name => "topics_last_post_at"
30
+
31
+ create_table :moxie_posts, :force => true do |t|
32
+ t.integer :topic_id
33
+ t.integer :author_id
34
+ t.text :body
35
+ t.string :browser
36
+ t.datetime :created_at
37
+ t.datetime :updated_at
38
+ end
39
+
40
+ add_index :moxie_posts, [:author_id], :name => "posts_author_id"
41
+ add_index :moxie_posts, [:created_at], :name => "posts_created_at"
42
+
43
+ end
@@ -0,0 +1,8 @@
1
+ namespace :moxie_forum do
2
+
3
+ desc "test task"
4
+ task :install do
5
+ puts "hi"
6
+ end
7
+
8
+ end
@@ -0,0 +1,9 @@
1
+ namespace :planting do
2
+ namespace :reports do
3
+
4
+ desc "results from a specific install campaign"
5
+ task :campaign => :environment do
6
+ puts "hi"
7
+ end
8
+ end
9
+ end
Binary file
@@ -0,0 +1,223 @@
1
+ /* Moxie Forum Wrapper: all classes in Moxie Forum are contained
2
+ within an mfw div so you can scope all CSS declarations to that
3
+ */
4
+
5
+ .mfw {
6
+ font-family: "Lucida Sans","Lucida Grande",verdana,sans-serif;
7
+ padding: 20px 40px 30px 30px;
8
+ text-rendering: optimizelegibility;
9
+ border: 1px solid #CCCCCC;
10
+ -moz-border-radius: 10px 10px 10px 10px;
11
+ -moz-box-shadow: 1px 1px 7px rgba(0, 0, 0, 0.4);
12
+ }
13
+
14
+ .mfw a,
15
+ .mfw a:link,
16
+ .mfw a:visited,
17
+ .mfw a:hover,
18
+ .mfw a:active {
19
+ color: #000000;
20
+ text-decoration: none;
21
+ background-color: transparent;
22
+ }
23
+
24
+ .mfw a:hover {
25
+ text-decoration: underline;
26
+ background-color: transparent;
27
+ }
28
+
29
+ .mfw a.always_underlined,
30
+ .mfw a.always_underlined:link,
31
+ .mfw a.always_underlined:visited,
32
+ .mfw a.always_underlined:hover,
33
+ .mfw a.always_underlined:active {
34
+ text-decoration: underline;
35
+ }
36
+
37
+ .mfw a.action {
38
+ font-size: 14px;
39
+ color: #DD0000;
40
+ }
41
+
42
+ .mfw .m_body a {
43
+ color: #DD0000;
44
+ }
45
+
46
+ /* Forum layout */
47
+
48
+ .mfw .m_nav {
49
+ margin-bottom: 8px;
50
+ font-size: 11px;
51
+ }
52
+
53
+ .mfw .m_header {
54
+ font-size: 18px;
55
+ line-height: 21px;
56
+ font-weight: bold;
57
+ background-color: #EEEEEE;
58
+ padding: 8px 10px;
59
+ }
60
+
61
+ .mfw .m_header_links {
62
+ padding: 5px 10px 0 10px;
63
+ text-align: right;
64
+ }
65
+
66
+ .mfw .m_forum,
67
+ .mfw .m_topic,
68
+ .mfw .m_post {
69
+ padding: 15px 0 10px 0;
70
+ border-top: 1px solid #E5E5E5;
71
+ }
72
+
73
+ .mfw .m_forum:first-child,
74
+ .mfw .m_topic:first-child,
75
+ .mfw .m_post:first-child {
76
+ border-top: none;
77
+ }
78
+
79
+ .mfw .m_topic,
80
+ .mfw .m_post {
81
+ margin-left: 10px;
82
+ }
83
+
84
+ .mfw .m_forum .m_name,
85
+ .mfw .m_topic .m_name, {
86
+ float: left;
87
+ }
88
+
89
+ .mfw .m_forum .m_name .m_title,
90
+ .mfw .m_topic .m_name .m_title {
91
+ font-size: 16px;
92
+ line-height: 20px;
93
+ font-weight: bold;
94
+ margin-bottom: 5px;
95
+ }
96
+
97
+ .mfw .m_forum .m_name .m_description,
98
+ .mfw .m_topic .m_name .m_description {
99
+ font-size: 11px;
100
+ line-height: 13px;
101
+ color: #777777;
102
+ margin-bottom: 10px;
103
+ }
104
+
105
+ .mfw .m_forum .m_info,
106
+ .mfw .m_topic .m_info {
107
+ float: right;
108
+ display: none;
109
+ }
110
+
111
+ .mfw .m_post .m_user {
112
+ float: left;
113
+ width: 100px;
114
+ }
115
+
116
+ .mfw .m_post .m_contents {
117
+ margin-left: 110px;
118
+ }
119
+
120
+ .mfw .m_post .m_meta {
121
+ margin-bottom: 8px;
122
+ }
123
+
124
+ .mfw .m_post .m_meta .m_author {
125
+ font-size: 14px;
126
+ font-weight: bold;
127
+ line-height: 19px;
128
+ }
129
+
130
+ .mfw .m_post .m_meta .m_datetime {
131
+ font-size: 11px;
132
+ color: #777777;
133
+ }
134
+
135
+ .mfw .m_post .m_body {
136
+ font-size: 13px;
137
+ color: #444444;
138
+ }
139
+
140
+ .mfw .m_post .m_prompt {
141
+ font-weight: bold;
142
+ font-size: 16px;
143
+ padding: 5px 0;
144
+ }
145
+
146
+ .mfw .m_post input.text,
147
+ .mfw .m_post textarea {
148
+ font-size: 14px;
149
+ padding: 3px;
150
+ width: 500px;
151
+ }
152
+
153
+ .mfw .m_post .m_actions {
154
+ margin-top: 10px;
155
+ font-size: 12px;
156
+ }
157
+
158
+ .mfw .m_post .m_actions input {
159
+ font-size: 12px;
160
+ }
161
+
162
+ .mfw .m_newpost {
163
+ -moz-border-radius-bottomleft:10px;
164
+ -moz-border-radius-bottomright:10px;
165
+ background:url("/images/gradient_grey.png") repeat-x scroll left bottom #F5F5F5;
166
+ border-top:1px solid #DDDDDD;
167
+ font-size:14px;
168
+ margin:25px -40px -30px -30px;
169
+ padding:20px 40px 10px 40px;
170
+ }
171
+
172
+ /* Utility classes */
173
+
174
+ .mfw .clearfix:after {
175
+ content:"\0020";
176
+ display:block;
177
+ height:0;
178
+ clear:both;
179
+ visibility:hidden;
180
+ overflow:hidden;
181
+ }
182
+ .mfw .clearfix {
183
+ display:block;
184
+ }
185
+
186
+ .mfw .m_hidden {
187
+ display: none;
188
+ }
189
+
190
+ .mfw .error {
191
+ color: red;
192
+ }
193
+
194
+
195
+ .mfw .m_success_msg {
196
+ background: #FFF9D7 none repeat scroll 0% 50%;
197
+ border: 1px solid #E2C822;
198
+ }
199
+
200
+ .mfw .m_error_msg {
201
+ background: #FFEBE8 none repeat scroll 0% 50%;
202
+ border: 1px solid #DD3C10;
203
+ }
204
+
205
+ .mfw .m_success_msg,
206
+ .mfw .m_error_msg {
207
+ margin: 10px 0;
208
+ font-size: 14px;
209
+ padding: 10px;
210
+ font-weight: bold;
211
+ position: relative;
212
+ }
213
+
214
+ .mfw .m_success_msg p,
215
+ .mfw .m_error_msg p {
216
+ font-weight: normal;
217
+ margin: 5px 0 0 0;
218
+ }
219
+
220
+ .mfw .m_success_msg p a,
221
+ .mfw .m_error_msg p a {
222
+ font-weight: bold;
223
+ }
@@ -0,0 +1,10 @@
1
+ require 'test_helper'
2
+ require 'generators/moxie_forum/moxie_forum_generator'
3
+
4
+ class MoxieForumGeneratorTest < Test::Unit::TestCase
5
+
6
+ def test_install
7
+ assert true
8
+ end
9
+
10
+ end