0
Fork 0
mirror of https://github.com/fastmail/Squire.git synced 2024-12-22 15:23:29 -05:00
Commit graph

169 commits

Author SHA1 Message Date
Neil Jenkins
f6cddb4626 Remove some old IE8-specific code. 2015-06-11 15:53:12 +07:00
Neil Jenkins
ae7d93a8fe Position paste area further off screen to hide IE handlebars
Fixes #84.
2015-06-09 16:38:16 +07:00
Neil Jenkins
60169dce6b Handle browser splitting paste area.
Fixes #88.
2015-06-09 16:32:20 +07:00
Neil Jenkins
884f352846 Set focus after element inserted with Squire#insertElement
Fixes #90.
2015-06-02 21:15:14 +07:00
Neil Jenkins
a2ca4a3864 Allow setting default attributes for ul/ol/li/blockquote.
Merges #83, with fixes, tidying and squashing.
2015-05-09 17:22:54 +07:00
Neil Jenkins
c48e9b73f5 Code style/naming convention cleanups 2015-05-07 09:08:58 +07:00
crossjs
8d8798a673 add parameter for override default properties; initialize editor document now run after instance saved. 2015-05-05 20:28:30 +08:00
Neil Jenkins
73641ad899 Fix white-space and naming convention errors. 2015-05-03 13:18:00 +07:00
Misha Koryak
3da7b19404 fix isDefaultPrevented method ;) 2015-05-01 14:10:48 -04:00
Misha Koryak
ed10b03b9f make it possible to replace the reference to e.fragment in willPaste event, also add isDefaultPrevented method to that event 2015-05-01 14:07:28 -04:00
Neil Jenkins
223060ecf9 Add method to set key handlers.
Resolves #70
2015-04-29 11:16:11 +07:00
Umer Farooq
c249e3bc19 Document that if the current selection is not collapsed, that it will
be deleted and replaced by the html. Make style and consistency changes.
2015-04-15 16:23:36 +10:00
Umer Farooq
6fdb288e00 Add the ability to insert an HTML fragment at the cursor location. 2015-04-15 16:23:36 +10:00
Neil Jenkins
7db0ae059a Fix cleanup empty <a> on enter in WebKit/Blink
Need to consider zero-width space equivalent to no content.
Also cleanup empty inline nodes in general when cleaning up zero-width spaces
inside them.

Fixes #58
2015-04-08 18:02:23 +07:00
Neil Jenkins
1c0fa1a50f Rewrite getSelectedText method.
Fixes #57.

* Fixes bug where it could return text outside selection
* Inserts new line between blocks.
2015-04-08 17:13:21 +07:00
Neil Jenkins
e6ae25b589 Fix formatting commands when selection has no text nodes
Fixes #60
2015-04-08 15:33:27 +07:00
Neil Jenkins
1b9606452e Check for redundant WS when ensuring bottom line.
Fixes #55.
2015-03-29 18:56:32 +11:00
Neil Jenkins
3c8eaa1fcc Use default block settings when fixCursor called on body 2015-03-29 18:36:58 +11:00
Neil Jenkins
1362383aea Fire "select" event whenever selected range is not collapsed
Fixes #50.
2015-03-18 18:19:15 +08:00
masonicboom
eba853a0f7 allow "audio" elements
http://www.w3.org/wiki/HTML/Elements/audio
2015-03-05 16:57:33 -08:00
Neil Jenkins
5b8e348232 Fix invalid caching of selection nodes in paste handler.
Fixes error thrown when pasting text twice in succession (or more generally,
when pasting it into non-normalised text nodes).
2015-02-06 14:18:38 +07:00
Neil Jenkins
8e8874b554 Don't fire an input event on setHTML call. 2014-12-30 10:22:39 +07:00
Neil Jenkins
249ea93c13 Allow defaultBlockTag to be configured
Resolves #23
2014-12-27 15:02:26 +07:00
Neil Jenkins
b69a1635de Use mutation observers where possible to detect change
We need to know when the document is modified in order to fire an "input" event
and set the undo/redo state correctly. Observing keyup is imprecise, as it's
hard to tell whether the key press actually modified anything. Newer browsers
support mutation observers, which tell you precisely when something has changed.
For IE9/10, Opera 12 and other older browsers, we fall back to observing keyup
again.

Fixes #26.
2014-12-27 13:48:15 +07:00
Neil Jenkins
5b5d65f684 Record undo checkpoint before deleting any selection. 2014-12-26 20:04:42 +07:00
Neil Jenkins
797dbf46fb Fix selection lost on action in Presto 2014-12-26 20:01:36 +07:00
Neil Jenkins
a46dc2ef02 Take over selection deletion in more cases.
Never really want to let the browser delete a selection; it always makes a mess
of it. This now covers the case when an English letter key or number key is
pressed when a selection exists. Handling this completely (to include all keys
that produce a symbol) is tricky due to cross-browser key event compatibility
issues.
2014-12-26 14:27:19 +07:00
Neil Jenkins
4a264a52c7 Replace feature test w/ UA sniff for buggy splitText. *sigh*
The feature test is sometimes passing in IE9, but then the buggy behaviour
still appears later. FFS IE.
2014-12-26 14:26:29 +07:00
Neil Jenkins
805f3cffff Remove last remnants of IE8 support. 2014-12-26 14:24:22 +07:00
Neil Jenkins
90623a51a2 Clean up empty inlines when deleting selection.
Fixes #6
2014-12-25 15:09:46 +07:00
Neil Jenkins
5b52467815 Fix inserting line break at start of link
Before, hitting enter at the start of the link would result in the link text
being removed from an <a> on the new line, and an empty <a> tag on the previous
line. Now the link remains on the new line as expected, and no empty <a> tag is
produced.

in the preceding block.
2014-12-25 11:39:07 +07:00
Neil Jenkins
f781e07b23 Ensure space is inserted after link if cursor at end of <a> tag
If your cursor is at the end of a link, ensure pressing space always inserts
the space outside of the <a> tag.
2014-12-24 14:24:25 +07:00
Neil Jenkins
824a3b0a3b Resolves #22. 2014-12-20 17:07:11 +11:00
Neil Jenkins
25f78ff31d Fix cursor no longer appears on focus in Chrome. 2014-12-07 14:33:43 +07:00
Neil Jenkins
cb9292721c Let the browser handle shift-delete.
Apparently it's "cut" on Windows. Who knew.
2014-11-20 12:45:36 +07:00
Neil Jenkins
3296e7576e Register for events on capture rather than bubble phase.
Allows "load" events to be triggered for images in the document.
2014-11-18 12:02:36 +07:00
Neil Jenkins
73c4146e27 Fix range error in addFormat if start == end container. 2014-10-03 16:38:20 +07:00
Neil Jenkins
b944eb3b3b Fix ZWS removal when Squire script not in iframe. 2014-10-02 16:36:39 +07:00
Neil Jenkins
e7cef49818 Rename isOpera -> isPresto.
Opera now uses WebKit, but these tweaks are only for the Presto version.
2014-10-02 16:23:30 +07:00
Neil Jenkins
a408fcaca6 Fix range construction in addFormat method. 2014-10-02 16:00:35 +07:00
Neil Jenkins
6080cbf819 Add Squire#destroy method.
Unbinds all event handlers to ensure no memory leaks.
2014-10-02 12:06:17 +07:00
Neil Jenkins
d21ae23215 Record undo checkpoint before paste or delete. 2014-10-01 10:12:58 +07:00
Neil Jenkins
c0e33843fb Use helper fn to get start block in paste handler.
Neater and deals with the edge cases.
2014-09-24 16:36:14 +07:00
Neil Jenkins
597024eecb Remove FILTER_(ACCEPT|SKIP) constants.
Just return a boolean for the TreeWalker filter fn. This diverges from the spec,
but since the goal of this implementation is not to fully implement the spec
and we're never going to use a native implementation, this doesn't matter and
the code is easier to read when the function is just returning a boolean like
any normal filter function.
2014-09-04 17:24:31 +07:00
Neil Jenkins
4a8152d280 Remove zws in key handlers they could affect. 2014-09-03 09:21:16 +07:00
Neil Jenkins
da49316876 Better positioning of paste area to prevent auto-scrolling. 2014-08-06 14:42:57 +02:00
Neil Jenkins
afd3e9807c Be more careful about splitting nodes to remove <br>s.
Can't split an <li> to remove a <br>.
2014-08-05 13:44:41 +01:00
Neil Jenkins
1fac17b514 Don't strip WS between two inline nodes. 2014-08-05 10:58:22 +01:00
Neil Jenkins
3b95f7b864 Better parsing of links and emails into links.
* Be more liberal in tld, as there are now a billion new ones, of every length.
* Fix bug where if the URL contains an @ it would add it as a mailto link
  instead.
2014-07-03 14:16:20 +01:00
Neil Jenkins
bbf765bee7 Ensure there is always a selection.
Many functions rely on there being a selection; if the browser doesn't return
one, make one up (collapsed, at beginning of document).
2014-06-30 15:10:30 +01:00