Henning Snater has uploaded a new change for review.
https://gerrit.wikimedia.org/r/173281
Change subject: Disable remove button when entered site link is invalid
......................................................................
Disable remove button when entered site link is invalid
Change-Id: Icac8cd44e48be065c98dbd8e1700457368b9be1b
---
M lib/resources/jquery.wikibase/jquery.wikibase.sitelinkgroupview.js
M lib/resources/jquery.wikibase/toolbar/jquery.wikibase.toolbar.js
2 files changed, 31 insertions(+), 20 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Wikibase
refs/changes/81/173281/1
diff --git a/lib/resources/jquery.wikibase/jquery.wikibase.sitelinkgroupview.js
b/lib/resources/jquery.wikibase/jquery.wikibase.sitelinkgroupview.js
index 97a62c5..49d592b 100644
--- a/lib/resources/jquery.wikibase/jquery.wikibase.sitelinkgroupview.js
+++ b/lib/resources/jquery.wikibase/jquery.wikibase.sitelinkgroupview.js
@@ -427,22 +427,32 @@
}
sitelinklistviewListview.items().each( function() {
- var $sitelinkview = $( this );
+ var $sitelinkview = $( this ),
+ sitelinkview = $sitelinkview.data(
'sitelinkview' );
- if( $sitelinkview.data( 'removetoolbar' ) ) {
- return;
+ if( !$sitelinkview.data( 'removetoolbar' ) ) {
+ $sitelinkview
+ .removetoolbar( {
+ $container: $( '<span/>'
).appendTo( $sitelinkview )
+ } )
+ .on(
'removetoolbarremove.removetoolbar', function( event ) {
+ if( event.target !==
$sitelinkview.get( 0 ) ) {
+ return;
+ }
+
sitelinklistview.$listview.data( 'listview' ).removeItem( $sitelinkview );
+ } );
}
- $sitelinkview
- .removetoolbar( {
- $container: $( '<span/>' ).appendTo(
$sitelinkview )
- } )
- .on( 'removetoolbarremove.removetoolbar',
function( event ) {
- if( event.target !== $sitelinkview.get(
0 ) ) {
- return;
- }
- sitelinklistview.$listview.data(
'listview' ).removeItem( $sitelinkview );
- } );
+ var removetoolbar = $sitelinkview.data(
'removetoolbar' ),
+ isDisabled = removetoolbar.option(
'disabled' ),
+ isValid = sitelinkview.isValid(),
+ isEmpty = sitelinkview.isEmpty();
+
+ if( ( !isValid || isEmpty ) && !isDisabled ) {
+ removetoolbar.disable();
+ } else if( isValid && !isEmpty && isDisabled ) {
+ removetoolbar.enable();
+ }
} );
},
sitelinkgroupviewafterstopediting: function( event,
toolbarcontroller ) {
diff --git a/lib/resources/jquery.wikibase/toolbar/jquery.wikibase.toolbar.js
b/lib/resources/jquery.wikibase/toolbar/jquery.wikibase.toolbar.js
index 8ddf7c1..88b2e14 100644
--- a/lib/resources/jquery.wikibase/toolbar/jquery.wikibase.toolbar.js
+++ b/lib/resources/jquery.wikibase/toolbar/jquery.wikibase.toolbar.js
@@ -144,7 +144,8 @@
*/
_setOption: function( key, value ) {
if( key === 'disabled' ) {
- this._setState( value ? 'disable' : 'enable' );
+ this._setState( value );
+ this.options[key] = value;
return this;
}
@@ -158,14 +159,14 @@
},
/**
- * @param {string} state
+ * @param {boolean} disable
*/
- _setState: function( state ) {
- this.getContainer()[
- state === 'disable' ? 'addClass' : 'removeClass'
- ]( 'ui-state-disabled' );
+ _setState: function( disable ) {
+ this.getContainer()
+ .toggleClass( this.widgetFullName + '-disabled
ui-state-disabled', !!disable )
+ .attr( 'aria-disabled', disable );
$.each( this._getItems(), function() {
- this[state]();
+ this[disable ? 'disable' : 'enable']();
} );
},
--
To view, visit https://gerrit.wikimedia.org/r/173281
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: Icac8cd44e48be065c98dbd8e1700457368b9be1b
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Wikibase
Gerrit-Branch: master
Gerrit-Owner: Henning Snater <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits