Jonas Kress (WMDE) has uploaded a new change for review. (
https://gerrit.wikimedia.org/r/386390 )
Change subject: [WIP] LemmaHeader language and lexical category formatting
......................................................................
[WIP] LemmaHeader language and lexical category formatting
TODO:
-PHP formatting
-Tests
Change-Id: I3825926fa02a42fb941a2d581f61246bd8268ca2
---
M resources/widgets/LanguageAndLexicalCategoryWidget.js
M resources/widgets/LexemeHeader.newLexemeHeader.js
M resources/widgets/LexemeHeader.newLexemeHeaderStore.js
M src/View/LexemeView.php
4 files changed, 63 insertions(+), 18 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/WikibaseLexeme
refs/changes/90/386390/1
diff --git a/resources/widgets/LanguageAndLexicalCategoryWidget.js
b/resources/widgets/LanguageAndLexicalCategoryWidget.js
index 6ebf943..09b9aa2 100644
--- a/resources/widgets/LanguageAndLexicalCategoryWidget.js
+++ b/resources/widgets/LanguageAndLexicalCategoryWidget.js
@@ -21,6 +21,14 @@
message: function ( key ) {
return messages.get( key );
}
+ },
+ computed: {
+ storedLanguage: function () {
+ return this.$store.state.language;
+ },
+ storedLexicalCategory: function () {
+ return
this.$store.state.lexicalCategory;
+ }
}
};
};
diff --git a/resources/widgets/LexemeHeader.newLexemeHeader.js
b/resources/widgets/LexemeHeader.newLexemeHeader.js
index ab6362d..ce42bda 100644
--- a/resources/widgets/LexemeHeader.newLexemeHeader.js
+++ b/resources/widgets/LexemeHeader.newLexemeHeader.js
@@ -24,6 +24,7 @@
return {
el: element,
template: template,
+ store: store,
data: {
isInitialized: true,
diff --git a/resources/widgets/LexemeHeader.newLexemeHeaderStore.js
b/resources/widgets/LexemeHeader.newLexemeHeaderStore.js
index abec000..09c1fba 100644
--- a/resources/widgets/LexemeHeader.newLexemeHeaderStore.js
+++ b/resources/widgets/LexemeHeader.newLexemeHeaderStore.js
@@ -24,6 +24,28 @@
return requestLemmas;
}
+
+ /**
+ * @param {wikibase.api.RepoApi} api
+ * @param {string} id
+ * @return {jquery.Promise}
+ */
+ function formatEntityId( api, id ) {
+ var deferred = $.Deferred(),
+ dataValue = { value: { id:id },
type:'wikibase-entityid'};
+
+ api.formatValue(
+ dataValue,
+ {},
+ 'wikibase-item',
+ 'text/html',
+ '' ).then( function( d ) {
+ deferred.resolve( d.result );
+ } );
+
+ return deferred.promise();
+ }
+
/**
* @callback wikibase.lexeme.widgets.LexemeHeader.newLemmaWidgetStore
* @param {wikibase.api.RepoApi} repoApi
@@ -32,7 +54,7 @@
*/
return function ( repoApi, lexeme, baseRevId ) {
return {
- strict: true, //FIXME make it configurable
+ strict: true, // FIXME make it configurable
state: {
isSaving: false,
baseRevId: baseRevId,
@@ -47,6 +69,12 @@
},
updateRevisionId: function ( state, revisionId
) {
state.baseRevId = revisionId;
+ },
+ updateLanguage: function( state, language ) {
+ state.language = language;
+ },
+ updatelexicalCategory: function( state,
lexicalCategory ) {
+ state.lexicalCategory = lexicalCategory;
},
startSaving: function ( state ) {
state.isSaving = true;
@@ -68,18 +96,24 @@
lemmas: requestLemmas,
language: lexeme.language,
lexicalCategory:
lexeme.lexicalCategory
- };
-
- var clear = false;
- return repoApi.editEntity(
+ },
+ saveRequest =
repoApi.editEntity(
context.state.id,
context.state.baseRevId,
data,
- clear
- ).then( function ( response ) {
- context.commit(
'updateRevisionId', response.entity.lastrevid );
+ false //clear
+ );
+
+ $.when( saveRequest,
+ formatEntityId(
repoApi, lexeme.language ),
+ formatEntityId(
repoApi, lexeme.lexicalCategory )
+ ).then( function ( response,
language, lexicalCategory ) {
+ context.commit(
'updateRevisionId', response[0].entity.lastrevid );
//TODO: update state of
lemmas, language and lexicalCategory if needed
- context.commit( 'updateLemmas',
response.entity.lemmas || lexeme.lemmas );
+ context.commit( 'updateLemmas',
response[0].entity.lemmas || lexeme.lemmas );
+ context.commit(
'updateLanguage', language );
+ context.commit(
'updatelexicalCategory', lexicalCategory );
+
context.commit( 'finishSaving'
);
} ).catch( function () {
context.commit( 'finishSaving'
);
diff --git a/src/View/LexemeView.php b/src/View/LexemeView.php
index a242cea..6cf3320 100644
--- a/src/View/LexemeView.php
+++ b/src/View/LexemeView.php
@@ -277,11 +277,11 @@
<lemma-widget :lemmas="lemmas" :inEditMode="inEditMode"
:isSaving="isSaving"></lemma-widget>
</div>
<div class="lemma-widget_controls" v-if="isInitialized" >
- <button type="button" class="lemma-widget_edit"
v-if="!inEditMode"
+ <button type="button" class="lemma-widget_edit"
v-if="!inEditMode"
:disabled="isSaving"
v-on:click="edit">{{'wikibase-edit'|message}}</button>
- <button type="button" class="lemma-widget_save"
v-if="inEditMode"
+ <button type="button" class="lemma-widget_save"
v-if="inEditMode"
:disabled="isSaving"
v-on:click="save">{{'wikibase-save'|message}}</button>
- <button type="button" class="lemma-widget_cancel"
v-if="inEditMode"
+ <button type="button" class="lemma-widget_cancel"
v-if="inEditMode"
:disabled="isSaving"
v-on:click="cancel">{{'wikibase-cancel'|message}}</button>
</div>
</h1>
@@ -301,11 +301,11 @@
<div v-if="!inEditMode">
<div>
<span>{{'wikibase-lexeme-language'|message}}</span>
- <span
class="language-lexical-category-widget_language">{{language}}</span>
+ <span class="language-lexical-category-widget_language"
v-html="storedLanguage"></span>
</div>
<div>
<span>{{'wikibase-lexeme-lexical-category'|message}}</span>
- <span
class="language-lexical-category-widget_lexical-category">{{lexicalCategory}}</span>
+ <span
class="language-lexical-category-widget_lexical-category"
v-html="storedLexicalCategory"></span>
</div>
</div>
<div v-else>
@@ -343,20 +343,20 @@
<span class="lemma-widget_lemma-value-label">
{{'wikibase-lemma-field-lemma-label'|message}}
</span>
- <input size="1"
class="lemma-widget_lemma-value-input"
+ <input size="1"
class="lemma-widget_lemma-value-input"
v-model="lemma.value"
:disabled="isSaving">
<span class="lemma-widget_lemma-language-label">
{{'wikibase-lemma-field-language-label'|message}}
</span>
- <input size="1"
class="lemma-widget_lemma-language-input"
+ <input size="1"
class="lemma-widget_lemma-language-input"
v-model="lemma.language"
:disabled="isSaving">
- <button class="lemma-widget_lemma-remove"
v-on:click="remove(lemma)"
+ <button class="lemma-widget_lemma-remove"
v-on:click="remove(lemma)"
:disabled="isSaving"
:title="'wikibase-remove'|message">
×
</button>
</li>
<li>
- <button type="button" class="lemma-widget_add"
v-on:click="add"
+ <button type="button" class="lemma-widget_add"
v-on:click="add"
:disabled="isSaving"
:title="'wikibase-add'|message">+</button>
</li>
</ul>
@@ -411,7 +411,9 @@
'isInitialized' => false,
'inEditMode' => false,
'isSaving' => false,
+ 'storedLanguage' => '<a href="foo">fancy
link</a>',
'language' =>
$lexeme->getLanguage()->getSerialization(),
+ 'storedLexicalCategory' => '<a href="foo">fancy
link 2</a>',
'lexicalCategory' =>
$lexeme->getLexicalCategory()->getSerialization()
],
[
--
To view, visit https://gerrit.wikimedia.org/r/386390
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I3825926fa02a42fb941a2d581f61246bd8268ca2
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/WikibaseLexeme
Gerrit-Branch: master
Gerrit-Owner: Jonas Kress (WMDE) <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits