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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6180f896dc1b5cbe32519a5452572e4b7b910db7
|
4
|
+
data.tar.gz: 75f730276f0e7b655c4e692221ea079cd080fad1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
-
|
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(){
|
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.
|
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-
|
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.
|
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
|