[MediaWiki-commits] [Gerrit] Introduce LabelsChanger - change (mediawiki...Wikibase)

2014-10-23 Thread WMDE
Thiemo Mättig (WMDE) has submitted this change and it was merged.

Change subject: Introduce LabelsChanger
..


Introduce LabelsChanger

Change-Id: Ibf2cf0b69b97041020f13e311d8b4132691bbd16
---
M lib/resources/entityChangers/EntityChangersFactory.js
A lib/resources/entityChangers/LabelsChanger.js
M lib/resources/entityChangers/resources.php
M lib/resources/jquery.wikibase/jquery.wikibase.entityview.js
M lib/resources/jquery.wikibase/jquery.wikibase.fingerprintgroupview.js
M lib/resources/jquery.wikibase/jquery.wikibase.fingerprintlistview.js
M lib/resources/jquery.wikibase/jquery.wikibase.fingerprintview.js
M lib/resources/jquery.wikibase/jquery.wikibase.labelview.js
M lib/resources/jquery.wikibase/resources.php
A lib/tests/qunit/entityChangers/LabelsChanger.tests.js
M lib/tests/qunit/entityChangers/resources.php
M lib/tests/qunit/jquery.wikibase/jquery.wikibase.fingerprintgroupview.tests.js
M lib/tests/qunit/jquery.wikibase/jquery.wikibase.fingerprintlistview.tests.js
M lib/tests/qunit/jquery.wikibase/jquery.wikibase.fingerprintview.tests.js
M lib/tests/qunit/jquery.wikibase/jquery.wikibase.labelview.tests.js
15 files changed, 231 insertions(+), 54 deletions(-)

Approvals:
  Thiemo Mättig (WMDE): Looks good to me, approved
  jenkins-bot: Verified



diff --git a/lib/resources/entityChangers/EntityChangersFactory.js 
b/lib/resources/entityChangers/EntityChangersFactory.js
index 5a8554e..29b7cdd 100644
--- a/lib/resources/entityChangers/EntityChangersFactory.js
+++ b/lib/resources/entityChangers/EntityChangersFactory.js
@@ -59,6 +59,13 @@
},
 
/**
+* @return {wikibase.entityChangers.LabelsChanger}
+*/
+   getLabelsChanger: function() {
+   return new MODULE.LabelsChanger( this._api, 
this._revisionStore, this._entity );
+   },
+
+   /**
 * @return {wikibase.entityChangers.ReferencesChanger}
 */
getReferencesChanger: function() {
diff --git a/lib/resources/entityChangers/LabelsChanger.js 
b/lib/resources/entityChangers/LabelsChanger.js
new file mode 100644
index 000..f044897
--- /dev/null
+++ b/lib/resources/entityChangers/LabelsChanger.js
@@ -0,0 +1,74 @@
+/**
+ * @licence GNU GPL v2+
+ * @author Adrian Lang adrian.l...@wikimedia.de
+ */
+( function( wb, $ ) {
+   'use strict';
+
+   var MODULE = wb.entityChangers;
+   /**
+* @param {wikibase.RepoApi}
+* @param {wikibase.RevisionStore}
+* @param {wikibase.datamodel.Entity}
+*/
+   var SELF = MODULE.LabelsChanger = function( api, revisionStore, entity 
) {
+   this._api = api;
+   this._revisionStore = revisionStore;
+   this._entity = entity;
+   };
+
+   $.extend( SELF.prototype, {
+   /**
+* @type {wikibase.datamodel.Entity}
+*/
+   _entity: null,
+
+   /**
+* @type {wikibase.RevisionStore}
+*/
+   _revisionStore: null,
+
+   /**
+* @type {wikibase.RepoApi}
+*/
+   _api: null,
+
+   /**
+* @param {string} label
+* @param {string} language
+* @return {jQuery.Promise}
+* Resolved parameters:
+* - {string} The saved label
+* Rejected parameters:
+* - {wikibase.RepoApiError}
+*/
+   setLabel: function( label, language ) {
+   var self = this;
+   var deferred = $.Deferred();
+
+   this._api.setLabel(
+   this._entity.getId(),
+   this._revisionStore.getLabelRevision(),
+   label,
+   language
+   )
+   .done( function( result ) {
+   var savedLabel = 
result.entity.labels[language].value;
+
+   // Update revision store:
+   self._revisionStore.setLabelRevision( 
result.entity.lastrevid );
+
+   // FIXME: Maybe check API's return value?
+
+   // FIXME: Introduce Item.setLabels
+
+   deferred.resolve( savedLabel );
+   } )
+   .fail( function( errorCode, error ) {
+   deferred.reject( 
wb.RepoApiError.newFromApiResponse( error, 'save' ) );
+   } );
+
+   return deferred.promise();
+   }
+   } );
+} ( wikibase, jQuery ) );
diff --git a/lib/resources/entityChangers/resources.php 
b/lib/resources/entityChangers/resources.php
index abbe2ec..fde4c58 100644
--- 

[MediaWiki-commits] [Gerrit] Introduce LabelsChanger - change (mediawiki...Wikibase)

2014-10-10 Thread Adrian Lang (Code Review)
Adrian Lang has uploaded a new change for review.

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

Change subject: Introduce LabelsChanger
..

Introduce LabelsChanger

Change-Id: Ibf2cf0b69b97041020f13e311d8b4132691bbd16
---
M lib/resources/entityChangers/EntityChangersFactory.js
A lib/resources/entityChangers/LabelsChanger.js
M lib/resources/entityChangers/resources.php
M lib/resources/jquery.wikibase/jquery.wikibase.entityview.js
M lib/resources/jquery.wikibase/jquery.wikibase.fingerprintgroupview.js
M lib/resources/jquery.wikibase/jquery.wikibase.fingerprintlistview.js
M lib/resources/jquery.wikibase/jquery.wikibase.fingerprintview.js
M lib/resources/jquery.wikibase/jquery.wikibase.labelview.js
M lib/resources/jquery.wikibase/resources.php
A lib/tests/qunit/entityChangers/LabelsChanger.tests.js
M lib/tests/qunit/entityChangers/resources.php
M lib/tests/qunit/jquery.wikibase/jquery.wikibase.fingerprintgroupview.tests.js
M lib/tests/qunit/jquery.wikibase/jquery.wikibase.fingerprintlistview.tests.js
M lib/tests/qunit/jquery.wikibase/jquery.wikibase.fingerprintview.tests.js
M lib/tests/qunit/jquery.wikibase/jquery.wikibase.labelview.tests.js
15 files changed, 233 insertions(+), 54 deletions(-)


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

diff --git a/lib/resources/entityChangers/EntityChangersFactory.js 
b/lib/resources/entityChangers/EntityChangersFactory.js
index 86c9876..c4b660e 100644
--- a/lib/resources/entityChangers/EntityChangersFactory.js
+++ b/lib/resources/entityChangers/EntityChangersFactory.js
@@ -56,6 +56,13 @@
},
 
/**
+* @return {wikibase.entityChangers.LabelsChanger}
+*/
+   getLabelsChanger: function() {
+   return new MODULE.LabelsChanger( this._api, 
this._revisionStore, this._entity );
+   },
+
+   /**
 * @return {wikibase.entityChangers.ReferencesChanger}
 */
getReferencesChanger: function() {
diff --git a/lib/resources/entityChangers/LabelsChanger.js 
b/lib/resources/entityChangers/LabelsChanger.js
new file mode 100644
index 000..f044897
--- /dev/null
+++ b/lib/resources/entityChangers/LabelsChanger.js
@@ -0,0 +1,74 @@
+/**
+ * @licence GNU GPL v2+
+ * @author Adrian Lang adrian.l...@wikimedia.de
+ */
+( function( wb, $ ) {
+   'use strict';
+
+   var MODULE = wb.entityChangers;
+   /**
+* @param {wikibase.RepoApi}
+* @param {wikibase.RevisionStore}
+* @param {wikibase.datamodel.Entity}
+*/
+   var SELF = MODULE.LabelsChanger = function( api, revisionStore, entity 
) {
+   this._api = api;
+   this._revisionStore = revisionStore;
+   this._entity = entity;
+   };
+
+   $.extend( SELF.prototype, {
+   /**
+* @type {wikibase.datamodel.Entity}
+*/
+   _entity: null,
+
+   /**
+* @type {wikibase.RevisionStore}
+*/
+   _revisionStore: null,
+
+   /**
+* @type {wikibase.RepoApi}
+*/
+   _api: null,
+
+   /**
+* @param {string} label
+* @param {string} language
+* @return {jQuery.Promise}
+* Resolved parameters:
+* - {string} The saved label
+* Rejected parameters:
+* - {wikibase.RepoApiError}
+*/
+   setLabel: function( label, language ) {
+   var self = this;
+   var deferred = $.Deferred();
+
+   this._api.setLabel(
+   this._entity.getId(),
+   this._revisionStore.getLabelRevision(),
+   label,
+   language
+   )
+   .done( function( result ) {
+   var savedLabel = 
result.entity.labels[language].value;
+
+   // Update revision store:
+   self._revisionStore.setLabelRevision( 
result.entity.lastrevid );
+
+   // FIXME: Maybe check API's return value?
+
+   // FIXME: Introduce Item.setLabels
+
+   deferred.resolve( savedLabel );
+   } )
+   .fail( function( errorCode, error ) {
+   deferred.reject( 
wb.RepoApiError.newFromApiResponse( error, 'save' ) );
+   } );
+
+   return deferred.promise();
+   }
+   } );
+} ( wikibase, jQuery ) );
diff --git