The Page Forms extension (https://www.mediawiki.org/wiki/Extension:Page_Forms) allows for editing only one page at a time. Normally this is fine, but in some cases an administrator or "power user" may want to change many pages at the same time - for instance, if there has been a change to the data structure, like a parameter/field getting added to a template.
What is needed is a new "special page", defined by Page Forms, that displays a spreadsheet interface for editing many pages, where each row represents a single template call and each column represents a template parameter, i.e. form field.
There may be more than one call to a template on the same page, so this interface would need to handle that case as well.
This interface should most likely be implemented using the jsGrid library, which thankfully is already in use by Page Forms for other purposes:
http://js-grid.com
As I see it, the steps of such a project may look something like:
* Make a basic "minimum viable product" special page that lets the user edit all the calls to any specific template, using a spreadsheet interface, with a text entry for each value.
* Add support for pagination, for large data sets.
* Add support for adding new pages via the same interface.
* Use other Page Forms code to get the ideal input type (text, dropdown, checkbox etc.) for each template parameter, and display that in the spreadsheet.
* Add support for additional input types that Page Forms' jsGrid implementation still does not handle - the most important being two autocompletion-based inputs, "combobox" and "tokens". This part should be a fun challenge for anyone who enjoys working with JavaScript and jQuery.
* Optionally provide support for renaming pages from within the interface.
=Internship project details=
* Primary mentor: @Yaron_Koren
* Co-mentors: @Bkybala9, @Nischayn22
* Skills: PHP, JavaScript
* Estimated project time for a senior contributor: 2 weeks
* Microtasks:
** T187110
** T187115
** T187114 (more like a regular task than a "micro-task")
** T29702 (may no longer be valid - this should be checked)
** T72704 (also may no longer be valid)
** T187471
** T188414