2.0: Implement Gadget Manager
Open, NormalPublic13 Story Points

Description

Tracker and implementation bug for the Gadget Manager that was going to be implemented during the ResourceLoader2 sprint on July 2011.


Version: unspecified
Severity: normal

bzimport set Reference to bz29398.
bzimport added a subscriber: Unknown Object (MLST).
Krinkle created this task.Jun 14 2011, 5:06 PM
Paladox set Security to None.Apr 26 2015, 3:37 PM
Paladox added a subscriber: Paladox.

Hi has this been implanted or still be waiting to be implanted.

He7d3r changed the title from "Implement Gadget Manager (tracking)" to "2.0: Implement Gadget Manager (tracking)".Apr 26 2015, 6:37 PM
He7d3r edited the task description. (Show Details)
Aklapper lowered the priority of this task from "High" to "Normal".Apr 26 2015, 9:53 PM
Aklapper added a subscriber: Aklapper.
onei added a subscriber: onei.Jul 28 2015, 7:18 AM

@Krinkle I'm confused as to how is this bug meant to be resolved? If it's purely for tracking, it should be closed as all the blocking tasks have been closed (unless I'm misinterpreting the nature of tracking bugs). However, the feature is still missing, and this task has no description of what needs implementing beyond what it should be called.

Legoktm changed the title from "2.0: Implement Gadget Manager (tracking)" to "2.0: Implement Gadget Manager".Aug 2 2015, 6:45 AM
Legoktm removed a project: Tracking.
Legoktm added a subscriber: Legoktm.Aug 2 2015, 6:48 AM

@Krinkle I'm confused as to how is this bug meant to be resolved? If it's purely for tracking, it should be closed as all the blocking tasks have been closed (unless I'm misinterpreting the nature of tracking bugs). However, the feature is still missing, and this task has no description of what needs implementing beyond what it should be called.

It used to be a tracking bug, but now we can just make it a generic "implement gadget manager" task. The code is mostly written and lives in the RL2 branch and now needs to be ported to the master branch.

kaldari added a subscriber: kaldari.Oct 8 2015, 1:41 AM

@Krinkle: Could you explain what a "Gadget Manager" is in the bug description? Is this a front-end UI or a back-end feature for ResourceLoader?

Specified at https://www.mediawiki.org/wiki/ResourceLoader/Version_2_Design_Specification#Gadget_Manager

The gadget manager is the user interface, to be hosted on Special:Gadgets, that effectively replaces MediaWiki:Gadgets-definition. From there gadget definitions can be created, modified and deleted.

In Gadgets 2.0, the definitions are stored in a separate content model in the revision store. However they're not meant to be modified directly, there is a GUI for it.

DannyH moved this task from Untriaged to Analysis on the Community-Tech board.

Change 247869 had a related patch set uploaded (by Kaldari):
[WIP] Add Gadget manager, overhaul Special:Gadgets

https://gerrit.wikimedia.org/r/247869

DannyH added a subscriber: DannyH.EditedNov 5 2015, 10:33 PM

For Community Tech: the task is to remove code from Legoktm's WIP patch related to cross-wiki/global gadgets, and update to current standards.

DannyH edited a custom field.Nov 6 2015, 7:19 PM
DannyH moved this task from Sprint planning/estimation to Backlog on the Community-Tech board.

@Krinkle, @Legoktm: The documentation at https://www.mediawiki.org/wiki/ResourceLoader/Version_2_Design_Specification#Gadget_Manager leaves me with several unanswered questions:

  • What is Special:Gadgets/<id> for? What information or interfaces are shown there?
  • What is the actual process for editing a gadget definition (starting from the Gadget Manager (Special:Gadgets))?
  • Can you edit or delete a gadget from the corresponding Gadget_definition page, or do you have to do it through the Gadget Manager?
  • If you delete a gadget from the Gadget Manager, what happens? Does that just disable it? Does it delete the corresponding CSS and JS pages? Does it delete the Gadget_definition page?
  • When you create a gadget, is it immediately available in the preferences?
  • Is there a separate "enable/disable" function?
  • What aspects of Gadgets 2.0 will be included in the first iteration? What features will be added later?

I guess what I'm lacking is a very general bird's eye view of how Gadgets 2.0 is supposed to work. Mock-ups of Special:Gadgets, Special:Gadgets/<id>, and the interface for editing gadgets would help a lot, but I understand if you don't have time to do that. At the least, a description of what the new Special:Gadgets page is supposed to contain would be helpful, as I only have a very vague idea at this point.

@Krinkle, @Legoktm: The documentation at https://www.mediawiki.org/wiki/ResourceLoader/Version_2_Design_Specification#Gadget_Manager leaves me with several unanswered questions:

  • What is Special:Gadgets/<id> for? What information or interfaces are shown there?

The same as Special:Gadgets overview, but a permalink to the details of just one gadget definition. This is also from which definitions can be exported or deleted, e.g. Special:Gadgets/:id/export.

  • What is the actual process for editing a gadget definition (starting from the Gadget Manager (Special:Gadgets))?

View Special:Gadgets. This outputs a table-like interface with one row for each gadget. Click "Modify gadget" in the row you want to modify. Without javascript, this points to action=edit of the gadgets definition page. With javascript (and user right), this opens a dialog for a visualised editing interface to modify each of the properties where most fields are autocompleted (e.g. skin names, message keys, script/style page names).

  • Can you edit or delete a gadget from the corresponding Gadget_definition page, or do you have to do it through the Gadget Manager?

The Gadget manager points to action=delete of the gadgets definition page.

  • If you delete a gadget from the Gadget Manager, what happens? Does that just disable it? Does it delete the corresponding CSS and JS pages? Does it delete the Gadget_definition page?

It deletes the gadget definition page only. Wiki pages for script, style and interface messages (in Gadget and MediaWIki namespace respectively) are retained and may be deleted separately if desired (and not used elsewhere).

  • When you create a gadget, is it immediately available in the preferences?

Yes.

  • Is there a separate "enable/disable" function?

No.

  • What aspects of Gadgets 2.0 will be included in the first iteration? What features will be added later?

The proof of concept RL2 branch implemented all features kind of. In the recent clean up work by @Legoktm and yourself the "Global gadgets" aspect was removed pending outcome of T71445. I don't expect this to be added later. Rather it will receive its own solution, likely based around Git and a friendly deployment model.

I guess what I'm lacking is a very general bird's eye view of how Gadgets 2.0 is supposed to work. Mock-ups of Special:Gadgets, Special:Gadgets/<id>, and the interface for editing gadgets would help a lot, but I understand if you don't have time to do that. At the least, a description of what the new Special:Gadgets page is supposed to contain would be helpful, as I only have a very vague idea at this point.

The code in the RL2 branch should work fine to get a general sense. I've checked it out just now, ran update.php and viewed Special:Gadgets. Here's what it looks like:



@Krinkle, @Legoktm: Thanks. I've started creating some documentation at https://www.mediawiki.org/wiki/Gadgets_2.0. BTW, I've been trying to get the Gadget Manager interface running locally, but haven't had any luck. I've checked out 247869, switched wgGadgetsRepoClass to GadgetDefinitionNamespaceRepo and changed the SpecialGadgets registration to SpecialGadgets2.php. I currently get fatal errors about getDefinitionTitle() being undefined. Is there a particular patchset that I can checkout that will let me load the Gadget Manager and try it out? Do I also need to checkout any pending changesets in core?

Try the "RL2" branch in the Gadgets repository.

Thanks. That works.

Catrope removed a subscriber: Catrope.Nov 13 2015, 8:36 PM

Added some documentation on getting the dev code running in case anyone else wants to as well:
https://www.mediawiki.org/wiki/Gadgets_2.0#Temporary_method_until_Gadgets_2.0_code_is_merged

Niharika claimed this task.Nov 18 2015, 7:55 AM
Niharika moved this task from Ready to In Development on the Community-Tech-Sprint board.
kaldari claimed this task.Nov 24 2015, 6:10 PM

This is done, but waiting for feedback from @Legoktm.

kaldari moved this task from Backlog to Freezer on the Community-Tech board.Wed, May 25, 11:44 PM

Add Comment