Loomio
Mon 14 Jul 2014 1:15AM

Minimal toolbar for TinyMCE 4

CF Cam Findlay Public Seen by 45

It looks like there's been some substantial progress on the effort to get TinyMCE 4 integrated into SS3, which is fantastic news. I'm wondering if we might also use this opportunity to reduce, drastically, the inventory of buttons in the toolbar that the default instance of HTMLEditorField gives you. For as long as I can remember, SilverStripe has thrown you the kitchen sink TinyMCE installation, sending users on a time warp to MS Word 2000 and overwhelming them with way too many options, more opportunities to break stuff, and a slower editor to boot.

Yes, there's an API for it, and I always make a point to create my own settings, but it seems like unnecessary boilerplate to me. The default case should not be the edge case. Tables, horizontal rules, and the seemingly redundant "cut and paste" options are decidedly an edge case IMO.

My ideal default TinyMCE would look a lot like the editor I'm typing into right now on Google.:

Paragraph/Heading, Bold, Italic, Link, Image, Media, lists, block quote, alignment.

What does everyone else think?

SM

Sam Minnée Fri 18 Jul 2014 3:32AM

FYI—the decision on the board seems to be a little different from the one that Aaron raised. Was that intentional?

CF

Cam Findlay Fri 18 Jul 2014 5:00AM

Yeah, this is doing a follow up proposition to tease out some more details (and to explore how a train of discussion/decisions could happen). Whether this is intended use I'm just playing with at the moment. Perhaps once a consensus on one thing is reached, further discussion becomes a new thread? Things to work through.

SM

Sam Minnée Sat 19 Jul 2014 5:46AM

A good middle ground here would be to bundle this with a TinyMCE 4 upgrade, and include a both a minimal toolbar, and a feature-rich set of dropdown menus.

NJB

Nathan J. Brauer Tue 22 Jul 2014 3:54AM

I would say "Paste from Microsoft Word" is still an essential button. This was a major selling point when I was trying to get Marketo to start using SilverStripe and has saved many copy/paste headaches.

UC

Uncle Cheese Wed 23 Jul 2014 2:47AM

@nathanjbrauer TinyMCE does paste cleanups automatically in version 4. There have been substantial improvements in that area, and the button is no longer needed.

NJB

Nathan J. Brauer Wed 23 Jul 2014 6:19AM

@unclecheese - Interesting. It's worth noting that in our case, pasting directly from MS Word was just assumed that it worked poorly (expecting it to work like every other web app). I'd say it's worth bringing attention to this improvement as its own "feature" just to educate the masses that you no longer need to "paste into notepad, then copy and paste into the WYSIWYG" for proper formatting.

MK

Marijn Kampf Wed 23 Jul 2014 8:10AM

Not sure about using a minimal toolbar for default. In my experience with SilverStripe I find it easier to remove stuff that isn't needed than add stuff. The documentation on possible features is often lacking. This might be even more the case as TinyMCE is a third party tool, so that would be scouring through two sets of documentation to see what possible options there are. Have to note that I haven't made any changes to the TinyMCE setup I've been using for years.

UC

Uncle Cheese Wed 23 Jul 2014 10:48PM

@marijnkampf I've never changed the TinyMCE much either, but I've also never had a client who needed more than 25% of those buttons. I guess my thinking is that the user who really needs tables, and all those other buttons that no one ever uses, can and should be the exception, and if the developer has to do some R&D to add features like that, I would say that's a reasonable expectation.

I just don't think it's appropriate to punish all the other users in the form of latent performance and intimidating UX just for the benefit of a few edge cases. It makes SilverStripe look like a poorly composed product. The default configuration should shoot straight down the middle, and right now, it's way, way off.

MK

Marijn Kampf Thu 24 Jul 2014 6:24AM

@unclecheese fair enough, but how do we decide which buttons to include? I find that different clients tend to use different features. I wouldn't be able to predict which of my clients use which buttons until they've used them...