diff options
Diffstat (limited to 'app/views/refinery/admin/blog/posts')
11 files changed, 249 insertions, 0 deletions
diff --git a/app/views/refinery/admin/blog/posts/_form.css.erb b/app/views/refinery/admin/blog/posts/_form.css.erb new file mode 100644 index 0000000..869ab9b --- /dev/null +++ b/app/views/refinery/admin/blog/posts/_form.css.erb @@ -0,0 +1,20 @@ +<style type='text/css'> + ul.blog_categories{ + height:200px; + overflow:auto; + border:1px solid #ccc; + padding:5px; + } + ul.blog_categories, ul.blog_categories li { + list-style: none; + margin:5px 0; + } + 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/refinery/admin/blog/posts/_form.html.erb b/app/views/refinery/admin/blog/posts/_form.html.erb new file mode 100644 index 0000000..1fc0050 --- /dev/null +++ b/app/views/refinery/admin/blog/posts/_form.html.erb @@ -0,0 +1,108 @@ +<%= form_for [main_app, :refinery_admin, @blog_post] do |f| -%> + <%= render :partial => "/refinery/admin/error_messages", + :locals => { + :object => f.object, + :include_object_name => true + } %> + + <div class='field'> + <%= f.label :title -%> + <%= f.text_field :title, :class => 'larger widest' -%> + </div> + + <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 ui-state-active'> + <%= link_to t('body', :scope => 'activerecord.attributes.blog_post'), "#page_part_body" %> + </li> + <li class='ui-state-default'> + <%= link_to t('teaser', :scope => 'activerecord.attributes.blog_post'), "#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}" %> + </li> + <% end %> + </ul> + + <div id='page_part_editors'> + + <% part_index = -1 %> + <%= render :partial => 'form_part', + :locals => { + :f => f, + :part_index => (part_index += 1), + } -%> + <%= render :partial => 'teaser_part', + :locals => { + :f => f, + :part_index => (part_index += 1), + } if f.object.respond_to?(:custom_teaser) -%> + <% 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} %> + </div> + <% end %> + </div> + </div> + </div> + + <div class='field'> + <%= f.label :tag_list, t('blog.shared.tags.title') -%> + <%= f.text_field :tag_list, :class => 'larger' -%> + </div> + + <div id='more_options_field'> + <p> + <%= link_to t('.advanced_options'), "#", + :id => 'toggle_advanced_options', + :title => t('.toggle_advanced_options') %> + </p> + <span id='draft_field'> + <%= f.check_box :draft %> + <%= f.label :draft, t('.save_as_draft'), :class => "stripped" %> + </span> + </div> + <div id='more_options' style="display:none;"> + <div class="hemisquare"> + <h3><%= t('title', :scope => 'admin.blog.submenu.categories') %></h3> + <ul class='blog_categories'> + <% @blog_categories.each do |category| %> + <li> + <%= check_box_tag 'blog_post[category_ids][]', category.id, + @blog_post.categories.include?(category), + :id => (id="blog_post_category_ids_#{category.id}") %> + <%= label_tag 'blog_post[category_ids][]', category.title, + :class => 'stripped', + :for => id %> + </li> + <% end %> + </ul> + <h3><%= t('.published_at') %></h3> + <%= f.datetime_select :published_at %> + + <div class='field'> + <span class='label_with_help'> + <%= f.label :custom_url, t('.custom_url') %> + <%= refinery_help_tag t('.custom_url_help') %> + </span> + <%= f.text_field :custom_url, :class => "widest" %> + </div> + + </div> + <div class='hemisquare right_side'> + <%= render :partial => '/seo_meta/form', :locals => {:form => f} %> + </div> + </div> + <%= render :partial => "/refinery/admin/form_actions", + :locals => { + :f => f, + :continue_editing => true, + :delete_title => t('delete', :scope => 'admin.blog.posts.post') + } %> +<% end -%> + +<% content_for :stylesheets, render(:partial => 'form.css') -%> +<% content_for :javascripts, render(:partial => 'form.js') -%> +<%= render 'refinery/shared/admin/autocomplete', :dom_id => '#blog_post_tag_list', :url => main_app.tags_refinery_admin_blog_posts_url %> diff --git a/app/views/refinery/admin/blog/posts/_form.js.erb b/app/views/refinery/admin/blog/posts/_form.js.erb new file mode 100644 index 0000000..87ad23f --- /dev/null +++ b/app/views/refinery/admin/blog/posts/_form.js.erb @@ -0,0 +1,23 @@ +<script> + (function($) { + $(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/refinery/admin/blog/posts/_form_part.html.erb b/app/views/refinery/admin/blog/posts/_form_part.html.erb new file mode 100644 index 0000000..114e493 --- /dev/null +++ b/app/views/refinery/admin/blog/posts/_form_part.html.erb @@ -0,0 +1,3 @@ +<div class='page_part' id='page_part_body'> + <%= f.text_area :body, :rows => 20, :class => 'wymeditor widest' -%> +</div> diff --git a/app/views/refinery/admin/blog/posts/_post.html.erb b/app/views/refinery/admin/blog/posts/_post.html.erb new file mode 100644 index 0000000..a7f09e0 --- /dev/null +++ b/app/views/refinery/admin/blog/posts/_post.html.erb @@ -0,0 +1,21 @@ +<li class='clearfix record <%= cycle("on", "on-hover") %>' id="<%= dom_id(post) -%>"> + <span class='title'> + <%= post.title %> + <span class="preview"> + <%= post.published_at.try(:strftime, '%b %d, %Y') || 'draft' %> + <%= " by #{post.author.username}" if post.author.present? %> + </span> + </span> + <span class='actions'> + <%= link_to refinery_icon_tag("application_go.png"), blog_post_url(post), + :title => t('.view_live_html'), + :target => "_blank" %> + <%= link_to refinery_icon_tag("application_edit.png"), edit_admin_blog_post_path(post), + :title => t('.edit') %> + <%= link_to refinery_icon_tag("delete.png"), admin_blog_post_path(post), + :class => "cancel confirm-delete", + :title => t('.delete'), + :method => :delete, + :confirm => t('message', :scope => 'shared.admin.delete', :title => post.title) %> + </span> +</li> diff --git a/app/views/refinery/admin/blog/posts/_sortable_list.html.erb b/app/views/refinery/admin/blog/posts/_sortable_list.html.erb new file mode 100644 index 0000000..7ae0ad3 --- /dev/null +++ b/app/views/refinery/admin/blog/posts/_sortable_list.html.erb @@ -0,0 +1,7 @@ +<ul id='sortable_list'> + <%= render :partial => 'post', :collection => @blog_posts %> +</ul> +<%= render :partial => "/shared/admin/sortable_list", + :locals => { + :continue_reordering => (defined?(continue_reordering) ? continue_reordering : true) + } %> diff --git a/app/views/refinery/admin/blog/posts/_teaser_part.html.erb b/app/views/refinery/admin/blog/posts/_teaser_part.html.erb new file mode 100644 index 0000000..71d7d01 --- /dev/null +++ b/app/views/refinery/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('copy_body', :scope => 'admin.blog.posts.form'), "#", + :id => 'copy_body_link', + :title => t('copy_body_help', :scope => 'admin.blog.posts.form') %> + </span> + </p> +</div> + diff --git a/app/views/refinery/admin/blog/posts/edit.html.erb b/app/views/refinery/admin/blog/posts/edit.html.erb new file mode 100644 index 0000000..2872e82 --- /dev/null +++ b/app/views/refinery/admin/blog/posts/edit.html.erb @@ -0,0 +1 @@ +<%= render :partial => "form" %> diff --git a/app/views/refinery/admin/blog/posts/index.html.erb b/app/views/refinery/admin/blog/posts/index.html.erb new file mode 100644 index 0000000..72037ca --- /dev/null +++ b/app/views/refinery/admin/blog/posts/index.html.erb @@ -0,0 +1,28 @@ +<%= render :partial => '/refinery/admin/blog/submenu' %> +<div id='records'> + <% if searching? %> + <h2><%= t('results_for', :scope => 'shared.admin.search', :query => params[:search]) %></h2> + <% if @blog_posts.any? %> + <ul> + <%= render :partial => "post", + :collection => @blog_posts %> + </ul> + <% else %> + <p><%= t('no_results', :scope => 'shared.admin.search') %></p> + <% end %> + <% else %> + <% if @blog_posts.any? %> + <%= will_paginate @blog_posts %> + + <%= render :partial => "sortable_list" %> + + <%= will_paginate @blog_posts %> + <% else %> + <p> + <strong> + <%= t('.no_items_yet', :create => t('new', :scope => 'admin.blog.submenu.posts')) %> + </strong> + </p> + <% end %> + <% end %> +</div> diff --git a/app/views/refinery/admin/blog/posts/new.html.erb b/app/views/refinery/admin/blog/posts/new.html.erb new file mode 100644 index 0000000..2872e82 --- /dev/null +++ b/app/views/refinery/admin/blog/posts/new.html.erb @@ -0,0 +1 @@ +<%= render :partial => "form" %> diff --git a/app/views/refinery/admin/blog/posts/uncategorized.html.erb b/app/views/refinery/admin/blog/posts/uncategorized.html.erb new file mode 100644 index 0000000..19d9e20 --- /dev/null +++ b/app/views/refinery/admin/blog/posts/uncategorized.html.erb @@ -0,0 +1,26 @@ +<%= render :partial => '/admin/blog/submenu' %> +<div id='records'> + <% if searching? %> + <h2><%= t('results_for', :scope => 'shared.admin.search', :query => params[:search]) %></h2> + <% if @blog_posts.any? %> + <%= render :partial => "blog_posts", + :collection => @blog_posts %> + <% else %> + <p><%= t('search_no_results', :scope => 'admin') %></p> + <% end %> + <% else %> + <% if @blog_posts.any? %> + <%= will_paginate @blog_posts %> + + <%= render :partial => "sortable_list" %> + + <%= will_paginate @blog_posts %> + <% else %> + <p> + <strong> + <%= t('.no_items_yet', :create => t('new', :scope => 'admin.blog.submenu.posts')) %> + </strong> + </p> + <% end %> + <% end %> +</div> |