https://www.mediawiki.org/wiki/Special:Code/MediaWiki/112137
Revision: 112137
Author: yonishostak
Date: 2012-02-22 19:34:08 +0000 (Wed, 22 Feb 2012)
Log Message:
-----------
AFTv5: added toggle option for (un)helpful flag api calls - client side
Modified Paths:
--------------
trunk/extensions/ArticleFeedbackv5/ArticleFeedbackv5.hooks.php
trunk/extensions/ArticleFeedbackv5/ArticleFeedbackv5.i18n.php
trunk/extensions/ArticleFeedbackv5/modules/jquery.articleFeedbackv5/jquery.articleFeedbackv5.special.css
trunk/extensions/ArticleFeedbackv5/modules/jquery.articleFeedbackv5/jquery.articleFeedbackv5.special.js
Modified: trunk/extensions/ArticleFeedbackv5/ArticleFeedbackv5.hooks.php
===================================================================
--- trunk/extensions/ArticleFeedbackv5/ArticleFeedbackv5.hooks.php
2012-02-22 19:12:18 UTC (rev 112136)
+++ trunk/extensions/ArticleFeedbackv5/ArticleFeedbackv5.hooks.php
2012-02-22 19:34:08 UTC (rev 112137)
@@ -229,7 +229,10 @@
'articlefeedbackv5-noteflyover-declineoversight-placeholder',
'articlefeedbackv5-noteflyover-declineoversight-submit',
'articlefeedbackv5-noteflyover-declineoversight-help',
-
'articlefeedbackv5-noteflyover-declineoversight-help-link'
+
'articlefeedbackv5-noteflyover-declineoversight-help-link',
+
+ 'articlefeedbackv5-mask-text',
+ 'articlefeedbackv5-mask-postnumber'
),
'dependencies' => array(
'mediawiki.util',
Modified: trunk/extensions/ArticleFeedbackv5/ArticleFeedbackv5.i18n.php
===================================================================
--- trunk/extensions/ArticleFeedbackv5/ArticleFeedbackv5.i18n.php
2012-02-22 19:12:18 UTC (rev 112136)
+++ trunk/extensions/ArticleFeedbackv5/ArticleFeedbackv5.i18n.php
2012-02-22 19:34:08 UTC (rev 112137)
@@ -142,8 +142,9 @@
'articlefeedbackv5-timestamp-months' => '{{PLURAL:$1|$1 month|$1
months}}',
'articlefeedbackv5-timestamp-weeks' => '{{PLURAL:$1|$1 week|$1 weeks}}',
'articlefeedbackv5-timestamp-seconds' => 'less than 1 minute',
-
-
+ 'articlefeedbackv5-mask-text' => 'Feedback hidden by administrative
action. Click to view contents.',
+ 'articlefeedbackv5-mask-postnumber' => 'Post #$1',
+
/* Special page flyover panels */
/* Hide this post panel */
'articlefeedbackv5-noteflyover-hide-caption' => 'Hide this post',
@@ -598,6 +599,9 @@
* <code>$1</code> – URL of the confirmation link
* <code>$2</code> – URL to type in the confirmation code manually.
* <code>$3</code> – Confirmation code for the user to type in',
+ 'articlefeedbackv5-mask-text' => 'Text to be displayed on the hidden
post mask',
+ 'articlefeedbackv5-mask-postnumber' => 'Template for post number, to be
displayed on the hidden post mask',
+
);
/** Afrikaans (Afrikaans)
Modified:
trunk/extensions/ArticleFeedbackv5/modules/jquery.articleFeedbackv5/jquery.articleFeedbackv5.special.css
===================================================================
---
trunk/extensions/ArticleFeedbackv5/modules/jquery.articleFeedbackv5/jquery.articleFeedbackv5.special.css
2012-02-22 19:12:18 UTC (rev 112136)
+++
trunk/extensions/ArticleFeedbackv5/modules/jquery.articleFeedbackv5/jquery.articleFeedbackv5.special.css
2012-02-22 19:34:08 UTC (rev 112137)
@@ -567,4 +567,21 @@
width: 100%;
height: 100%;
background-color: #dae2eb;
+ padding: 10px;
}
+.articleFeedbackv5-post-screen .articleFeedbackv5-mask-text-wrapper {
+ position: absolute;
+ width: 100%;
+ color: #777;
+ font-size: 1.4em;
+ vertical-align: middle;
+}
+.articleFeedbackv5-post-screen .articleFeedbackv5-mask-text {
+ display: inline-block;
+ float: left;
+}
+.articleFeedbackv5-post-screen .articleFeedbackv5-mask-postid {
+ display: inline-block;
+ float: right;
+ margin-right: 50px;
+}
Modified:
trunk/extensions/ArticleFeedbackv5/modules/jquery.articleFeedbackv5/jquery.articleFeedbackv5.special.js
===================================================================
---
trunk/extensions/ArticleFeedbackv5/modules/jquery.articleFeedbackv5/jquery.articleFeedbackv5.special.js
2012-02-22 19:12:18 UTC (rev 112136)
+++
trunk/extensions/ArticleFeedbackv5/modules/jquery.articleFeedbackv5/jquery.articleFeedbackv5.special.js
2012-02-22 19:34:08 UTC (rev 112137)
@@ -98,6 +98,17 @@
</div>\
</form>';
+ /**
+ * Mask HMTL template
+ */
+ $.articleFeedbackv5special.maskHtmlTemplate = '\
+ <div class="articleFeedbackv5-post-screen">\
+ <div class="articleFeedbackv5-mask-text-wrapper">\
+ <span
class="articleFeedbackv5-mask-text"></span>\
+ <span
class="articleFeedbackv5-mask-postid"></span>\
+ </div>\
+ </div>';
+
// }}}
// {{{ Init methods
@@ -231,7 +242,8 @@
$.articleFeedbackv5special.flagFeedback(
$( '#' +
$.articleFeedbackv5special.currentPanelHostId ).closest(
'.articleFeedbackv5-feedback' ).attr( 'rel' ),
$( e.target ).attr( 'action' ),
- $( '#articlefeedbackv5-noteflyover-note'
).attr( 'value' ) );
+ $( '#articlefeedbackv5-noteflyover-note'
).attr( 'value' ),
+ { } );
// hide tipsy
$( '#' + $.articleFeedbackv5special.currentPanelHostId
).tipsy( 'hide' );
@@ -488,12 +500,18 @@
// }}}
// {{{ maskPost
$.articleFeedbackv5special.maskPost = function( $row ) {
- var $screen = $( '<div></div>' )
+ var $screen = $( $.articleFeedbackv5special.maskHtmlTemplate )
.addClass( 'articleFeedbackv5-post-screen' )
.height( $row.innerHeight() )
.click( function( e ) {
- $( e.target ).remove();
- });
+ $( e.target ).closest(
'.articleFeedbackv5-post-screen' ).remove();
+ } );
+ $screen.find( '.articleFeedbackv5-mask-text-wrapper')
+ .css( 'top', $screen.innerHeight() / 2 - 12 );
+ $screen.find( '.articleFeedbackv5-mask-text' )
+ .text( mw.msg( 'articlefeedbackv5-mask-text' ) );
+ $screen.find( '.articleFeedbackv5-mask-postid' )
+ .text( mw.msg( 'articlefeedbackv5-mask-postnumber',
$row.attr( 'rel' ) ) );
$row.prepend( $screen );
}
// }}}
@@ -551,8 +569,9 @@
* @param id int the feedback id
* @param action string action to execute
* @param note string note for action (default empty)
+ * @param options object key => value pairs of additonal
API action-specific parameters
*/
- $.articleFeedbackv5special.flagFeedback = function ( id, action, note )
{
+ $.articleFeedbackv5special.flagFeedback = function ( id, action, note,
options ) {
// default parameters
note = typeof note !== undefined ? note : '';
@@ -571,20 +590,24 @@
// messing up the counts, and generally seems like a
good idea.
$.articleFeedbackv5special.listControls.disabled = true;
}
+
+ // Merge request data and options objects (flat)
+ var requestData = {
+ 'pageid' : $.articleFeedbackv5special.page,
+ 'feedbackid': id,
+ 'flagtype' :
$.articleFeedbackv5special.actions[action].apiFlagType,
+ 'direction' :
$.articleFeedbackv5special.actions[action].apiFlagDir > 0 ? 'increase' :
'decrease',
+ 'note' : note,
+ 'format' : 'json',
+ 'action' : 'articlefeedbackv5-flag-feedback'
+ };
+ $.extend( requestData, options );
$.ajax( {
'url' : $.articleFeedbackv5special.apiUrl,
'type' : 'POST',
'dataType': 'json',
- 'data' : {
- 'pageid' : $.articleFeedbackv5special.page,
- 'feedbackid': id,
- 'flagtype' :
$.articleFeedbackv5special.actions[action].apiFlagType,
- 'direction' :
$.articleFeedbackv5special.actions[action].apiFlagDir > 0 ? 'increase' :
'decrease',
- 'note' : note,
- 'format' : 'json',
- 'action' : 'articlefeedbackv5-flag-feedback'
- },
+ 'data' : requestData,
'success': function ( data ) {
var msg = 'articlefeedbackv5-error-flagging';
if ( 'articlefeedbackv5-flag-feedback' in data
) {
@@ -802,12 +825,7 @@
if( $.articleFeedbackv5special.canBeFlagged(
$link.closest( '.articleFeedbackv5-feedback' ) ) ) {
var id = $link.closest(
'.articleFeedbackv5-feedback' ).attr( 'rel' );
var activity =
$.articleFeedbackv5special.getActivity( id );
-
$.articleFeedbackv5special.listControls.allowMultiple = true;
- if( activity['unhelpful'] ) {
-
$.articleFeedbackv5special.flagFeedback( id, 'reverseunhelpful', '' );
- }
-
$.articleFeedbackv5special.flagFeedback( id, 'helpful', '' );
-
$.articleFeedbackv5special.listControls.allowMultiple = false;
+
$.articleFeedbackv5special.flagFeedback( id, 'helpful', '',
activity['unhelpful'] ? { toggle: true } : { } );
}
},
'apiFlagType': 'helpful',
@@ -819,6 +837,10 @@
.removeClass(
'articleFeedbackv5-helpful-link' )
.addClass(
'articleFeedbackv5-reversehelpful-link' )
.attr( 'id',
'articleFeedbackv5-reversehelpful-link-' + id );
+ if( data['toggle'] ) {
+ $( '#articleFeedbackv5-unhelpful-link-'
+ id ).removeClass( 'helpful-active' );
+ setActivityFlag( id, 'unhelpful', false
)
+ }
$.articleFeedbackv5special.setActivityFlag( id,
'helpful', true );
}
},
@@ -831,7 +853,7 @@
var $link = $( e.target );
if( $.articleFeedbackv5special.canBeFlagged(
$link.closest( '.articleFeedbackv5-feedback' ) ) ) {
$.articleFeedbackv5special.flagFeedback(
- $link.closest(
'.articleFeedbackv5-feedback' ).attr( 'rel' ), 'reversehelpful', '' );
+ $link.closest(
'.articleFeedbackv5-feedback' ).attr( 'rel' ), 'reversehelpful', '', { } );
}
},
'apiFlagType': 'helpful',
@@ -856,12 +878,7 @@
if( $.articleFeedbackv5special.canBeFlagged(
$link.closest( '.articleFeedbackv5-feedback' ) ) ) {
var id = $link.closest(
'.articleFeedbackv5-feedback' ).attr( 'rel' );
var activity =
$.articleFeedbackv5special.getActivity( id );
-
$.articleFeedbackv5special.listControls.allowMultiple = true;
- if( activity['helpful'] ) {
-
$.articleFeedbackv5special.flagFeedback( id, 'reversehelpful', '' );
- }
-
$.articleFeedbackv5special.flagFeedback( id, 'unhelpful', '' );
-
$.articleFeedbackv5special.listControls.allowMultiple = false;
+
$.articleFeedbackv5special.flagFeedback( id, 'unhelpful', '',
activity['helpful'] ? { toggle: true } : { } );
}
},
'apiFlagType': 'unhelpful',
@@ -873,6 +890,10 @@
.removeClass(
'articleFeedbackv5-unhelpful-link')
.addClass(
'articleFeedbackv5-reverseunhelpful-link' )
.attr( 'id',
'articleFeedbackv5-reverseunhelpful-link-' + id );
+ if( data['toggle'] ) {
+ $( '#articleFeedbackv5-helpful-link-' +
id ).removeClass( 'helpful-active' );
+ setActivityFlag( id, 'helpful', false )
+ }
$.articleFeedbackv5special.setActivityFlag( id,
'unhelpful', true );
}
},
@@ -885,7 +906,7 @@
var $link = $( e.target );
if( $.articleFeedbackv5special.canBeFlagged(
$link.closest( '.articleFeedbackv5-feedback' ) ) ) {
$.articleFeedbackv5special.flagFeedback(
- $link.closest(
'.articleFeedbackv5-feedback' ).attr( 'rel' ), 'reverseunhelpful', '' );
+ $link.closest(
'.articleFeedbackv5-feedback' ).attr( 'rel' ), 'reverseunhelpful', '', { } );
}
},
'apiFlagType': 'unhelpful',
@@ -909,7 +930,7 @@
var $link = $( e.target );
if( $.articleFeedbackv5special.canBeFlagged(
$link.closest( '.articleFeedbackv5-feedback' ) ) ) {
var id = $link.closest(
'.articleFeedbackv5-feedback' ).attr( 'rel' );
-
$.articleFeedbackv5special.flagFeedback( $link.closest(
'.articleFeedbackv5-feedback' ).attr( 'rel' ), 'abuse', '' );
+
$.articleFeedbackv5special.flagFeedback( $link.closest(
'.articleFeedbackv5-feedback' ).attr( 'rel' ), 'abuse', '', { } );
}
},
'apiFlagType': 'abuse',
@@ -945,7 +966,7 @@
var $link = $( e.target );
if( $.articleFeedbackv5special.canBeFlagged(
$link.closest( '.articleFeedbackv5-feedback' ) ) ) {
var id = $link.closest(
'.articleFeedbackv5-feedback' ).attr( 'rel' );
-
$.articleFeedbackv5special.flagFeedback( $link.closest(
'.articleFeedbackv5-feedback' ).attr( 'rel' ), 'unabuse', '' );
+
$.articleFeedbackv5special.flagFeedback( $link.closest(
'.articleFeedbackv5-feedback' ).attr( 'rel' ), 'unabuse', '', { } );
}
},
'apiFlagType': 'abuse',
_______________________________________________
MediaWiki-CVS mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs