http://www.mediawiki.org/wiki/Special:Code/MediaWiki/90969

Revision: 90969
Author:   janpaul123
Date:     2011-06-28 15:32:13 +0000 (Tue, 28 Jun 2011)
Log Message:
-----------
Added error messages when API calls fail.

Modified Paths:
--------------
    trunk/extensions/WikiLove/WikiLove.api.php
    trunk/extensions/WikiLove/WikiLove.i18n.php
    trunk/extensions/WikiLove/WikiLove.php
    trunk/extensions/WikiLove/modules/ext.wikiLove/ext.wikiLove.core.js

Modified: trunk/extensions/WikiLove/WikiLove.api.php
===================================================================
--- trunk/extensions/WikiLove/WikiLove.api.php  2011-06-28 15:24:38 UTC (rev 
90968)
+++ trunk/extensions/WikiLove/WikiLove.api.php  2011-06-28 15:32:13 UTC (rev 
90969)
@@ -31,14 +31,12 @@
                        'notminor' => true,
                ), false, array( 'wsEditToken' => $wgRequest->getSessionData( 
'wsEditToken' ) ) ), true );
                
+               $api->execute();
+               
                if ( isset( $params['email'] ) ) {
                        $this->emailUser( $talk, $params['subject'], 
$params['email'], $params['token'] );
                }
 
-               $api->execute();
-               
-               $result = $api->getResult();
-
                $this->getResult()->addValue( 'redirect', 'pageName', 
$talk->getPrefixedDBkey() );
                $this->getResult()->addValue( 'redirect', 'fragment', 
Title::escapeFragmentForURL( $params['subject'] ) );
                // note that we cannot use Title::makeTitle here as it doesn't 
sanitize the fragment

Modified: trunk/extensions/WikiLove/WikiLove.i18n.php
===================================================================
--- trunk/extensions/WikiLove/WikiLove.i18n.php 2011-06-28 15:24:38 UTC (rev 
90968)
+++ trunk/extensions/WikiLove/WikiLove.i18n.php 2011-06-28 15:32:13 UTC (rev 
90969)
@@ -41,10 +41,12 @@
        'wikilove-err-msg' => 'Please enter a message.',
        'wikilove-err-image' => 'Please select an image.',
        'wikilove-err-image-bad' => 'Image does not exist.',
-       'wikilove-err-image-api' => 'Image check failed.',
+       'wikilove-err-image-api' => 'Something went wrong when retrieving the 
image. Please try again.',
        'wikilove-err-sig' => 'Please do not include a signature in the 
message.',
-       'wikilove-err-gallery' => 'Something went wrong when loading the 
images!',
+       'wikilove-err-gallery' => 'Something went wrong when loading the 
images.',
        'wikilove-err-gallery-again' => 'Try again',
+       'wikilove-err-preview-api' => 'Something went wrong during previewing. 
Please try again.',
+       'wikilove-err-send-api' => 'Something went wrong when sending the 
message. Please try again.',
        'wikilove-summary' => '/* $1 */ new WikiLove message',
        'wikilove-what-is-this' => "What is this?",
        'wikilove-anon-warning' => 'Note: This user is not registered, he or 
she many not notice this message.',

Modified: trunk/extensions/WikiLove/WikiLove.php
===================================================================
--- trunk/extensions/WikiLove/WikiLove.php      2011-06-28 15:24:38 UTC (rev 
90968)
+++ trunk/extensions/WikiLove/WikiLove.php      2011-06-28 15:32:13 UTC (rev 
90969)
@@ -129,6 +129,8 @@
                        'wikilove-commons-text',
                        'wikilove-commons-link',
                        'wikilove-commons-url',
+                       'wikilove-err-preview-api',
+                       'wikilove-err-send-api',
                ),
                'dependencies' => array(
                        'jquery.ui.dialog',

Modified: trunk/extensions/WikiLove/modules/ext.wikiLove/ext.wikiLove.core.js
===================================================================
--- trunk/extensions/WikiLove/modules/ext.wikiLove/ext.wikiLove.core.js 
2011-06-28 15:24:38 UTC (rev 90968)
+++ trunk/extensions/WikiLove/modules/ext.wikiLove/ext.wikiLove.core.js 
2011-06-28 15:32:13 UTC (rev 90969)
@@ -328,7 +328,7 @@
                
                // Check for a header if it is required
                if( $.inArray( 'header', currentTypeOrSubtype.fields ) >= 0 && 
$( '#mw-wikilove-header' ).val().length <= 0 ) {
-                       $.wikiLove.showError( 'wikilove-err-header' ); return 
false;
+                       $.wikiLove.showAddDetailsError( 'wikilove-err-header' 
); return false;
                }
                
                // Check for a title if it is required, and otherwise use the 
header text
@@ -339,12 +339,12 @@
                if( $.inArray( 'message', currentTypeOrSubtype.fields ) >= 0 ) {
                        // Check for a message if it is required
                        if ( $( '#mw-wikilove-message' ).val().length <= 0 ) {
-                               $.wikiLove.showError( 'wikilove-err-msg' ); 
return false;
+                               $.wikiLove.showAddDetailsError( 
'wikilove-err-msg' ); return false;
                        }
                        
                        // If there isn't a signature already in the message, 
throw an error
                        if ( $( '#mw-wikilove-message' ).val().indexOf( '~~~' ) 
>= 0 ) {
-                               $.wikiLove.showError( 'wikilove-err-sig' ); 
return false;
+                               $.wikiLove.showAddDetailsError( 
'wikilove-err-sig' ); return false;
                        }
                }
                
@@ -371,7 +371,7 @@
                                        success: function( data ) {
                                                if ( 
!data.query.pages[-1].imageinfo ) {
                                                        // Image does not exist
-                                                       $.wikiLove.showError( 
'wikilove-err-image-bad' );
+                                                       
$.wikiLove.showAddDetailsError( 'wikilove-err-image-bad' );
                                                        $( 
'#mw-wikilove-preview-spinner' ).fadeOut( 200 );
                                                } else {
                                                        // Image exists. 
Proceed with preview.
@@ -379,7 +379,7 @@
                                                }
                                        },
                                        error: function() {
-                                               $.wikiLove.showError( 
'wikilove-err-image-api' );
+                                               $.wikiLove.showAddDetailsError( 
'wikilove-err-image-api' );
                                                $( 
'#mw-wikilove-preview-spinner' ).fadeOut( 200 );
                                        }
                                } );
@@ -387,7 +387,7 @@
                } else { // a gallery
                        if ( $( '#mw-wikilove-image' ).val().length <= 0 ) {
                                // Display an error telling them to select an 
image.
-                               $.wikiLove.showError( 'wikilove-err-image' ); 
return false;
+                               $.wikiLove.showAddDetailsError( 
'wikilove-err-image' ); return false;
                        } else {
                                // Proceed with preview.
                                $.wikiLove.submitPreview();
@@ -417,10 +417,14 @@
                }
        },
        
-       showError: function( errmsg ) {
+       showAddDetailsError: function( errmsg ) {
                $( '#mw-wikilove-add-details' ).append( $( '<div 
class="mw-wikilove-error"></div>' ).text( mw.msg( errmsg ) ) );
        },
        
+       showPreviewError: function( errmsg ) {
+               $( '#mw-wikilove-preview' ).append( $( '<div 
class="mw-wikilove-error"></div>' ).text( mw.msg( errmsg ) ) );
+       },
+       
        /*
         * Prepares a message or e-mail body by replacing placeholders.
         * $1: message entered by the user
@@ -475,6 +479,10 @@
                        success: function( data ) {
                                $.wikiLove.showPreview( data.parse.text['*'] );
                                $( '#mw-wikilove-preview-spinner' ).fadeOut( 
200 );
+                       },
+                       error: function() {
+                               $.wikiLove.showAddDetailsError( 
'wikilove-err-preview-api' );
+                               $( '#mw-wikilove-preview-spinner' ).fadeOut( 
200 );
                        }
                });
        },
@@ -548,7 +556,7 @@
                                $( '#mw-wikilove-send-spinner' ).fadeOut( 200 );
                                
                                if ( typeof data.error !== 'undefined' ) {
-                                       $( '#mw-wikilove-preview' ).append( 
'<div class="mw-wikilove-error">' + mw.html.escape( data.error.info ) + '<div>' 
);
+                                       $.wikiLove.showPreviewError( 
data.error.info );
                                        return;
                                }
                                
@@ -563,6 +571,10 @@
                                                mw.config.get( 'wgArticlePath' 
).replace( '$1', mw.util.wikiUrlencode( data.redirect.pageName ) ) 
                                                + '#' + data.redirect.fragment 
);
                                }
+                       },
+                       error: function() {
+                               $.wikiLove.showPreviewError( 
'wikilove-err-send-api' );
+                               $( '#mw-wikilove-send-spinner' ).fadeOut( 200 );
                        }
                });
        },


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

Reply via email to