jquery-textileToolbar-rails 0.0.2 → 0.0.3

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: 63f32a17fcfce686e4e55b8453522bb4f94fff32
4
- data.tar.gz: 066a9dbd3973a0f536e22a4ec5125f147588243d
3
+ metadata.gz: 6180f896dc1b5cbe32519a5452572e4b7b910db7
4
+ data.tar.gz: 75f730276f0e7b655c4e692221ea079cd080fad1
5
5
  SHA512:
6
- metadata.gz: bd5e18a4203925670ecae86aed4fe124ad90fbb7a2123146be90055772abee1a9b1e370fc791b3d9a9c4bcab6c54fb9fb97ebe73ca2f2dec64e018f515c1cb48
7
- data.tar.gz: f0c88ce3e1b52d9b0e4e8317a770348ad8a308a12c3f9b9dcdd00f9406714f6f97f9041fc4dd29afeb63934cbcb0901654f377b49b9993306865d845792b839d
6
+ metadata.gz: 951a2fcf059779465133533d4010cc0cec900f960b368851a718e537b547c09fbdfef61ca0b1ad0c823fff3efb01d0eefb8d932b67f88445bffd1fc8718b3e3c
7
+ data.tar.gz: 3e7d8c98b4f9e2ae3f5219bb13b35076bdaca735d302a6a4906bbaf1e3a90a65cc68c630a6225bbb53a803e37724b81934cbff54f6181d7d35b1027ae91e405a
@@ -124,7 +124,7 @@
124
124
  }
125
125
  }
126
126
 
127
- // default toolbar
127
+ // default toolbar options
128
128
  var defaults = {
129
129
  buttons: buttons,
130
130
  toolbar: [
@@ -145,7 +145,17 @@
145
145
  "spacer",
146
146
  "img",
147
147
  "link"
148
- ]
148
+ ],
149
+ placement: 'beforeElement'
150
+ /*
151
+ Possible placement values:
152
+ string 'beforeElement' default: place toolbar div immediately before the textarea
153
+ string 'afterElement' place toolbar div immediately after the textarea
154
+ string 'beforeParent' place toolbar div before the textarea's parent container
155
+ string 'afterParent' place toolbar div after the textarea's parent container
156
+ function callback returning jQuery element before which to place the toolbar
157
+ */
158
+
149
159
  };
150
160
 
151
161
  function TextileToolbar( element, options ) {
@@ -154,6 +164,7 @@
154
164
  this.settings = {};
155
165
  this.settings.toolbar = options.toolbar || defaults.toolbar;
156
166
  this.settings.buttons = $.extend( {}, defaults.buttons, options.buttons);
167
+ this.settings.placement = options.placement || defaults.placement;
157
168
  this._defaults = defaults;
158
169
  this._name = pluginName;
159
170
  this.init();
@@ -240,11 +251,14 @@
240
251
  TextileToolbar.prototype.init = function () {
241
252
  var settings = this.settings;
242
253
  var textarea = this.textarea;
254
+ var placement = this.settings.placement;
243
255
  var toolbar = this;
244
256
 
245
257
  var toolbarDiv = $("<div class=\"textile-toolbar\"></div>");
246
258
  var htmlButton;
247
259
 
260
+ var defaultPlacement = function() {$(toolbarDiv).insertBefore(textarea);};
261
+
248
262
  // create buttons based on the configuration
249
263
  $.each(settings.toolbar, function(index, buttonName) {
250
264
  var button = settings.buttons[buttonName];
@@ -295,8 +309,37 @@
295
309
  toolbarDiv.append(htmlButton);
296
310
  });
297
311
 
298
- $(textarea).before(toolbarDiv);
299
-
312
+ // insert toolbar based on settings placement:
313
+ if (typeof placement === "string") {
314
+ switch (placement) {
315
+ case "beforeElement":
316
+ $(toolbarDiv).insertBefore(textarea);
317
+ break;
318
+ case "afterElement":
319
+ $(toolbarDiv).insertAfter(textarea);
320
+ break;
321
+ case "beforeParent":
322
+ $(toolbarDiv).insertBefore($(textarea).parent());
323
+ break;
324
+ case "afterPrent":
325
+ $(toolbarDiv).insertAfter($(textarea).parent());
326
+ break;
327
+ default:
328
+ console.warn("Unexpected placement indication: \"%s\". Using default.", placement);
329
+ defaultPlacement();
330
+ }
331
+ } else if (typeof placement === "function") {
332
+ var element = placement();
333
+ if (typeof element === "undefined" || element.length === 0) {
334
+ console.warn("Placement function did not return any matching element: using default");
335
+ defaultPlacement();
336
+ } else {
337
+ $(toolbarDiv).insertBefore(element);
338
+ }
339
+ } else {
340
+ defaultPlacement();
341
+ }
342
+
300
343
  };
301
344
 
302
345
  TextileToolbar.prototype._reset = function(){
@@ -1,7 +1,7 @@
1
1
  module Jquery
2
2
  module TextileToolbar
3
3
  module Rails
4
- VERSION = "0.0.2"
4
+ VERSION = "0.0.3"
5
5
  end
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jquery-textileToolbar-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Maurizio Manetti
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-06-20 00:00:00.000000000 Z
11
+ date: 2018-07-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: railties
@@ -108,7 +108,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
108
108
  version: '0'
109
109
  requirements: []
110
110
  rubyforge_project:
111
- rubygems_version: 2.6.12
111
+ rubygems_version: 2.6.8
112
112
  signing_key:
113
113
  specification_version: 4
114
114
  summary: Use jQuery textileToolbar with Rails > 3.1