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) <jonas.kr...@wikimedia.de> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits