ballonizer 0.7.2 → 0.7.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 +4 -4
- data/lib/assets/javascripts/ballonizer.js +18 -0
- data/lib/ballonizer.rb +12 -1
- data/spec/javascripts/ballonizer_spec.js +41 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 967c8a0ccad88064316e33f61b350e0be330d66c
|
4
|
+
data.tar.gz: 0b417a9f8ec71ffe3be883245f68f4d71f9cf578
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4c59c4dabec9977df98437ad2e594d8310cc41e776b4e32a7ffa6e3908f31c17271464e4db24b93c1667735e39486eeecafdc8d9e2d12e546a467137c008662e
|
7
|
+
data.tar.gz: 8c549d6bfb363b8cd3558de6f5de7a8b25b5ee038215c91ff1ea15780f523ab5b9d30ce05594dfcd118976522c4903f20154f28cc1b77e60271507b1044c25b6
|
@@ -455,6 +455,24 @@
|
|
455
455
|
this.editionNode = editionBallon;
|
456
456
|
imageForm.prepend(this.editionNode);
|
457
457
|
|
458
|
+
// Some webcomics allows the reader to navigate using the
|
459
|
+
// arrow keys. This can be very annoying when editing a
|
460
|
+
// balloon ("edition mode"/textarea) because you normally
|
461
|
+
// use the arrows to edit the ballon you are writing. The
|
462
|
+
// result is you losing all your work every time you make
|
463
|
+
// the mistake of pressing an arrow key. This guarantee that
|
464
|
+
// any other scripts on the page that trigger by key events
|
465
|
+
// will not trigger while the user is typing a balloon text.
|
466
|
+
this.editionNode.keydown($.proxy(function (event) {
|
467
|
+
event.stopPropagation();
|
468
|
+
}, this));
|
469
|
+
this.editionNode.keyup($.proxy(function (event) {
|
470
|
+
event.stopPropagation();
|
471
|
+
}, this));
|
472
|
+
this.editionNode.keypress($.proxy(function (event) {
|
473
|
+
event.stopPropagation();
|
474
|
+
}, this));
|
475
|
+
|
458
476
|
this.node.click($.proxy(function (event) {
|
459
477
|
this.click(event);
|
460
478
|
}, this));
|
data/lib/ballonizer.rb
CHANGED
@@ -55,7 +55,18 @@ require 'sprockets'
|
|
55
55
|
# ballonized_image_ballons.
|
56
56
|
#
|
57
57
|
# Changelog:
|
58
|
-
# v0.
|
58
|
+
# v0.7.3
|
59
|
+
# * Solve the annoying arrow key problem. Stop the propagation of
|
60
|
+
# the key events while editing a balloon. This is meant to solve
|
61
|
+
# the problem with some sites that use the arrow keys to navigate
|
62
|
+
# between pages. If you used one of these keys while editing a
|
63
|
+
# ballon you would lose all work.
|
64
|
+
# v0.7.2
|
65
|
+
# * Little CSS fix (normalize line-height for ballons)
|
66
|
+
# v0.7.1
|
67
|
+
# * Fix the big submit button problem and the hidden behind other
|
68
|
+
# element submit button problem.
|
69
|
+
# v0.7.0
|
59
70
|
# * Add the jquery_no_conflict option. If this option is true the
|
60
71
|
# js_load_snippet will restore any previous loaded version of
|
61
72
|
# jQuery after the ballonizer javascript client code already
|
@@ -524,6 +524,47 @@ describe("Ballonizer", function () {
|
|
524
524
|
]
|
525
525
|
});
|
526
526
|
});
|
527
|
+
// avoid the arrow keys to previous/next comic while typing problem
|
528
|
+
it("any key{press,down,up} triggers on the page don't trigger", function () {
|
529
|
+
var firstBallon = getBallons()[0];
|
530
|
+
|
531
|
+
$('body').keydown(function (event) {
|
532
|
+
/* jshint unused: false */
|
533
|
+
console.log("this body.keydown wasn't meant to execute");
|
534
|
+
});
|
535
|
+
$('body').keyup(function (event) {
|
536
|
+
/* jshint unused: false */
|
537
|
+
console.log("this body.keyup wasn't meant to execute");
|
538
|
+
});
|
539
|
+
$('body').keypress(function (event) {
|
540
|
+
/* jshint unused: false */
|
541
|
+
console.log("this body.keypress wasn't meant to execute");
|
542
|
+
});
|
543
|
+
|
544
|
+
var spyDown = spyOnEvent("body", "keydown");
|
545
|
+
var spyUp = spyOnEvent("body", "keyup");
|
546
|
+
var spyPress = spyOnEvent("body", "keypress");
|
547
|
+
|
548
|
+
// alternate to the edition mode
|
549
|
+
realWorldEvent("dblclick", firstBallon.getNormalNode());
|
550
|
+
|
551
|
+
// trigger all three events while the textarea has focus
|
552
|
+
var textarea = firstBallon.editionNode();
|
553
|
+
textarea.trigger(jQuery.Event(
|
554
|
+
'keydown', { which: $.ui.keyCode.LEFT }
|
555
|
+
));
|
556
|
+
textarea.trigger(jQuery.Event(
|
557
|
+
'keyup', { which: $.ui.keyCode.LEFT }
|
558
|
+
));
|
559
|
+
textarea.trigger(jQuery.Event(
|
560
|
+
'keypress', { which: $.ui.keyCode.LEFT }
|
561
|
+
));
|
562
|
+
|
563
|
+
// verify if the body events have been triggered
|
564
|
+
expect(spyDown).not.toHaveBeenTriggered();
|
565
|
+
expect(spyUp).not.toHaveBeenTriggered();
|
566
|
+
expect(spyPress).not.toHaveBeenTriggered();
|
567
|
+
});
|
527
568
|
});
|
528
569
|
});
|
529
570
|
describe("when a ballon is added", function () {
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ballonizer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.7.
|
4
|
+
version: 0.7.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Henrique Becker
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-
|
11
|
+
date: 2013-09-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: nokogiri
|