Class: DocumentationEditor::PagesController

Inherits:
ApplicationController show all
Defined in:
app/controllers/documentation_editor/pages_controller.rb

Instance Method Summary collapse

Instance Method Details

#commitObject



45
46
47
48
# File 'app/controllers/documentation_editor/pages_controller.rb', line 45

def commit
  r = @page.add_revision!(params[:data], params[:preview].to_s == 'false', respond_to?(:current_user) ? current_user.id : nil)
  render json: { id: r.id }
end

#createObject



50
51
52
53
54
55
56
57
58
59
60
# File 'app/controllers/documentation_editor/pages_controller.rb', line 50

def create
  p = Page.new
  p.author_id = respond_to?(:current_user) ? current_user.id : nil
  p.title = params[:page][:title]
  p.slug = params[:page][:slug]
  p.description = params[:page][:description]
  p.languages_raw = params[:page][:languages_raw]
  p.section = params[:page][:section]
  p.save!
  redirect_to edit_page_path(p)
end

#destroyObject



83
84
85
86
# File 'app/controllers/documentation_editor/pages_controller.rb', line 83

def destroy
  @page.destroy
  redirect_to :admin
end

#diffObject



110
111
112
# File 'app/controllers/documentation_editor/pages_controller.rb', line 110

def diff
  render inline: Diffy::Diff.new(Revision.find(params[:prev]).content, Revision.find(params[:cur]).content, context: 5, include_plus_and_minus_in_html: true, include_diff_info: true).to_s(:html)
end

#editObject



27
28
# File 'app/controllers/documentation_editor/pages_controller.rb', line 27

def edit
end

#historyObject



103
104
# File 'app/controllers/documentation_editor/pages_controller.rb', line 103

def history
end

#indexObject



24
25
# File 'app/controllers/documentation_editor/pages_controller.rb', line 24

def index
end

#previewObject



62
63
64
65
# File 'app/controllers/documentation_editor/pages_controller.rb', line 62

def preview
  @revision = @page.revisions.last
  @options = params
end

#showObject

Raises:

  • (ActiveRecord::RecordNotFound)


67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
# File 'app/controllers/documentation_editor/pages_controller.rb', line 67

def show
  @page = Page.find_by!(slug: params[:slug])
  @revision = @page.published_revision
  raise ActiveRecord::RecordNotFound.new if @revision.nil?

  @options = params
  @base_path = if params[:section]
    s = request.path.split('/')
    s.pop
    s.join('/')
  else
    request.path
  end
  render :preview
end

#sourceObject



30
31
32
# File 'app/controllers/documentation_editor/pages_controller.rb', line 30

def source
  render json: { source: (@page.revisions.last.try(:content) || 'FIXME') }
end

#updateObject



34
35
36
37
38
39
40
41
42
43
# File 'app/controllers/documentation_editor/pages_controller.rb', line 34

def update
  @page.position = params[:page][:position] unless params[:page][:position].nil?
  @page.title = params[:page][:title] unless params[:page][:title].nil?
  @page.slug = params[:page][:slug] unless params[:page][:slug].nil?
  @page.description = params[:page][:description] unless params[:page][:description].nil?
  @page.languages_raw = params[:page][:languages_raw] unless params[:page][:languages_raw].nil?
  @page.section = params[:page][:section] unless params[:page][:section].nil?
  @page.save!
  render nothing: true
end

#upload_imageObject



88
89
90
91
92
93
94
# File 'app/controllers/documentation_editor/pages_controller.rb', line 88

def upload_image
  image = Image.new
  image.caption = params[:caption]
  image.image = params[:file]
  image.save!
  render json: { id: image.id, url: image.image.url, caption: image.caption }
end

#upload_thumbnailObject



96
97
98
99
100
101
# File 'app/controllers/documentation_editor/pages_controller.rb', line 96

def upload_thumbnail
  thumb = @page.build_thumbnail
  thumb.image = params[:file]
  @page.save!
  render json: { id: thumb.id, url: thumb.image.url }
end

#versionsObject



106
107
108
# File 'app/controllers/documentation_editor/pages_controller.rb', line 106

def versions
  render json: { revisions: @page.revisions.order('id DESC').all }
end