User:Kunalgrover05/AggregateGroups

Changes for Special:AggregateGroups
These are the fixes that we are aiming at for Special:AggregateGroups
 * Allow aggregate group name and group description to be changed on Special:AggregateGroups. - [Bug 36298]
 * Make Special:AggregateGroups output a special page when permissions insufficient (bug number?)

Approach/Implementation

 * Have an edit button beside the remove button to change the name and description.
 * Implement different display forms for the 2 cases with a parameter in the form which displays the optional parts.

Current progress

 * Reading up and understanding the code
 * Implemented a method in API to change the name and description.
 * Implemented UI method to use API
 * Bug fixed :)
 * Working on making Special:AggregateGroups read only when user lacks permissions.

Challenges faced
It breaks the searching groups using aggregate group id. Now multiple groups can have the same name as well. Is it better to create a new group followed by deleting the old one?


 * Nikerabbit suggested to have the same group id even on updation


 * This brings this bug into place, suppose a new group is created with a certain name and then the name is changed. We can never again create a group with the same name. Is it better to use the Copy group and delete existing group way?


 * Implemented this way- keeping the id as NAME1 automatically if the NAME is a valid aggregate group name but not a valid id.

The error part in mw.Api doesn't work for me.


 * Solved with Nikerabbit's help. Need to use as mw.Api.fail( function( error_code, data ) );

There was an issue in using $this->dieUsage and $this->dieUsageMsg


 * $this->dieUsage can be used directly but for $this->dieUsageMsg the message needs to be declared already.

Gerrit patches
https://gerrit.wikimedia.org/r/#/c/135872 (Merged) https://gerrit.wikimedia.org/r/#/c/135874 (Merged) https://gerrit.wikimedia.org/r/#/c/140822/ (Merged)
 * API
 * Front end
 * Read only Special:AggregateGroups

Further tasks
Further improvement suggested by Nikerabbit.

Special:AggregateGroups is too slow when the number of groups is huge. It might be because of so many group selectors.


 * Try 1 : Replace group selector UI with an autocomplete input box for selecting subgroups.