aboutsummaryrefslogtreecommitdiffstats
path: root/app
diff options
context:
space:
mode:
authorJoe Sak <joe@joesak.com>2011-06-23 09:43:53 -0500
committerJoe Sak <joe@joesak.com>2011-06-23 09:43:53 -0500
commit787a0916b1514a7b904f5653d0c2810aab4ffa94 (patch)
treefc747e8f06428af8d057f1666082750f5d603811 /app
parente906ed2eca96a87b737052d55ef635ce60fbffdc (diff)
parent767346b6941dbdff3aa2ef1f58a87429597da212 (diff)
downloadrefinerycms-blog-787a0916b1514a7b904f5653d0c2810aab4ffa94.tar.gz
refinerycms-blog-787a0916b1514a7b904f5653d0c2810aab4ffa94.tar.bz2
refinerycms-blog-787a0916b1514a7b904f5653d0c2810aab4ffa94.zip
Merge branch 'custom_teasers' of https://github.com/wikyd/refinerycms-blog into wikyd-custom-teasers
Diffstat (limited to 'app')
-rw-r--r--app/helpers/blog_posts_helper.rb12
-rw-r--r--app/models/blog_post.rb2
-rw-r--r--app/views/admin/blog/posts/_form.css.erb8
-rw-r--r--app/views/admin/blog/posts/_form.html.erb10
-rw-r--r--app/views/admin/blog/posts/_form.js.erb20
-rw-r--r--app/views/admin/blog/posts/_teaser_part.html.erb11
-rw-r--r--app/views/blog/shared/_post.html.erb4
7 files changed, 61 insertions, 6 deletions
diff --git a/app/helpers/blog_posts_helper.rb b/app/helpers/blog_posts_helper.rb
index 6b4066a..1922862 100644
--- a/app/helpers/blog_posts_helper.rb
+++ b/app/helpers/blog_posts_helper.rb
@@ -41,4 +41,16 @@ module BlogPostsHelper
def next_or_previous?(post)
post.next.present? or post.prev.present?
end
+
+ def blog_post_teaser(post)
+ if post.custom_teaser.present?
+ post.custom_teaser.html_safe
+ else
+ truncate(
+ post.body,
+ :length => RefinerySetting.find_or_set(:blog_post_teaser_length, 250),
+ :preserve_html_tags => true
+ )
+ end
+ end
end
diff --git a/app/models/blog_post.rb b/app/models/blog_post.rb
index a010d98..2126827 100644
--- a/app/models/blog_post.rb
+++ b/app/models/blog_post.rb
@@ -26,7 +26,7 @@ class BlogPost < ActiveRecord::Base
:approximate_ascii => RefinerySetting.find_or_set(:approximate_ascii, false, :scoping => 'blog'),
:strip_non_ascii => RefinerySetting.find_or_set(:strip_non_ascii, false, :scoping => 'blog')
- attr_accessible :title, :body, :tag_list, :draft, :published_at, :browser_title, :meta_keywords, :meta_description, :user_id, :category_ids, :custom_url
+ attr_accessible :title, :body, :tag_list, :draft, :published_at, :browser_title, :meta_keywords, :meta_description, :user_id, :category_ids, :custom_url, :custom_teaser
scope :by_archive, lambda { |archive_date|
where(['published_at between ? and ?', archive_date.beginning_of_month, archive_date.end_of_month])
diff --git a/app/views/admin/blog/posts/_form.css.erb b/app/views/admin/blog/posts/_form.css.erb
index 05c18cf..48bbbfa 100644
--- a/app/views/admin/blog/posts/_form.css.erb
+++ b/app/views/admin/blog/posts/_form.css.erb
@@ -4,4 +4,12 @@
margin: 0px;
padding: 0px;
}
+ a#copy_body_link {
+ background: url("/images/refinery/icons/add.png") no-repeat scroll 0 6px transparent;
+ border-bottom: 0 none;
+ display: inline;
+ line-height: 29px;
+ margin-top: 0;
+ padding-left: 20px;
+ }
</style>
diff --git a/app/views/admin/blog/posts/_form.html.erb b/app/views/admin/blog/posts/_form.html.erb
index abff4f2..20a8fe1 100644
--- a/app/views/admin/blog/posts/_form.html.erb
+++ b/app/views/admin/blog/posts/_form.html.erb
@@ -13,9 +13,12 @@
<div class='field'>
<div id='page-tabs' class='clearfix ui-tabs ui-widget ui-widget-content ui-corner-all'>
<ul id='page_parts'>
- <li class='ui-state-default'>
+ <li class='ui-state-default ui-state-active'>
<%= link_to "Body", "#page_part_body" %>
</li>
+ <li class='ui-state-default'>
+ <%= link_to "Teaser", "#page_part_teaser" %>
+ </li>
<% Refinery::Blog.tabs.each_with_index do |tab, tab_index| %>
<li class='ui-state-default' id="custom_<%= tab.name %>_tab">
<%= link_to tab.name.titleize, "#custom_tab_#{tab_index}" %>
@@ -31,6 +34,11 @@
:f => f,
:part_index => (part_index += 1),
} -%>
+ <%= render :partial => 'teaser_part',
+ :locals => {
+ :f => f,
+ :part_index => (part_index += 1),
+ } -%>
<% Refinery::Blog.tabs.each_with_index do |tab, tab_index| %>
<div class='page_part' id='<%= "custom_tab_#{tab_index}" %>'>
<%= render :partial => tab.partial, :locals => {:f => f} %>
diff --git a/app/views/admin/blog/posts/_form.js.erb b/app/views/admin/blog/posts/_form.js.erb
index b829ec2..87ad23f 100644
--- a/app/views/admin/blog/posts/_form.js.erb
+++ b/app/views/admin/blog/posts/_form.js.erb
@@ -1,5 +1,23 @@
<script>
(function($) {
- $('#page-tabs').tabs();
+ $(function() {
+ $('#page-tabs').tabs();
+ $('#copy_body_link').click(function(event) {
+ // Find the WYMEditor that maps to the custom_teaser field
+ var teaserTextArea = $('#blog_post_custom_teaser')[0];
+ var teaserEditor = null;
+ $.each(WYMeditor.INSTANCES, function(index, editor) {
+ if (editor._element[0] == teaserTextArea) {
+ teaserEditor = editor;
+ }
+ });
+
+ if (teaserEditor) {
+ teaserEditor.html($('#blog_post_body').attr('value'));
+ }
+
+ event.preventDefault();
+ });
+ });
})(jQuery);
</script>
diff --git a/app/views/admin/blog/posts/_teaser_part.html.erb b/app/views/admin/blog/posts/_teaser_part.html.erb
new file mode 100644
index 0000000..d615812
--- /dev/null
+++ b/app/views/admin/blog/posts/_teaser_part.html.erb
@@ -0,0 +1,11 @@
+<div class='page_part' id='page_part_teaser'>
+ <%= f.text_area :custom_teaser, :rows => 20, :class => 'wymeditor widest' -%>
+ <p>
+ <span class='clearfix label_inline_with_link'>
+ <%= link_to t('admin.blog.posts.form.copy_body'), "#",
+ :id => 'copy_body_link',
+ :title => t('admin.blog.posts.form.copy_body_help') %>
+ </span>
+ </p>
+</div>
+
diff --git a/app/views/blog/shared/_post.html.erb b/app/views/blog/shared/_post.html.erb
index 00e5d23..4750ef8 100644
--- a/app/views/blog/shared/_post.html.erb
+++ b/app/views/blog/shared/_post.html.erb
@@ -21,9 +21,7 @@
</section>
</header>
<section class='clearfix'>
- <%= truncate(post.body,
- :length => RefinerySetting.find_or_set(:blog_post_teaser_length, 250),
- :preserve_html_tags => true) %>
+ <%= blog_post_teaser(post) %>
</section>
<footer>
<p>