← Back to team overview

mahara-contributors team mailing list archive

[Bug 1526624] Re: Pieforms can't tell which "button" element submitted a form

 

To get a complete sense of the scope of this bug, we'd need to check and
see how many forms there are that have two different submit buttons, and
use the pressed button to determine which action to take.

Doing a quick grep, I see the following files that contain
"usebuttontag" more than once. These are the places where we're
likeliest to find forms like that, although it's possible these could be
multiple form definitions in the same file. For instance, taking a quick
look at view/urls.php, I see that's the case there.

./collection/views.php:2
./view/urls.php:2
./artefact/comment/lib.php:2
./artefact/annotation/lib.php:2
./artefact/blog/lib.php:3
./lib/user.php:2
./lib/group.php:7
./lib/view.php:4
./webservice/apptokens.php:2
./webservice/admin/index.php:6
./webservice/admin/oauthv1sregister.php:2
./admin/users/bulk.php:3
./admin/users/institutions.php:3
./admin/site/networking.php:2
./user/view.php:2

-- 
You received this bug notification because you are a member of Mahara
Contributors, which is subscribed to Mahara.
Matching subscriptions: Subscription for all Mahara Contributors -- please ask on #mahara-dev or mahara.org forum before editing or unsubscribing it!
https://bugs.launchpad.net/bugs/1526624

Title:
  Pieforms can't tell which "button" element submitted a form

Status in Mahara:
  In Progress
Status in Mahara 15.10 series:
  In Progress
Status in Mahara 16.04 series:
  In Progress

Bug description:
  With Mahara 15.10, we replaced a lot of the old <input type="submit">
  tags with <button type="submit"> to provide for more flexible styling.

  However, no one realized that deep inside Pieform's creaky old
  internals, it expected your submit element to be flagged with
  "$element['submitelement'] = true". Without this, if there are
  multiple buttons in a pieform, all of their values show up in the
  submit method, instead of just the one that was pressed.

  This is the underlying cause of Bug 1526614 ("reject" button causes
  you to join a group). The accept & reject buttons were previously
  input tags, and had been changed to buttons. The submit handler
  function, thinking only one or the other could be pressed, only
  checked for the presence of the "accept" button. Without
  "submitelement" on it, the accept button's value (and the decline
  button's value) came through every time.

  In the old "submit" element, this flag is added automatically by the
  pieform_element_*_set_attributes() hook. I've added a similar hook to
  the button element that only adds it if it's a submit button (since we
  can also have non-submitting buttons, for Javascript).

To manage notifications about this bug go to:
https://bugs.launchpad.net/mahara/+bug/1526624/+subscriptions


References