Class: Spina::Blog::PostsController
- Inherits:
-
AdminController
- Object
- AdminController
- Spina::Blog::PostsController
- Defined in:
- app/controllers/spina/blog/posts_controller.rb,
app/controllers/spina/admin/blog/posts_controller.rb
Instance Method Summary collapse
- #archive ⇒ Object
- #create ⇒ Object
- #destroy ⇒ Object
- #draft ⇒ Object
- #edit ⇒ Object
- #future ⇒ Object
- #index ⇒ Object
- #live ⇒ Object
- #new ⇒ Object
- #show ⇒ Object
- #update ⇒ Object
Instance Method Details
#archive ⇒ Object
25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'app/controllers/spina/blog/posts_controller.rb', line 25 def archive if params[:year] and params[:month] start = Time.new params[:year].to_i, params[:month].to_i finish = start.end_of_month elsif params[:year] start = Time.new params[:year].to_i finish = start.end_of_year end @posts = Spina::Blog::Post.live .where(published_at: start..finish) .order(published_at: :desc) .page(params[:page]) render layout: "#{current_theme.name.parameterize.underscore}/application" end |
#create ⇒ Object
37 38 39 40 41 42 43 44 45 |
# File 'app/controllers/spina/admin/blog/posts_controller.rb', line 37 def create @post = Spina::Blog::Post.new post_params if @post.save redirect_to spina.edit_admin_blog_post_url(@post.id), notice: t('spina.blog.posts.saved') else I18n.t('spina.blog.posts.new') render :new, layout: 'spina/admin/admin' end end |
#destroy ⇒ Object
71 72 73 74 75 |
# File 'app/controllers/spina/admin/blog/posts_controller.rb', line 71 def destroy @post = Spina::Blog::Post.find(params[:id]) @post.destroy redirect_to spina.admin_blog_posts_path end |
#draft ⇒ Object
21 22 23 24 |
# File 'app/controllers/spina/admin/blog/posts_controller.rb', line 21 def draft @posts = Spina::Blog::Post.draft.order(created_at: :desc) render :index end |
#edit ⇒ Object
47 48 49 50 51 |
# File 'app/controllers/spina/admin/blog/posts_controller.rb', line 47 def edit @post = Spina::Blog::Post.find params[:id] @post.title render layout: 'spina/admin/admin' end |
#future ⇒ Object
26 27 28 29 |
# File 'app/controllers/spina/admin/blog/posts_controller.rb', line 26 def future @posts = Spina::Blog::Post.future.order(created_at: :desc) render :index end |
#index ⇒ Object
6 7 8 9 10 11 12 13 14 15 16 17 |
# File 'app/controllers/spina/blog/posts_controller.rb', line 6 def index @posts = Spina::Blog::Post.available.live.order(published_at: :desc).page(params[:page]) # if current_spina_user and current_spina_user.admin? # @posts = @posts.unscope(where: :draft) # end respond_to do |format| format.atom format.html { render layout: "#{current_theme.name.parameterize.underscore}/application" } end end |
#live ⇒ Object
16 17 18 19 |
# File 'app/controllers/spina/admin/blog/posts_controller.rb', line 16 def live @posts = Spina::Blog::Post.live.order(created_at: :desc) render :index end |
#new ⇒ Object
31 32 33 34 35 |
# File 'app/controllers/spina/admin/blog/posts_controller.rb', line 31 def new @post = Spina::Blog::Post.new I18n.t('spina.blog.posts.new') render layout: 'spina/admin/admin' end |
#show ⇒ Object
19 20 21 22 23 |
# File 'app/controllers/spina/blog/posts_controller.rb', line 19 def show @post = Spina::Blog::Post.friendly.find params[:id] render layout: "#{current_theme.name.parameterize.underscore}/application" end |
#update ⇒ Object
53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 |
# File 'app/controllers/spina/admin/blog/posts_controller.rb', line 53 def update I18n.locale = params[:locale] || I18n.default_locale @post = Spina::Blog::Post.find(params[:id]) respond_to do |format| if @post.update_attributes(post_params) @post.title @post.touch I18n.locale = I18n.default_locale format.html { redirect_to spina.edit_admin_blog_post_url(@post.id, params: {locale: @locale}), notice: t('spina.blog.posts.saved') } format.js else format.html do render :edit, layout: 'spina/admin/admin' end end end end |