active_admin_pro 0.1.8 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 337a134b346a25a6ac5886f9bdfb068663bc1368
4
- data.tar.gz: 29b56126944e04248768b019a3856c6ed4ac54c7
3
+ metadata.gz: d234b1fc99606b31a281ae58de67fb786c8fa7c8
4
+ data.tar.gz: 2ce7519061be0f5f951e81bc5529ea99bef32d75
5
5
  SHA512:
6
- metadata.gz: 3646e8dff35bc988fb26501d13cdbadd9b7c8a5d4ad263ad2780e5913e6675a4440a56afb9f5c96d6c0c1bde4d692e9eaf9cb8e7f40f488c943cc8493ef003de
7
- data.tar.gz: 1779516a88483612ebaf22c7a9fb53ee5fce1a7bf0d078cff0ab8a6b548b195c712a652c619b60eadec66a8469d29824c505e9c50adad3102755bff945de5dda
6
+ metadata.gz: fb6f50e85086d2b749b42288f736d7198129c7c09fab6f2896d53b79e79b011591d0f9b9f1fe99e09928874dde03aa9ff03116035907125703fc7cb16f348302
7
+ data.tar.gz: d05dfcaf12668652b311eb94aca234c5fbc998cccd6a11739ee1c9e93cb807093cdbcc78fefb231172c99666dbe817a8ea77db51a1af2744e5681651ddb639de
@@ -31,13 +31,53 @@
31
31
  //= require codemirror/modes/shell
32
32
  //= require codemirror/modes/xml
33
33
  //= require codemirror/modes/yaml
34
+
34
35
  /* globals CodeMirror */
35
36
 
37
+ var globalEditor;
38
+
36
39
  // CodeMirror editor field.
37
40
  // @see https://codemirror.net
38
41
  (function() {
39
42
  "use strict";
40
43
 
44
+ function uploadAndInsertImage(editor, position, imageFile, callback) {
45
+ var fileName = imageFile.name;
46
+
47
+ // Add temporary uploading message
48
+ var uploadingMessage = '![Uploading ' + fileName + '…]()';
49
+ editor.doc.setSelection(position);
50
+ editor.doc.replaceSelection(uploadingMessage);
51
+
52
+ // Upload the file using the image upload ability from the Summernote editor
53
+ var data = new FormData();
54
+ data.append('file', imageFile);
55
+
56
+ $.ajax({
57
+ data: data,
58
+ type: 'POST',
59
+ url: '/admin/active_admin_pro_summernote_images',
60
+ cache: false,
61
+ contentType: false,
62
+ processData: false,
63
+
64
+ success: function(url) {
65
+ editor.doc.setSelection(position, { line: position.line, ch: position.ch + uploadingMessage.length });
66
+ editor.doc.replaceSelection('![' + fileName + '](' + url + ')');
67
+ },
68
+
69
+ error: function(err) {
70
+ var json_err = jQuery.parseJSON(err.responseText);
71
+ $('#wrapper').prepend('<div class="flashes animate"><div class="flash flash_notice">' + json_err.error + '</div></div>');
72
+ $('.note-editor .modal-dialog .note-image-input').val('');
73
+ },
74
+
75
+ complete: function() {
76
+ callback.call();
77
+ }
78
+ });
79
+ }
80
+
41
81
  App.register('component').enter(function() {
42
82
  var codemirrorInputs = $('.input.codemirror');
43
83
  var windowElement = $(window);
@@ -62,13 +102,24 @@
62
102
  codemirrorInput.focus();
63
103
  });
64
104
 
65
- codemirrorInput.on('focus', function() {
66
- wrapper.addClass('focused');
67
- });
68
-
69
105
  codemirrorInput.on('blur', function() {
70
106
  wrapper.removeClass('focused');
71
107
  });
108
+
109
+ codemirrorInput.on('drop', function(editor, event) {
110
+ globalEditor = editor;
111
+ var position = editor.coordsChar({ left: event.pageX, top: event.pageY });
112
+ var file = event.dataTransfer.files[0];
113
+
114
+ editor.setOption('readOnly', true);
115
+ uploadAndInsertImage(editor, position, file, function() {
116
+ editor.setOption('readOnly', false);
117
+ });
118
+ });
119
+
120
+ codemirrorInput.on('focus', function() {
121
+ wrapper.addClass('focused');
122
+ });
72
123
  });
73
124
 
74
125
  // Code Mirror works best when there is a fixed width on its container, so
@@ -97,8 +97,8 @@
97
97
 
98
98
  $.ajax({
99
99
  data: data,
100
- type: "POST",
101
- url: "/admin/active_admin_pro_summernote_images",
100
+ type: 'POST',
101
+ url: '/admin/active_admin_pro_summernote_images',
102
102
  cache: false,
103
103
  contentType: false,
104
104
  processData: false,
@@ -109,7 +109,7 @@
109
109
  },
110
110
 
111
111
  error: function(err) {
112
- var json_err = jQuery.parseJSON(err.responseText)
112
+ var json_err = jQuery.parseJSON(err.responseText);
113
113
  $('#wrapper').prepend('<div class="flashes animate"><div class="flash flash_notice">' + json_err.error + '</div></div>');
114
114
  $('.note-editor .modal-dialog .note-image-input').val('');
115
115
  }
@@ -1,3 +1,3 @@
1
1
  module ActiveAdminPro
2
- VERSION = "0.1.8".freeze
2
+ VERSION = "0.2.0".freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: active_admin_pro
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.8
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brian Pattison
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-02-18 00:00:00.000000000 Z
11
+ date: 2016-03-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activeadmin
@@ -619,3 +619,4 @@ specification_version: 4
619
619
  summary: Active Admin add-ons
620
620
  test_files:
621
621
  - spec/spec_helper.rb
622
+ has_rdoc: