|
|
| Line 1: |
Line 1: |
| /* VoteNY: restore star view after voting */ | | /* site-wide JS — VoteNY toggle is handled in Vote.js */ |
| ( function ( $, mw ) {
| |
| 'use strict';
| |
| | |
| $( function () {
| |
| if ( mw.config.get( 'wgNamespaceNumber' ) !== 0 ) {
| |
| return;
| |
| }
| |
| | |
| $( document ).ajaxComplete( function ( event, xhr, settings ) {
| |
| var params;
| |
| try {
| |
| params = new URLSearchParams( settings.data );
| |
| } catch ( e ) {
| |
| return;
| |
| }
| |
| if (
| |
| params.get( 'action' ) !== 'voteny' ||
| |
| params.get( 'type' ) !== 'stars' ||
| |
| params.get( 'what' ) !== 'multi'
| |
| ) {
| |
| return;
| |
| }
| |
| | |
| var data;
| |
| try {
| |
| data = JSON.parse( xhr.responseText );
| |
| } catch ( e ) {
| |
| return;
| |
| }
| |
| | |
| var displayHtml = data && data.voteny && data.voteny.display;
| |
| var pageId = params.get( 'pageId' );
| |
| if ( !displayHtml || !pageId ) {
| |
| return;
| |
| }
| |
| | |
| var $el = $( '#rating_' + pageId );
| |
| $el.data( 'gplx-stars-html', displayHtml );
| |
| | |
| if ( !$el.find( '.vote-rating-star' ).length && !$el.find( '.gplx-vote-toggle' ).length ) {
| |
| $el.append(
| |
| $( '<button>' )
| |
| .addClass( 'gplx-vote-toggle' )
| |
| .text( 'Show rating' )
| |
| .on( 'click', function () {
| |
| $el.html( $el.data( 'gplx-stars-html' ) );
| |
| $el.removeData( 'gplx-stars-html' );
| |
| } )
| |
| );
| |
| }
| |
| } );
| |
| } );
| |
| | |
| }( jQuery, mediaWiki ) );
| |