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

Revision: 96048
Author:   jeroendedauw
Date:     2011-09-01 21:45:29 +0000 (Thu, 01 Sep 2011)
Log Message:
-----------
work on survey query api

Modified Paths:
--------------
    trunk/extensions/Survey/api/ApiQuerySurveys.php
    trunk/extensions/Survey/resources/jquery.survey.js

Modified: trunk/extensions/Survey/api/ApiQuerySurveys.php
===================================================================
--- trunk/extensions/Survey/api/ApiQuerySurveys.php     2011-09-01 21:44:36 UTC 
(rev 96047)
+++ trunk/extensions/Survey/api/ApiQuerySurveys.php     2011-09-01 21:45:29 UTC 
(rev 96048)
@@ -35,36 +35,53 @@
                        $this->dieUsage( wfMsgExt( 'survey-err-ids-xor-names' 
), 'ids-xor-names' );
                }
                
-               $surveys = array();
-
-               // TODO
                
+               $this->addTables( 'surveys' );
+               
+               $this->addFields( 'survey_id' );
+               
                if ( isset( $params['ids'] ) ) {
-                       foreach ( $params['ids'] as $surveyId ) {
-                               $survey = Survey::newFromId( $surveyId, 
$params['incquestions'] == 1 );
-                               
-                               if ( $survey !== false ) {
-                                       $surveys[] = $this->getSurveyData( 
$survey );
-                               }
-                       }                       
+                       $this->addWhere( array( 'survey_id' => $params['ids'] ) 
);
                }
-
-               if ( isset( $params['names'] ) ) {
-                       foreach ( $params['names'] as $surveyName ) {
-                               $survey = Survey::newFromName( $surveyName, 
$params['incquestions'] == 1 );
-                               
-                               if ( $survey !== false ) {
-                                       $surveys[] = $this->getSurveyData( 
$survey );
-                               }
-                       }                       
+               else {
+                       $this->addWhere( array( 'survey_name' => 
$params['names'] ) );
                }
+               
+               if ( isset( $params['enabled'] ) ) {
+                       $this->addWhere( array( 'survey_enabled' => 
$params['enabled'] ) );
+               }
+               
+               if ( isset( $params['continue'] ) ) {
+                       $this->addWhere( 'survey_id >= ' . wfGetDB( DB_SLAVE 
)->addQuotes( $params['continue'] ) );
+               }
+               
+               $this->addOption( 'LIMIT', $params['limit'] + 1 );
+               $this->addOption( 'ORDER BY', 'survey_id ASC' );
+               
+               $surveys = $this->select( __METHOD__ );
+               $count = 0;
+               $resultSurveys = array();
+               
+               foreach ( $surveys as $survey ) {
+                       if ( ++$count > $params['limit'] ) {
+                               // We've reached the one extra which shows that
+                               // there are additional pages to be had. Stop 
here...
+                               $this->setContinueEnumParameter( 'continue', 
$survey->survey_id );
+                               break;
+                       }
+                       
+                       $resultSurveys[] = $this->getSurveyData( 
Survey::newFromId(
+                               $survey->survey_id,
+                               $params['incquestions'] == 1
+                       ) );
+               }
 
-               $this->getResult()->setIndexedTagName( $surveys, 'survey' );
+               $this->getResult()->setIndexedTagName( $resultSurveys, 'survey' 
);
                
                $this->getResult()->addValue(
                        null,
                        'surveys',
-                       $surveys
+                       $resultSurveys
                );
        }
        

Modified: trunk/extensions/Survey/resources/jquery.survey.js
===================================================================
--- trunk/extensions/Survey/resources/jquery.survey.js  2011-09-01 21:44:36 UTC 
(rev 96047)
+++ trunk/extensions/Survey/resources/jquery.survey.js  2011-09-01 21:45:29 UTC 
(rev 96048)
@@ -61,11 +61,12 @@
        this.getSurveyQuestion = function( question ) {
                $q = $( '<div />' );
                
-               $q.append( '<hr />' );
                $q.append( $( '<p />' ).text( question.text ) );
                
                $q.append( this.getQuestionInput( question ) )
                
+               $q.append( '<hr />' );
+               
                return $q;
        };
        


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

Reply via email to