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