Last modified: 2014-07-30 02:38:50 UTC

Wikimedia Bugzilla is closed!

Wikimedia migrated from Bugzilla to Phabricator. Bug reports are handled in Wikimedia Phabricator.
This static website is read-only and for historical purposes. It is not possible to log in and except for displaying bug reports and their history, links might be broken. See T37333, the corresponding Phabricator task for complete and up-to-date bug report information.
Bug 35333 - Create a generic feedback interface that extensions/gadgets can use.
Create a generic feedback interface that extensions/gadgets can use.
Status: NEW
Product: MediaWiki extensions
Classification: Unclassified
Extensions requests (Other open bugs)
unspecified
All All
: Low normal with 2 votes (vote)
: ---
Assigned To: Nobody - You can work on this!
:
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2012-03-19 22:16 UTC by Mark A. Hershberger
Modified: 2014-07-30 02:38 UTC (History)
6 users (show)

See Also:
Web browser: ---
Mobile Platform: ---
Assignee Huggle Beta Tester: ---


Attachments

Description Mark A. Hershberger 2012-03-19 22:16:27 UTC
After talking with Rillke, we ended up discussing the idea of integrating problem reporting bugs like has been done with 
[[commons:MediaWiki:Gadget-AjaxQuickDelete.js]]:

      if (!this.disableReport) {
         dlgButtons[this.i18n.reportButtonLabel] = function() {
            $('#feedbackContainer').contents().remove();
            $('#feedbackContainer').append($('<img>', {
               src: '.../images/ajax-loader.gif'
            })).css('text-align', 'center');
            var randomId = Math.round(Math.random()*1099511627776);
            var toSend = '\n== Autoreport by AjaxQuickDelete ' + randomId + 
              ' ==\n' + err + '\n++++\n:Task: ' + o.currentTask +
              '\n:NextTask: ' + o.tasks[0] + '\n:LastTask: ' +
              o.tasks[o.tasks.length - 1] + '\n:Page: ' +
              (o.pageName || pageName) + '\n:Skin: ' +
              mw.user.options.get('skin') +
              '\n:[{{fullurl:Special:Contributions|target={{subst:urlencode:' +
              '{{subst:REVISIONUSER}}}}&offset={{subst:REVISIONTIMESTAMP}}}}' +
              ' Contribs before error]';
            $.post(o.apiURL, {
               'action': 'edit',
               'format': 'json',
               'title': 'MediaWiki talk:AjaxQuickDelete.js/auto-errors',
               'summary': '[[#Autoreport by AjaxQuickDelete ' + randomId +
                          '|Reporting an AjaxQuickDelete error.]] Random ID=' +
                          randomId,
               'appendtext': toSend,
               'token': (o.edittoken || mw.user.tokens.get('editToken'))
            }, function() {
               o.reloadPage();
            });
         };
      }
Comment 1 Sam Reed (reedy) 2012-03-20 01:57:05 UTC
Can you elaborate further what you're wanting to do?
Comment 2 Helder 2012-03-20 03:04:41 UTC
See also:
* [[pl:Special:PrefixIndex/MediaWiki:Gadget-wikidebug]]
Comment 3 Krinkle 2012-03-20 06:35:51 UTC
His gadget has a try/catch system that calls a method that makes an AJAX request to a certain wiki page on behalf of the user. The edit adds a line with the caught error message etc.
Comment 4 Krinkle 2012-03-20 06:38:52 UTC
Since this case is very specific to gadgets and related script I think this is not a use case for the core software.

It would be a perfect example of a utility gadget that other gadgets can use. Which would be centrally maintained in the gadget repository that is available on all wikis.
Comment 5 Mark A. Hershberger 2012-03-20 13:41:51 UTC
(In reply to comment #4)
> Since this case is very specific to gadgets and related script I think this is
> not a use case for the core software.

It makes sense for the gadget extension, though, right?  Maybe switch component for this bug?
Comment 6 Rainer Rillke @commons.wikimedia 2012-03-20 16:51:34 UTC
"Your" UploadWizard would be also benefit from automated error reporting. At least you could try to catch all the ridicules server errors that currently occur and report them to yourself without the need for a user collecting all of them and describing the bug in a way you aren't able to understand ;-).

Automatic problem reporting software is a common feature of most desktop-apps now, why not doing this with JavaScript? You would be aware of errors as soon as they occur, would be able to fix them fast because you know what you have to know and in the end, happy users. "I contributed resolving a problem - I made the software better!" by simply clicking a button (or not even that).

Just let me underline this using a simple example:
Currently, if you are using UpWiz and enter a name containing a "/", it tries to "publish" the file using this name, which of course fails 
«There was a file by this name, "File:Defekter_Bahnautomat_(2)22/testtest.jpg", but it was deleted and you can not reupload the file. If your file is different, try renaming it.» 
You would be aware of this problem (yes, it should show a descriptive error message or simply remove the "/"), if you would catch errors sent back from the servers.
Comment 7 Rainer Rillke @commons.wikimedia 2012-03-20 17:00:13 UTC
Concerning the example, I just retried with another file and got

«Defekter_Bahnautomat_36/test_Defekter_Bahnautomat.jpg
Unknown warning: "badfilename".»

The file was fresh generated from an own photograph and has hit a hash of a deleted file. That's really interesting.
Comment 8 Krinkle 2012-03-22 10:41:50 UTC
(In reply to comment #5)
> (In reply to comment #4)
> > Since this case is very specific to gadgets and related script I think this is
> > not a use case for the core software.
> 
> It makes sense for the gadget extension, though, right?  Maybe switch component
> for this bug?

I disagree. I think the gadgets extension should never ship with pre-installed gadgets. This to avoid mass decentralization of gadgets (which are very hard, if not impossible, to reliably update, so we'd be left with a lot of gadgets installed on third party wikis, likely unused on most of them and not update-able).

Instead this is where sharing and community comes in. Anyone can create such a gadget if he sees a need for it, and (once Gadgets 2.0 is finished) it can be natively shared with other wikis that also need it.

Much like Chrome extensions or Firefox add-ons, except with multiple market places (repositories) and the wiki-admin 'decides' which repositories are trusted and are aggregated in the search and allowed for loading.
Comment 9 Krinkle 2012-03-22 10:43:28 UTC
But I don't see a feature request nor a bug here. As far as I can see MediaWiki's ResourceLoader framework, the API and the mediawiki-JS library all allow doing something like this. And from what I read here, it has already been done on Commons to some degree.
Comment 10 Mark A. Hershberger 2012-03-23 14:23:58 UTC
(In reply to comment #9)
> But I don't see a feature request nor a bug here.

The feature request was to provide a standard way for end users to report errors to the gadget developer.

In comment #8, you say it shouldn't be done.
Comment 11 Rainer Rillke @commons.wikimedia 2012-03-23 14:32:10 UTC
(In reply to comment #9)
> But I don't see a feature request nor a bug here.

So you are able letting users of upload wizard reporting their error somewhere?
Comment 12 Krinkle 2012-07-02 08:24:51 UTC
* Moving from ResourceLoader to extension requests. This is not a bug or feature request in the ResourceLoader. ResourceLoader is the framework for managing an delivering javascript, stylesheets and other module resources. This bug is about a user interface feature.
* Renaming bug from an implementation example to a use case. We don't want to log to a wiki page per se, lets keep the possibilities open.

Note, that this could be a use case for the (existing) Feedback Dashboard, so maybe we don't have to create something new?

Some of the things it would have to support:
* Feedback from readers about something they see in the article
* Allowing a user to report an error as it happens in a gadget or extension. It should be able to not require/show the "mood" input, and it needs a way to specify a "channel" (a hidden parameter passed from the interface to the API -e.g. channel=gadget-foo or channel=ext-UploadWizard).

Note You need to log in before you can comment on or make changes to this bug.


Navigation
Links