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

Change subject: Implement upload via "Add image" on New file pages
......................................................................


Implement upload via "Add image" on New file pages

Disabled edit button on pages with not existing files (new file pages), enabled 
the upload button
starts the upload workflow. Edit workflow so no new page will be created if 
upload starts via new file page.
Simply reload the page after finished upload.

Bug: 58311
Change-Id: I16d969f2a84c25376468bdb4c0458fe3426b92ee
---
M i18n/en.json
M i18n/qqq.json
M includes/Resources.php
M javascripts/modules/editor/editor.js
M javascripts/modules/uploads/PhotoApi.js
M javascripts/modules/uploads/lead-photo-init.js
6 files changed, 29 insertions(+), 9 deletions(-)

Approvals:
  Jdlrobson: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/i18n/en.json b/i18n/en.json
index c2b6e4a..c69fc53 100644
--- a/i18n/en.json
+++ b/i18n/en.json
@@ -84,6 +84,7 @@
     "mobile-frontend-editor-unavailable": "Mobile editing is not currently 
available on your browser. Please try a different browser.",
     "mobile-frontend-editor-unavailable-header": "Editor unavailable",
     "mobile-frontend-editor-undo-unsupported": "Undo is not currently 
supported on mobile devices.",
+    "mobile-frontend-editor-uploadenable": "Please upload a photo first to 
enable editing.",
     "mobile-frontend-editor-viewing-source-page": "<strong>Viewing source 
of</strong><span> $1</span>",
     "mobile-frontend-editor-visual-editor": "Visual editor",
     "mobile-frontend-editor-wait": "Saving edit, please wait.",
diff --git a/i18n/qqq.json b/i18n/qqq.json
index 7dc8592..c4d985a 100644
--- a/i18n/qqq.json
+++ b/i18n/qqq.json
@@ -108,6 +108,7 @@
        "mobile-frontend-editor-unavailable": "Message that appears when a user 
attempts to edit with an unsupported/incapable browser.\n\nPreceded by the 
header {{msg-mw|Mobile-frontend-editor-unavailable-header}}.",
        "mobile-frontend-editor-unavailable-header": "When mobile editing is 
not supported, header of the warning.\n\nFollowed by 
{{msg-mw|Mobile-frontend-editor-unavailable}}.",
        "mobile-frontend-editor-undo-unsupported": "Shown when user attempts to 
do an undo which is currently not supported.",
+       "mobile-frontend-editor-uploadenable": "Shown when try to edit a new 
file page.",
        "mobile-frontend-editor-viewing-source-page": "A heading saying which 
page's source code is being viewed. All text should be wrapped in a STRONG tag 
except the page title itself.\n\nParameters:\n* $1 - page 
title\n{{Related|Mobile-frontend-editor-page}}",
        "mobile-frontend-editor-visual-editor": "Label for button that switches 
to the \"visual editor\" (a WYSIWYG editing interface). See 
http://www.mediawiki.org/wiki/VisualEditor.\n{{Identical|VisualEditor}}",
        "mobile-frontend-editor-wait": "Text that displays while a page edit is 
being saved.",
diff --git a/includes/Resources.php b/includes/Resources.php
index 1eeed75..2cdde8a 100644
--- a/includes/Resources.php
+++ b/includes/Resources.php
@@ -737,6 +737,7 @@
                        // editor.js
                        'mobile-frontend-editor-disabled',
                        'mobile-frontend-editor-unavailable',
+                       'mobile-frontend-editor-uploadenable',
                        'mobile-frontend-editor-blocked',
                        'mobile-frontend-editor-cta',
                        'mobile-frontend-editor-edit',
diff --git a/javascripts/modules/editor/editor.js 
b/javascripts/modules/editor/editor.js
index 2709982..02f679e 100644
--- a/javascripts/modules/editor/editor.js
+++ b/javascripts/modules/editor/editor.js
@@ -6,6 +6,8 @@
                // FIXME: Disable on IE < 10 for time being
                blacklisted = /MSIE \d\./.test( navigator.userAgent ),
                isEditingSupported = M.router.isSupported() && !blacklisted,
+               isNewPage = M.getCurrentPage().options.id === 0,
+               isNewFile = M.inNamespace( 'file' ) && isNewPage,
                veConfig = mw.config.get( 'wgVisualEditorConfig' ),
                // FIXME: Should we consider default site options and user 
prefs?
                isVisualEditorEnabled = M.isWideScreen() && mw.config.get( 
'wgMFMode' ) === 'alpha' &&
@@ -190,7 +192,10 @@
        if ( !isEditingSupported ) {
                // Editing is disabled (or browser is blacklisted)
                showSorryToast( 'mobile-frontend-editor-unavailable' );
-       } else {
+       } else if (isNewFile) {
+               // Is a new file page (enable upload image only) Bug 58311
+               showSorryToast( 'mobile-frontend-editor-uploadenable' );
+       } else  {
                if ( user.isAnon() && !mw.config.get( 'wgMFAnonymousEditing' ) 
) {
                        // Set edit button to launch login CTA
                        initCta( M.getCurrentPage() );
diff --git a/javascripts/modules/uploads/PhotoApi.js 
b/javascripts/modules/uploads/PhotoApi.js
index 2b10d8c..19f5b9a 100644
--- a/javascripts/modules/uploads/PhotoApi.js
+++ b/javascripts/modules/uploads/PhotoApi.js
@@ -129,7 +129,11 @@
                 * containing error message).
                 */
                save: function( options ) {
-                       var self = this, result = $.Deferred(), apiUrl = 
endpoint || this.apiUrl;
+                       var isNewPage = mw.config.get( 'wgArticleId' ) === 0,
+                       isNewFile = M.inNamespace( 'file' ) && isNewPage,
+                       self = this,
+                       result = $.Deferred(),
+                       apiUrl = endpoint || this.apiUrl;
 
                        options.editSummaryMessage = options.insertInPage ?
                                'mobile-frontend-photo-article-edit-comment' :
@@ -141,7 +145,11 @@
                                        ext = options.file.name.slice( 
options.file.name.lastIndexOf( '.' ) + 1 ),
                                        request, data;
 
-                               options.fileName = generateFileName( 
options.description, '.' + ext );
+                               if ( !isNewFile ) {
+                                       options.fileName = generateFileName( 
options.description, '.' + ext );
+                               } else {
+                                       options.fileName = mw.config.get( 
'wgTitle' );
+                               }
 
                                data = {
                                        action: 'upload',
@@ -208,7 +216,7 @@
                                                descriptionUrl = 
data.upload.imageinfo.descriptionurl;
                                        }
 
-                                       if ( self.editorApi ) {
+                                       if ( self.editorApi && !isNewFile ) {
                                                self.editorApi.setPrependText( 
'[[File:' + options.fileName + '|thumbnail|' + options.description + ']]\n\n' );
                                                self.editorApi.save( { summary: 
mw.msg( 'mobile-frontend-photo-upload-comment' ) } ).
                                                        done( function() {
@@ -218,6 +226,8 @@
                                                                err.stage = 
'edit';
                                                                result.reject( 
err );
                                                        } );
+                                       } else if ( isNewFile ) {
+                                               window.location.reload();
                                        } else {
                                                result.resolve( 
options.fileName, descriptionUrl );
                                        }
diff --git a/javascripts/modules/uploads/lead-photo-init.js 
b/javascripts/modules/uploads/lead-photo-init.js
index 269beac..b9886e8 100644
--- a/javascripts/modules/uploads/lead-photo-init.js
+++ b/javascripts/modules/uploads/lead-photo-init.js
@@ -28,14 +28,16 @@
                var
                        // FIXME: not updated on dynamic page loads
                        isEditable = mw.config.get( 'wgIsPageEditable' ),
-                       validNamespace = ( M.inNamespace( '' ) || 
M.inNamespace( 'user' ) );
+                       validNamespace = ( M.inNamespace( '' ) || 
M.inNamespace( 'user' ) || M.inNamespace( 'file' ) );
 
                if ( user.isAnon() ) {
                        return makeDisabledButton( 
'mobile-frontend-photo-upload-anon' );
-               } else if ( !isEditable ) {
-                       return makeDisabledButton( 
'mobile-frontend-photo-upload-protected' );
-               } else if ( !validNamespace || mw.util.getParamValue( 'action' 
) || !needsPhoto( M.getLeadSection() ) || mw.config.get( 'wgIsMainPage' ) ) {
-                       return makeDisabledButton();
+               } else if ( !M.inNamespace( 'file' ) ) {
+                       if ( !isEditable ) {
+                               return makeDisabledButton( 
'mobile-frontend-photo-upload-protected' );
+                       } else if ( !validNamespace || mw.util.getParamValue( 
'action' ) || !needsPhoto( M.getLeadSection() ) || mw.config.get( 
'wgIsMainPage' ) ) {
+                               return makeDisabledButton();
+                       }
                }
 
                if ( user.getEditCount() === 0 ) {

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

Gerrit-MessageType: merged
Gerrit-Change-Id: I16d969f2a84c25376468bdb4c0458fe3426b92ee
Gerrit-PatchSet: 4
Gerrit-Project: mediawiki/extensions/MobileFrontend
Gerrit-Branch: master
Gerrit-Owner: Florianschmidtwelzow <florian.schmidt.wel...@t-online.de>
Gerrit-Reviewer: Awjrichards <aricha...@wikimedia.org>
Gerrit-Reviewer: Florianschmidtwelzow <florian.schmidt.wel...@t-online.de>
Gerrit-Reviewer: JGonera <jgon...@wikimedia.org>
Gerrit-Reviewer: Jcf2000 <jaredflores2...@gmail.com>
Gerrit-Reviewer: Jdlrobson <jrob...@wikimedia.org>
Gerrit-Reviewer: Qgil <q...@wikimedia.org>
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