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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 17fba412c58ddb97da16b7d6541b1b4de54a365f
4
- data.tar.gz: 8cb2f6ce0d6b3d5c8c250f15b722311010f4d474
3
+ metadata.gz: ec7fac739486a98458afa0231c3d4cae6b1cdce2
4
+ data.tar.gz: 9827f80097cf0d9c94e3e8ebf533d4ec769e7ce3
5
5
  SHA512:
6
- metadata.gz: 24a948109da1c80c239879906c5649c559e5ac4d262786cd8d85b1185f137598822ac1f4ad8ea56cd5b8e4c13bd36361fa3e364776e07d6c47a18c76f3f842f4
7
- data.tar.gz: cc115a72b4df85bd11c55910d01bb538835b0cb468489785b4b9e15dd1c5755f4d66f0bbfff320b6fe2ef641eb0d661b207681883f33af70ea922e76b176a050
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
- var $textarea;
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 + ") \n";
203
+ markdown = markdown + "![](asset://" + selected[i] + "/" + version + ")";
198
204
  }
199
205
 
200
206
  // add to textarea
201
- // TODO: save cursor position before opening overlay,
202
- // then apply it again here
203
- $textarea = this.$markitup_container.find("textarea");
204
- $textarea.val($textarea.val() + markdown);
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(["original"].concat(versions), function(v) {
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
- "<img src=\"#{url}\" alt=\"#{alt}\" title=\"#{title}\" />"
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
 
@@ -1,6 +1,6 @@
1
1
  module Lalala
2
2
  VERSION = "4.1.0"
3
- BUILD = "321"
3
+ BUILD = "322"
4
4
 
5
5
  if BUILD != ("{{BUILD_NUMBER" + "}}") # prevent sed replacement (see script/ci)
6
6
  BUILD_VERSION = "#{VERSION}.dev.#{BUILD}"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lalala
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.1.0.dev.321
4
+ version: 4.1.0.dev.322
5
5
  platform: ruby
6
6
  authors:
7
7
  - Simon Menke