Daniel Werner has uploaded a new change for review.

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


Change subject: (hot fix) Activated language terms table would not allow for 
editing statements
......................................................................

(hot fix) Activated language terms table would not allow for editing statements

When the language terms table is active, editing/adding of statements is not 
working since
e142e96f4f83bc413606ba8f236ea1c2de229cf6. This is because that change-set 
introduced having the
second parameter of the "startItemPageEditMode" event set to a DOM node instead 
of undefined in
case of a jQuery.wikibase widget would be responsible for triggering the event. 
In case of
wikibase.ui.PropertyEditTool related ui components triggering the event, a
wikibase.ui.PropertyEditTool.EditableValue would be given as second parameter. 
Code expecting a
EditableValue failed when after e142e96f4f83bc413606ba8f236ea1c2de229cf6 a DOM 
node would be
given on statements related edit interaction.

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


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

diff --git a/lib/resources/wikibase.js b/lib/resources/wikibase.js
index e0ed59f..78dbb0b 100644
--- a/lib/resources/wikibase.js
+++ b/lib/resources/wikibase.js
@@ -13,10 +13,16 @@
  * Global 'Wikibase' extension singleton.
  * @since 0.1
  *
+ * TODO: startItemPageEditMode and stopItemPageEditMode should be removed or 
marked deprecated as
+ *       soon as we can get rid of old wb.ui.PropertyEditTool ui. There should 
be no global edit
+ *       mode event anymore since with the new jQuery.wikibase widgets all 
editing related events
+ *       bubble through the DOM anyhow, so everyone can listen to those on any 
level of a pages DOM.
  *
  * @event startItemPageEditMode: Triggered when any edit mode on the item page 
is started
  *        (1) {jQuery.Event}
- *        (2) {wb.ui.PropertyEditTool.EditableValue} origin Object which 
triggered the event
+ *        (2) {wb.ui.PropertyEditTool.EditableValue|jQuery} origin Object 
which triggered the event.
+ *            If the origin of the event is one of the new (jQuery.wikibase) 
widgets, then this will
+ *            be the widget's DOM node.
  *
  * @event newItemCreated: Triggered after an item has been created and the 
necessary API request has
  *        returned.
@@ -26,7 +32,9 @@
  *
  * @event stopItemPageEditMode: Triggered when any edit mode on the item page 
is stopped.
  *        (1) {jQuery.Event}
- *        (2) {wb.ui.PropertyEditTool.EditableValue} origin Object which 
triggered the event
+ *        (2) {wb.ui.PropertyEditTool.EditableValue|jQuery} origin Object 
which triggered the event.
+ *            If the origin of the event is one of the new (jQuery.wikibase) 
widgets, then this will
+ *            be the widget's DOM node.
  *        (3) {Boolean} wasPending Whether value was a previously not 
existent/new value that has
  *            just been added
  *
diff --git a/repo/resources/wikibase.ui.entityViewInit.js 
b/repo/resources/wikibase.ui.entityViewInit.js
index 53e5880..73a9f21 100644
--- a/repo/resources/wikibase.ui.entityViewInit.js
+++ b/repo/resources/wikibase.ui.entityViewInit.js
@@ -167,8 +167,12 @@
                }
 
                $( wb ).on( 'startItemPageEditMode', function( event, origin, 
options ) {
+                       // disable language terms table's editable value or 
mark it as the active one if it is
+                       // the one being edited by the user and therefore the 
origin of the event
                        $.each( termsValueTools, function( i, termValueTool ) {
-                               if ( !origin || origin.getSubject() !== 
termValueTool.getSubject() ) {
+                               if ( !( origin instanceof 
wb.ui.PropertyEditTool.EditableValue )
+                                       || origin.getSubject() !== 
termValueTool.getSubject()
+                               ) {
                                        termValueTool.disable();
                                } else if ( origin && origin.getSubject() === 
termValueTool.getSubject() ) {
                                        $( 'table.wb-terms' ).addClass( 
'wb-edit' );

-- 
To view, visit https://gerrit.wikimedia.org/r/53779
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ifd908f481f0f671797f2d0ff503fd2125dc9b91d
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Wikibase
Gerrit-Branch: master
Gerrit-Owner: Daniel Werner <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to