documentation-editor 0.9.0 → 0.10.0
Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f1d11c9e046b823acea840a344e93b4f3c4fb2e2
|
4
|
+
data.tar.gz: 8722bd73901e2cb8cc1a722b9926c482f7e76b85
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 50dfa6ea18a420ee9b62242da795db1b1d2571e4d44b3d8d4c62e97ddd2ff4c452a9522023752af97904e5cb16c1fe2a4bea0abc305517b6be4799676c18bb2e
|
7
|
+
data.tar.gz: cf05a99e8c27a12ebd73c0fe144be87f57598ad3bb51ac1f96396f4a28da6185e6bce1589d6beca260722639b827ff2684353d1d7101226302f993caae283a98
|
@@ -111,6 +111,37 @@ module DocumentationEditor
|
|
111
111
|
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)
|
112
112
|
end
|
113
113
|
|
114
|
+
def export
|
115
|
+
pages = Page.all.map do |p|
|
116
|
+
{
|
117
|
+
slug: p.slug,
|
118
|
+
created_at: p.created_at,
|
119
|
+
title: p.title,
|
120
|
+
languages: p.languages,
|
121
|
+
description: p.description,
|
122
|
+
section: p.section,
|
123
|
+
position: p.position,
|
124
|
+
content: p.revisions.last.try(:content)
|
125
|
+
}
|
126
|
+
end
|
127
|
+
send_data JSON.pretty_generate(pages), type: :json, disposition: 'attachment', filename: "export-#{DateTime.now}.json"
|
128
|
+
end
|
129
|
+
|
130
|
+
def import
|
131
|
+
JSON.parse(params[:file][:content].read).each do |page|
|
132
|
+
p = Page.find_or_initialize_by(slug: params[:slug])
|
133
|
+
p.created_at = page['created_at']
|
134
|
+
p.title = page['title']
|
135
|
+
p.languages = page['langauges']
|
136
|
+
p.description = page['description']
|
137
|
+
p.section = page['section']
|
138
|
+
p.position = page['position']
|
139
|
+
p.save!
|
140
|
+
p.add_revision!(page['content'], true)
|
141
|
+
end
|
142
|
+
redirect_to :admin
|
143
|
+
end
|
144
|
+
|
114
145
|
private
|
115
146
|
def setup_page
|
116
147
|
@page = Page.find(params[:id])
|
@@ -3,9 +3,19 @@
|
|
3
3
|
%h1 Edit documentation
|
4
4
|
|
5
5
|
.editor-content
|
6
|
-
|
7
|
-
%
|
8
|
-
|
6
|
+
%ul.list-inline.pull-right
|
7
|
+
%li
|
8
|
+
= link_to '#', class: 'btn btn-success pull-right', onclick: '$("#modal-new-page").modal("show"); return false;' do
|
9
|
+
%i.fa.fa-plus-circle
|
10
|
+
Add a new page
|
11
|
+
%li
|
12
|
+
= link_to export_path, class: 'btn btn-default pull-right' do
|
13
|
+
%i.fa.fa-download
|
14
|
+
Export
|
15
|
+
%li
|
16
|
+
= link_to '#', class: 'btn btn-default pull-right', onclick: '$("#modal-import").modal("show"); return false;' do
|
17
|
+
%i.fa.fa-upload
|
18
|
+
Import
|
9
19
|
%h3 Pages
|
10
20
|
%table.table.table-striped.pages
|
11
21
|
%thead
|
@@ -72,11 +82,25 @@
|
|
72
82
|
%button.close{type: 'button', 'data-dismiss' => 'modal', 'aria-label' => 'Close'}
|
73
83
|
%span{'aria-hidden' => true} ×
|
74
84
|
%h4.modal-title Create a new page
|
75
|
-
.
|
76
|
-
|
85
|
+
= form_for DocumentationEditor::Page.new, url: admin_path, html: { class: 'form' } do |f|
|
86
|
+
.modal-body
|
77
87
|
%p= f.text_field :title, placeholder: 'Title', class: 'form-control'
|
78
88
|
%p= f.text_field :slug, placeholder: 'Slug (ex: tutorials/my-tutorial)', class: 'form-control'
|
79
89
|
%p= f.text_field :description, placeholder: 'Description', class: 'form-control'
|
80
90
|
%p= f.text_field :languages_raw, placeholder: 'Languages (ex: ruby, php, python)', class: 'form-control'
|
81
91
|
%p= f.text_field :section, placeholder: 'Section name (ex: getting-started)', class: 'form-control'
|
82
|
-
|
92
|
+
.modal-footer
|
93
|
+
= f.submit 'Create', class: 'btn btn-success'
|
94
|
+
|
95
|
+
.modal.fade#modal-import
|
96
|
+
.modal-dialog
|
97
|
+
.modal-content
|
98
|
+
.modal-header
|
99
|
+
%button.close{type: 'button', 'data-dismiss' => 'modal', 'aria-label' => 'Close'}
|
100
|
+
%span{'aria-hidden' => true} ×
|
101
|
+
%h4.modal-title Import pages
|
102
|
+
= form_tag import_path, multipart: true, class: 'form' do
|
103
|
+
.modal-body
|
104
|
+
%p= file_field :file, :content, class: 'form-control'
|
105
|
+
.modal-footer
|
106
|
+
= submit_tag 'Upload', class: 'btn btn-success'
|
data/config/routes.rb
CHANGED
@@ -5,6 +5,9 @@ DocumentationEditor::Engine.routes.draw do
|
|
5
5
|
|
6
6
|
post '/images', as: :upload_image, :controller => 'pages', :action => 'upload_image'
|
7
7
|
|
8
|
+
get '/export', as: :export, :controller => 'pages', :action => 'export'
|
9
|
+
post '/import', as: :import, :controller => 'pages', :action => 'import'
|
10
|
+
|
8
11
|
get '/:id', :controller => 'pages', :action => 'source'
|
9
12
|
get '/:id/edit', as: :edit_page, :controller => 'pages', :action => 'edit'
|
10
13
|
put '/:id', as: :update, :controller => 'pages', :action => 'update'
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: documentation-editor
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.10.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Algolia Team
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-05-
|
11
|
+
date: 2016-05-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|