Class: Gluttonberg::Admin::Content::ArticlesController

Inherits:
BaseController
  • Object
show all
Defined in:
app/controllers/gluttonberg/admin/content/articles_controller.rb

Instance Method Summary collapse

Instance Method Details

#createObject



31
32
33
34
35
36
37
38
39
40
41
42
43
44
# File 'app/controllers/gluttonberg/admin/content/articles_controller.rb', line 31

def create
  params[:gluttonberg_article_localization][:article][:name] = params[:gluttonberg_article_localization][:title]
  article_attributes = params["gluttonberg_article_localization"].delete(:article)
  @article = Article.new(article_attributes)
  if @article.save
    Locale.all.each do |locale|
      @article_localization = ArticleLocalization.create(params[:gluttonberg_article_localization].merge(:locale_id => locale.id , :article_id => @article.id))
    end
    flash[:notice] = "The article was successfully created."
    redirect_to edit_admin_blog_article_path(@article.blog, @article)
  else
    render :edit
  end
end

#deleteObject



79
80
81
82
83
84
85
86
# File 'app/controllers/gluttonberg/admin/content/articles_controller.rb', line 79

def delete
  display_delete_confirmation(
    :title      => "Delete Article '#{@article.title}'?",
    :url        => admin_blog_article_path(@blog, @article),
    :return_url => admin_blog_articles_path(@blog), 
    :warning    => ""
  )
end

#destroyObject



88
89
90
91
92
93
94
95
96
97
# File 'app/controllers/gluttonberg/admin/content/articles_controller.rb', line 88

def destroy
  title = @article.current_localization.title
  if @article.destroy
    flash[:notice] = "The article was successfully deleted."
    redirect_to admin_blog_articles_path(@blog)
  else
    flash[:error] = "There was an error deleting the Article."
    redirect_to admin_blog_articles_path(@blog)
  end
end

#duplicateObject



99
100
101
102
103
104
105
106
107
108
109
# File 'app/controllers/gluttonberg/admin/content/articles_controller.rb', line 99

def duplicate
  @duplicated_article = @article.duplicate
  @duplicated_article.user_id = current_user.id
  if @duplicated_article
    flash[:notice] = "The article was successfully duplicated."
    redirect_to edit_admin_blog_article_path(@blog, @duplicated_article)
  else
    flash[:error] = "There was an error duplicating the article."
    redirect_to admin_blog_articles_path(@blog)
  end
end

#editObject



46
47
48
49
50
51
52
# File 'app/controllers/gluttonberg/admin/content/articles_controller.rb', line 46

def edit
  @authors = User.all
  unless params[:version].blank?
    @version = params[:version]
    @article.revert_to(@version)
  end
end

#indexObject



14
15
16
17
18
# File 'app/controllers/gluttonberg/admin/content/articles_controller.rb', line 14

def index
  conditions = {:blog_id => @blog.id}
  conditions[:user_id] = current_user.id unless current_user.super_admin?
  @articles = Article.where( conditions).paginate(:per_page => Gluttonberg::Setting.get_setting("number_of_per_page_items"), :page => params[:page])
end

#newObject



25
26
27
28
29
# File 'app/controllers/gluttonberg/admin/content/articles_controller.rb', line 25

def new
  @article = Article.new
  @article_localization = ArticleLocalization.new(:article => @article , :locale_id => Locale.first_default.id)
  @authors = User.all
end

#showObject



21
22
23
# File 'app/controllers/gluttonberg/admin/content/articles_controller.rb', line 21

def show
  @comment = Comment.new
end

#updateObject



54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
# File 'app/controllers/gluttonberg/admin/content/articles_controller.rb', line 54

def update
  article_attributes = params["gluttonberg_article_localization"].delete(:article)
  if @article_localization.update_attributes(params[:gluttonberg_article_localization])
    article = @article_localization.article
    article.current_slug = article.slug
    article.assign_attributes(article_attributes)
    article.previous_slug = article.current_slug if article.slug_changed?
    article.save
    
    localization_detail = ""
    if Gluttonberg.localized?
      localization_detail = " (#{@article_localization.locale.slug}) "
    end
    if Gluttonberg.localized?
      Gluttonberg::Feed.log(current_user,@article_localization,"#{@article_localization.title}#{localization_detail}" , "updated")
    end

    flash[:notice] = "The article was successfully updated."
    redirect_to admin_blog_articles_path(@blog)
  else
    flash[:error] = "Sorry, The article could not be updated."
    render :edit
  end
end