User forms
User-facing forms to include in themes, etc.
I've tested the user-form branch locally with Selenium IDE and the forms I implemented for European Voice and all of them work fine: user registration, subscription payment, subscription renewal, profile form, and invoice payment.
I've filed an issue slightly related to this: https://github.com/alleyinteractive/wordpress-fieldmanager/issues/158
I'm going to hold merging this until tests for Fieldmanager_File are written and FM Demos has an equivalent PR to demo a user-facing form.
Not sure I'm in the right mindset to stamp this officially (too many consecutive pseudoephedrine days), but it does look good to me overall and I'm psyched to play with it (and the tests).
AssertTag() is now deprecated. These tests all need to be replaced with, I guess, string matches. Doesn't look like phpunit replaced it with anything.
There's a function called fm_renumber in fieldmanager.js that takes care of assigning the correct name and id attributes to HTML elements in a Fieldmanager_Group. See https://github.com/alleyinteractive/wordpress-fieldmanager/blob/user-forms/js/fieldmanager.js#L76
That functions looks for a class .fm-element for each element but the template for textfield is not adding it automatically on this branch, see https://github.com/alleyinteractive/wordpress-fieldmanager/blob/user-forms/templates/textfield.php#L2
This causes information in textfields in a group not to be saved correctly.
A workaround for this could be adding the field_class property to Fieldmanager_Textfield with this value: "fm-element text".
This was fixed on https://github.com/alleyinteractive/wordpress-fieldmanager/pull/209
This should not delete Fieldmanager_Context_Page, as others may be using that. We will deprecate it elsewhere first.
I'm finally checking this out since Fieldmanager_Context_Page has been deprecated.
I've replaced all calls to add_page_form() in my project with add_form() and everything seems to work functionality-wise.
However, styles for the rendered form are a bit messed up:

Here's what it should look like normally:

Looks like that's happening because the parent of .fm-group-label-wrapper is .fm-fm-group instead of .fm-group. Not sure exactly why that changed.
Also, could someone resolve the merge conflicts so I can test with the changes from master?