documentation-editor 0.7.4 → 0.8.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/assets/javascripts/documentation_editor/pages.js +27 -5
- data/app/assets/stylesheets/documentation_editor/pages.css.sass +2 -2
- data/app/views/documentation_editor/pages/edit.html.haml +2 -2
- data/app/views/documentation_editor/pages/index.html.haml +12 -6
- data/lib/documentation_editor/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b7b80df188d0b484eb42a010dfc2239ece09f07d
|
4
|
+
data.tar.gz: e8a4f893a32b4833bf57a9eef026c4ae1eb3e281
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d0bfde7c50eb9451a7d4e1d640127ac37bb3f46188d7bdb511330c2c02e54b52c9166eea4d12550fb5a0523d809b1176d9a99c0b13523ff46e6a6c02f59b5165
|
7
|
+
data.tar.gz: fea268cca38c1f6a14f29a6d3729a0bac1f2f5f8b3c05c2c7dc599d1cf7c145d0e912cf8de6d63b134f6eadb89c4c7b4cd94472ae5f82aa46f882c2ca2170a81
|
@@ -68,6 +68,26 @@ angular.module('documentationEditorApp', ['ngFileUpload'])
|
|
68
68
|
return data.join("\n");
|
69
69
|
}
|
70
70
|
|
71
|
+
var sourceWatcher = null;
|
72
|
+
$scope.$watch('source', function(newValue, oldValue) {
|
73
|
+
if (newValue === oldValue) {
|
74
|
+
return;
|
75
|
+
}
|
76
|
+
if (sourceWatcher) {
|
77
|
+
clearTimeout(sourceWatcher);
|
78
|
+
}
|
79
|
+
sourceWatcher = setTimeout(function() {
|
80
|
+
$scope.$apply(function() {
|
81
|
+
$scope.undoRedo.push({
|
82
|
+
type: 'source',
|
83
|
+
data: {
|
84
|
+
source: newValue
|
85
|
+
}
|
86
|
+
});
|
87
|
+
});
|
88
|
+
}, 1000);
|
89
|
+
});
|
90
|
+
|
71
91
|
$scope.init = function(id, slug, thumbnailUrl, path, published_revision_id, last_revision_id) {
|
72
92
|
$scope.id = id;
|
73
93
|
$scope.slug = slug;
|
@@ -104,6 +124,8 @@ angular.module('documentationEditorApp', ['ngFileUpload'])
|
|
104
124
|
$scope.sections = $.grep($scope.sections, function(e) { return e.id !== o.data.obj.id });
|
105
125
|
} else if (o.type === 'deleteSection') {
|
106
126
|
$scope.sections = o.data.sections;
|
127
|
+
} else if (o.type === 'source') {
|
128
|
+
$scope.source = o.data.source;
|
107
129
|
} else if (o.type === 'text') {
|
108
130
|
o.model.$setViewValue(o.data);
|
109
131
|
o.model.$render();
|
@@ -121,7 +143,7 @@ angular.module('documentationEditorApp', ['ngFileUpload'])
|
|
121
143
|
var index = getIndex(o.data.id);
|
122
144
|
var obj = {
|
123
145
|
id: $scope.sections[index].id,
|
124
|
-
type: '
|
146
|
+
type: 'buttons',
|
125
147
|
content: {
|
126
148
|
buttons: o.data.buttons
|
127
149
|
}
|
@@ -131,7 +153,7 @@ angular.module('documentationEditorApp', ['ngFileUpload'])
|
|
131
153
|
var index = getIndex(o.data.id);
|
132
154
|
$scope.sections[index] = {
|
133
155
|
id: $scope.sections[index].id,
|
134
|
-
type: '
|
156
|
+
type: 'table',
|
135
157
|
content: o.data.content
|
136
158
|
};
|
137
159
|
} else if (o.type === 'moveDown') {
|
@@ -225,7 +247,7 @@ angular.module('documentationEditorApp', ['ngFileUpload'])
|
|
225
247
|
content: {
|
226
248
|
codes: [
|
227
249
|
{
|
228
|
-
language: '
|
250
|
+
language: 'FIXME:language|label',
|
229
251
|
code: '// FIXME'
|
230
252
|
}
|
231
253
|
]
|
@@ -474,7 +496,7 @@ angular.module('documentationEditorApp', ['ngFileUpload'])
|
|
474
496
|
$event.preventDefault();
|
475
497
|
add(id, {
|
476
498
|
id: getNextID(),
|
477
|
-
type: '
|
499
|
+
type: 'table',
|
478
500
|
content: {
|
479
501
|
cols: 2,
|
480
502
|
rows: 2,
|
@@ -519,7 +541,7 @@ angular.module('documentationEditorApp', ['ngFileUpload'])
|
|
519
541
|
$event.preventDefault();
|
520
542
|
if (confirm('Are you sure you want to publish this page?')) {
|
521
543
|
save(false).then(function(content) {
|
522
|
-
$window.
|
544
|
+
$window.open($scope.path + '/' + $scope.slug);
|
523
545
|
});
|
524
546
|
}
|
525
547
|
}
|
@@ -50,11 +50,11 @@
|
|
50
50
|
|
51
51
|
.markdown
|
52
52
|
color: black
|
53
|
-
border
|
53
|
+
border: 2px solid #DDD !important
|
54
54
|
background: white
|
55
55
|
padding: 5px 10px
|
56
56
|
margin: 0
|
57
|
-
font-family:
|
57
|
+
font-family: Courier
|
58
58
|
&:focus
|
59
59
|
outline: none
|
60
60
|
textarea.markdown
|
@@ -64,7 +64,7 @@
|
|
64
64
|
%li
|
65
65
|
Width:
|
66
66
|
%input{"ng-model" => "sections[sectionIndex].content.width", type: 'number'}
|
67
|
-
%table.table.parameters{"ng-if" => "section.type === '
|
67
|
+
%table.table.parameters{"ng-if" => "section.type === 'table'"}
|
68
68
|
%thead
|
69
69
|
%tr
|
70
70
|
%th{contenteditable: true, "ng-repeat" => "col in getIntegerIterator(section.content.cols)", 'ng-model' => "sections[sectionIndex].content.data['h-' + col]"}
|
@@ -107,7 +107,7 @@
|
|
107
107
|
%i.fa.fa-remove>
|
108
108
|
%a{contenteditable: true, 'ng-href' => '#snippet_{{section.id}}_{{$index}}'.html_safe, 'data-toggle' => 'tab', 'ng-model' => 'sections[sectionIndex].content.codes[$index].language' }>
|
109
109
|
.tab-content
|
110
|
-
%pre.tab-pane{contenteditable: true, "ng-repeat" => "code in section.content.codes track by $index", "ng-class" => "{ 'in active': ($index === 0) }",
|
110
|
+
%pre.tab-pane{contenteditable: true, "ng-repeat" => "code in section.content.codes track by $index", "ng-class" => "{ 'in active': ($index === 0) }",'ng-attr-id' => 'snippet_{{section.id}}_{{$index}}'.html_safe, 'ng-model' => 'sections[sectionIndex].content.codes[$index].code'}
|
111
111
|
.html{"ng-if" => "section.type === 'html'"}
|
112
112
|
%pre{contenteditable: true, 'ng-model' => 'sections[sectionIndex].content.body'}
|
113
113
|
|
@@ -22,29 +22,35 @@
|
|
22
22
|
%td
|
23
23
|
- if p.thumbnail
|
24
24
|
= image_tag p.thumbnail_url
|
25
|
-
%td.nowrap
|
26
|
-
|
27
|
-
|
25
|
+
%td.nowrap
|
26
|
+
= best_in_place p, :position, url: update_path(p)
|
27
|
+
%i.fa.fa-pencil
|
28
|
+
%td.nowrap
|
29
|
+
= best_in_place p, :title, url: update_path(p)
|
30
|
+
%i.fa.fa-pencil
|
31
|
+
%td.nowrap
|
32
|
+
= best_in_place p, :slug, url: update_path(p)
|
33
|
+
%i.fa.fa-pencil
|
28
34
|
%td
|
29
35
|
%ul.list-unstyled
|
30
36
|
%li
|
31
37
|
%strong Description:
|
32
38
|
= best_in_place p, :description, url: update_path(p)
|
39
|
+
%i.fa.fa-pencil
|
33
40
|
%li
|
34
41
|
%strong Languages:
|
35
42
|
= best_in_place p, :languages_raw, url: update_path(p)
|
43
|
+
%i.fa.fa-pencil
|
36
44
|
%li
|
37
45
|
%strong Section:
|
38
46
|
= best_in_place p, :section, url: update_path(p)
|
47
|
+
%i.fa.fa-pencil
|
39
48
|
%li
|
40
49
|
%strong Last modification:
|
41
50
|
= l p.created_at, format: :short
|
42
51
|
%li
|
43
52
|
%strong Published at:
|
44
53
|
= p.published_revision ? l(p.published_revision.created_at, format: :long) : ''
|
45
|
-
%li
|
46
|
-
%strong Published by:
|
47
|
-
= p.published_revision ? p.published_revision.author_id : ''
|
48
54
|
%td.text-right.nowrap
|
49
55
|
= link_to edit_page_path(p), class: 'btn btn-default btn-xs' do
|
50
56
|
%i.fa.fa-edit
|
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.8.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-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|