Commit graph

64 commits

Author SHA1 Message Date
Dan Poltawski
9a59ebaa6c Merge branch 'MDL-44810-master' of git://github.com/jethac/moodle
Conflicts:
	lib/editor/atto/yui/build/moodle-editor_atto-plugin/moodle-editor_atto-plugin-min.js
2014-04-08 12:04:41 +08:00
Dan Poltawski
23cc5bbdc0 Merge branch 'MDL-44868-master' of git://github.com/FMCorz/moodle
Conflicts:
	lib/editor/atto/yui/build/moodle-editor_atto-editor/moodle-editor_atto-editor-min.js
	lib/editor/atto/yui/build/moodle-editor_atto-plugin/moodle-editor_atto-plugin-min.js
2014-04-08 11:37:25 +08:00
Sam Hemelryk
87f2c808f7 Merge branch 'MDL-44760-master' of git://github.com/andrewnicols/moodle
Conflicts:
	lib/editor/atto/plugins/table/yui/build/moodle-atto_table-button/moodle-atto_table-button-debug.js
	lib/editor/atto/plugins/table/yui/build/moodle-atto_table-button/moodle-atto_table-button-min.js
	lib/editor/atto/plugins/table/yui/build/moodle-atto_table-button/moodle-atto_table-button.js
	lib/editor/atto/plugins/table/yui/src/button/js/button.js
	lib/editor/atto/yui/build/moodle-editor_atto-plugin/moodle-editor_atto-plugin-min.js
2014-04-08 08:59:54 +12:00
Andrew Nicols
ee616cff45 MDL-44760 editor_atto: Make menus consistent with Clean theme 2014-04-07 20:43:57 +08:00
Marina Glancy
a8e4b006ce Merge branch 'MDL-44761-master' of git://github.com/andrewnicols/moodle 2014-04-07 16:16:32 +08:00
Jetha Chan
0a1456dfa8 MDL-44810 editor_atto: restore selection after button press
Fixed issue where clicking on buttons erroneously lost viewport focus and selection.
2014-04-04 11:47:56 +08:00
Andrew Nicols
d86e45f0ce MDL-44761 editor_atto: Add keyboard shortcut descriptions to the button titles. 2014-04-04 11:32:20 +08:00
Damyon Wiese
af6a2e9459 MDL-44846 Atto: Make the color plugins reliable.
The problem is that in IE, the browser implements color commands with font tags (<font color=...>).

We specifically strip font tags to avoid abuse when pasting from word (the world has seen enough of Tahoma).

This solution instead uses Rangy to set inline styles on the selection. This works in all browsers nicely.

I also updated the toggleInlineSelectionClass function to use the same rangy function. This solves problems with
whitespace squashing in ie.
2014-04-03 10:52:41 +08:00
Sam Hemelryk
53361c3087 Merge branch 'MDL-44772-master' of git://github.com/FMCorz/moodle
Conflicts:
	lib/editor/atto/yui/build/moodle-editor_atto-editor/moodle-editor_atto-editor-min.js
2014-04-02 09:43:25 +13:00
Sam Hemelryk
3b07cc1c4e Merge branch 'MDL-44762-master' of git://github.com/FMCorz/moodle 2014-04-02 09:29:11 +13:00
Sam Hemelryk
9b1a4cde78 Merge branch 'MDL-44834-master' of git://github.com/FMCorz/moodle
Conflicts:
	lib/editor/atto/yui/build/moodle-editor_atto-editor/moodle-editor_atto-editor-min.js
2014-04-02 09:28:49 +13:00
Frederic Massart
b9d065edc4 MDL-44868 editor_atto: Prevent disable buttons to keep tabIndex
Now, if a button gets disabled but the tabIndex and the focus
are on that button, the focus and tabIndex are moves to its
closest neighbour.
2014-03-31 16:47:32 +08:00
Frederic Massart
af31595b4b MDL-44868 editor_atto: Toolbar navigation ignores disabled buttons 2014-03-31 16:40:29 +08:00
Frederic Massart
7887b47524 MDL-44767 atto_editor: Browser hangs when making a selection 2014-03-31 11:13:15 +08:00
Frederic Massart
5ce4583a46 MDL-44834 editor_atto: Delegate change event to one editor 2014-03-27 19:48:37 +08:00
Marina Glancy
6474439d55 NOBUG: Fixed file access permissions 2014-03-27 16:52:07 +08:00
Frederic Massart
2f0a1236a7 MDL-44772 editor_atto: Initial height of editor matches textarea's
We set a min-height and a height in JavaScript to force the editor
to start at a certain height, but then it can be expanded thanks
to the CSS property resize. Though as IE does not support the resize
property we ignore we do not set a height so that the editor expands
as we type.
2014-03-27 15:17:49 +08:00
Frederic Massart
125cf72361 MDL-44762 editor_atto: Closing dropdowns when item is clicked 2014-03-27 12:17:00 +08:00
Andrew Nicols
6246779510 MDL-44164 atto: Refactor the world 2014-03-26 10:01:48 +08:00
Jerome Mouneyrac
8951d61411 MDL-44128 Atto: fix keyboard navigation for the dropdowns 2014-03-26 10:01:48 +08:00
Damyon Wiese
d321f68b3d MDL-44219 Atto: Convert selection logic to use Rangy JS Library
This removes alot of complex, hard to test, hard to debug code from the editor so
we can focus on the things we want to spend time on. Rangy seems a good choice for
browser support, stability and features.
2014-03-26 10:01:48 +08:00
Sam Hemelryk
67d3fe45bb MDL-44219 editor_atto: reinvent the event wheel for the atto editor 2014-03-26 10:01:48 +08:00
Damyon Wiese
86a83e3a9f MDL-44063 Atto: Set the default block element to p (if the browser supports it)
Also insert an empty paragraph by default and remove it on save.
2014-03-26 10:01:46 +08:00
Andrew Nicols
117f9f04dc MDL-44475 editor_atto: Stop using deprecating functionality 2014-03-26 10:01:45 +08:00
Sam Hemelryk
c9292b18a3 MDL-44220 atto_image: added image alignment control 2014-03-26 10:01:44 +08:00
Andrew Davis
bed1abbc89 MDL-43864 editor_atto: added a prevent autolink button to atto 2014-03-26 10:01:44 +08:00
Sam Hemelryk
bdfbdeeb64 MDL-44040 editor: implemented shortcuts for bold, italic, underline and undo 2014-03-26 10:01:44 +08:00
Sam Hemelryk
2faf4c4584 MDL-44221 editor_atto: fixed bug creating table in IE <= 10
This involved introducing a insert_html_at_focus_point method for
the editor and using that instead of insertHTML
2014-03-26 10:01:44 +08:00
Damyon Wiese
3ee53a425f MDL-44092 Atto: Add selectionchanged event and listeners in the buttons.
This means the buttons can indicate the state of the text under the cursor.
2014-03-26 10:01:43 +08:00
Frederic Massart
f6bef145bd MDL-44125 atto_align: Style with CSS whenever possible 2014-03-26 10:01:43 +08:00
Damyon Wiese
05843fd3ee MDL-44067 Atto: Improve table editing controls.
Remove flaky inline menu icons - instead clicking on the table button, when
you are in a table shows the context menu for the current cell.

I removed all the special code for 'atto_control' - because it did not work very well. Having non-contenteditable
nodes inside a contenteditable region seems in expose bugs in different browsers.
2014-03-26 10:01:42 +08:00
Damyon Wiese
5ec54dd125 MDL-44127 Atto: Improve Atto API to allow plugins with multiple buttons/menus 2014-03-26 10:01:42 +08:00
Jerome Mouneyrac
fe0d247796 MDL-43869 New Atto plugin switch language LTR/RTL 2014-03-26 10:00:05 +08:00
Damyon Wiese
fcb5b5c473 MDL-43854 Atto: Add collapse toolbar plugin 2014-03-26 10:00:04 +08:00
Frederic Massart
4c37c1f416 MDL-43954 editor_atto: Fix styling for IE8 in clean and standard 2014-03-26 10:00:04 +08:00
Damyon Wiese
26f8822d5c MDL-43867 Atto: Accessibility improvements.
1/ Set the aria-labelledby attribute on the contenteditable div (find the label from
original textarea)

2/ Store/restore the selection for the contenteditable div when it is focused. This allows
you to select some text, then go to the toolbar and click a button, and the selection
will be restored before the button effect is applied.

3/ Add an accessibility helper plugin.

From testing in all screenreaders, I found that all of their support for contenteditable is not great.
They treat it like a textbox - which means you can type and edit text, but it tells you nothing about
the styles, links or images in the editor. So I added a button to the toolbar, that is only accessible
when navigating via keyboard, that opens an accesssibility helper dialogue. The dialogue shows the list
of current styles, a global list of all links, and a global list of all images. Choosing an image or link
from here, will focus on the editable region, and select the link/image.

4/ Add an accessibility checker plugin to Atto.

Checks for images with no alt, images and links with filenames as alternate text/link text, and contrast ratios
less than WCAG 2.0 AA.
2014-03-26 09:59:37 +08:00
Frederic Massart
dad09216bc MDL-43953 editor_atto: Trigger form change when editing content 2014-03-26 09:59:37 +08:00
Damyon Wiese
34f5867a11 MDL-43990 Atto: Add a function for changing the formatting of the selected block. 2014-03-26 09:59:36 +08:00
Damyon Wiese
0fa78b80b4 MDL-43861 Atto: Fix for toolbar menu repaint bug in chrome. 2014-03-26 09:59:36 +08:00
Rossiani Wijaya
534cf7b730 MDL-43861: Atto Plugins: create new plugin for font and background colors 2014-03-26 09:59:36 +08:00
Damyon Wiese
0012a94601 MDL-44003 Atto: Set type="button" on atto toolbar buttons.
To prevent them accidentally becoming the default submit buttons for the form.
2014-03-26 09:59:36 +08:00
Damyon Wiese
0ec6a46ad1 MDL-43869 Atto: Fix broken repositories.
The previous change on this issue accidentally fixed a selector,
so the repository API was recieving a valid node instead of null.
This means that it calls it's undocumented and dodgy callbacks on the node,
which are really calls directly to the TinyMCE API (just well buried).

But - by not setting the editor_target property, the api will not do
the secret handshakes.
2014-03-26 09:59:35 +08:00
Damyon Wiese
48bdf86f31 MDL-43869 Atto: Add functions to get the nodes from the elementids.
If plugins try and do this themselves with Y.one, they will fall foul of the
qtype essay page bug which uses : in the id for form elements.

This is an alternative solution, to escaping the ids, which seemed unreliable for older
version of ie.
2014-03-26 09:59:35 +08:00
Damyon Wiese
d088a835d1 MDL-43857: Auto clean tag bloat from word/openoffice/googledocs
The cleanup rules are pulled from both testing of live docs, and the
jquery clean plugin. I tested with googledocs, libreoffice, word 2003
and word 2013.
2014-03-26 09:59:35 +08:00
Damyon Wiese
b269f635f6 MDL-43869 Atto: id escaping so Atto works with when there is : in the id.
(Quiz)
Also includes fixes for Atto when the repositories should not be displayed.
2014-03-26 09:59:34 +08:00
Damyon Wiese
55c0403c6c MDL-43853 Atto: Performance. Turbocharge the loader.
Rewrite the atto plugin loader so that:

A) We have a real settings.php page and can edit the toolbar.
B) All plugins are loaded at the same time (not serially)
C) All plugins share the YUI sandbox (more performance boost).

I had to change the loading API for this - but there are not non-core uses yet,
this is the best time to break it.
2014-03-26 09:59:34 +08:00
Damyon Wiese
adca7326d8 MDL-43842: Import atto back into core 2014-03-26 09:59:34 +08:00
Damyon Wiese
775a32c9b8 MDL-42459 Atto: Bye bye - see you in the plugins db! 2013-10-22 12:01:56 +08:00
Damyon Wiese
103ba42d84 MDL-41993 Atto: Always clean/update the textarea when the content is changed 2013-10-09 11:08:06 +08:00
Eloy Lafuente (stronk7)
7e9dadfd99 Merge branch 'MDL-42026-master' of git://github.com/damyon/moodle
Conflicts:
	lib/editor/atto/yui/build/moodle-editor_atto-editor/moodle-editor_atto-editor-min.js
2013-10-09 01:48:45 +02:00