Start of a config web interface.
Summary:
This is somewhat clowny, particularly in how it handles JSON encode/decode, but
I've commented why I did things the way I did. The goal is to store minified JSON
but show pretty-printed JSON where possible, to the user editing it.
Test Plan:
- Went to /config/ and saw a list of keys from the default config.
- Clicked on one of them, submitted the default value successfully.
- Changed the value to invalid JSON and got a decent error.
- Changed the value to valid JSON and checked the DB to confirm it saved.
- Confirmed the DB values were minified.
- Confirmed the user-facing values were pretty-printed where they could be.
- Confirmed that PHIDs were getting assigned properly and that isDeleted properly defaulted to false/0.
Reviewers: epriestley
Reviewed By: epriestley
CC: aran, Korvin
Maniphest Tasks: T2246
Differential Revision: https://secure.phabricator.com/D4290