# Add Atto back to core, and add the required features to make it the best thing ever

## Details

• Type: Epic
• Status: Closed
• Priority: Major
• Resolution: Fixed
• Affects Version/s: 2.7
• Fix Version/s:
• Component/s:
• Labels:
• Affected Branches:
MOODLE_27_STABLE
• Fixed Branches:
MOODLE_27_STABLE
• Epic Name:
Make Atto the default Moodle text editor

## Description

Add Atto back to Moodle core and add or improve it enough to be suitable as the default text editor in Moodle.

## Issues in Epic

 MDL-43996 Atto: add image drag and drop capability in editing window Closed Paul Nicholls MDL-43842 Import code from Atto back to core. Closed Damyon Wiese MDL-43853 Make Atto toolbar buttons display all at once - instead of one by one. Closed Damyon Wiese MDL-43854 Import collapse plugin from prototype.moodle.net Closed Damyon Wiese MDL-43855 Implement a new equation editor for Atto Closed Damyon Wiese MDL-43857 Auto cleanup Atto HTML Closed Damyon Wiese MDL-43858 New Atto plugin Insert Character Closed Frédéric Massart MDL-43859 New Atto plugin Insert Smiley Closed Frédéric Massart MDL-43860 New Atto plugin switch language LTR/RTL Closed Jérôme Mouneyrac MDL-43861 Plugins for font/background colours in Atto Closed Rossiani Wijaya MDL-43862 Add mediamanager plugin for Atto Closed Frédéric Massart MDL-43863 Add Undo/Redo plugins to Atto Closed Jérôme Mouneyrac MDL-43864 Add atto plugin to prevent automatic linking. Closed Andrew Davis MDL-43865 Add a toolbar editor to Atto Closed Damyon Wiese MDL-43867 Add a content accessibility checker plugin for Atto Closed Damyon Wiese MDL-43869 Atto does not display on qtype essay page Closed Damyon Wiese MDL-43870 Blockquote in Atto behaves differently in different browsers Closed Frédéric Massart MDL-43871 Atto HTML Editor - Provide more feedback when an action can't be performed Closed Unassigned MDL-43883 Convert Behat to use Atto instead of TinyMCE Closed Damyon Wiese MDL-43934 Atto yui plugins have wrong name for file meta/editor.json (should be meta/button.json). Closed Damyon Wiese MDL-43950 Atto plugin callback params_for_js needs to know the options (context, ...) Closed Frédéric Massart MDL-43953 Atto does not warn when leaving page with unsaved data Closed Frédéric Massart MDL-43954 Atto editable font-size unusable on IE8 Closed Frédéric Massart MDL-43955 Atto: input text should not have for parent the contenteditable tag Closed Jason Fowler MDL-43968 Atto should be using the latest icons developed for TinyMCE Closed Frédéric Massart MDL-43990 Atto - add function to format the currently selected block. Closed Damyon Wiese MDL-43999 Atto: Double clicking on an image should open the image properties window Closed Damyon Wiese MDL-44000 Atto: Image sizes should keep proportions when resizing Closed Damyon Wiese MDL-44001 Atto HTML tags should comply with HTML5 specifications Open Unassigned MDL-44003 Atto: Pressing after manually entering a link opens file picker Closed Frédéric Massart MDL-44005 Atto: Unlink button should unlink for smaller selections Closed Frédéric Massart MDL-44032 Atto: subscript superscript button Closed Rossiani Wijaya MDL-44033 Make Atto conform to right click internet 'norm' for spellchecker Closed Unassigned MDL-44034 Atto Hot keys for Headings & Styles Closed Unassigned MDL-44038 Atto: Focus on the editor is lost after opening a dialogue/menu Closed Andrew Nicols MDL-44040 Atto: Implement basic keyboard shortcuts people are used to Closed Sam Hemelryk MDL-44063 Atto should start new content in a paragraph tag by default. Closed Damyon Wiese MDL-44215 Atto: Toolbar should wrap on several lines Closed Jason Fowler MDL-44216 Atto: Invert indent/outdent buttons Closed Jason Fowler MDL-44218 Atto: Limit the height of the editor to prevent the toolbar to go off screen Closed Andrew Davis MDL-44219 Atto: A large selection causes the editor to freeze for some seconds Closed Damyon Wiese MDL-44220 Atto: Being able to set the alignment (flow) of the images Closed Sam Hemelryk MDL-44221 Atto: Table plugin not adding a table on IE Closed Sam Hemelryk MDL-44222 Atto: Image plugin not reliable editing an existing image Closed Sam Hemelryk MDL-44228 Atto: Being able to see the list of plugins available in the settings UI Closed Jérôme Mouneyrac MDL-44223 Atto: Missing images are not displayed at all in the editor Closed Jason Fowler MDL-43856 Add a mathjax filter Closed Damyon Wiese MDL-44164 Refactor Atto code Closed Andrew Nicols MDL-44224 Atto: Indent/outdent plugins should not use
Closed Sam Hemelryk MDL-44490 Atto: Its possible to make the editor completely keyboard inaccessible Closed Andrew Nicols MDL-44128 Atto: Toolbar menus should work with keyboard navigation Closed Jérôme Mouneyrac MDL-44225 Atto: Focus lost in the Equation editor after inserting a symbol Closed Andrew Nicols MDL-44226 Atto: Simplifying the 'accessibility checker' to display sensible content Closed Andrew Davis MDL-44227 Atto: The screenreader helper/accessibility checker should always display something for missing images Closed Jérôme Mouneyrac MDL-44083 Atto has wrong icons for screenreader helper and accessibility checker Closed Jason Fowler MDL-44064 Atto: Editor should not kill page when missing a plugin Closed Frédéric Massart MDL-44067 Improve Atto Table controls Closed Damyon Wiese MDL-44080 Atto: Collapse plugin icon should be improved Development in progress Damyon Wiese MDL-44084 Integrate Atto Closed Damyon Wiese MDL-44092 Add an active state to the buttons, when the text under the cursor has the style applied. Closed Damyon Wiese MDL-44116 Additional Accessibility checker sniffs Closed Damyon Wiese MDL-44122 Atto: update the toolbar order to match tinymce Closed Damyon Wiese MDL-44123 Atto: fix the alignment of the form in the table dialogue Closed Unassigned MDL-44125 Atto: New plugin to select the text alignment Closed Frédéric Massart MDL-44126 Small tweaks to Atto Closed Damyon Wiese MDL-44127 Atto Improve API when a plugin wants multiple buttons. Closed Damyon Wiese MDL-44129 Atto: Reduce the number of events delegate() for the toolbar Closed Andrew Nicols MDL-44131 Make the Atto equation editor example library into an aria toolbar. Closed Frédéric Massart MDL-44229 Atto: The 'active' state of the buttons is too subtle Open Unassigned MDL-44230 Atto: The equation button gets an active state even if the cursor is not in the equation Closed Unassigned MDL-44231 Atto: Reword the 'Manage files' plugin interface, and reduce height of content Open Unassigned MDL-44232 Atto: The media plugin is missing a preview Open Unassigned MDL-44233 Atto: The style of the equation editor is not consistent Open Unassigned MDL-44234 Atto: The 'caption' field in the table dialogue is too big Closed Frédéric Massart MDL-44235 Atto: The caption displayed in the editor overlaps its borders Closed Frédéric Massart MDL-44236 Atto: Bug when inserting a table in a
or
Open Unassigned MDL-44237 Atto: The spelling of the word 'color' should be 'colour' in the accessibility checker Closed Andrew Nicols MDL-44238 Atto: Convert the code to use class instances rather than static classes Closed Unassigned MDL-44239 Atto: Being able to resize the images from within the editor. Open Unassigned MDL-44240 Atto: Combine plugins indent/outdent into one. Closed Jason Fowler MDL-44241 Atto: Combine plugins link/unlink into one Closed Andrew Nicols MDL-44242 Atto: Ability to click on the reports from the accessibility checker to select the text automatically Closed Unassigned MDL-44243 Atto: Prettifying the HTML when switching to HTML view Closed Andrew Nicols MDL-44244 Atto: Video previews should be displayed directly in the editor Open Unassigned MDL-44245 Atto: Develop a word count plugin Open Unassigned MDL-44430 Atto triggers required when still in focus Closed Andrew Nicols MDL-44460 make Undo / Redo "just work" Closed Damyon Wiese MDL-44487 Atto: Image preview doesn't properly restrict image size. Closed Damyon Wiese MDL-44488 Atto: can't drag the image selector. Closed Andrew Nicols MDL-44489 Atto: All namespace creations are wrong Closed Unassigned MDL-44674 Atto wrapCallback setting should not exist Closed Andrew Nicols MDL-44684 Atto: Previous word gets selected automatically in Firefox Closed Andrew Nicols MDL-44747 Atto does not handle multiple copies of the same plugin Closed Frédéric Massart MDL-44748 Make atto the default editor during upgrade Closed Damyon Wiese MDL-44749 Collapse plugin should handle suboptimal toolbar configuration Closed Andrew Nicols MDL-44751 Update showgroups string in atto_collapse Closed Andrew Nicols MDL-44752 Correct uses of color => colour in atto plugin language strings Closed Andrew Nicols MDL-44754 Explain the meaning of the group names in the toolbar configuration Closed Jason Fowler MDL-44755 Atto plugins are using different icons for the plugin / toolbar Closed Frédéric Massart MDL-44756 Atto collapse plugin setting help update Closed Andrew Davis MDL-44757 Change TeX help link in equation editor to point to a moodle docs page Closed Frédéric Massart MDL-44758 Atto: Prevent new table creation when within an existing table Closed Jetha Chan MDL-44759 Atto Undo starts highlighted on an empty field Closed Frédéric Massart MDL-44760 Atto menu styles are inconsistent Closed Andrew Nicols MDL-44761 Display the list of keyboard short cuts somewhere (in the alt for the buttons?) Closed Andrew Nicols MDL-44762 Atto title plugin bugs. It is possible to choose a title from the menu and nothing happens Closed Frédéric Massart MDL-44763 Atto image plugin - remove the word "Preview" from the dialogue. Closed Andrew Davis MDL-44764 Change wording in Atto image plugin Closed Frédéric Massart MDL-44765 atto_image: Dialogue is not resized after the accessibility warning is displayed Closed Jason Fowler MDL-44766 Show previews for media files linked in Atto Open Unassigned MDL-44767 Atto: Browser freezes when making a selection Closed Frédéric Massart MDL-44768 Atto: Save cursor position with undo/redo stack and restore it Closed Frédéric Massart MDL-44769 Atto Table plugin caption field should be a text input, not a textarea Closed Unassigned MDL-44770 Change table context menu, to open from the table button, not the table cell Closed Jetha Chan MDL-44771 Atto tables with long captions wrap into the table Closed Unassigned MDL-44772 Atto does not respect height of original text area field any more (it used to) Closed Frédéric Massart MDL-44773 Accessibility checker does not trigger selection updated when it selects the image nodes Closed Frédéric Massart MDL-44775 Atto : show html view with a monospace font Open Unassigned MDL-44776 Make Atto equation editor dialogue wider Closed Jason Fowler MDL-44777 Atto Equation Editor example toolbar should have consistently sized buttons Closed Frédéric Massart MDL-44778 Atto equation editor, put a border around the preview Closed Andrew Davis MDL-44780 Enable MathJax filter by default Closed Andrew Davis MDL-44781 Reformat/rewrite the help text for MathJax (needs some line breaks) Closed Damyon Wiese MDL-44782 Fix lang string for Mathjax filter setting HTTP (Should be HTTPS) Closed Damyon Wiese MDL-44784 Atto plugins with settings do not show settings links on manage plugins page. Closed Frédéric Massart MDL-44795 "Browse repositories" does nothing in atto Closed Frédéric Massart MDL-44796 Allow behat to change screen size though properties for responsive testing Closed Rajesh Taneja MDL-44797 Font color formatting in Atto disappears. Closed Unassigned MDL-44798 Atto: Does not work in IE <= 8 Closed Andrew Nicols MDL-44799 Atto: Charmap plugin erroneously creates two dialogs Closed Andrew Nicols MDL-44800 Multiple issues with "heading style" plugin in atto Open Unassigned MDL-44801 Atto: Tables should be modifiable using the the table dialogue after they are created Open Unassigned MDL-44802 Atto Table plugin forces caption and headers Open Unassigned MDL-44803 Atto Table plugin does not allow border and padding to be altered Open Unassigned MDL-44804 Atto: JS errors when filepicker is disabled Closed Frédéric Massart MDL-44805 Quiz essay should disable media buttons in editor Closed Andrew Nicols MDL-44806 Accessibility checker goes wide unnecessarily Closed Jason Fowler MDL-44807 List handling is broken in IE11 Open Unassigned MDL-44808 The table creation box is huge, giving too much room to the accessibility info Closed Frédéric Massart MDL-44809 Clear formatting doesn't work on paragraph styles Closed Unassigned MDL-44810 The bold/italics buttons don't maintain their selection when pressed Closed Jetha Chan MDL-44812 Text after a bullet list turns into a
rather than a

Closed Andrew Nicols MDL-44826 Atto Too many image alignment options Closed Damyon Wiese MDL-44827 Atto: Insert image fails on iOS 7 Closed Jetha Chan MDL-44834 Atto: Event atto:selectionchanged is fired on each editor Closed Frédéric Massart MDL-44846 Atto font colors are broken in IE Closed Damyon Wiese MDL-44868 Atto: Toolbar can set focus on disabled elements Closed Frédéric Massart MDL-44869 Atto: Plugin prevent autolink should indicate its state Closed Frédéric Massart MDL-44870 Atto: Noautolink should not be a default plugin Closed Frédéric Massart MDL-44871 Write behat tests for Atto functionalities Closed Damyon Wiese MDL-44906 The expand/collapse toolbar plugin should not send focus to the text box Closed Andrew Nicols MDL-45040 Atto: Selection reverts to previous selection on toolbar button press in WebKit browsers Closed Jetha Chan MDL-45125 Atto tables bugs Open Dan Poltawski MDL-18014 Automatically and periodically save WYSIWYG editor content as a draft/concept Closed Damyon Wiese MDL-44779 MathJax menus show behind dialogues Open Unassigned

## Activity

Hide
Derek Chirnside added a comment -

Where are the latest docs on this work? Is http://docs.moodle.org/dev/Editor_2.7#Atto up to date?
Has the decision been made to use Atto?
Where does the name Atto come from? (I'm a bit slow here)

I'm interested in https://tracker.moodle.org/browse/MDL-40172 being in the Atto future. What should I do? Can I ass it as an Atto request?

-Derek

Show
Derek Chirnside added a comment - Where are the latest docs on this work? Is http://docs.moodle.org/dev/Editor_2.7#Atto up to date? Has the decision been made to use Atto? Where does the name Atto come from? (I'm a bit slow here) I'm interested in https://tracker.moodle.org/browse/MDL-40172 being in the Atto future. What should I do? Can I ass it as an Atto request? -Derek
Hide
Derek Chirnside added a comment -

I have a further comment.
If we are doing this (as opposed to relying on an external project), we have some options to do something really great.
SOMEWHERE there is some comment about a really cut down editor. Like guitar hero, sort of three buttons. For instance I use insert image, bullets/numbers and H2 so much it would be good to be able to not have to use a dropdown for this with the extra clicks.

Compare to the Facebook and Google editors and see what we can do to make something really sharp. Wordpress I think has still to get this sorted. Ghost https://ghost.org/features/ has tried markdown which is very very fast.

Finally: image resizing on the fly maybe?

-Derek

Show
Derek Chirnside added a comment - I have a further comment. If we are doing this (as opposed to relying on an external project), we have some options to do something really great. SOMEWHERE there is some comment about a really cut down editor. Like guitar hero, sort of three buttons. For instance I use insert image, bullets/numbers and H2 so much it would be good to be able to not have to use a dropdown for this with the extra clicks. Compare to the Facebook and Google editors and see what we can do to make something really sharp. Wordpress I think has still to get this sorted. Ghost https://ghost.org/features/ has tried markdown which is very very fast. Finally: image resizing on the fly maybe? -Derek
Hide
Damyon Wiese added a comment -

Hi Derek - yes, the decision has been made to go with Atto for 2.7. Martin announced it in dev chat and discussed it in the recent developers meeting. We are working now on the issues in this Epic as these things are considered critical for Atto to be a replacement for tinymce. Some of these issues are features that were in tinymce and people will miss if we do not implement them, some of them are areas where we would like to do much better than tinyMCE (accessibility). There are further improvements that are now possible where it would have required too much hacking tinymce code to implement before. Drag drop images, image resizing, auto save to local storage are some that come to mind. These features will are "nice to haves" - hopefully we get some of the most popular ones done for 2.7 as it will justify our decision to go with our own editor - but there are lots of priorities, and some of these improvements will have to wait for 2.8. The name "Atto" refers to the SI prefix for 10^-18 ie really really small, which refers to the goal of Atto to be a small/clean editor.

Show
Damyon Wiese added a comment - Hi Derek - yes, the decision has been made to go with Atto for 2.7. Martin announced it in dev chat and discussed it in the recent developers meeting. We are working now on the issues in this Epic as these things are considered critical for Atto to be a replacement for tinymce. Some of these issues are features that were in tinymce and people will miss if we do not implement them, some of them are areas where we would like to do much better than tinyMCE (accessibility). There are further improvements that are now possible where it would have required too much hacking tinymce code to implement before. Drag drop images, image resizing, auto save to local storage are some that come to mind. These features will are "nice to haves" - hopefully we get some of the most popular ones done for 2.7 as it will justify our decision to go with our own editor - but there are lots of priorities, and some of these improvements will have to wait for 2.8. The name "Atto" refers to the SI prefix for 10^-18 ie really really small, which refers to the goal of Atto to be a small/clean editor.
Hide
Derek Chirnside added a comment -

Great. Message received. So am I allowed to kill off https://tracker.moodle.org/browse/MDL-40172 and add the drag and drop as a tracker item to the ATTO list, even if it is nice to have.

-Derek

Show
Derek Chirnside added a comment - Great. Message received. So am I allowed to kill off https://tracker.moodle.org/browse/MDL-40172 and add the drag and drop as a tracker item to the ATTO list, even if it is nice to have. -Derek
Hide
Damyon Wiese added a comment -

Yes please - a new issue for that would be great.

Thanks!

Show
Damyon Wiese added a comment - Yes please - a new issue for that would be great. Thanks!
Hide
Derek Chirnside added a comment -

Done. https://tracker.moodle.org/browse/MDL-43996 You probably need to see Martin or Helen about this now to make this into an announcement, shut down the Prototype site etc etc.

This kind of announcement will be easy with the new Moodle.org.

MoodleNews ven has not caught up with this yet and sent me a news item today about the editor showdown.

-Derek

Show
Derek Chirnside added a comment - Done. https://tracker.moodle.org/browse/MDL-43996 You probably need to see Martin or Helen about this now to make this into an announcement, shut down the Prototype site etc etc. This kind of announcement will be easy with the new Moodle.org. MoodleNews ven has not caught up with this yet and sent me a news item today about the editor showdown. -Derek
Hide
Derek Chirnside added a comment -

-Derek

Show
Derek Chirnside added a comment - Is the latest version of ATTO anywhere to look at? Prototype. -Derek
Hide
Damyon Wiese added a comment -

Yes - it's at

http://github.com/damyon/atto27.git

Branch: master

We are peer reviewing and testing issues before they get added to that branch, and the whole branch will be sent for integration (hopefully real soon).

Show
Damyon Wiese added a comment - Yes - it's at http://github.com/damyon/atto27.git Branch: master We are peer reviewing and testing issues before they get added to that branch, and the whole branch will be sent for integration (hopefully real soon).
Hide
Damyon Wiese added a comment -

We are looking to update the prototype site with the latest version of it - but we are waiting for php to be upgraded on that site.

Show
Damyon Wiese added a comment - We are looking to update the prototype site with the latest version of it - but we are waiting for php to be upgraded on that site.
Hide
Derek Chirnside added a comment -

Great. I meant to say "Prototype site maybe?" in in post. It will be good to be able to try it out there. Otherwise all we have is coders testing and providing feedback, and we may end up only with "a good thing" not the "Best thing ever"

-Derek

Show
Derek Chirnside added a comment - Great. I meant to say "Prototype site maybe?" in in post. It will be good to be able to try it out there. Otherwise all we have is coders testing and providing feedback, and we may end up only with "a good thing" not the "Best thing ever" -Derek
Hide
Derek Chirnside added a comment -

-Derek

Show
Derek Chirnside added a comment - @Damyon Progress on PHP upgrade? -Derek
Hide
Derek Chirnside added a comment -

@Damyon. Bump. Still keen to look at the latest version. Do you know of anyone who has an install I could look at?

Also, can I refer to your comment above: "Drag drop images, image resizing, auto save to local storage are some that come to mind. These features will are "nice to haves" - hopefully we get some of the most popular ones done for 2.7 as it will justify our decision to go with our own editor - but there are lots of priorities, and some of these improvements will have to wait for 2.8"

My 2c worth: I think the drag and drop is more than a "nice to have". It would make such a huge difference. This is my plug for when you are prioritising.

-Derek

Show
Derek Chirnside added a comment - @Damyon. Bump. Still keen to look at the latest version. Do you know of anyone who has an install I could look at? Also, can I refer to your comment above: "Drag drop images, image resizing, auto save to local storage are some that come to mind. These features will are "nice to haves" - hopefully we get some of the most popular ones done for 2.7 as it will justify our decision to go with our own editor - but there are lots of priorities, and some of these improvements will have to wait for 2.8" My 2c worth: I think the drag and drop is more than a "nice to have". It would make such a huge difference. This is my plug for when you are prioritising. -Derek
Hide
Derek Chirnside added a comment -

Just had an email from Martin. Has been updated for a few weeks. http://prototype.moodle.net/ I must have missed the announcement somewhere . . .

Show
Derek Chirnside added a comment - Just had an email from Martin. Has been updated for a few weeks. http://prototype.moodle.net/ I must have missed the announcement somewhere . . .
Hide
Damyon Wiese added a comment -

Note - Atto has been integrated now - it's not the default for upgrades yet (but will be by the end of next week).

This means you can view it at http://qa.moodle.net/ (just change your preferred text editor in your profile for now).

Show
Damyon Wiese added a comment - Note - Atto has been integrated now - it's not the default for upgrades yet (but will be by the end of next week). This means you can view it at http://qa.moodle.net/ (just change your preferred text editor in your profile for now).
Hide
Mary Evans added a comment -

I have just updated again and still getting this error...

 Missing atto plugin unlink    line 103 of \lib\editor\atto\lib.php: call to debugging()  line 2262 of \lib\adminlib.php: call to atto_texteditor->use_editor()  line 1490 of \lib\adminlib.php: call to admin_setting_confightmleditor->output_html()  line 125 of \admin\settings.php: call to admin_settingpage->output_html() 

Show
Mary Evans added a comment - I have just updated again and still getting this error... Missing atto plugin unlink   line 103 of \lib\editor\atto\lib.php: call to debugging() line 2262 of \lib\adminlib.php: call to atto_texteditor->use_editor() line 1490 of \lib\adminlib.php: call to admin_setting_confightmleditor->output_html() line 125 of \admin\settings.php: call to admin_settingpage->output_html()
Hide
Dan Poltawski added a comment -

Can this issue be closed?

Show
Dan Poltawski added a comment - Can this issue be closed?
Hide
Damyon Wiese added a comment -

is it the best thing ever ?

Show
Damyon Wiese added a comment - is it the best thing ever ?
Hide
Damyon Wiese added a comment -

Closing - it's basically done. Anything that is just a bug or new feature will be collected in the component.

Show
Damyon Wiese added a comment - Closing - it's basically done. Anything that is just a bug or new feature will be collected in the component.

## People

• Assignee:
Unassigned
Reporter:
Damyon Wiese
Participants: