kublog 0.0.1.1
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.
- data/.gitignore +9 -0
- data/Gemfile +8 -0
- data/Gemfile.lock +177 -0
- data/MIT-LICENSE +20 -0
- data/README.rdoc +102 -0
- data/Rakefile +39 -0
- data/app/assets/images/kublog/.gitkeep +0 -0
- data/app/assets/images/kublog/missing_image.png +0 -0
- data/app/assets/javascripts/kublog/application.js +13 -0
- data/app/assets/javascripts/kublog/categories.js.coffee +48 -0
- data/app/assets/javascripts/kublog/comments.js.coffee +30 -0
- data/app/assets/javascripts/kublog/email.js.coffee +32 -0
- data/app/assets/javascripts/kublog/images.js.coffee +77 -0
- data/app/assets/javascripts/kublog/posts.js.coffee +44 -0
- data/app/assets/javascripts/kublog/shared.js.coffee.erb +19 -0
- data/app/assets/javascripts/kublog/wysiwyg.controls.js.coffee +68 -0
- data/app/assets/plugins/kublog/ajaxyupload/images/ajax-loader.gif +0 -0
- data/app/assets/plugins/kublog/ajaxyupload/javascripts/jquery.ajaxyupload.js +126 -0
- data/app/assets/plugins/kublog/fancybox/images/blank.gif +0 -0
- data/app/assets/plugins/kublog/fancybox/images/fancy_close.png +0 -0
- data/app/assets/plugins/kublog/fancybox/images/fancy_loading.png +0 -0
- data/app/assets/plugins/kublog/fancybox/images/fancy_nav_left.png +0 -0
- data/app/assets/plugins/kublog/fancybox/images/fancy_nav_right.png +0 -0
- data/app/assets/plugins/kublog/fancybox/images/fancy_shadow_e.png +0 -0
- data/app/assets/plugins/kublog/fancybox/images/fancy_shadow_n.png +0 -0
- data/app/assets/plugins/kublog/fancybox/images/fancy_shadow_ne.png +0 -0
- data/app/assets/plugins/kublog/fancybox/images/fancy_shadow_nw.png +0 -0
- data/app/assets/plugins/kublog/fancybox/images/fancy_shadow_s.png +0 -0
- data/app/assets/plugins/kublog/fancybox/images/fancy_shadow_se.png +0 -0
- data/app/assets/plugins/kublog/fancybox/images/fancy_shadow_sw.png +0 -0
- data/app/assets/plugins/kublog/fancybox/images/fancy_shadow_w.png +0 -0
- data/app/assets/plugins/kublog/fancybox/images/fancy_title_left.png +0 -0
- data/app/assets/plugins/kublog/fancybox/images/fancy_title_main.png +0 -0
- data/app/assets/plugins/kublog/fancybox/images/fancy_title_over.png +0 -0
- data/app/assets/plugins/kublog/fancybox/images/fancy_title_right.png +0 -0
- data/app/assets/plugins/kublog/fancybox/images/fancybox-x.png +0 -0
- data/app/assets/plugins/kublog/fancybox/images/fancybox-y.png +0 -0
- data/app/assets/plugins/kublog/fancybox/images/fancybox.png +0 -0
- data/app/assets/plugins/kublog/fancybox/javascripts/fancybox-1.3.4.js +46 -0
- data/app/assets/plugins/kublog/fancybox/stylesheets/fancybox-1.3.4.css +359 -0
- data/app/assets/plugins/kublog/livequery/javascripts/jquery.livequery.js +250 -0
- data/app/assets/plugins/kublog/wysiwyg/images/ajax-loader.gif +0 -0
- data/app/assets/plugins/kublog/wysiwyg/images/jquery.wysiwyg.bg.png +0 -0
- data/app/assets/plugins/kublog/wysiwyg/images/jquery.wysiwyg.gif +0 -0
- data/app/assets/plugins/kublog/wysiwyg/images/jquery.wysiwyg.jpg +0 -0
- data/app/assets/plugins/kublog/wysiwyg/images/jquery.wysiwyg.no-alpha.gif +0 -0
- data/app/assets/plugins/kublog/wysiwyg/javascripts/jquery.wysiwyg.js +2377 -0
- data/app/assets/plugins/kublog/wysiwyg/javascripts/wysiwyg.image.js +284 -0
- data/app/assets/plugins/kublog/wysiwyg/javascripts/wysiwyg.link.js +249 -0
- data/app/assets/plugins/kublog/wysiwyg/stylesheets/jquery.wysiwyg.css +94 -0
- data/app/assets/stylesheets/kublog/application.css +9 -0
- data/app/assets/stylesheets/kublog/categories.css +4 -0
- data/app/assets/stylesheets/kublog/comments.css +4 -0
- data/app/assets/stylesheets/kublog/email.css +7 -0
- data/app/assets/stylesheets/kublog/images.css +41 -0
- data/app/assets/stylesheets/kublog/posts.css +39 -0
- data/app/controllers/kublog/application_controller.rb +12 -0
- data/app/controllers/kublog/categories_controller.rb +47 -0
- data/app/controllers/kublog/comments_controller.rb +37 -0
- data/app/controllers/kublog/images_controller.rb +44 -0
- data/app/controllers/kublog/posts_controller.rb +66 -0
- data/app/helpers/kublog/application_helper.rb +4 -0
- data/app/helpers/kublog/posts_helper.rb +38 -0
- data/app/mailers/kublog/post_mailer.rb +11 -0
- data/app/models/kublog/category.rb +26 -0
- data/app/models/kublog/comment.rb +46 -0
- data/app/models/kublog/image.rb +23 -0
- data/app/models/kublog/post.rb +51 -0
- data/app/presenters/kublog/post_presenter.rb +23 -0
- data/app/presenters/kublog/posts_presenter.rb +29 -0
- data/app/uploaders/kublog/file_uploader.rb +56 -0
- data/app/views/kublog/post_mailer/new_post.html.erb +1 -0
- data/app/views/kublog/post_mailer/new_post.liquid.html.erb +7 -0
- data/app/views/kublog/posts/_email_form.html.erb +13 -0
- data/app/views/kublog/posts/_form.html.erb +71 -0
- data/app/views/kublog/posts/_image_form.html.erb +26 -0
- data/app/views/kublog/posts/edit.html.erb +3 -0
- data/app/views/kublog/posts/index.atom.builder +15 -0
- data/app/views/kublog/posts/index.html.erb +36 -0
- data/app/views/kublog/posts/new.html.erb +3 -0
- data/app/views/kublog/posts/show.html.erb +46 -0
- data/app/views/layouts/kublog/application.html.erb +14 -0
- data/config/locales/kublog/en.yml +54 -0
- data/config/routes.rb +13 -0
- data/db/migrate/20110816211552_create_kublog_posts.rb +27 -0
- data/db/migrate/20110817215828_create_kublog_images.rb +11 -0
- data/db/migrate/20110818181434_create_kublog_categories.rb +11 -0
- data/db/migrate/20110822194341_create_kublog_comments.rb +14 -0
- data/kublog.gemspec +39 -0
- data/lib/kublog.rb +92 -0
- data/lib/kublog/author.rb +13 -0
- data/lib/kublog/engine.rb +5 -0
- data/lib/kublog/notifiable.rb +26 -0
- data/lib/kublog/notification/email.rb +86 -0
- data/lib/kublog/notification/email_job.rb +14 -0
- data/lib/kublog/notification/fb_post.rb +43 -0
- data/lib/kublog/notification/fb_post_job.rb +16 -0
- data/lib/kublog/notification/tweet.rb +68 -0
- data/lib/kublog/notification/tweet_job.rb +16 -0
- data/lib/kublog/user_integration/common.rb +31 -0
- data/lib/kublog/user_integration/devise.rb +23 -0
- data/lib/kublog/version.rb +3 -0
- data/lib/kublog/xhr_upload/file_helper.rb +36 -0
- data/lib/tasks/kublog_tasks.rake +4 -0
- data/script/rails +6 -0
- data/test/dummy/Rakefile +7 -0
- data/test/dummy/app/assets/javascripts/application.js +9 -0
- data/test/dummy/app/assets/javascripts/sessions.js +2 -0
- data/test/dummy/app/assets/javascripts/users.js +2 -0
- data/test/dummy/app/assets/stylesheets/application.css +157 -0
- data/test/dummy/app/assets/stylesheets/sessions.css +4 -0
- data/test/dummy/app/assets/stylesheets/users.css +4 -0
- data/test/dummy/app/controllers/application_controller.rb +19 -0
- data/test/dummy/app/controllers/sessions_controller.rb +22 -0
- data/test/dummy/app/controllers/users_controller.rb +17 -0
- data/test/dummy/app/helpers/application_helper.rb +2 -0
- data/test/dummy/app/helpers/error_messages_helper.rb +23 -0
- data/test/dummy/app/helpers/layout_helper.rb +22 -0
- data/test/dummy/app/helpers/sessions_helper.rb +2 -0
- data/test/dummy/app/helpers/users_helper.rb +2 -0
- data/test/dummy/app/mailers/.gitkeep +0 -0
- data/test/dummy/app/models/.gitkeep +0 -0
- data/test/dummy/app/models/ability.rb +2 -0
- data/test/dummy/app/models/user.rb +25 -0
- data/test/dummy/app/views/layouts/_account.html.erb +8 -0
- data/test/dummy/app/views/layouts/application.html.erb +29 -0
- data/test/dummy/app/views/layouts/kublog/application.html.erb +31 -0
- data/test/dummy/app/views/sessions/new.html.erb +15 -0
- data/test/dummy/app/views/users/new.html.erb +28 -0
- data/test/dummy/config.ru +4 -0
- data/test/dummy/config/application.rb +42 -0
- data/test/dummy/config/boot.rb +10 -0
- data/test/dummy/config/database.yml +25 -0
- data/test/dummy/config/environment.rb +5 -0
- data/test/dummy/config/environments/development.rb +38 -0
- data/test/dummy/config/environments/production.rb +51 -0
- data/test/dummy/config/environments/test.rb +39 -0
- data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/test/dummy/config/initializers/inflections.rb +10 -0
- data/test/dummy/config/initializers/mime_types.rb +5 -0
- data/test/dummy/config/initializers/secret_token.rb +7 -0
- data/test/dummy/config/initializers/session_store.rb +8 -0
- data/test/dummy/config/initializers/wrap_parameters.rb +12 -0
- data/test/dummy/config/locales/en.yml +54 -0
- data/test/dummy/config/routes.rb +13 -0
- data/test/dummy/db/migrate/20110816225222_create_users.rb +11 -0
- data/test/dummy/db/migrate/20110819135547_create_delayed_jobs.rb +21 -0
- data/test/dummy/db/schema.rb +96 -0
- data/test/dummy/lib/assets/.gitkeep +0 -0
- data/test/dummy/log/.gitkeep +0 -0
- data/test/dummy/public/404.html +26 -0
- data/test/dummy/public/422.html +26 -0
- data/test/dummy/public/500.html +26 -0
- data/test/dummy/public/favicon.ico +0 -0
- data/test/dummy/script/delayed_job +5 -0
- data/test/dummy/script/rails +6 -0
- data/test/dummy/test/fixtures/users.yml +9 -0
- data/test/dummy/test/functional/sessions_controller_test.rb +7 -0
- data/test/dummy/test/functional/users_controller_test.rb +7 -0
- data/test/dummy/test/unit/helpers/sessions_helper_test.rb +4 -0
- data/test/dummy/test/unit/helpers/users_helper_test.rb +4 -0
- data/test/dummy/test/unit/user_test.rb +7 -0
- data/test/factories.rb +9 -0
- data/test/fixtures/kublog/categories.yml +7 -0
- data/test/fixtures/kublog/comments.yml +7 -0
- data/test/fixtures/kublog/images.yml +9 -0
- data/test/fixtures/kublog/posts.yml +9 -0
- data/test/functional/kublog/categories_controller_test.rb +9 -0
- data/test/functional/kublog/comments_controller_test.rb +9 -0
- data/test/functional/kublog/images_controller_test.rb +9 -0
- data/test/functional/kublog/post_mailer_test.rb +9 -0
- data/test/functional/kublog/posts_controller_test.rb +9 -0
- data/test/integration/navigation_test.rb +10 -0
- data/test/kublog_test.rb +7 -0
- data/test/test_helper.rb +12 -0
- data/test/unit/helpers/kublog/categories_helper_test.rb +6 -0
- data/test/unit/helpers/kublog/comments_helper_test.rb +6 -0
- data/test/unit/helpers/kublog/images_helper_test.rb +6 -0
- data/test/unit/helpers/kublog/posts_helper_test.rb +6 -0
- data/test/unit/kublog/category_test.rb +9 -0
- data/test/unit/kublog/comment_test.rb +9 -0
- data/test/unit/kublog/image_test.rb +9 -0
- data/test/unit/kublog/post_test.rb +19 -0
- metadata +439 -0
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
module Kublog
|
|
2
|
+
module Notification
|
|
3
|
+
module FbPost
|
|
4
|
+
|
|
5
|
+
def self.included(base)
|
|
6
|
+
base.send :include, InstanceMethods
|
|
7
|
+
|
|
8
|
+
base.send :include, case Kublog.notification_processing.try(:to_sym)
|
|
9
|
+
when :delayed_job then DelayedJob
|
|
10
|
+
else Immediate
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
base.send :after_create, :notify_facebook
|
|
14
|
+
base.send :validates_presence_of, :facebook_text, :if => :facebook_notify
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
module InstanceMethods
|
|
18
|
+
|
|
19
|
+
protected
|
|
20
|
+
|
|
21
|
+
def notify_facebook
|
|
22
|
+
if self.facebook_notify
|
|
23
|
+
wall_post_deliver(:link => self.url, :message => self.facebook_text)
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
module DelayedJob
|
|
30
|
+
def wall_post_deliver(elements={})
|
|
31
|
+
Delayed::Job.enqueue(FbPostJob.new(elements))
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
module Immediate
|
|
36
|
+
def wall_post_deliver(elements={})
|
|
37
|
+
Kublog.facebook_client.link!(elements)
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
end
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# Class configured to Notify via DelayedJob
|
|
2
|
+
module Kublog
|
|
3
|
+
module Notification
|
|
4
|
+
class FbPostJob
|
|
5
|
+
|
|
6
|
+
def initialize(elements={})
|
|
7
|
+
@elements = elements
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def perform
|
|
11
|
+
Kublog.facebook_client.link!(@elements)
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
# Includes functionality to send to twitter on after_create callback
|
|
2
|
+
|
|
3
|
+
module Kublog
|
|
4
|
+
module Notification
|
|
5
|
+
module Tweet
|
|
6
|
+
|
|
7
|
+
def self.included(base)
|
|
8
|
+
base.send :include, InstanceMethods
|
|
9
|
+
base.send :extend, ClassMethods
|
|
10
|
+
|
|
11
|
+
base.send :include, case Kublog.notification_processing.try(:to_sym)
|
|
12
|
+
when :delayed_job then DelayedJob
|
|
13
|
+
else Immediate
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
base.send :after_create, :notify_tweet
|
|
17
|
+
base.send :validates_presence_of, :tweet_text, :if => :twitter_notify
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
module InstanceMethods
|
|
21
|
+
|
|
22
|
+
protected
|
|
23
|
+
|
|
24
|
+
def notify_tweet
|
|
25
|
+
if self.twitter_notify
|
|
26
|
+
tweet_deliver([self.tweet_text, self.url].join(' '))
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
module ClassMethods
|
|
34
|
+
|
|
35
|
+
# TODO Find out more about Twitter::NotFound()
|
|
36
|
+
# Configure whether or not to send errors
|
|
37
|
+
def safe_twitter_update(update, post)
|
|
38
|
+
begin
|
|
39
|
+
return Kublog.twitter_client.update(update)
|
|
40
|
+
rescue Twitter::NotFound
|
|
41
|
+
latest_tweet = Kublog.twitter_client.user_timeline.first
|
|
42
|
+
if latest_tweet.text.gsub(/ http:\/\/[^ ]\Z/, '') == post.tweet_text
|
|
43
|
+
return latest_tweet
|
|
44
|
+
else
|
|
45
|
+
return {:id => nil, :text => post.tweet_text}
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
# Queues Process on DJ
|
|
53
|
+
module DelayedJob
|
|
54
|
+
def tweet_deliver(tweet)
|
|
55
|
+
Delayed::Job.enqueue(TweetJob.new(tweet, self))
|
|
56
|
+
end
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
# Delivers Immediately
|
|
60
|
+
module Immediate
|
|
61
|
+
def tweet_deliver(tweet)
|
|
62
|
+
response = safe_twitter_update(tweet, self)
|
|
63
|
+
self.update_attributes :tweet_id => response.id, :tweet_text => response.text
|
|
64
|
+
end
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
end
|
|
68
|
+
end
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# Class configured to Notify via DelayedJob
|
|
2
|
+
module Kublog
|
|
3
|
+
module Notification
|
|
4
|
+
class TweetJob
|
|
5
|
+
|
|
6
|
+
def initialize(tweet, post)
|
|
7
|
+
@tweet, @post = tweet, post
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def perform
|
|
11
|
+
Post.safe_twitter_update(@tweet, @post)
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
module Kublog
|
|
2
|
+
module UserIntegration
|
|
3
|
+
module Common
|
|
4
|
+
|
|
5
|
+
def self.included(base)
|
|
6
|
+
base.send :include, InstanceMethods
|
|
7
|
+
base.send :helper_method, :current_user, :is_admin?, :signed_in?
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
module InstanceMethods
|
|
11
|
+
# Uses session[:user_id] to get the user session
|
|
12
|
+
# should be able to change user for x name of model
|
|
13
|
+
def current_user
|
|
14
|
+
@current_user ||= User.find_by_id(session[:user_id])
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
# Tries admin? method for user to filter out publishing actions
|
|
18
|
+
def is_admin?
|
|
19
|
+
current_user && current_user.try(:admin?)
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
## Sign in helper method
|
|
23
|
+
def signed_in?
|
|
24
|
+
!!current_user
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
end
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
module Kublog
|
|
2
|
+
module UserIntegration
|
|
3
|
+
module Devise
|
|
4
|
+
|
|
5
|
+
def self.included(base)
|
|
6
|
+
base.send :include, InstanceMethods
|
|
7
|
+
base.send :helper_method,:is_admin?
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
module InstanceMethods
|
|
11
|
+
|
|
12
|
+
# Uses the already defined current_user method by Devise
|
|
13
|
+
# get the admin? value to filter out publishing actions
|
|
14
|
+
|
|
15
|
+
def is_admin?
|
|
16
|
+
current_user && current_user.try(:admin?)
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
module Kublog
|
|
2
|
+
module XhrUpload
|
|
3
|
+
module FileHelper
|
|
4
|
+
|
|
5
|
+
protected
|
|
6
|
+
|
|
7
|
+
# Gets the file received throug Rack Environment
|
|
8
|
+
def received_file
|
|
9
|
+
if env['rack.input']
|
|
10
|
+
make_tempfile(env['rack.input'], :filename => env['HTTP_X_FILE_NAME'], :type => env["CONTENT_TYPE"])
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
# Taken from rack. Follows the example of maca to create a TempFile
|
|
15
|
+
# via XHR Request. Used to asynchronously upload images
|
|
16
|
+
def make_tempfile(input, options = {})
|
|
17
|
+
tempfile = Tempfile.new('image-upload')
|
|
18
|
+
tempfile.set_encoding(Encoding::BINARY) if tempfile.respond_to?(:set_encoding)
|
|
19
|
+
tempfile.binmode
|
|
20
|
+
buffer = ""
|
|
21
|
+
while input.read(1024 * 4, buffer)
|
|
22
|
+
entire_buffer_written_out = false
|
|
23
|
+
while !entire_buffer_written_out
|
|
24
|
+
written = tempfile.write(buffer)
|
|
25
|
+
entire_buffer_written_out = written == Rack::Utils.bytesize(buffer)
|
|
26
|
+
if !entire_buffer_written_out
|
|
27
|
+
buffer.slice!(0 .. written - 1)
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
tempfile.rewind
|
|
32
|
+
{:tempfile => tempfile}.merge(options)
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
end
|
data/script/rails
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
#!/usr/bin/env ruby
|
|
2
|
+
#!/usr/bin/env ruby
|
|
3
|
+
# This command will automatically be run when you run "rails" with Rails 3 gems installed from the root of your application.
|
|
4
|
+
|
|
5
|
+
ENGINE_PATH = File.expand_path('../..', __FILE__)
|
|
6
|
+
load File.expand_path('../../test/dummy/script/rails', __FILE__)
|
data/test/dummy/Rakefile
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
#!/usr/bin/env rake
|
|
2
|
+
# Add your own tasks in files placed in lib/tasks ending in .rake,
|
|
3
|
+
# for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.
|
|
4
|
+
|
|
5
|
+
require File.expand_path('../config/application', __FILE__)
|
|
6
|
+
|
|
7
|
+
Dummy::Application.load_tasks
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
// This is a manifest file that'll be compiled into including all the files listed below.
|
|
2
|
+
// Add new JavaScript/Coffee code in separate files in this directory and they'll automatically
|
|
3
|
+
// be included in the compiled file accessible from http://example.com/assets/application.js
|
|
4
|
+
// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
|
|
5
|
+
// the compiled file.
|
|
6
|
+
//
|
|
7
|
+
//= require jquery
|
|
8
|
+
//= require jquery_ujs
|
|
9
|
+
//= require_tree .
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* This is a manifest file that'll automatically include all the stylesheets available in this directory
|
|
3
|
+
* and any sub-directories. You're free to add application-wide styles to this file and they'll appear at
|
|
4
|
+
* the top of the compiled file, but it's generally better to create a new file per style scope.
|
|
5
|
+
*= require_self
|
|
6
|
+
*= require_tree .
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
.main-attributes{
|
|
10
|
+
float:left;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
.admin-actions{
|
|
14
|
+
margin-top:10px;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
.field.submit{
|
|
18
|
+
clear:both;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
hr{
|
|
22
|
+
clear:both;
|
|
23
|
+
height: 0;
|
|
24
|
+
overflow: hidden;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
.post-actions, .sharing-attributes{
|
|
28
|
+
float:right;
|
|
29
|
+
width:300px;
|
|
30
|
+
border:1px solid #ddd;
|
|
31
|
+
margin-top:20px;
|
|
32
|
+
padding:10px;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
.sharing-attributes .field{
|
|
36
|
+
width:250px;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
.sharing-attributes textarea.small{
|
|
40
|
+
display:block;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
.sharing-attributes span{
|
|
44
|
+
font-size:11px;
|
|
45
|
+
float:right;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
.post-actions h2, .sharing-attributes h2{
|
|
49
|
+
margin-top:0px;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
.sharing-attributes{
|
|
53
|
+
margin-top:25px;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
.post-actions ul{
|
|
57
|
+
padding:0px;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
.post-actions li{
|
|
61
|
+
list-style-type:none;
|
|
62
|
+
margin-bottom:10px;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
#account{
|
|
66
|
+
margin-top:10px;
|
|
67
|
+
float:right;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
#header h1{
|
|
71
|
+
float:left;
|
|
72
|
+
margin:0px;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
.new-comment h2{
|
|
76
|
+
margin-bottom:0px;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
html, body {
|
|
80
|
+
background-color: #4B7399;
|
|
81
|
+
font-family: Verdana, Helvetica, Arial;
|
|
82
|
+
font-size: 14px;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
a img {
|
|
86
|
+
border: none;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
a {
|
|
90
|
+
color: #0000FF;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
.clear {
|
|
94
|
+
clear: both;
|
|
95
|
+
height: 0;
|
|
96
|
+
overflow: hidden;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
#container {
|
|
100
|
+
width: 75%;
|
|
101
|
+
margin: 0 auto;
|
|
102
|
+
background-color: #FFF;
|
|
103
|
+
padding: 20px 40px;
|
|
104
|
+
border: solid 1px black;
|
|
105
|
+
margin-top: 20px;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
#flash_notice, #flash_error, #flash_alert {
|
|
109
|
+
padding: 5px 8px;
|
|
110
|
+
margin: 10px 0;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
#flash_notice {
|
|
114
|
+
background-color: #CFC;
|
|
115
|
+
border: solid 1px #6C6;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
#flash_error, #flash_alert {
|
|
119
|
+
background-color: #FCC;
|
|
120
|
+
border: solid 1px #C66;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
.error_messages {
|
|
124
|
+
width: 400px;
|
|
125
|
+
border: 2px solid #CF0000;
|
|
126
|
+
padding: 0px;
|
|
127
|
+
padding-bottom: 12px;
|
|
128
|
+
margin-bottom: 20px;
|
|
129
|
+
background-color: #f0f0f0;
|
|
130
|
+
font-size: 12px;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
.error_messages h2 {
|
|
134
|
+
text-align: left;
|
|
135
|
+
font-weight: bold;
|
|
136
|
+
padding: 5px 10px;
|
|
137
|
+
font-size: 12px;
|
|
138
|
+
margin: 0;
|
|
139
|
+
background-color: #c00;
|
|
140
|
+
color: #fff;
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
.error_messages p {
|
|
144
|
+
margin: 8px 10px;
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
.error_messages ul {
|
|
148
|
+
margin: 0;
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
.field_with_errors {
|
|
152
|
+
display: inline;
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
form .field, form .actions {
|
|
156
|
+
margin: 10px 0;
|
|
157
|
+
}
|