http://www.mediawiki.org/wiki/Special:Code/MediaWiki/71995
Revision: 71995
Author: adam
Date: 2010-08-31 00:11:49 +0000 (Tue, 31 Aug 2010)
Log Message:
-----------
End of the day ArticleAssessment commit. Progress was made. True story.
Modified Paths:
--------------
trunk/extensions/ArticleAssessmentPilot/css/ArticleAssessment.css
trunk/extensions/ArticleAssessmentPilot/js/ArticleAssessment.js
Modified: trunk/extensions/ArticleAssessmentPilot/css/ArticleAssessment.css
===================================================================
--- trunk/extensions/ArticleAssessmentPilot/css/ArticleAssessment.css
2010-08-30 23:59:22 UTC (rev 71994)
+++ trunk/extensions/ArticleAssessmentPilot/css/ArticleAssessment.css
2010-08-31 00:11:49 UTC (rev 71995)
@@ -116,9 +116,10 @@
.article-assessment-wrapper .article-assessment-rating-field-name {
float: left;
width: 90px;
+ font-weight: bold;
+ font-size: 11px;
}
-.article-assessment-wrapper .article-assessment-rating-field-value-wrapper,
-.article-assessment-wrapper .article-assessment-rating-field-value-disabled {
+.article-assessment-wrapper .article-assessment-rating-field-value-wrapper {
background: url( ../images/rating_bg.gif ) 0 0 no-repeat;
width: 120px;
height: 13px;
@@ -126,6 +127,7 @@
float: left;
padding: 2px;
text-indent: -9999px;
+ margin-top: 2px;
}
.article-assessment-wrapper .article-assessment-rate-instructions,
.article-assessment-wrapper .article-assessment-rate-feedback,
@@ -146,19 +148,37 @@
float: right;
display: block;
}
-.article-assessment-wrapper .article-assessment-rating-field-value-disabled {
- background: url( ../images/rating_disabled_bg.gif ) 0 0 no-repeat;
-}
.article-assessment-wrapper .article-assessment-wrapper
.article-assessment-rating-fields {
margin: 8px 0;
}
.article-assessment-wrapper .article-assessment-rating-fields .field-wrapper {
margin-bottom: 5px;
}
+.article-assessment-rating-count {
+ font-size: 11px;
+ margin-left: 5px;
+ float: left;
+}
+.article-assessment-submit input {
+ margin: 2px 0;
+}
+.article-assessment-wrapper .article-assessment-ratings-disabled
.article-assessment-rating-field-value-wrapper {
+ background: url( ../images/rating_disabled_bg.gif ) 0 0 no-repeat;
+}
+.article-assessment-wrapper .article-assessment-ratings-disabled
.article-assessment-rating-field-value {
+ display: none;
+}
+.article-assessment-wrapper .article-assessment-ratings-disabled
.article-assessment-rating-count {
+ display: none;
+}
+.article-assessment-wrapper .article-assessment-ratings-disabled
.article-assessment-rating-field-name {
+ color: #9f9f9f;
+}
/* Self Clearing Floats */
.article-assessment-wrapper .article-assessment-information:after,
.article-assessment-wrapper .field-wrapper:after,
.article-assessment-wrapper .article-assessment-rating-fields:after,
+.article-assessment-rating:after,
.article-assessment-wrapper .article-assessment-submit:after,
.article-assessment-wrapper .rating-fields:after {
content: ".";
@@ -170,6 +190,7 @@
.article-assessment-wrapper .field-wrapper,
.article-assessment-wrapper .article-assessment-information,
.article-assessment-wrapper .article-assessment-rating-fields,
+.article-assessment-rating,
.article-assessment-wrapper .article-assessment-submit,
.article-assessment-wrapper .rating-fields {
display: inline-block;
@@ -177,6 +198,7 @@
* html .article-assessment-wrapper .field-wrapper,
* html .article-assessment-wrapper .article-assessment-information,
* html .article-assessment-wrapper .article-assessment-rating-fields,
+* html .article-assessment-rating,
* html .article-assessment-wrapper .article-assessment-submit,
* html .article-assessment-wrapper .rating-fields {
height: 1%;
@@ -184,6 +206,7 @@
.article-assessment-wrapper .field-wrapper,
.article-assessment-wrapper .article-assessment-information,
.article-assessment-wrapper .article-assessment-rating-fields,
+.article-assessment-rating,
.article-assessment-wrapper .article-assessment-submit,
.article-assessment-wrapper .rating-fields {
display: block;
Modified: trunk/extensions/ArticleAssessmentPilot/js/ArticleAssessment.js
===================================================================
--- trunk/extensions/ArticleAssessmentPilot/js/ArticleAssessment.js
2010-08-30 23:59:22 UTC (rev 71994)
+++ trunk/extensions/ArticleAssessmentPilot/js/ArticleAssessment.js
2010-08-31 00:11:49 UTC (rev 71995)
@@ -18,7 +18,7 @@
'fieldPrefix': 'articleassessment-rating-',
'fieldHTML': '<div class="field-wrapper"> \
<label for="rating_{FIELD}"
original-title="{HINT}" class="rating-field-label">{LABEL}</label> \
- <select id="rating_{FIELD}"
name="rating[{FIELD}]" class="rating-field"> \
+ <select id="rating_{FIELD}"
name="rating{FIELD}" class="rating-field"> \
<option value="1">1</option> \
<option value="2">2</option> \
<option value="3">3</option> \
@@ -48,7 +48,7 @@
</fieldset> \
</form> \
</div>',
- 'ratingHTML': '<div class="article-assessment-rating"> \
+ 'ratingHTML': '<div class="article-assessment-rating"
id="articleassessment-rating-{FIELD}"> \
<span
class="article-assessment-rating-field-name">{LABEL}</span> \
<span
class="article-assessment-rating-field-value-wrapper"> \
<span
class="article-assessment-rating-field-value">{VALUE}</span> \
@@ -76,24 +76,63 @@
.replace( /\{FEEDBACK\}/g,
mw.usability.getMsg('articleassessment-featurefeedback') )
.replace( /\{YOURFEEDBACK\}/g,
mw.usability.getMsg('articleassessment-yourfeedback') )
.replace( /\{ARTICLERATING\}/g,
mw.usability.getMsg('articleassessment-articlerating' ) )
- .replace( /\{RESULTSHIDE\}/g,
mw.usability.getMsg('articleassessment-results-hide' ) )
- .replace( /\{RESULTSSHOW\}/g,
mw.usability.getMsg('articleassessment-results-show' ) ) );
+ .replace( /\{RESULTSHIDE\}/g,
mw.usability.getMsg('articleassessment-results-hide' )
+ .replace( /\[\[\|([^\]]*)\]\]/,
'<a href="#">$1</a>' ) )
+ .replace( /\{RESULTSSHOW\}/g,
mw.usability.getMsg('articleassessment-results-show' )
+ .replace( /\[\[\|([^\]]*)\]\]/,
'<a href="#">$1</a>' ) ) );
for( var field in settings.fieldMessages ) {
$output.find(
'.article-assessment-rating-fields' )
.append( $( settings.fieldHTML
.replace( /\{LABEL\}/g,
mw.usability.getMsg( settings.fieldPrefix + settings.fieldMessages[field] ) )
- .replace( /\{FIELD\}/g,
mw.usability.getMsg( settings.fieldMessages[field] ) )
+ .replace( /\{FIELD\}/g,
"[" + settings.fieldMessages[field] + "]" )
.replace( /\{HINT\}/g,
mw.usability.getMsg( settings.fieldPrefix + settings.fieldMessages[field] +
settings.fieldHintSuffix ) ) ) );
$output.find(
'#article-assessment-ratings' )
.append( $( settings.ratingHTML
.replace( /\{LABEL\}/g,
mw.usability.getMsg(settings.fieldPrefix + settings.fieldMessages[field]) )
+ .replace( /\{FIELD\}/g,
settings.fieldMessages[field] )
.replace( /\{VALUE\}/g,
'0%' )
.replace( /\{COUNT\}/g,
mw.usability.getMsg( 'field-count' ) ) )
);
}
-
+ $output.find( '#article-assessment' ).data(
'articleAssessment-context', { 'settings': settings });
+ // hook up the ratings show/hide
+ $output
+ .find(
'.article-assessment-show-ratings a' )
+ .click( function() {
+ $( this )
+ .parent()
+ .hide();
+ $output
+ .find(
'#article-assessment-ratings' )
+ .removeClass(
'article-assessment-ratings-disabled' )
+ .end()
+ .find(
'.article-assessment-hide-ratings' )
+ .show();
+ return false;
+ } )
+ .end()
+ .find(
'.article-assessment-hide-ratings a' )
+ .click( function() {
+ $( this )
+ .parent()
+ .hide();
+ $output
+ .find(
'#article-assessment-ratings' )
+ .addClass(
'article-assessment-ratings-disabled' )
+ .end()
+ .find(
'.article-assessment-show-ratings' )
+ .show();
+ return false;
+ } )
+ .click();
$( '#catlinks' ).before( $output );
+ // set the height of our smaller fieldset to
match the taller
+ if( $( '#article-assessment-rate' ).height() >
$( '#article-assessment-ratings' ).height() ) {
+ $( '#article-assessment-ratings' ).css(
'minHeight', $( '#article-assessment-rate' ).height() );
+ } else {
+ $( '#article-assessment-rate' ).css(
'minHeight', $( '#article-assessment-ratings' ).height() );
+ }
// attempt to fetch the ratings
$.ArticleAssessment.fn.getRatingData();
@@ -115,15 +154,6 @@
}
} );
});
- // if the rating is stale, add the stale class
- if( true /* replace with conditional based on
returned results of past user ratings */ ) {
- // add the stale star class to each on
star
- $( '.ui-stars-star-on' )
- .addClass(
'ui-stars-star-stale' );
- // add the stale message
- $( '.article-assessment-submit' )
- .append(
settings.staleMSG.replace( /\{MSG\}/g, mw.usability.getMsg(
'articleassessment-stalemessage-revisioncount' ) ) );
- }
// intialize the tooltips
$( '.field-wrapper label[original-title]'
).each(function() {
$( this )
@@ -131,38 +161,63 @@
.attr(
'original-title', $( this ).attr( 'original-title' ) )
.tipsy( { gravity :
'se', opacity: '0.9', } ) );
} );
- // initialize the ratings
- $( '.article-assessment-rating-field-value'
).each( function() {
- $( this )
- .css( {
- 'width': 120 - ( 120 *
( parseInt( $( this ).text() ) / 100 ) ) + "px"
- } )
- } );
// bind submit event to the form
-
+ $( '#article-assessment' ).submit( function() {
$.ArticleAssessment.fn.submitRating(); return false; } );
// prevent the submit button for being active
until all ratings are filled out
},
'getRatingData': function() {
- var request = $j.ajax( {
+ var request = $.ajax( {
url: wgScriptPath + '/api.php',
data: {
- 'action': 'articleassessment',
- 'getCumulativeResults': 1,
- 'pageId': wgArticleId,
- 'revId': wgCurRevisionId
+ 'action': 'query',
+ 'list': 'articleassessment',
+ 'aarevid': wgCurRevisionId,
+ 'aapageid': wgArticleId,
+ 'format': 'json'
},
dataType: 'json',
success: function( data ) {
- console.log(data);
+
$.ArticleAssessment.fn.afterGetRatingData( data );
},
error: function(XMLHttpRequest,
textStatus, errorThrown) {
- console.log(XMLHttpRequest,
textStatus, errorThrown);
+ // console.log(XMLHttpRequest,
textStatus, errorThrown);
}
} );
},
+ 'afterGetRatingData' : function( data ) {
+ var settings = $( '#article-assessment' ).data(
'articleAssessment-context' ).settings;
+ // add the correct data to the markup
+ for( rating in
data.query.articleassessment[0].ratings) {
+ var rating =
data.query.articleassessment[0].ratings[rating],
+ $rating = $( '#' +
rating.ratingdesc ),
+ label = mw.usability.getMsg(
'articleassessment-noratings', [rating.total, rating.count] );
+ $rating
+ .find(
'.article-assessment-rating-field-value' )
+ .text( rating.total )
+ .end()
+ .find(
'.article-assessment-rating-count' )
+ .text( label );
+ }
+ // if the rating is stale, add the stale class
+ if( true /* replace with conditional based on
returned results of past user ratings */ ) {
+ // add the stale star class to each on
star
+ $( '.ui-stars-star-on' )
+ .addClass(
'ui-stars-star-stale' );
+ // add the stale message
+ $( '.article-assessment-submit' )
+ .append(
settings.staleMSG.replace( /\{MSG\}/g, mw.usability.getMsg(
'articleassessment-stalemessage-revisioncount' ) ) );
+ }
+ // initialize the ratings
+ $( '.article-assessment-rating-field-value'
).each( function() {
+ $( this )
+ .css( {
+ 'width': 120 - ( 120 *
( parseFloat( $( this ).text() ) / 5 ) ) + "px"
+ } )
+ } );
+ },
'getUserRatingData': function() {
- var request = $j.ajax( {
+ var request = $.ajax( {
url: wgScriptPath + '/api.php',
data: {
'action': 'articleassessment',
@@ -176,21 +231,34 @@
console.log(data);
},
error: function(XMLHttpRequest,
textStatus, errorThrown) {
- console.log(XMLHttpRequest,
textStatus, errorThrown);
+ // console.log( XMLHttpRequest,
textStatus, errorThrown );
}
} );
},
- 'submit': function() {
+ 'submitRating': function() {
// clear out the stale message
- var request = $j.ajax( {
+ var results = {};
+ $( '.rating-field input' ).each( function() {
+ // expects the hidden inputs to have
names like 'rating[field-name]' which we use to
+ // be transparent about what values
we're sending to the server
+ var fieldName = $( this
).attr('name').match(/\[([a-zA-Z0-9\-]*)\]/)[1];
+ results[ fieldName ] = $( this ).val();
+ } );
+ var request = $.ajax( {
url: wgScriptPath + '/api.php',
data: {
- 'action': 'ratearticle',
- 'data': ratingsData
+ 'action': 'articleassessment',
+ 'aarevid': wgCurRevisionId,
+ 'aapageid': wgArticleId,
+ 'aar1' : results['wellsourced'],
+ 'aar2' : results['neutrality'],
+ 'aar3' :
results['completeness'],
+ 'aar4' : results['readability'],
+ 'format': 'json'
},
dataType: 'json',
success: function( data ) {
- $this.suggestions(
'suggestions', data[1] );
+ console.log(data);
}
} );
}
@@ -198,7 +266,6 @@
};
// FIXME - this should be moved out of here
$( document ).ready( function () {
- console.log(this);
- $.ArticleAssessment.fn.init( { 'endpoint': wgScriptPath +
"/api.php" } );
+ $.ArticleAssessment.fn.init( );
} ); //document ready
} )( jQuery );
\ No newline at end of file
_______________________________________________
MediaWiki-CVS mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs