jenkins-bot has submitted this change and it was merged.

Change subject: UploadBooklet: Show image thumbnail in both steps
......................................................................


UploadBooklet: Show image thumbnail in both steps

Bug: T115860
Change-Id: I0794206dad06fd0652e9b62884e8996e836b73b3
---
M resources/Resources.php
M resources/src/mediawiki/mediawiki.ForeignStructuredUpload.BookletLayout.js
A resources/src/mediawiki/mediawiki.Upload.BookletLayout.css
M resources/src/mediawiki/mediawiki.Upload.BookletLayout.js
4 files changed, 66 insertions(+), 3 deletions(-)

Approvals:
  Bartosz Dziewoński: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/resources/Resources.php b/resources/Resources.php
index 60d4142..b9dd3fa 100644
--- a/resources/Resources.php
+++ b/resources/Resources.php
@@ -1182,6 +1182,9 @@
                'scripts' => array(
                        
'resources/src/mediawiki/mediawiki.Upload.BookletLayout.js',
                ),
+               'styles' => array(
+                       
'resources/src/mediawiki/mediawiki.Upload.BookletLayout.css',
+               ),
                'dependencies' => array(
                        'oojs-ui',
                        'oojs-ui.styles.icons-content',
diff --git 
a/resources/src/mediawiki/mediawiki.ForeignStructuredUpload.BookletLayout.js 
b/resources/src/mediawiki/mediawiki.ForeignStructuredUpload.BookletLayout.js
index d8aa22f..daacb2a 100644
--- a/resources/src/mediawiki/mediawiki.ForeignStructuredUpload.BookletLayout.js
+++ b/resources/src/mediawiki/mediawiki.ForeignStructuredUpload.BookletLayout.js
@@ -158,6 +158,8 @@
                        layout.getDateFromExif( file ).done( function ( date ) {
                                layout.dateWidget.setValue( date );
                        } );
+
+                       layout.updateFilePreview();
                } );
 
                return this.uploadForm;
@@ -179,6 +181,9 @@
        mw.ForeignStructuredUpload.BookletLayout.prototype.renderInfoForm = 
function () {
                var fieldset;
 
+               this.filePreview = new OO.ui.Widget( {
+                       classes: [ 'mw-upload-bookletLayout-filePreview' ]
+               } );
                this.filenameWidget = new OO.ui.TextInputWidget( {
                        required: true,
                        validate: /.+/
@@ -223,7 +228,10 @@
                                align: 'top'
                        } )
                ] );
-               this.infoForm = new OO.ui.FormLayout( { items: [ fieldset ] } );
+               this.infoForm = new OO.ui.FormLayout( {
+                       classes: [ 'mw-upload-bookletLayout-infoForm' ],
+                       items: [ this.filePreview, fieldset ]
+               } );
 
                // Validation
                this.filenameWidget.on( 'change', this.onInfoFormChange.bind( 
this ) );
diff --git a/resources/src/mediawiki/mediawiki.Upload.BookletLayout.css 
b/resources/src/mediawiki/mediawiki.Upload.BookletLayout.css
new file mode 100644
index 0000000..11bad8c
--- /dev/null
+++ b/resources/src/mediawiki/mediawiki.Upload.BookletLayout.css
@@ -0,0 +1,19 @@
+.mw-upload-bookletLayout-filePreview {
+       width: 100%;
+       height: 1em;
+       background-color: #eee;
+       background-size: cover;
+       background-position: center center;
+       padding: 1.5em;
+       margin: -1.5em;
+       margin-bottom: 1.5em;
+}
+
+.mw-upload-bookletLayout-infoForm.mw-upload-bookletLayout-hasThumbnail 
.mw-upload-bookletLayout-filePreview {
+       height: 10em;
+}
+
+.mw-upload-bookletLayout-filePreview p {
+       line-height: 1em;
+       margin: 0;
+}
\ No newline at end of file
diff --git a/resources/src/mediawiki/mediawiki.Upload.BookletLayout.js 
b/resources/src/mediawiki/mediawiki.Upload.BookletLayout.js
index b2f1981..eaab8c7 100644
--- a/resources/src/mediawiki/mediawiki.Upload.BookletLayout.js
+++ b/resources/src/mediawiki/mediawiki.Upload.BookletLayout.js
@@ -383,7 +383,8 @@
         * @return {OO.ui.FormLayout}
         */
        mw.Upload.BookletLayout.prototype.renderUploadForm = function () {
-               var fieldset;
+               var fieldset,
+                       layout = this;
 
                this.selectFileWidget = new OO.ui.SelectFileWidget( {
                        showDropTarget: true
@@ -395,7 +396,33 @@
                // Validation
                this.selectFileWidget.on( 'change', 
this.onUploadFormChange.bind( this ) );
 
+               this.selectFileWidget.on( 'change', function () {
+                       layout.updateFilePreview();
+               } );
+
                return this.uploadForm;
+       };
+
+       /**
+        * Updates the file preview on the info form when a file is added.
+        *
+        * @protected
+        */
+       mw.Upload.BookletLayout.prototype.updateFilePreview = function () {
+               this.selectFileWidget.loadAndGetImageUrl().done( function ( url 
) {
+                       this.filePreview.$element.find( 'p' ).remove();
+                       this.filePreview.$element.css( 'background-image', 
'url(' + url + ')' );
+                       this.infoForm.$element.addClass( 
'mw-upload-bookletLayout-hasThumbnail' );
+               }.bind( this ) ).fail( function () {
+                       this.filePreview.$element.find( 'p' ).remove();
+                       if ( this.selectFileWidget.getValue() ) {
+                               this.filePreview.$element.append(
+                                       $( '<p>' ).text( 
this.selectFileWidget.getValue().name )
+                               );
+                       }
+                       this.filePreview.$element.css( 'background-image', '' );
+                       this.infoForm.$element.removeClass( 
'mw-upload-bookletLayout-hasThumbnail' );
+               }.bind( this ) );
        };
 
        /**
@@ -419,6 +446,9 @@
        mw.Upload.BookletLayout.prototype.renderInfoForm = function () {
                var fieldset;
 
+               this.filePreview = new OO.ui.Widget( {
+                       classes: [ 'mw-upload-bookletLayout-filePreview' ]
+               } );
                this.filenameWidget = new OO.ui.TextInputWidget( {
                        indicator: 'required',
                        required: true,
@@ -447,7 +477,10 @@
                                help: mw.msg( 
'upload-form-label-infoform-description-tooltip' )
                        } )
                ] );
-               this.infoForm = new OO.ui.FormLayout( { items: [ fieldset ] } );
+               this.infoForm = new OO.ui.FormLayout( {
+                       classes: [ 'mw-upload-bookletLayout-infoForm' ],
+                       items: [ this.filePreview, fieldset ]
+               } );
 
                this.filenameWidget.on( 'change', this.onInfoFormChange.bind( 
this ) );
                this.descriptionWidget.on( 'change', 
this.onInfoFormChange.bind( this ) );

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

Gerrit-MessageType: merged
Gerrit-Change-Id: I0794206dad06fd0652e9b62884e8996e836b73b3
Gerrit-PatchSet: 5
Gerrit-Project: mediawiki/core
Gerrit-Branch: master
Gerrit-Owner: Prtksxna <psax...@wikimedia.org>
Gerrit-Reviewer: Bartosz Dziewoński <matma....@gmail.com>
Gerrit-Reviewer: Edokter <er...@darcoury.nl>
Gerrit-Reviewer: Esanders <esand...@wikimedia.org>
Gerrit-Reviewer: Jack Phoenix <j...@countervandalism.net>
Gerrit-Reviewer: Krinkle <krinklem...@gmail.com>
Gerrit-Reviewer: jenkins-bot <>

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

Reply via email to