Skip to content

Do not use Cmd + Return for inserting hard breaks in the Content Editor

Enrique Alcántara requested to merge 334191-insert-or-toggle-code-block into master

What does this MR do?

This MR solves a keyboard shortcut conflict between submitting a form and inserting a hard break in the Content Editor. Both actions use the Cmd + Return keyboard shortcut. The conflict is addressed by changing the hard break command to Shift-Enter and keeping Cmd + Return for form submission because this is a web standard.

It also fixes a bug where pressing Cmd + Return for saving changes in the Wiki editor didn’t send the changes when using the Content Editor.

Why are we doing this?

Because users find confusing when the can’t get outside the code block using the arrow keys.

What else does this MR do?

It also introduces a utility for testing that the outcome of executing a command that modifies a ProseMirror document. In order to test this command, we added the prosemirror-test-builder utility. This utility allows us to build test documents that we can use to make assertions against the document produced by the Content Editor.

The testing methodology we follow is:

  • Create an initial document
  • Create an expected document
  • Allow the Content Editor to modify the initial document

Assert that the modified document equals the expected document.

How to test?

  • Edit a Wiki page in your local environment.
  • Enable the content editor (it is opt-in for now).
  • Insert a code block using the toolbar or a keyboard shortcut.

Screenshots (strongly suggested)

When the code block is the last element When the code block is set between elements
2021-07-02_15.13.20 2021-07-02_15.13.52

Does this MR meet the acceptance criteria?

Conformity

Availability and Testing

Security

Does this MR contain changes to processing or storing of credentials or tokens, authorization and authentication methods or other items described in the security review guidelines? If not, then delete this Security section.

  • Label as security and @ mention @gitlab-com/gl-security/appsec
  • The MR includes necessary changes to maintain consistency between UI, API, email, or other methods
  • Security reports checked/validated by a reviewer from the AppSec team

Related to #334191 (closed)

Edited by Enrique Alcántara

Merge request reports