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">
                                        &times;
                                </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

Reply via email to