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