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

Revision: 99805
Author:   jeroendedauw
Date:     2011-10-14 21:07:55 +0000 (Fri, 14 Oct 2011)
Log Message:
-----------
added submission success notifications

Modified Paths:
--------------
    trunk/extensions/Contest/Contest.i18n.php
    trunk/extensions/Contest/specials/SpecialMyContests.php

Modified: trunk/extensions/Contest/Contest.i18n.php
===================================================================
--- trunk/extensions/Contest/Contest.i18n.php   2011-10-14 21:03:49 UTC (rev 
99804)
+++ trunk/extensions/Contest/Contest.i18n.php   2011-10-14 21:07:55 UTC (rev 
99805)
@@ -192,6 +192,8 @@
        'contest-mycontests-header-contest' => 'Contest',
        'contest-mycontests-header-challenge' => 'Challenge',
        'contest-mycontests-signup-success' => 'You have successfully signed up 
for this contest.',
+       'contest-mycontests-addition-success' => 'Your submission has been 
added.',
+       'contest-mycontests-updated-success' => 'Your submission has been 
updated.',
        'contest-mycontests-sessionfail' => 'Your submission could not be saved 
due to loss of session data. Please try again.',
 
        'contest-submission-submit' => 'Submit',

Modified: trunk/extensions/Contest/specials/SpecialMyContests.php
===================================================================
--- trunk/extensions/Contest/specials/SpecialMyContests.php     2011-10-14 
21:03:49 UTC (rev 99804)
+++ trunk/extensions/Contest/specials/SpecialMyContests.php     2011-10-14 
21:07:55 UTC (rev 99805)
@@ -13,6 +13,8 @@
  */
 class SpecialMyContests extends SpecialContestPage {
        
+       protected $submissionState = null;
+       
        /**
         * Constructor.
         * 
@@ -238,6 +240,12 @@
                if ( $this->getRequest()->getCheck( 'new' ) ) {
                        $this->showSuccess( 'contest-mycontests-signup-success' 
);
                }
+               else if ( $this->getRequest()->getCheck( 'added' ) ) {
+                       $this->showSuccess( 
'contest-mycontests-addition-success' );
+               }
+               else if ( $this->getRequest()->getCheck( 'updated' ) ) {
+                       $this->showSuccess( 
'contest-mycontests-updated-success' );
+               }
                else if ( $this->getRequest()->wasPosted()
                        && !$this->getUser()->matchEditToken( 
$this->getRequest()->getVal( 'wpEditToken' ) ) ) {
                        $this->showError( 'contest-mycontests-sessionfail' );
@@ -253,8 +261,9 @@
                $form->setSubmitCallback( array( $this, 'handleSubmission' ) );
                $form->setSubmitText( wfMsg( 'contest-submission-submit' ) );
                
-               if( $form->show() ){
-                       $this->getOutput()->redirect( $this->getTitle( 
$contestant->getContest()->getField( 'name' ) )->getLocalURL() );
+               if( $form->show() ) {
+                       $query = is_null( $this->submissionState ) ? '' : 
$this->submissionState;
+                       $this->getOutput()->redirect( $this->getTitle( 
$contestant->getContest()->getField( 'name' ) )->getLocalURL( $query ) );
                }
                else {
                        $this->getOutput()->addModules( 
'contest.special.submission' );
@@ -289,7 +298,18 @@
                        'submission' => trim( $data['contestant-submission'] ),
                ) );
                
-               return $contestant->writeToDB();
+               $success = $contestant->writeToDB();
+               
+               if ( $success ) {
+                       if ( trim( $data['contestant-previous-submission'] ) 
=== '' && trim( $data['contestant-submission'] ) !== '' ) {
+                               $this->submissionState = 'added';
+                       }
+                       else {
+                               $this->submissionState = 'updated';
+                       }
+               }
+               
+               return $success;
        }
        
        /**
@@ -310,6 +330,11 @@
                        'id' => 'contest-id',
                );
                
+               $fields['contestant-previous-submission'] = array(
+                       'type' => 'hidden',
+                       'default' => $contestant->getField( 'submission' ),
+               );
+               
                $fields['contestant-submission'] = array(
                        'class' => 'ContestSubmissionField',
                        'label-message' => 'contest-submission-submission',


_______________________________________________
MediaWiki-CVS mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs

Reply via email to