jenkins-bot has submitted this change and it was merged. ( https://gerrit.wikimedia.org/r/332681 )
Change subject: Hide anchor icons on member lists. ...................................................................... Hide anchor icons on member lists. In the process, I discovered and fixed a bug where an error was produced if a logged-out user viewed a member list. Bug: T155484 Change-Id: I14a7faa5e035e86d52b91b1cb554f9555c6b4f7a --- M modules/ext.CollaborationKit.list.edit.js 1 file changed, 113 insertions(+), 102 deletions(-) Approvals: Harej: Looks good to me, approved jenkins-bot: Verified diff --git a/modules/ext.CollaborationKit.list.edit.js b/modules/ext.CollaborationKit.list.edit.js index 613e90c..503e7a5 100644 --- a/modules/ext.CollaborationKit.list.edit.js +++ b/modules/ext.CollaborationKit.list.edit.js @@ -35,8 +35,12 @@ * @return {boolean} */ curUserIsInList = function curUserIsInList() { - var titleObj, escapedText; - titleObj = mw.Title.newFromText( mw.config.get( 'wgUserName' ), 2 ); + var titleObj, escapedText, currentUser; + currentUser = mw.config.get( 'wgUserName' ); + if ( !currentUser ) { + return false; + } + titleObj = mw.Title.newFromText( currentUser, 2 ); escapedText = titleObj.getPrefixedText(); escapedText = escapedText.replace( /\\/g, '\\\\' ); escapedText = escapedText.replace( /"/g, '\\"' ); @@ -516,115 +520,122 @@ $list = $( '.mw-ck-list' ); $list.find( '.mw-ck-list-item' ).each( function () { - var deleteButton, - moveButton, - editButton, - $delWrapper, - $moveWrapper, - $editWrapper, - colId, - $item = $( this ); + var deleteButton, + moveButton, + editButton, + $delWrapper, + $moveWrapper, + $editWrapper, + colId, + $item = $( this ); - colId = getColId( $item ); - deleteButton = new OO.ui.ButtonWidget( { - framed: false, - icon: 'remove', - iconTitle: mw.msg( 'collaborationkit-list-delete' ) - } ); - - // Icon instead of button to avoid conflict with jquery.ui - moveButton = new OO.ui.IconWidget( { - framed: false, - icon: 'move', - iconTitle: mw.msg( 'collaborationkit-list-move' ) - } ); - - editButton = new OO.ui.ButtonWidget( { - label: 'edit', - framed: false - } ).on( 'click', function () { - modifyExistingItem( $item.data( 'collabkit-item-title' ), colId ); - } ); - - // FIXME, the <a> might make an extra target when tabbing - // through the document (Maybe also messing up screen readers). - // not sure. Its used so that jquery.confirmable makes a link. - $delWrapper = $( '<a></a>' ) - .attr( 'href', '#' ) - .click( function ( e ) { e.preventDefault(); } ) - .addClass( 'mw-ck-list-deletebutton' ) - .addClass( 'mw-ck-list-button' ) - .append( deleteButton.$element ) - .confirmable( { - handler: function () { - deleteItem( $item ); - } + colId = getColId( $item ); + deleteButton = new OO.ui.ButtonWidget( { + framed: false, + icon: 'remove', + iconTitle: mw.msg( 'collaborationkit-list-delete' ) } ); - $moveWrapper = $( '<div></div>' ) - .addClass( 'mw-ck-list-movebutton' ) - .addClass( 'mw-ck-list-button' ) - .append( moveButton.$element ); + // Icon instead of button to avoid conflict with jquery.ui - $editWrapper = $( '<div></div>' ) - .addClass( 'mw-ck-list-editbutton' ) - .addClass( 'mw-ck-list-button' ) - .append( editButton.$element ); - - $item.find( '.mw-ck-list-title' ) - .append( $delWrapper ) - .append( $moveWrapper ) - .append( $editWrapper ); - } ); - - $list.sortable( { - placeholder: 'mw-ck-list-dragplaceholder', - axis: 'y', - forcePlaceholderSize: true, - handle: '.mw-ck-list-movebutton', - opacity: 0.6, - scroll: true, - items: '.mw-ck-list-item', - cursor: 'grabbing', // Also overriden in CSS - start: function ( e ) { - $( e.target ) - .addClass( 'mw-ck-dragging' ) - .data( 'startTitleList', getListOfTitles( $list ) ); - }, - stop: function ( e, ui ) { - var oldListTitles, newListTitles, $target, i, j, changed, count; - - $target = $( e.target ); - $target.removeClass( 'mw-ck-dragging' ); - oldListTitles = $target.data( 'startTitleList' ); - newListTitles = getListOfTitles( $list ); - $target.data( 'startTitleList', null ); - // FIXME better error handling - if ( oldListTitles.length !== newListTitles.length ) { - throw new Error( 'We somehow lost a column?!' ); + if ( !mw.config.get( 'wgCollaborationKitIsMemberList' ) ) { + moveButton = new OO.ui.IconWidget( { + framed: false, + icon: 'move', + iconTitle: mw.msg( 'collaborationkit-list-move' ) + } ); } - changed = false; - count = 0; - for ( i = 0; i < oldListTitles.length; i++ ) { - count += oldListTitles.length; - count -= newListTitles.length; - for ( j = 0; j < oldListTitles[ i ].length; j++ ) { - if ( oldListTitles[ i ][ j ] !== newListTitles[ i ][ j ] ) { - changed = true; - break; + editButton = new OO.ui.ButtonWidget( { + label: 'edit', + framed: false + } ).on( 'click', function () { + modifyExistingItem( $item.data( 'collabkit-item-title' ), colId ); + } ); + + // FIXME, the <a> might make an extra target when tabbing + // through the document (Maybe also messing up screen readers). + // not sure. Its used so that jquery.confirmable makes a link. + $delWrapper = $( '<a></a>' ) + .attr( 'href', '#' ) + .click( function ( e ) { e.preventDefault(); } ) + .addClass( 'mw-ck-list-deletebutton' ) + .addClass( 'mw-ck-list-button' ) + .append( deleteButton.$element ) + .confirmable( { + handler: function () { + deleteItem( $item ); + } + } ); + + if ( !mw.config.get( 'wgCollaborationKitIsMemberList' ) ) { + $moveWrapper = $( '<div></div>' ) + .addClass( 'mw-ck-list-movebutton' ) + .addClass( 'mw-ck-list-button' ) + .append( moveButton.$element ); + } + + $editWrapper = $( '<div></div>' ) + .addClass( 'mw-ck-list-editbutton' ) + .addClass( 'mw-ck-list-button' ) + .append( editButton.$element ); + + $item.find( '.mw-ck-list-title' ) + .append( $delWrapper ) + .append( $moveWrapper ) + .append( $editWrapper ); + } ); + + if ( !mw.config.get( 'wgCollaborationKitIsMemberList' ) ) { + $list.sortable( { + placeholder: 'mw-ck-list-dragplaceholder', + axis: 'y', + forcePlaceholderSize: true, + handle: '.mw-ck-list-movebutton', + opacity: 0.6, + scroll: true, + items: '.mw-ck-list-item', + cursor: 'grabbing', // Also overriden in CSS + start: function ( e ) { + $( e.target ) + .addClass( 'mw-ck-dragging' ) + .data( 'startTitleList', getListOfTitles( $list ) ); + }, + stop: function ( e, ui ) { + var oldListTitles, newListTitles, $target, i, j, changed, count; + + $target = $( e.target ); + $target.removeClass( 'mw-ck-dragging' ); + oldListTitles = $target.data( 'startTitleList' ); + newListTitles = getListOfTitles( $list ); + $target.data( 'startTitleList', null ); + // FIXME better error handling + if ( oldListTitles.length !== newListTitles.length ) { + throw new Error( 'We somehow lost a column?!' ); + } + + changed = false; + count = 0; + for ( i = 0; i < oldListTitles.length; i++ ) { + count += oldListTitles.length; + count -= newListTitles.length; + for ( j = 0; j < oldListTitles[ i ].length; j++ ) { + if ( oldListTitles[ i ][ j ] !== newListTitles[ i ][ j ] ) { + changed = true; + break; + } } } + if ( count !== 0 ) { + // Sanity check failure + throw new Error( 'List item has disappeared?' ); + } + if ( changed ) { + reorderList( ui.item, newListTitles, oldListTitles ); + } } - if ( count !== 0 ) { - // Sanity check failure - throw new Error( 'List item has disappeared?' ); - } - if ( changed ) { - reorderList( ui.item, newListTitles, oldListTitles ); - } - } - } ); + } ); + } buttonMsg = mw.config.get( 'wgCollaborationKitIsMemberList' ) ? 'collaborationkit-list-add-user' : -- To view, visit https://gerrit.wikimedia.org/r/332681 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: merged Gerrit-Change-Id: I14a7faa5e035e86d52b91b1cb554f9555c6b4f7a Gerrit-PatchSet: 3 Gerrit-Project: mediawiki/extensions/CollaborationKit Gerrit-Branch: master Gerrit-Owner: Harej <jamesmh...@gmail.com> Gerrit-Reviewer: Harej <jamesmh...@gmail.com> Gerrit-Reviewer: jenkins-bot <> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits