Article feedback/Version 5/Technical Design

Massively a work-in-progress. More of a loose notes page than anything else.

= Technical design =

Major components:

1. The "leave feedback" widgets a. various form elements (text area, rating widgets, feedback type radios, etc) are included or not, which can probably be handled within the same function ($.articleFeedback in modules/jquery.articleFeedback/jquery.articleFeedback.js) that renders the current one, with some logic added, based on the "buckets" as defined in the requirements, and given some CSS class or another to handle the different visual looks. Buckets are based on IP address, and it's fine to hard-code them, rather than use the database. It's a little too hard-coded at the moment, and I'm pretty sure I'd rather it be in PHP than JS, but that might not make sense, it's just opinion/preference. b. backend to save the data above, and frontend to pre-populate the feedback form with a user's previous feedback (assuming we have a user, and that user has previous feedback) c. an alternate "read only" view, to support viewing current ratings, to be displayed after or in place of item a above, or after successful submission. d. Calls To Action - markup may well end up hard-coded in the JS, just stuffed into an array or something, and we just select a random key. 2. The "view feedback" page a. essentially a list of the widgets as described in 1c, above, for users/editors to view. b. moderation tools - hide, promote (to talk page), or flag various pieces of feedback. c. sorting and filtering options - good comments first (how that's defined is unclear), newest first - basically tools to hide the inevitable flood of spam "feedback" d. A special page, on the level of the talk pages - add a link to this in the not-quite-top-level navigation on said talk page. e. Need to work out which bits of this page are must-have-now vs must-have-eventually.