Aleksey Bekh-Ivanov (WMDE) has uploaded a new change for review. ( 
https://gerrit.wikimedia.org/r/358977 )

Change subject: [WIP] Gloss widget
......................................................................

[WIP] Gloss widget

Bug: T165567
Change-Id: I1f77c2f94eff9c25266efc84dab03a49e99bf5d7
---
M extension.json
M resources/templates.php
A resources/widgets/GlossWidget.js
M src/Content/LexemeContent.php
4 files changed, 79 insertions(+), 2 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/WikibaseLexeme 
refs/changes/77/358977/1

diff --git a/extension.json b/extension.json
index c065299..6dcdf70 100644
--- a/extension.json
+++ b/extension.json
@@ -49,7 +49,8 @@
                                "jquery.wikibase.entityview",
                                "jquery.wikibase.lexemeformlistview",
                                "wikibase.lexeme.view.ControllerViewFactory",
-                               "lemma-widget"
+                               "lemma-widget",
+                               "gloss-widget"
                        ]
                },
                "wikibase.lexeme": {
@@ -122,6 +123,20 @@
                                "wikibase-remove"
                        ]
                },
+               "gloss-widget": {
+                       "scripts": "widgets/GlossWidget.js",
+                       "dependencies": [
+                               "vue",
+                               "vuex"
+                       ],
+                       "messages":[
+                               "wikibase-edit",
+                               "wikibase-save",
+                               "wikibase-cancel",
+                               "wikibase-add",
+                               "wikibase-remove"
+                       ]
+               },
                "wikibase.lexeme.widgets.LemmaWidget.newLemmaWidgetStore": {
                        "scripts": "widgets/LemmaWidget.newLemmaWidgetStore.js"
                },
diff --git a/resources/templates.php b/resources/templates.php
index a904476..c95ac9d 100644
--- a/resources/templates.php
+++ b/resources/templates.php
@@ -35,6 +35,7 @@
        // TODO: i18n space before id?
        $templates['wikibase-lexeme-sense'] = <<< 'HTML'
 <div class="wikibase-lexeme-sense">
+    <div class="wikibase-lexeme-sense-glosses"></div>
        <h3 class="wikibase-lexeme-sense-gloss" dir="$1" lang="$2">
                <span class="wikibase-lexeme-sense-gloss-text $3">$4</span>
                <span class="wikibase-lexeme-sense-id wikibase-title-id"> 
$5</span>
diff --git a/resources/widgets/GlossWidget.js b/resources/widgets/GlossWidget.js
new file mode 100644
index 0000000..e40197b
--- /dev/null
+++ b/resources/widgets/GlossWidget.js
@@ -0,0 +1,60 @@
+(function ( $, mw, require, wb, Vue, Vuex ) {
+       'use strict';
+
+       var wbEntity = JSON.parse( mw.config.get( 'wbEntity' ) );
+
+       var entityId = mw.config.get( 'wbEntityId' );
+       var baseRevId = mw.config.get( 'wgCurRevisionId' );
+
+       // noinspection JSAnnotator
+       var template = `
+       <table class="wikibase-lexeme-sense-glosses">
+
+               <tbody>
+                       <tr v-for="(gloss, index) in glosses" 
class="wikibase-lexeme-sense-gloss">
+                               <td>
+                               <b v-if="index === 0">{{gloss.language}}</b>
+                               <span v-else>{{gloss.language}}</span>
+                               </td>
+                               <td>
+                               <b v-if="index === 0">{{gloss.value}} 
({{senseId}})</b>
+                               <span v-else>{{gloss.value}}</span>
+                               </td>
+                       </tr>
+               </tbody>
+       </table>
+       `;
+
+       var store = new Vuex.Store( {
+               strict: true, //FIXME make it configurable
+               state: {},
+               mutations: {},
+               actions: {}
+       } );
+
+       var widgetElements = document.getElementsByClassName( 
'wikibase-lexeme-sense-glosses' );
+       for ( var index in widgetElements ) {
+               if ( widgetElements.hasOwnProperty( index ) ) {
+                       new Vue( {
+                               el: widgetElements[ index ],
+                               template: template,
+                               data: {
+                                       senseId: 'S' + (Number(index) + 1),
+                                       glosses: [
+                                               { value: 'sense en', language: 
'en' },
+                                               { value: 'sense fr', language: 
'fr' }
+                                       ]
+                               },
+                               computed: {},
+                               methods: {},
+                               filters: {
+                                       message: function ( key ) {
+                                               return mw.messages.get( key );
+                                       }
+                               }
+                       } );
+               }
+
+       }
+
+})( jQuery, mediaWiki, require, wikibase, Vue, Vuex );
diff --git a/src/Content/LexemeContent.php b/src/Content/LexemeContent.php
index 324c71e..791ed99 100644
--- a/src/Content/LexemeContent.php
+++ b/src/Content/LexemeContent.php
@@ -95,7 +95,8 @@
                        new Sense(
                                new SenseId( 'S1' ),
                                new TermList( [
-                                       new Term( 'en', 'A mammal, Capra 
aegagrus hircus, and similar species of the genus Capra.' )
+                                       new Term( 'en', 'A mammal, Capra 
aegagrus hircus, and similar species of the genus Capra.' ),
+                                       new Term( 'fr', 'Un mammale, Capra 
aegagruse hircuse, et similare species de un genuse Capra.' ),
                                ] ),
                                new StatementList()
                        ),

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I1f77c2f94eff9c25266efc84dab03a49e99bf5d7
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/WikibaseLexeme
Gerrit-Branch: master
Gerrit-Owner: Aleksey Bekh-Ivanov (WMDE) <[email protected]>

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

Reply via email to