lalala 4.1.0.dev.321 → 4.1.0.dev.322
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/lalala/modules/editor.module.js +2 -0
- data/app/assets/javascripts/lalala/modules/media_selector.module.js +64 -9
- data/lib/lalala/markdown/handlers/asset.rb +7 -1
- data/lib/lalala/markdown/html_renderer.rb +4 -0
- data/lib/lalala/markdown/markdown_renderer.rb +2 -2
- data/lib/lalala/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ec7fac739486a98458afa0231c3d4cae6b1cdce2
|
4
|
+
data.tar.gz: 9827f80097cf0d9c94e3e8ebf533d4ec769e7ce3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c4c889f6b37ca982eb6921baf44f409ef2b2ca028a82afa78a25ad5fb8e2483f3b07dc7e8fe3e28dc200ce3ee28f6048e5751e5eb711fb313c27b28541812aab
|
7
|
+
data.tar.gz: bdbc26d54a8d7323bc8d01de1dd512a9e7d1e928cfc8bb54c5c5cca30be89023ae5be059a498a09af5ba5f19fa311c95dba5ada5c8b7cd911cef09632a090043
|
@@ -91,6 +91,8 @@ function add_image_click_handler(e) {
|
|
91
91
|
|
92
92
|
ms = new MediaSelector();
|
93
93
|
ms.$markitup_container = $(e.currentTarget).closest(".markItUpContainer");
|
94
|
+
ms.set_elements();
|
95
|
+
ms.save_cursor_position();
|
94
96
|
|
95
97
|
overlay = Overlay.get_instance();
|
96
98
|
overlay.append_content(ms.$el);
|
@@ -20,6 +20,11 @@ function MediaSelector() {
|
|
20
20
|
}
|
21
21
|
|
22
22
|
|
23
|
+
MediaSelector.prototype.set_elements = function() {
|
24
|
+
this.$textarea = this.$markitup_container.find("textarea");
|
25
|
+
};
|
26
|
+
|
27
|
+
|
23
28
|
|
24
29
|
//
|
25
30
|
// Data & Render
|
@@ -190,30 +195,77 @@ MediaSelector.prototype.add_selected_to_editor_textarea = function() {
|
|
190
195
|
var selected = this.selected_ids;
|
191
196
|
var version = this.$el.find(".options .version select option:selected").val() || "original";
|
192
197
|
var markdown = "";
|
193
|
-
|
198
|
+
|
199
|
+
var old_textarea_text, new_textarea_text;
|
194
200
|
|
195
201
|
// build markdown text
|
196
202
|
for (var i=0, j=selected.length; i<j; ++i) {
|
197
|
-
markdown = markdown + "![](asset://" + selected[i] + "/" + version + ")
|
203
|
+
markdown = markdown + "![](asset://" + selected[i] + "/" + version + ")";
|
198
204
|
}
|
199
205
|
|
200
206
|
// add to textarea
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
207
|
+
old_textarea_text = this.$textarea.val();
|
208
|
+
|
209
|
+
new_textarea_text =
|
210
|
+
old_textarea_text.substring(0, this.textarea_cursor_position) +
|
211
|
+
markdown +
|
212
|
+
old_textarea_text.substr(this.textarea_cursor_position);
|
213
|
+
|
214
|
+
this.$textarea.val(new_textarea_text);
|
205
215
|
|
206
216
|
// hide overlay
|
207
217
|
Overlay.get_instance().hide();
|
208
218
|
};
|
209
219
|
|
210
220
|
|
221
|
+
MediaSelector.prototype.save_cursor_position = function() {
|
222
|
+
var textarea, position, selection_range, text_range, text_range_duplicate;
|
223
|
+
|
224
|
+
// elements
|
225
|
+
textarea = this.$textarea.get(0);
|
226
|
+
|
227
|
+
// find position
|
228
|
+
if (textarea.selectionStart != null) {
|
229
|
+
position = textarea.selectionStart;
|
230
|
+
|
231
|
+
} else if (document.selection) {
|
232
|
+
selection_range = document.selection.createRange();
|
233
|
+
|
234
|
+
if (selection_range == null) {
|
235
|
+
position = false;
|
236
|
+
|
237
|
+
} else {
|
238
|
+
text_range = textarea.createTextRange();
|
239
|
+
text_range_duplicate = text_range.duplicate();
|
240
|
+
|
241
|
+
text_range.moveToBookmark(selection_range.getBookmark());
|
242
|
+
text_range_duplicate.setEndPoint("EndToStart", text_range);
|
243
|
+
position = text_range_duplicate.text.length;
|
244
|
+
|
245
|
+
}
|
246
|
+
|
247
|
+
} else {
|
248
|
+
position = false;
|
249
|
+
|
250
|
+
}
|
251
|
+
|
252
|
+
// if no position found
|
253
|
+
if (position === false || position == null) {
|
254
|
+
position = this.$textarea.val().length;
|
255
|
+
}
|
256
|
+
|
257
|
+
// set
|
258
|
+
this.textarea_cursor_position = position;
|
259
|
+
};
|
260
|
+
|
261
|
+
|
211
262
|
|
212
263
|
//
|
213
264
|
// Options
|
214
265
|
//
|
215
266
|
MediaSelector.prototype.setup_version_option = function() {
|
216
267
|
var versions = [];
|
268
|
+
var excludes = [];
|
217
269
|
var select_element;
|
218
270
|
|
219
271
|
// collect all versions
|
@@ -222,15 +274,18 @@ MediaSelector.prototype.setup_version_option = function() {
|
|
222
274
|
|
223
275
|
for (var k=0, l=data_piece.versions.length; k<l; ++k) {
|
224
276
|
var version = data_piece.versions[k];
|
225
|
-
if (versions.indexOf(version) === -1) {
|
226
|
-
versions.push(version)
|
277
|
+
if (excludes.indexOf(version) == -1 && versions.indexOf(version) === -1) {
|
278
|
+
versions.push(version);
|
227
279
|
}
|
228
280
|
}
|
229
281
|
}
|
230
282
|
|
283
|
+
// sort versions
|
284
|
+
versions = versions.sort();
|
285
|
+
|
231
286
|
// make option element
|
232
287
|
select_element = document.createElement("select");
|
233
|
-
select_element.innerHTML = $.map(
|
288
|
+
select_element.innerHTML = $.map(versions, function(v) {
|
234
289
|
return "<option value=\"" + v + "\">" + v + "</option>";
|
235
290
|
}).join("");
|
236
291
|
|
@@ -13,12 +13,18 @@ class Lalala::Markdown::Handlers::Asset < Lalala::Markdown::Handlers::Base
|
|
13
13
|
id = id_with_version[0]
|
14
14
|
version = id_with_version[1] || "original"
|
15
15
|
|
16
|
+
# build url
|
16
17
|
url = "//" + File.join(
|
17
18
|
"c." + Haraway.configuration.endpoint,
|
18
19
|
id,
|
19
20
|
version.to_s)
|
20
21
|
|
21
|
-
|
22
|
+
# build img element
|
23
|
+
helpers.image_tag(
|
24
|
+
url,
|
25
|
+
alt: alt,
|
26
|
+
title: title
|
27
|
+
)
|
22
28
|
end
|
23
29
|
|
24
30
|
end
|
@@ -62,6 +62,10 @@ class Lalala::Markdown::HtmlRenderer < Redcarpet::Render::HTML
|
|
62
62
|
return ""
|
63
63
|
end
|
64
64
|
|
65
|
+
if content =~ /^\<(img|div|span|strong|em)/
|
66
|
+
content = helpers.raw(content)
|
67
|
+
end
|
68
|
+
|
65
69
|
options = (@options[:link_attributes] || {}).merge(title: title)
|
66
70
|
helpers.link_to(content, link, options)
|
67
71
|
end
|
@@ -208,7 +208,7 @@ class Lalala::Markdown::MarkdownRenderer < Redcarpet::Render::Base
|
|
208
208
|
if title.blank?
|
209
209
|
"![#{alt_text}](#{link})"
|
210
210
|
else
|
211
|
-
"![#{alt_text}](#{link} #{title})"
|
211
|
+
"![#{alt_text}](#{link} \"#{title}\")"
|
212
212
|
end
|
213
213
|
end
|
214
214
|
|
@@ -220,7 +220,7 @@ class Lalala::Markdown::MarkdownRenderer < Redcarpet::Render::Base
|
|
220
220
|
if title.blank?
|
221
221
|
"[#{content}](#{link})"
|
222
222
|
else
|
223
|
-
"[#{content}](#{link} #{title})"
|
223
|
+
"[#{content}](#{link} \"#{title}\")"
|
224
224
|
end
|
225
225
|
end
|
226
226
|
|
data/lib/lalala/version.rb
CHANGED