Jakob has uploaded a new change for review.

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

Change subject: Show a help dialog.
......................................................................

Show a help dialog.

Done:
 - slide show dialog using OOJS UI
 - setting a user option to only show it once

To Do:
 - translatable content
 - images of the slides

Bug: T136830
Change-Id: Ia820aecb20aa6b239f1a64dd328683639baf399e
---
M .jshintrc
M extension.json
A modules/ext.RevisionSlider.HelpDialog.js
M modules/ext.RevisionSlider.css
M modules/ext.RevisionSlider.init.js
A resources/ext.RevisionSlider.helpDialog/landscape.svg
A resources/ext.RevisionSlider.helpDialog/portrait.svg
7 files changed, 514 insertions(+), 2 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/RevisionSlider 
refs/changes/28/293728/1

diff --git a/.jshintrc b/.jshintrc
index 1dea050..78ccf2e 100644
--- a/.jshintrc
+++ b/.jshintrc
@@ -19,6 +19,7 @@
                "$": false,
                "mediaWiki": false,
                "jQuery": false,
-               "QUnit": false
+               "QUnit": false,
+               "OO": false
        }
 }
diff --git a/extension.json b/extension.json
index c49ca4f..2f89b5b 100644
--- a/extension.json
+++ b/extension.json
@@ -31,11 +31,13 @@
                                "ext.RevisionSlider.Slider",
                                "ext.RevisionSlider.Revision",
                                "ext.RevisionSlider.RevisionList",
+                               "ext.RevisionSlider.HelpDialog",
                                "ext.RevisionSlider.fetchRevisions",
                                "ext.RevisionSlider.arrows.left",
                                "ext.RevisionSlider.arrows.right",
                                "ext.RevisionSlider.pointers.lower",
-                               "ext.RevisionSlider.pointers.upper"
+                               "ext.RevisionSlider.pointers.upper",
+                               "mediawiki.api.options"
                        ],
                        "messages": [
                                "revisionslider-loading-out-of-range",
@@ -163,6 +165,26 @@
                                "oldid": 
"resources/ext.RevisionSlider.pointers/pointer-upper-old.svg",
                                "newid": 
"resources/ext.RevisionSlider.pointers/pointer-upper-new.svg"
                        }
+               },
+               "ext.RevisionSlider.HelpDialog": {
+                       "scripts": [
+                               "modules/ext.RevisionSlider.HelpDialog.js"
+                       ],
+                       "dependencies": [
+                               "oojs-ui",
+                               "ext.RevisionSlider.dialogImages"
+                       ]
+               },
+               "ext.RevisionSlider.dialogImages": {
+                       "position": "top",
+                       "class": "ResourceLoaderImageModule",
+                       "selector": ".mw-help-dialog-slide-{name}",
+                       "images": {
+                               "1": 
"resources/ext.RevisionSlider.helpDialog/landscape.svg",
+                               "2": 
"resources/ext.RevisionSlider.helpDialog/landscape.svg",
+                               "3": 
"resources/ext.RevisionSlider.helpDialog/portrait.svg",
+                               "4": 
"resources/ext.RevisionSlider.helpDialog/landscape.svg"
+                       }
                }
        },
        "ResourceFileModulePaths": {
diff --git a/modules/ext.RevisionSlider.HelpDialog.js 
b/modules/ext.RevisionSlider.HelpDialog.js
new file mode 100644
index 0000000..21697c0
--- /dev/null
+++ b/modules/ext.RevisionSlider.HelpDialog.js
@@ -0,0 +1,120 @@
+( function ( mw, $ ) {
+       // JSHint does not like OOJS' usage of "static" and "super"
+       /*jshint -W024 */
+
+       var HelpDialog = function ( config ) {
+               HelpDialog.super.call( this, config );
+       };
+
+       OO.inheritClass( HelpDialog, OO.ui.ProcessDialog );
+
+       HelpDialog.static.title = 'Revision Slider Tutorial';
+       HelpDialog.static.actions = [
+               { action: 'next', label: 'Next', flags: [ 'primary', 
'progressive' ], modes: [ 'initial', 'middle' ] },
+               { action: 'previous', flags: 'safe', label: 'Previous', modes: 
[ 'middle', 'last' ] },
+               { label: 'Close', flags: 'safe', modes: 'initial' },
+               { label: 'Close', flags: 'primary', modes: 'last' }
+       ];
+
+       $.extend( HelpDialog.prototype, {
+               slides: [],
+               slidePointer: 0,
+
+               initialize: function () {
+                       HelpDialog.super.prototype.initialize.call( this );
+
+                       this.slides = [ this.getSlide1(), this.getSlide2(), 
this.getSlide3(), this.getSlide4() ];
+
+                       this.stackLayout = new OO.ui.StackLayout( {
+                               items: this.slides
+                       } );
+
+                       this.$body.append( this.stackLayout.$element );
+               },
+
+               getSlide1: function () {
+                       var slide = new OO.ui.PanelLayout( { $: this.$, padded: 
true, expanded: false } );
+
+                       slide.$element.append( '<div 
class="mw-help-dialog-image-landscape mw-help-dialog-slide-1" />' )
+                               .append( '<p>The RevisionSlider helps you to 
navigate and compare revisions on the diff page. It is based on a community 
wish from the German-speaking community technical wishlist.</p>' );
+
+                       return slide;
+               },
+
+               getSlide2: function () {
+                       var slide = new OO.ui.PanelLayout( { $: this.$, padded: 
true, expanded: false } );
+
+                       slide.$element.append( '<div 
class="mw-help-dialog-image-landscape mw-help-dialog-slide-2" />' )
+                               .append( '<p>Each bar represents an article 
revision. Bars to the top show growth of the article, bars to the bottom show a 
reduction of size.</p>' );
+
+                       return slide;
+               },
+
+               getSlide3: function () {
+                       var slide = new OO.ui.PanelLayout( { $: this.$, padded: 
true, expanded: false } );
+
+                       slide.$element.append( '<div 
class="mw-help-dialog-image-portrait mw-help-dialog-slide-3 mw-left-column"/>' )
+                               .append( '<div class="mw-right-column"><p>To 
compare certain revisions, select the revisions using the yellow and blue 
pointer.</p><p>The blue right pointer controls the right revision text, the 
yellow left pointer maps to the left revision text.</p> <p>Move the pointers by 
drag and drop or click on a bar. </p></div>' );
+
+                       return slide;
+               },
+
+               getSlide4: function () {
+                       var slide = new OO.ui.PanelLayout( { $: this.$, padded: 
true, expanded: false } );
+
+                       slide.$element.append( '<div 
class="mw-help-dialog-image-landscape mw-help-dialog-slide-4" />' )
+                               .append( '<p>Use the left- and right buttons to 
move through revision history and show older and newer revisions.</p>' );
+
+                       return slide;
+               },
+
+               getActionProcess: function ( action ) {
+                       switch ( action ) {
+                               case 'next':
+                                       this.stackLayout.setItem( this.slides[ 
++this.slidePointer ] );
+                                       break;
+                               case 'previous':
+                                       this.stackLayout.setItem( this.slides[ 
--this.slidePointer ] );
+                                       break;
+                       }
+
+                       if ( this.slidePointer === 0 ) {
+                               this.actions.setMode( 'initial' );
+                       } else if ( this.slidePointer === this.slides.length - 
1 ) {
+                               this.actions.setMode( 'last' );
+                       } else {
+                               this.actions.setMode( 'middle' );
+                       }
+
+                       return 
HelpDialog.super.prototype.getActionProcess.call( this, action );
+               },
+
+               getSetupProcess: function ( data ) {
+                       return HelpDialog.super.prototype.getSetupProcess.call( 
this, data )
+                               .next( function () {
+                                       this.actions.setMode( 'initial' );
+                               }, this );
+               },
+
+               /**
+                * Needed to set the initial height of the dialog
+                *
+                * @return {int}
+                */
+               getBodyHeight: function () {
+                       return this.slides[ this.slidePointer 
].$element.outerHeight( true );
+               }
+       } );
+
+       HelpDialog.show = function () {
+               var windowManager = new OO.ui.WindowManager(),
+                       dialogue = new HelpDialog( { size: 'medium' } );
+
+               $( 'body' ).append( windowManager.$element );
+               windowManager.addWindows( [ dialogue ] );
+               windowManager.openWindow( dialogue );
+       };
+
+       mw.libs.revisionSlider = mw.libs.revisionSlider || {};
+       mw.libs.revisionSlider.HelpDialog = HelpDialog;
+}( mediaWiki, jQuery ) );
diff --git a/modules/ext.RevisionSlider.css b/modules/ext.RevisionSlider.css
index fff7b2d..0429098 100644
--- a/modules/ext.RevisionSlider.css
+++ b/modules/ext.RevisionSlider.css
@@ -161,3 +161,24 @@
     top: 0;
     left: 0;
 }
+
+.mw-help-dialog-image-landscape {
+    height: 100px;
+    width: 100%;
+    background-repeat: no-repeat;
+    background-position: center;
+}
+.mw-help-dialog-image-portrait {
+    height: 160px;
+    width: 100%;
+    background-repeat: no-repeat;
+    background-position: center;
+}
+.mw-left-column {
+    width: 50%;
+    float: left;
+}
+.mw-right-column {
+    width: 50%;
+    float: right;
+}
diff --git a/modules/ext.RevisionSlider.init.js 
b/modules/ext.RevisionSlider.init.js
index ba7764d..7e650c2 100644
--- a/modules/ext.RevisionSlider.init.js
+++ b/modules/ext.RevisionSlider.init.js
@@ -24,6 +24,11 @@
                                slider.getView().render( $container );
 
                                $( '#mw-revision-slider-placeholder' ).remove();
+
+                               if ( !mw.user.options.get( 
'userjs-revslider-help' ) ) {
+                                       
mw.libs.revisionSlider.HelpDialog.show();
+                                       ( new mw.Api() ).saveOption( 
'userjs-revslider-help', true );
+                               }
                        } catch ( err ) {
                                if ( err === 'RS-rev-out-of-range' ) {
                                        $( '#mw-revision-slider-placeholder' )
diff --git a/resources/ext.RevisionSlider.helpDialog/landscape.svg 
b/resources/ext.RevisionSlider.helpDialog/landscape.svg
new file mode 100644
index 0000000..848fbdc
--- /dev/null
+++ b/resources/ext.RevisionSlider.helpDialog/landscape.svg
@@ -0,0 +1,182 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/";
+   xmlns:cc="http://creativecommons.org/ns#";
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#";
+   xmlns:svg="http://www.w3.org/2000/svg";
+   xmlns="http://www.w3.org/2000/svg";
+   xmlns:xlink="http://www.w3.org/1999/xlink";
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd";
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape";
+   viewBox="0 0 503.7811 214.99999"
+   id="svg4282"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="landscape.svg">
+  <defs
+     id="defs4284">
+    <clipPath
+       id="g13488b0831_0_24.3">
+      <path
+         style="clip-rule:nonzero"
+         inkscape:connector-curvature="0"
+         id="path64"
+         d="m 0,0 179.11623,0 0,49 L 0,49 Z" />
+    </clipPath>
+    <clipPath
+       id="g13488b0831_0_24.2">
+      <path
+         style="clip-rule:nonzero"
+         inkscape:connector-curvature="0"
+         id="path55"
+         d="m 0,0 55,0 0,203 -55,0 z" />
+    </clipPath>
+    <clipPath
+       id="g13488b0831_0_24.1">
+      <path
+         style="clip-rule:nonzero"
+         inkscape:connector-curvature="0"
+         id="path46"
+         d="m 0,0 83,0 0,215 -83,0 z" />
+    </clipPath>
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="0.98994949"
+     inkscape:cx="212.1329"
+     inkscape:cy="190.1542"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     showguides="true"
+     inkscape:guide-bbox="true"
+     inkscape:window-width="1920"
+     inkscape:window-height="1056"
+     inkscape:window-x="0"
+     inkscape:window-y="24"
+     inkscape:window-maximized="1"
+     fit-margin-top="0"
+     fit-margin-left="0"
+     fit-margin-right="0"
+     fit-margin-bottom="0">
+    <sodipodi:guide
+       position="370.56906,193.77056"
+       orientation="0,1"
+       id="guide4878" />
+    <sodipodi:guide
+       position="274.60457,21.034481"
+       orientation="0,1"
+       id="guide4880" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata4287">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage"; />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(-32.481807,-48.254344)">
+    <path
+       style="fill:#000000;fill-opacity:0;fill-rule:nonzero"
+       inkscape:connector-curvature="0"
+       id="path41"
+       d="m 453.26292,48.254354 83,0 0,214.999986 -83,0 z" />
+    <g
+       id="g43"
+       transform="translate(453.26292,48.254344)">
+      <clipPath
+         id="clipPath4262">
+        <path
+           style="clip-rule:nonzero"
+           inkscape:connector-curvature="0"
+           id="path4264"
+           d="m 0,0 83,0 0,215 -83,0 z" />
+      </clipPath>
+      <image
+         style="fill:#000000"
+         id="image48"
+         
xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFMAAADXCAIAAADp8fqZAAACz0lEQVR42u3cv2oiURTH8byFf6LYiCkC2oiFPoAB0SoE7YT0grY+gqWVjfgCWohgpVGSNo1FwBXRuIwYtFAwiA6T3QuBxb0pkiyrzFy/v8JGZPgw55x7RsGzX6eaM+TIkSNHjhw5cuTIkSNHjhw5cuTILSPXdX17lBiGYS75dDr9cZSsVivkZpKLV/1gGQ6H5pXPZrPDjSLkyJEjR44cOXLkyJEjR44cOXLkyJEjR44cOXLkyJEjR44cOXLkyJEjR44cOXLkyJEjR44cOXLkyJEjR44cOXLkyJEjR44cOXLkyM0v1zRts9mclny3293c3NhstouLi1qtdkLyZrNp20smk1mv1ych73Q6tr8TDod7vZ768re3t2w2K+HdbnepVBJvqT/h6vW6z+eT/KL/X15e1D/VJpNJLBaT8JeXl61WS/3zXNf1QqHgcDj28Xa7PZ/PiyNA/U2m2+36/X7p5kej0dFopP4ON5/PU6mUhPd6vdVqVf3t1TCMYrHocrkkfy6Xkypfzb398fExFApJeDELTuKJ5e7uTpp56XRacbnYZD4WvBj1jUZDZbkYcslkUqpz8VQj9nyVJ9zDw0MgEJDYV1dXz8/Pys7292XG6XR+fZl5ly+XSwvLNU1LJBIfF9h2u/3p9iq6w6py0cCijSX29fX1p5+1cLVvt1tRzKKk983n5+ei7L/yb81WlYvGjsfj0q0OBoNih1H8m4n7+3uJfXt7+61xZVV5v9//U+cej6dSqXz3Ehbu83K5HIlExDB7enr6h0vwSwNy5MiRI0eOHDly5MiRI0eOHDly5MiRI0eOHDly5MiRI0eOHDly5MiRI0eOHDly5MiRI0eOHDly5MiRI0eOHDly5MiRI0eOHDly5MiRI0eO/L/Lx+Px/GAZDAbmlR8hppMvFoufR8nr66u55NYNcuTIkSNHjhw5cuTIkSNHjhw5cuTID5/fexs5t+4DuJgAAAAASUVORK5CYII="
+         preserveAspectRatio="none"
+         y="0"
+         x="0"
+         height="215"
+         width="83"
+         clip-path="url(#g13488b0831_0_24.1)" />
+    </g>
+    <path
+       style="fill:#000000;fill-opacity:0;fill-rule:nonzero"
+       inkscape:connector-curvature="0"
+       id="path50"
+       d="m 32.481807,53.153176 55.00005,0 0,202.999984 -55.00005,0 z" />
+    <g
+       id="g52"
+       transform="translate(32.481807,53.153166)">
+      <clipPath
+         id="clipPath4269">
+        <path
+           style="clip-rule:nonzero"
+           inkscape:connector-curvature="0"
+           id="path4271"
+           d="m 0,0 55,0 0,203 -55,0 z" />
+      </clipPath>
+      <image
+         style="fill:#000000"
+         id="image57"
+         
xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADcAAADLCAIAAABF6ZxzAAACZUlEQVR42u3dz6uhURzH8ftfoEhKVhaWKLaUPQtLCykr+QPYUXayIP+ADVK2/gEbbNTEPH5E6SbyiHr8mDk1NZmn6TZzwz135v1Zo1fHOd/z/T6b5+XbZ8gLSpQoUaJEiRIlyn9GeT6ft0+JqqrvVx4Ohy9PyXQ6vYNyPB5/fUxGo9HdlJfL5UHbbr1eo0SJEiVKlChRokSJEiVKlChRokSJEiVKlChRokSJEiVKlChRokSJEiVKlChRokSJEuV/oVQUpVarLZdLSZXX67VUKpnNZoPBYLfbR6ORdMrVahWJRAw3KRQKcik7nY7T6TT8mmazKYtS07RsNms0Gm99JpMpl8uJDSCFcjabhUIh3RKKRRVLK8sZb7VaDodDRwyHw2KDSlGJVFVNp9M6n8ViKRaLf7iVH67s9/sej0dH9Hq9g8FAiqouTkOlUvlRDm+TTCb3+70Ud8/xeIxGozqfKN31el2iG7JcLuuIwWBwMpnIdY/n83mdMpPJnE4nuZSLxcLlcumgoljO53O5eiLx07/dmm/chB9Tid445uJbcvWXvV7P7XbroD6fbzgcytUF73a7RCKhg1qtVrHS0vXqoie32Ww6aywW2263ck0U4l/2+/1/e2F+QBcsPp9KpXRQscbj8Vi6iaLRaIiqdAutVqsyTmdiegwEAj/b9W63K+mkKwYMMUbG4/F2u81TA5QoUaJEiRIlSpQoUaJEiRIlSpQoUaJEiRIlSpQoUaJEiRIlSpQoUaJEiRIlSpQoUaJEiRKlyPxhURTlbkqp33CnadrrU7LZbN6vlCEoUaJEiRIlys+r/A6CxjsKYJzMswAAAABJRU5ErkJggg=="
+         preserveAspectRatio="none"
+         y="0"
+         x="0"
+         height="203"
+         width="55"
+         clip-path="url(#g13488b0831_0_24.2)" />
+    </g>
+    <path
+       style="fill:#000000;fill-opacity:0;fill-rule:nonzero"
+       inkscape:connector-curvature="0"
+       id="path59"
+       d="m 120.63406,113.13087 303.559,0 0,83.0446 -303.559,0 z" />
+    <g
+       id="g61"
+       transform="matrix(1.6947602,0,0,1.6947882,120.63406,113.13086)">
+      <clipPath
+         id="clipPath4276">
+        <path
+           style="clip-rule:nonzero"
+           inkscape:connector-curvature="0"
+           id="path4278"
+           d="m 0,0 179.11623,0 0,49 L 0,49 Z" />
+      </clipPath>
+      <image
+         style="fill:#000000"
+         id="image66"
+         
xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALYAAAAxCAIAAAD4J8QzAAADvElEQVR42u3aW0hTcRwHcN+CeqisqIfSQAKJiqKHXqLo9lARUQTRQ71UJHSBqAgLItKHIqgeyiwJS92lm6XNnOlWayWsi102ncOznZ1zNqczN+c8bvN4jv1rPWjiapB26v/98n3YORy2cc4Hfv/9WcYQgowdQRAycBcQEEFABEnnkf9+/gyRdD9SbWlIJyACIiACIqonMt73E0RUR8TKp1EQAREQAREQAREQUR2R8X6E4/3+x/TMnpv23+y1OgZEqCNy2dQxaXdlzhl7bqErRckF5LJqG+tyudxuN4hQRISMj53XP2Udb9ygHUrRrBON267YgsGgw+FgGAZE6CJiZuWco/WLLrBj+Vh8gZ1/xHj/jZ8QcTqdLMuCCF1ESMve9kzb92RlSXS0D3Jy6t7qq3VMVVNHOBz2eDw8z4MIdURID2lcsw+b1mvk4T7IITm5r6Sp6n3A8OlLf38/x3FYrlJKxMIpS09bcgucw4nknmtefNJU+db/5EPwmTMqSRJ+0dBLhPSRXZy+37CiqDvpg7wg06fU4iUjxtjcY3YnFEUBEaqJkJ6t8s7IM64tk9aUS5kHavN1djJiaj53m9piFq+MrTMQ+da15205p5tIVxdYvy1BPnbVt/ZZ2EHsroLIjxqc8Vl5T2fl1Wga/dUfOo0tkeeeAWzAg8iIXmoIXDTytY4wqZmJv+QUEAGRn0smC8FBmhwxqiYiTGA6TFvTavE/nqzDxrQqqDIgAiK/IjLB/89Q2vWjK9rzRfup0ecpHEyqGvTR7/n7RCSuhNNO5bTTxLbimLdcErQgAiIjGjAs7apaQCo8XhJqvdXPlst+HYiAyI9GbPt5feagdSMpp8sUzLt7XKUJTpNUAiK0E0kwl70Vk2Pm1fKrzaQx8yq2fHLHu8Iocyc5bkCEaiKyT+N7kB2uWZT0kWyoZqFXP7fLcUP0lA36dEPqC4hMHJGQdYf//hzZumk4EXLovzdbqNtCFiVxrkJRFBChlEispcBbMSXxYt0IH99LTpJxE7Dl97bdliQJRGgkMsiX8vqZvcblo30kG6ldxmozg/aroijKsgwi1BHpaljTWZk9lo9kAw/n8YaVoVAoHo+ratyAyLhHtJ9y387orJz35XFOipIL3KUZ7c13I5HIwMAAiFBEpPfdwe7Xu4Ivd7abd/gatgv1qdr+sSgcDsdiMRChbC3i05FfK1HmDlmQpi75fn19fYlEAkTo3V1NXeyLgAiIgAiIgAiIgAiIqDoggvzNgAgCIgiIIP8hEeSfI/IVE8ZDKs/gqloAAAAASUVORK5CYII="
+         preserveAspectRatio="none"
+         y="0"
+         x="0"
+         height="49"
+         width="182"
+         clip-path="url(#g13488b0831_0_24.3)" />
+    </g>
+    <path
+       style="fill:#ffffff;fill-opacity:0.65380004;fill-rule:nonzero"
+       inkscape:connector-curvature="0"
+       id="path68"
+       d="m 113.45816,103.41302 321.6693,0 0,101.07086 -321.6693,0 z" />
+  </g>
+</svg>
diff --git a/resources/ext.RevisionSlider.helpDialog/portrait.svg 
b/resources/ext.RevisionSlider.helpDialog/portrait.svg
new file mode 100644
index 0000000..a7745f5
--- /dev/null
+++ b/resources/ext.RevisionSlider.helpDialog/portrait.svg
@@ -0,0 +1,161 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/";
+   xmlns:cc="http://creativecommons.org/ns#";
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#";
+   xmlns:svg="http://www.w3.org/2000/svg";
+   xmlns="http://www.w3.org/2000/svg";
+   xmlns:xlink="http://www.w3.org/1999/xlink";
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd";
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape";
+   viewBox="0 0 358.73757 364.80319"
+   id="svg5007"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="portrait.svg">
+  <defs
+     id="defs5009">
+    <clipPath
+       id="g13488b0831_0_14.2">
+      <path
+         style="clip-rule:nonzero"
+         inkscape:connector-curvature="0"
+         id="path4386"
+         d="m 0,0 179.11623,0 0,49 L 0,49 Z" />
+    </clipPath>
+    <clipPath
+       id="g13488b0831_0_14.1">
+      <path
+         style="clip-rule:nonzero"
+         inkscape:connector-curvature="0"
+         id="path4377"
+         d="m 0,0 940,0 0,555 -940,0 z" />
+    </clipPath>
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="0.98994949"
+     inkscape:cx="287.39752"
+     inkscape:cy="157.41068"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     fit-margin-top="0"
+     fit-margin-left="0"
+     fit-margin-right="0"
+     fit-margin-bottom="0"
+     inkscape:window-width="1920"
+     inkscape:window-height="1056"
+     inkscape:window-x="0"
+     inkscape:window-y="24"
+     inkscape:window-maximized="1" />
+  <metadata
+     id="metadata5012">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage"; />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(-10.35638,-26.380492)">
+    <path
+       style="fill:#000000;fill-opacity:0;fill-rule:nonzero"
+       inkscape:connector-curvature="0"
+       id="path4360"
+       d="m 231.78945,97.600966 54.07873,73.795304" />
+    <path
+       
style="fill-rule:evenodd;stroke:#595959;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round"
+       inkscape:connector-curvature="0"
+       id="path4362"
+       d="m 231.78945,97.600966 50.53217,68.955704" />
+    <path
+       
style="fill:#595959;fill-rule:evenodd;stroke:#595959;stroke-width:1;stroke-linecap:butt"
+       inkscape:connector-curvature="0"
+       id="path4364"
+       d="m 280.98934,167.53297 4.01474,2.6841 -1.35016,-4.6368 z" />
+    <path
+       style="fill:#000000;fill-opacity:0;fill-rule:nonzero"
+       inkscape:connector-curvature="0"
+       id="path4366"
+       d="m 117.08603,101.61147 -13.63779,69.7953" />
+    <path
+       
style="fill-rule:evenodd;stroke:#595959;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round"
+       inkscape:connector-curvature="0"
+       id="path4368"
+       d="m 117.08603,101.61147 -12.48717,63.9067" />
+    <path
+       
style="fill:#595959;fill-rule:evenodd;stroke:#595959;stroke-width:1;stroke-linecap:butt"
+       inkscape:connector-curvature="0"
+       id="path4370"
+       d="m 102.97779,165.20137 0.75081,4.7706 2.49134,-4.1371 z" />
+    <path
+       style="fill:#000000;fill-opacity:0;fill-rule:nonzero"
+       inkscape:connector-curvature="0"
+       id="path4372"
+       d="m 10.35638,179.37527 358.73755,0 0,211.8084 -358.73755,0 z" />
+    <g
+       id="g4374"
+       transform="matrix(0.3816357,0,0,0.38163675,10.35638,179.37527)">
+      <clipPath
+         id="clipPath4995">
+        <path
+           style="clip-rule:nonzero"
+           inkscape:connector-curvature="0"
+           id="path4997"
+           d="m 0,0 940,0 0,555 -940,0 z" />
+      </clipPath>
+      <image
+         style="fill:#000000"
+         id="image4379"
+         
xlink:href="data:image/png;base64,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"
+         preserveAspectRatio="none"
+         y="0"
+         x="0"
+         height="555"
+         width="940"
+         clip-path="url(#g13488b0831_0_14.1)" />
+    </g>
+    <path
+       style="fill:#000000;fill-opacity:0;fill-rule:nonzero"
+       inkscape:connector-curvature="0"
+       id="path4381"
+       d="m 52.86819,26.380492 248.70868,0 0,68.039374 -248.70868,0 z" />
+    <g
+       id="g4383"
+       transform="matrix(1.3885325,0,0,1.3885585,52.86819,26.380492)">
+      <clipPath
+         id="clipPath5002">
+        <path
+           style="clip-rule:nonzero"
+           inkscape:connector-curvature="0"
+           id="path5004"
+           d="m 0,0 179.11623,0 0,49 L 0,49 Z" />
+      </clipPath>
+      <image
+         style="fill:#000000"
+         id="image4388"
+         
xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALYAAAAxCAIAAAD4J8QzAAADvElEQVR42u3aW0hTcRwHcN+CeqisqIfSQAKJiqKHXqLo9lARUQTRQ71UJHSBqAgLItKHIqgeyiwJS92lm6XNnOlWayWsi102ncOznZ1zNqczN+c8bvN4jv1rPWjiapB26v/98n3YORy2cc4Hfv/9WcYQgowdQRAycBcQEEFABEnnkf9+/gyRdD9SbWlIJyACIiACIqonMt73E0RUR8TKp1EQAREQAREQAREQUR2R8X6E4/3+x/TMnpv23+y1OgZEqCNy2dQxaXdlzhl7bqErRckF5LJqG+tyudxuN4hQRISMj53XP2Udb9ygHUrRrBON267YgsGgw+FgGAZE6CJiZuWco/WLLrBj+Vh8gZ1/xHj/jZ8QcTqdLMuCCF1ESMve9kzb92RlSXS0D3Jy6t7qq3VMVVNHOBz2eDw8z4MIdURID2lcsw+b1mvk4T7IITm5r6Sp6n3A8OlLf38/x3FYrlJKxMIpS09bcgucw4nknmtefNJU+db/5EPwmTMqSRJ+0dBLhPSRXZy+37CiqDvpg7wg06fU4iUjxtjcY3YnFEUBEaqJkJ6t8s7IM64tk9aUS5kHavN1djJiaj53m9piFq+MrTMQ+da15205p5tIVxdYvy1BPnbVt/ZZ2EHsroLIjxqc8Vl5T2fl1Wga/dUfOo0tkeeeAWzAg8iIXmoIXDTytY4wqZmJv+QUEAGRn0smC8FBmhwxqiYiTGA6TFvTavE/nqzDxrQqqDIgAiK/IjLB/89Q2vWjK9rzRfup0ecpHEyqGvTR7/n7RCSuhNNO5bTTxLbimLdcErQgAiIjGjAs7apaQCo8XhJqvdXPlst+HYiAyI9GbPt5feagdSMpp8sUzLt7XKUJTpNUAiK0E0kwl70Vk2Pm1fKrzaQx8yq2fHLHu8Iocyc5bkCEaiKyT+N7kB2uWZT0kWyoZqFXP7fLcUP0lA36dEPqC4hMHJGQdYf//hzZumk4EXLovzdbqNtCFiVxrkJRFBChlEispcBbMSXxYt0IH99LTpJxE7Dl97bdliQJRGgkMsiX8vqZvcblo30kG6ldxmozg/aroijKsgwi1BHpaljTWZk9lo9kAw/n8YaVoVAoHo+ratyAyLhHtJ9y387orJz35XFOipIL3KUZ7c13I5HIwMAAiFBEpPfdwe7Xu4Ivd7abd/gatgv1qdr+sSgcDsdiMRChbC3i05FfK1HmDlmQpi75fn19fYlEAkTo3V1NXeyLgAiIgAiIgAiIgAiIqDoggvzNgAgCIgiIIP8hEeSfI/IVE8ZDKs/gqloAAAAASUVORK5CYII="
+         preserveAspectRatio="none"
+         y="0"
+         x="0"
+         height="49"
+         width="182"
+         clip-path="url(#g13488b0831_0_14.2)" />
+    </g>
+  </g>
+</svg>

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ia820aecb20aa6b239f1a64dd328683639baf399e
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/RevisionSlider
Gerrit-Branch: master
Gerrit-Owner: Jakob <jakob.warkot...@wikimedia.de>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to