[MediaWiki-commits] [Gerrit] Registered movetoolbar definition for references - change (mediawiki...Wikibase)

2013-09-20 Thread jenkins-bot (Code Review)
jenkins-bot has submitted this change and it was merged.

Change subject: Registered movetoolbar definition for references
..


Registered movetoolbar definition for references

Change-Id: I1922294f6dac0de6878a6e9c5f3c831cf01fdc53
---
M lib/resources/jquery.wikibase/jquery.wikibase.referenceview.js
M repo/resources/wikibase.ui.entityViewInit.js
2 files changed, 153 insertions(+), 3 deletions(-)

Approvals:
  Tobias Gritschacher: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/lib/resources/jquery.wikibase/jquery.wikibase.referenceview.js 
b/lib/resources/jquery.wikibase/jquery.wikibase.referenceview.js
index d007de6..ddec4bb 100644
--- a/lib/resources/jquery.wikibase/jquery.wikibase.referenceview.js
+++ b/lib/resources/jquery.wikibase/jquery.wikibase.referenceview.js
@@ -137,6 +137,7 @@
this.element
.on(
'snakviewchange.' + this.widgetName
+   + ' snaklistviewchange.' + this.widgetName
+ ' listviewitemadded.' + this.widgetName + ' 
listviewitemremoved.' + this.widgetName,
function( event ) {
 
@@ -146,7 +147,7 @@
var $snaklistview = $( event.target 
).closest( ':wikibase-snaklistview' ),
snaklistview = 
$snaklistview.data( 'snaklistview' );
 
-   if( !snaklistview.value() ) {
+   if( snaklistview  
!snaklistview.value() ) {
self.removeItem( 
snaklistview.element );
}
}
@@ -168,7 +169,7 @@
 */
_detachEditModeEventHandlers: function() {
this.element
-   .off( 'snakviewchange.' + this.widgetName )
+   .off( 'snakviewchange.' + this.widgetName + ' ' + 
'snaklistviewchange.' + this.widgetName )
.off( 'listviewitemadded.' + this.widgetName + ' 
listviewitemremoved.' + this.widgetName )
.off( this.options.listItemAdapter.prefixedEvent( 
'stopediting.' + this.widgetName ) );
},
@@ -645,4 +646,153 @@
}
 } );
 
+$.wikibase.toolbarcontroller.definition( 'movetoolbar', {
+   id: 'referenceview-snakview',
+   selector: '.wb-statement-references .wb-referenceview',
+   events: {
+   'snakviewstartediting': function( event ) {
+   var $snakview = $( event.target ),
+   $snaklistview = $snakview.closest( 
':wikibase-snaklistview' ),
+   $referenceview = $snakview.closest( 
':wikibase-referenceview' ),
+   referenceview = $referenceview.data( 
'referenceview' ),
+   snakList = 
referenceview.options.listItemAdapter.liValue( $snaklistview );
+
+   // Prevent creating the toolbar for pending values.
+   if( snakList !== null ) {
+   // Since snakviewstartediting is triggered for 
every snakview, this creates the
+   // toolbar for each snakview widget:
+   $snakview.movetoolbar( {
+   listView: $referenceview
+   } );
+
+   // Disable move up button of topmost and 
move down button of bottommost
+   // snakview:
+
+   var $topMostSnakview = 
referenceview.items().first().data( 'snaklistview' )
+   ._listview.items().first();
+   var $bottomMostSnakview = 
referenceview.items().last().data( 'snaklistview' )
+   ._listview.items().last();
+
+   if ( $topMostSnakview.get( 0 ) === 
$snakview.get( 0 ) ) {
+   $snakview.data( 'movetoolbar' 
).$btnMoveUp.data( 'toolbarbutton' ).disable();
+   }
+
+   if( $bottomMostSnakview.get( 0 ) === 
$snakview.get( 0 ) ) {
+   $snakview.data( 'movetoolbar' 
).$btnMoveDown.data( 'toolbarbutton' ).disable();
+   }
+   }
+   },
+   'referenceviewafterstopediting': function( event ) {
+   // Destroy the snakview toolbars:
+   var $referenceview = $( event.target ),
+   referenceview = $referenceview.data( 
'referenceview' );
+
+   if( !referenceview ) {
+   // Stopped edit mode of a pending referenceview 
which does not feature any
+   

[MediaWiki-commits] [Gerrit] Registered movetoolbar definition for references - change (mediawiki...Wikibase)

2013-09-17 Thread Henning Snater (Code Review)
Henning Snater has uploaded a new change for review.

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


Change subject: Registered movetoolbar definition for references
..

Registered movetoolbar definition for references

Change-Id: I1922294f6dac0de6878a6e9c5f3c831cf01fdc53
---
M lib/resources/jquery.wikibase/jquery.wikibase.referenceview.js
M repo/resources/wikibase.ui.entityViewInit.js
2 files changed, 153 insertions(+), 3 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Wikibase 
refs/changes/06/84506/1

diff --git a/lib/resources/jquery.wikibase/jquery.wikibase.referenceview.js 
b/lib/resources/jquery.wikibase/jquery.wikibase.referenceview.js
index d007de6..ddec4bb 100644
--- a/lib/resources/jquery.wikibase/jquery.wikibase.referenceview.js
+++ b/lib/resources/jquery.wikibase/jquery.wikibase.referenceview.js
@@ -137,6 +137,7 @@
this.element
.on(
'snakviewchange.' + this.widgetName
+   + ' snaklistviewchange.' + this.widgetName
+ ' listviewitemadded.' + this.widgetName + ' 
listviewitemremoved.' + this.widgetName,
function( event ) {
 
@@ -146,7 +147,7 @@
var $snaklistview = $( event.target 
).closest( ':wikibase-snaklistview' ),
snaklistview = 
$snaklistview.data( 'snaklistview' );
 
-   if( !snaklistview.value() ) {
+   if( snaklistview  
!snaklistview.value() ) {
self.removeItem( 
snaklistview.element );
}
}
@@ -168,7 +169,7 @@
 */
_detachEditModeEventHandlers: function() {
this.element
-   .off( 'snakviewchange.' + this.widgetName )
+   .off( 'snakviewchange.' + this.widgetName + ' ' + 
'snaklistviewchange.' + this.widgetName )
.off( 'listviewitemadded.' + this.widgetName + ' 
listviewitemremoved.' + this.widgetName )
.off( this.options.listItemAdapter.prefixedEvent( 
'stopediting.' + this.widgetName ) );
},
@@ -645,4 +646,153 @@
}
 } );
 
+$.wikibase.toolbarcontroller.definition( 'movetoolbar', {
+   id: 'referenceview-snakview',
+   selector: '.wb-statement-references .wb-referenceview',
+   events: {
+   'snakviewstartediting': function( event ) {
+   var $snakview = $( event.target ),
+   $snaklistview = $snakview.closest( 
':wikibase-snaklistview' ),
+   $referenceview = $snakview.closest( 
':wikibase-referenceview' ),
+   referenceview = $referenceview.data( 
'referenceview' ),
+   snakList = 
referenceview.options.listItemAdapter.liValue( $snaklistview );
+
+   // Prevent creating the toolbar for pending values.
+   if( snakList !== null ) {
+   // Since snakviewstartediting is triggered for 
every snakview, this creates the
+   // toolbar for each snakview widget:
+   $snakview.movetoolbar( {
+   listView: $referenceview
+   } );
+
+   // Disable move up button of topmost and 
move down button of bottommost
+   // snakview:
+
+   var $topMostSnakview = 
referenceview.items().first().data( 'snaklistview' )
+   ._listview.items().first();
+   var $bottomMostSnakview = 
referenceview.items().last().data( 'snaklistview' )
+   ._listview.items().last();
+
+   if ( $topMostSnakview.get( 0 ) === 
$snakview.get( 0 ) ) {
+   $snakview.data( 'movetoolbar' 
).$btnMoveUp.data( 'toolbarbutton' ).disable();
+   }
+
+   if( $bottomMostSnakview.get( 0 ) === 
$snakview.get( 0 ) ) {
+   $snakview.data( 'movetoolbar' 
).$btnMoveDown.data( 'toolbarbutton' ).disable();
+   }
+   }
+   },
+   'referenceviewafterstopediting': function( event ) {
+   // Destroy the snakview toolbars:
+   var $referenceview = $( event.target ),
+   referenceview = $referenceview.data( 
'referenceview' );
+
+   if( !referenceview ) {
+   // Stopped edit mode of a pending referenceview 
which