Buttons of forms come in two orders; use cancel first, main action last everywhere

Open
#647 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

@guidol-ive is already working on this.

Since Oct 28, 2026.

  • #648 by @guidol-ive — open

Assessment

Difficulty
2/5
Estimated time
1-3 hours
Newbie friendliness
20/100
Issue type
Bug
Clarity
Clearly specified
Activity status
Stale
Tech stack
javascript, php
Domain
design, frontend

Research direction

Read text.php, festival.php, and mailinglist.php to locate the edit text, festival settings, and mailing list edit forms. Compare their button order with the stated convention, then place cancel before the main action in each remaining form. The issue links open PR #648, so check its changes to see whether this work is already underway.

Written by the indexing model from the issue text.

Description

Component: User interface Impact: Low Level: Easy Type: Bug Value: Users

Problem

The buttons of a form come in two orders, depending on the screen.

Main action first, then cancel Cancel first, then the main action
Edit text page (text.php) Translate text page (text.php)
Festival settings (festival.php) All settings screens (settings.php, 9 places)
Edit mailing list (mailinglist.php) Mailing list addresses and mailing (mailinglist.php)
Login popup (users.php) Edit article, moderate comment (peer_reviewed_article.php)
Recover account popup (users.php) New page popup (pages.php)

So a user who clicks the button in the usual place sometimes cancels instead of saving.

The recover account popup also looks different from the login popup: a table with unstyled browser buttons instead of the login-wrapper with class="button".

Choice

One order everywhere: cancel (or back) first, the main action last. A destructive action, such as delete, goes before cancel.

  • This is the order of the Apple Human Interface Guidelines and of Material Design for dialogs and forms. The design of the Markdown editor (#520) refers to the Apple HIG and its dialogs already use this order.
  • Most screens of Hypha already follow it (settings, translate, article, new page).
  • Themes put the buttons in document order (the default theme does not float them), so the order in the code is the order on screen.

Fix

  • text.php (edit), festival.php (settings) and mailinglist.php (edit): cancel before save.
  • The login form: cancel before log in. Done in PR #646, which reworks that form.
  • Recover account: the layout of the login form, with cancel first. Done in PR #644, which reworks that popup.
Dominant language
JavaScript
Stars
5
Forks
9
Avg merge
18h 49m
Merged PRs (30d)
13

Getting set up

This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from PlanBCode/hypha

All issues in PlanBCode/hypha

Similar issues

More JavaScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.