https://www.mediawiki.org/wiki/Special:Code/MediaWiki/114867

Revision: 114867
Author:   catrope
Date:     2012-04-12 17:42:40 +0000 (Thu, 12 Apr 2012)
Log Message:
-----------
1.19wmf1: Update to master state (d566854a842a3e6e5eb9e95aa6780a09cadfe212)

Modified Paths:
--------------
    
branches/wmf/1.19wmf1/extensions/ArticleFeedbackv5/ArticleFeedbackv5.i18n.php
    
branches/wmf/1.19wmf1/extensions/ArticleFeedbackv5/api/ApiArticleFeedbackv5Utils.php
    
branches/wmf/1.19wmf1/extensions/ArticleFeedbackv5/api/ApiViewActivityArticleFeedbackv5.php
    
branches/wmf/1.19wmf1/extensions/ArticleFeedbackv5/api/ApiViewFeedbackArticleFeedbackv5.php
    
branches/wmf/1.19wmf1/extensions/ArticleFeedbackv5/modules/jquery.articleFeedbackv5/jquery.articleFeedbackv5.special.css
    
branches/wmf/1.19wmf1/extensions/ArticleFeedbackv5/modules/jquery.articleFeedbackv5/jquery.articleFeedbackv5.special.js
    branches/wmf/1.19wmf1/extensions/ArticleFeedbackv5/sql/ArticleFeedbackv5.sql
    branches/wmf/1.19wmf1/extensions/ArticleFeedbackv5/sql/alter.sql
    branches/wmf/1.19wmf1/extensions/ArticleFeedbackv5/sql/filter_count.sql

Added Paths:
-----------
    
branches/wmf/1.19wmf1/extensions/ArticleFeedbackv5/modules/jquery.articleFeedbackv5/images/flag.png
    
branches/wmf/1.19wmf1/extensions/ArticleFeedbackv5/modules/jquery.articleFeedbackv5/images/flag_active.png
    
branches/wmf/1.19wmf1/extensions/ArticleFeedbackv5/modules/jquery.articleFeedbackv5/images/flag_hover.png
    
branches/wmf/1.19wmf1/extensions/ArticleFeedbackv5/modules/jquery.articleFeedbackv5/images/thumbdwn.png
    
branches/wmf/1.19wmf1/extensions/ArticleFeedbackv5/modules/jquery.articleFeedbackv5/images/thumbdwn_active.png
    
branches/wmf/1.19wmf1/extensions/ArticleFeedbackv5/modules/jquery.articleFeedbackv5/images/thumbdwn_hover.png
    
branches/wmf/1.19wmf1/extensions/ArticleFeedbackv5/modules/jquery.articleFeedbackv5/images/thumbup.png
    
branches/wmf/1.19wmf1/extensions/ArticleFeedbackv5/modules/jquery.articleFeedbackv5/images/thumbup_active.png
    
branches/wmf/1.19wmf1/extensions/ArticleFeedbackv5/modules/jquery.articleFeedbackv5/images/thumbup_hover.png
    
branches/wmf/1.19wmf1/extensions/ArticleFeedbackv5/modules/jquery.articleFeedbackv5/images/toolbox_activity.png
    
branches/wmf/1.19wmf1/extensions/ArticleFeedbackv5/modules/jquery.articleFeedbackv5/images/toolbox_activity_hover.png
    
branches/wmf/1.19wmf1/extensions/ArticleFeedbackv5/modules/jquery.articleFeedbackv5/images/toolbox_decline.png
    
branches/wmf/1.19wmf1/extensions/ArticleFeedbackv5/modules/jquery.articleFeedbackv5/images/toolbox_decline_hover.png
    
branches/wmf/1.19wmf1/extensions/ArticleFeedbackv5/modules/jquery.articleFeedbackv5/images/toolbox_feature.png
    
branches/wmf/1.19wmf1/extensions/ArticleFeedbackv5/modules/jquery.articleFeedbackv5/images/toolbox_feature_hover.png
    
branches/wmf/1.19wmf1/extensions/ArticleFeedbackv5/modules/jquery.articleFeedbackv5/images/toolbox_hide.png
    
branches/wmf/1.19wmf1/extensions/ArticleFeedbackv5/modules/jquery.articleFeedbackv5/images/toolbox_hide_hover.png
    
branches/wmf/1.19wmf1/extensions/ArticleFeedbackv5/modules/jquery.articleFeedbackv5/images/toolbox_oversight.png
    
branches/wmf/1.19wmf1/extensions/ArticleFeedbackv5/modules/jquery.articleFeedbackv5/images/toolbox_oversight_hover.png
    
branches/wmf/1.19wmf1/extensions/ArticleFeedbackv5/modules/jquery.articleFeedbackv5/images/toolbox_resolved.png
    
branches/wmf/1.19wmf1/extensions/ArticleFeedbackv5/modules/jquery.articleFeedbackv5/images/toolbox_resolved_hover.png

Property Changed:
----------------
    
branches/wmf/1.19wmf1/extensions/ArticleFeedbackv5/modules/jquery.articleFeedbackv5/images/1x1_tab_blue.png
    
branches/wmf/1.19wmf1/extensions/ArticleFeedbackv5/modules/jquery.articleFeedbackv5/images/flyover_x.png
    
branches/wmf/1.19wmf1/extensions/ArticleFeedbackv5/modules/jquery.articleFeedbackv5/images/tab_x_off.png
    
branches/wmf/1.19wmf1/extensions/ArticleFeedbackv5/modules/jquery.articleFeedbackv5/images/tab_x_on.png

Modified: 
branches/wmf/1.19wmf1/extensions/ArticleFeedbackv5/ArticleFeedbackv5.i18n.php
===================================================================
--- 
branches/wmf/1.19wmf1/extensions/ArticleFeedbackv5/ArticleFeedbackv5.i18n.php   
    2012-04-12 17:34:49 UTC (rev 114866)
+++ 
branches/wmf/1.19wmf1/extensions/ArticleFeedbackv5/ArticleFeedbackv5.i18n.php   
    2012-04-12 17:42:40 UTC (rev 114867)
@@ -46,7 +46,6 @@
        'articlefeedbackv5-error-submit' => 'Form submission error.',
        'articlefeedbackv5-error-nofeedback' => 'Please enter your feedback.',
        'articlefeedbackv5-error-flagging' => 'Error flagging feedback.',
-       'articlefeedbackv5-warning-abuse' => 'Your comment has been 
automatically identified as harmful.  If you believe this comment to be 
constructive, you may click the submit button again to confirm it. A brief 
description of the abuse rule which your action matched is: $1',
 
        /* Special Page */
        'articlefeedbackv5-form-tools-label' => 'Tools',
@@ -147,6 +146,7 @@
        'articlefeedbackv5-mask-text-oversight' => 'This post was oversighted 
by an authorized editor',
        'articlefeedbackv5-mask-postnumber' => 'Post #$1',
        'articlefeedbackv5-special-disclaimer' => 'This is a prototype. Please 
do not use it unless you have been invited to.',
+       'articlefeedbackv5-special-goback' => 'Go back to feedback list',
 
        /* Special page flyover panels */
        /* Hide this post panel */
@@ -489,6 +489,7 @@
        'articlefeedbackv5-special-filter-deleted' => '{{Identical|Deleted}}',
        'articlefeedbackv5-special-sort-age' => '{{Identical|Date}}',
        'articlefeedbackv5-special-sort-rating' => '{{Identical|Rating}}',
+       'articlefeedbackv5-special-goback' => 'Link to take a user from a 
feedback permalink back to the listing of all feedback',
        'articlefeedbackv5-special-sort-label-before' => 'Place to put a label 
before the sort options',
        'articlefeedbackv5-special-filter-label-before' => 'Place to put a 
label before the filter select box',
        'articlefeedbackv5-special-showing' => 'Text to show how many feedback 
psots have been posted to this article. $1 is the number of posts (needs plural 
support)',

Modified: 
branches/wmf/1.19wmf1/extensions/ArticleFeedbackv5/api/ApiArticleFeedbackv5Utils.php
===================================================================
--- 
branches/wmf/1.19wmf1/extensions/ArticleFeedbackv5/api/ApiArticleFeedbackv5Utils.php
        2012-04-12 17:34:49 UTC (rev 114866)
+++ 
branches/wmf/1.19wmf1/extensions/ArticleFeedbackv5/api/ApiArticleFeedbackv5Utils.php
        2012-04-12 17:42:40 UTC (rev 114867)
@@ -225,9 +225,11 @@
 
                // log type might be afv5 or suppress
                $logtype = 'articlefeedbackv5';
+               $increment = 'af_activity_count';
 
                if ( in_array( $type, $suppress ) ) {
                        $logtype = 'suppress';
+                       $increment = 'af_suppress_count';
                }
 
                // we only have the page id, we need the string page name for 
the permalink
@@ -271,7 +273,7 @@
 
                $dbw->update(
                        'aft_article_feedback',
-                       array( 'af_activity_count = af_activity_count + 1' ),
+                       array( $increment .' = ' .$increment . ' + 1' ),
                        array(
                                'af_id' => $itemId
                        ),

Modified: 
branches/wmf/1.19wmf1/extensions/ArticleFeedbackv5/api/ApiViewActivityArticleFeedbackv5.php
===================================================================
--- 
branches/wmf/1.19wmf1/extensions/ArticleFeedbackv5/api/ApiViewActivityArticleFeedbackv5.php
 2012-04-12 17:34:49 UTC (rev 114866)
+++ 
branches/wmf/1.19wmf1/extensions/ArticleFeedbackv5/api/ApiViewActivityArticleFeedbackv5.php
 2012-04-12 17:42:40 UTC (rev 114867)
@@ -111,8 +111,13 @@
                        $html .= Html::closeElement( 'div' );
 
                        // <div class="articleFeedbackv5-activity-count">$n 
actions on this post</div>
+                       if ( $wgUser->isAllowed( 'aftv5-delete-feedback' ) ) {
+                               $activity_count = $feedback->af_activity_count 
+ $feedback->af_suppress_count;
+                       } else {
+                               $activity_count = $feedback->af_activity_count;
+                       }
                        $html .= Html::element( 'div', array( 'class' => 
'articleFeedbackv5-activity-count' ),
-                                       wfMessage( 
'articlefeedbackv5-activity-count' )->numParams( $feedback->af_activity_count 
)->text() );
+                                       wfMessage( 
'articlefeedbackv5-activity-count' )->numParams( $activity_count )->text() );
 
                        // </div> for class="articleFeedbackv5-activity-pane"
                        $html .= Html::closeElement( 'div' );
@@ -218,7 +223,8 @@
                                'af_user_id',
                                'af_user_ip',
                                'af_created',
-                               'af_activity_count' ),
+                               'af_activity_count',
+                               'af_suppress_count' ),
                        array(
                                'af_id'     => $feedbackId,
                        ),

Modified: 
branches/wmf/1.19wmf1/extensions/ArticleFeedbackv5/api/ApiViewFeedbackArticleFeedbackv5.php
===================================================================
--- 
branches/wmf/1.19wmf1/extensions/ArticleFeedbackv5/api/ApiViewFeedbackArticleFeedbackv5.php
 2012-04-12 17:34:49 UTC (rev 114866)
+++ 
branches/wmf/1.19wmf1/extensions/ArticleFeedbackv5/api/ApiViewFeedbackArticleFeedbackv5.php
 2012-04-12 17:42:40 UTC (rev 114867)
@@ -17,6 +17,7 @@
        private $continue   = null;
        private $continueId = null;
        private $showMore   = false;
+       private $isPermalink = false;
 
        /**
         * Constructor
@@ -50,6 +51,14 @@
                        $length++;
                }
 
+               if ( $this->isPermalink ) {
+                       $page_title = 
Title::newFromRow($record[0])->getPrefixedText();
+
+                       $html .= Linker::link(
+                                       SpecialPage::getTitleFor( 
'ArticleFeedbackv5', $page_title ),
+                                       wfMessage( 
'articlefeedbackv5-special-goback' )->escaped());
+               }
+
                $result->addValue( $this->getModuleName(), 'length', $length );
                $result->addValue( $this->getModuleName(), 'count', $count );
                $result->addValue( $this->getModuleName(), 'more', 
$this->showMore );
@@ -133,6 +142,7 @@
                // Build WHERE clause.
                // Filter applied , if any:
                $where = $this->getFilterCriteria( $filter, $filterValue );
+
                // PageID:
                $where['af_page_id'] = $pageId;
                // Continue SQL, if any:
@@ -287,7 +297,8 @@
                                break;
                        case 'id':
                                # Used for permalinks.
-                               $where['af_id'] = $filterValue;
+                               $where = array('af_id' => $filterValue);
+                               $this->isPermalink = true;
                                break;
                        case 'visible':
                                $where[] = 'af_is_deleted IS FALSE';
@@ -349,166 +360,226 @@
                $can_delete = $wgUser->isAllowed( 'aftv5-delete-feedback' );
                $default_user = wfMessage( 'articlefeedbackv5-default-user' 
)->text();
 
-               $footer_links = Html::openElement( 'div', array(
-                       'class' => 'articleFeedbackv5-vote-wrapper'
-               ) )
-               . Html::openElement( 'div', array( 'class' => 
'articleFeedbackv5-comment-foot' ) );
+               // if this is permalinked - if oversighted  or hidden we might 
be doing empty gray mask
+               if  ( ( $this->isPermalink && $record[0]->af_is_deleted
+                    && !$wgUser->isAllowed( 'aftv5-see-deleted-feedback' ) )
+                    || ( $this->isPermalink && $record[0]->af_is_hidden
+                    && !$wgUser->isAllowed( 'aftv5-see-hidden-feedback' ) ) ) {
 
-               if ( $can_vote ) {
-                       $footer_links .= Html::element( 'span', array(
-                               'class' => 'articleFeedbackv5-helpful-caption'
-                       ), wfMessage( 'articlefeedbackv5-form-helpful-label' 
)->text()
-                       )
-                       . Html::element( 'a', array(
-                               'id'    => "articleFeedbackv5-helpful-link-$id",
-                               'class' => 'articleFeedbackv5-helpful-link'
-                       ), wfMessage( 
'articlefeedbackv5-form-helpful-yes-label' )->text() )
-                       . Html::element( 'a', array(
-                               'id'    => 
"articleFeedbackv5-unhelpful-link-$id",
-                               'class' => 'articleFeedbackv5-unhelpful-link'
-                       ), wfMessage( 'articlefeedbackv5-form-helpful-no-label' 
)->text() );
-               }
-               $footer_links .= Html::element( 'span', array(
-                       'class' => 'articleFeedbackv5-helpful-votes',
-                       'id'    => "articleFeedbackv5-helpful-votes-$id"
-               ), wfMessage( 'articlefeedbackv5-form-helpful-votes',
-                       $wgLang->formatNum( $record[0]->af_helpful_count ),
-                       $wgLang->formatNum( $record[0]->af_unhelpful_count )
-               )->text() );
-               $footer_links .= Html::closeElement( 'div' );
-               if ( $can_flag ) {
-                       $aclass = 'articleFeedbackv5-abuse-link';
-                       global $wgArticleFeedbackv5AbusiveThreshold;
-                       if ( $record[0]->af_abuse_count >= 
$wgArticleFeedbackv5AbusiveThreshold ) {
-                               $aclass .= ' abusive';
+                       // hide or oversight?
+                       if ( $record[0]->af_is_deleted ) {
+                               $user = $record[0]->af_oversight_user_id;
+                               $timestamp = $record[0]->af_oversight_timestamp;
+                               $class = 'oversight';
+                               $msg_string = 'deleted';
+                       } else {
+                               $user = $record[0]->af_hide_user_id;
+                               $timestamp = $record[0]->af_hide_timestamp;
+                               $class = 'hidden';
+                               $msg_string = $class;
                        }
-                       // Count masked if user cannot hide comments (as per 
Fabrice)
-                       $msg = $can_hide ? 'articlefeedbackv5-form-abuse' : 
'articlefeedbackv5-form-abuse-masked';
-                       $footer_links .= Html::element( 'a', array(
-                               'id'    => "articleFeedbackv5-abuse-link-$id",
-                               'class' => $aclass,
-                               'href'  => '#',
-                               'rel'   => $record[0]->af_abuse_count
-                       ), wfMessage( $msg, $wgLang->formatNum( 
$record[0]->af_abuse_count ) )->text() );
-               }
-               $footer_links .= Html::closeElement( 'div' );
 
-               /*$footer_links .= Html::element( 'span', array(
-                       'class' => 'articleFeedbackv5-helpful-votes'
-               ), wfMessage( 'articlefeedbackv5-form-helpful-votes', ( 
$record[0]->af_helpful_count + $record[0]->af_unhelpful_count ), 
$record[0]->af_helpful_count, $record[0]->af_unhelpful_count ) )
-               . ( $can_flag ? Html::rawElement( 'div', array(
-                       'class' => 'articleFeedbackv5-abuse-link-wrap'
-               ), Html::element( 'a', array(
-                       'id'    => "articleFeedbackv5-abuse-link-$id",
-                       'class' => 'articleFeedbackv5-abuse-link'
-               ), wfMessage( 'articlefeedbackv5-form-abuse', 
$record[0]->af_abuse_count )->text() ) ) : '' )
-               . Html::closeElement( 'div' );*/
+                       $user_link = ApiArticleFeedbackv5Utils::getUserLink( 
$user, $default_user );
+                       $user_timestamp =  wfTimestamp( TS_RFC2822, $timestamp 
);
 
-               // Don't render the toolbox if they can't do anything with it.
-               $tools = null;
-               if ( $can_hide || $can_delete ) {
-                       $tools = Html::openElement( 'div', array(
-                               'class' => 'articleFeedbackv5-feedback-tools',
-                               'id'    => 'articleFeedbackv5-feedback-tools-' 
. $id
+                       return Html::openElement( 'div',  array(
+                                       'class' => 'articleFeedbackv5-feedback 
articleFeedbackv5-feedback-' . $class . ' articleFeedbackv5-feedback-emptymask'
+                               ) )
+                               . Html::openElement( 'div', array(
+                                       'class' => 
'articleFeedbackv5-post-screen'
+                               ) )
+                               . Html::openElement( 'div', array(
+                                       'class' => 
'articleFeedbackv5-mask-text-wrapper'
+                               ) )
+                               . Html::element( 'span', array(
+                                       'class' => 'articleFeedbackv5-mask-text'
+                                       ), wfMessage( 
'articlefeedbackv5-mask-text-' . $class )->text())
+                               . Html::element( 'span', array(
+                                       'class' => 
'articleFeedbackv5-mask-postid'
+                                       ), wfMessage( 
'articlefeedbackv5-mask-postnumber' )
+                                               ->numParams($record[0]->af_id)
+                                               ->text()
+                                       )
+                               . Html::closeElement( 'div' )
+                               . Html::closeElement( 'div' )
+
+                               . Html::rawElement( 'span', array(
+                                       'class' => 
'articleFeedbackv5-feedback-' . $msg_string . '-marker'
+                                       ),
+                                       wfMessage( 'articlefeedbackv5-' . 
$msg_string)
+                                               ->rawParams($user_link, 
$user_timestamp )
+                                               ->escaped()
+                                       )
+
+                               . Html::element( 'div', array(
+                                       'class' => 
'articleFeedbackv5-comment-wrap articleFeedbackv5-h3-push'
+                                       ) )
+                               . Html::closeElement( 'div' );
+
+               // otherwise this is not permalinked so render normally
+               } else {
+
+                       $footer_links = Html::openElement( 'div', array(
+                               'class' => 'articleFeedbackv5-vote-wrapper'
                        ) )
-                       . Html::element( 'h3', array(
-                               'id' => 
'articleFeedbackv5-feedback-tools-header-' . $id
-                       ), wfMessage( 'articlefeedbackv5-form-tools-label' 
)->text() )
-                       . Html::openElement( 'ul', array(
-                               'id' => 
'articleFeedbackv5-feedback-tools-list-' . $id
-                       ) );
-
-                       if ( $can_hide ) {
-                               if ( $record[0]->af_is_hidden ) {
-                                       $msg = 'unhide';
-                                       $class = 'show';
-                               } else {
-                                       $msg = 'hide';
-                                       $class = 'hide';
-                               }
-                               $tools .= Html::rawElement( 'li', array(), 
Html::element( 'a', array(
-                                       'id'    => 
"articleFeedbackv5-$class-link-$id",
-                                       'class' => 
"articleFeedbackv5-$class-link",
-                                       'href' => '#',
-                               ), wfMessage( "articlefeedbackv5-form-" . $msg 
)->text() ) );
+                       . Html::openElement( 'div', array( 'class' => 
'articleFeedbackv5-comment-foot' ) );
+       
+                       if ( $can_vote ) {
+                               $footer_links .= Html::element( 'span', array(
+                                       'class' => 
'articleFeedbackv5-helpful-caption'
+                               ), wfMessage( 
'articlefeedbackv5-form-helpful-label' )->text()
+                               )
+                               . Html::element( 'a', array(
+                                       'id'    => 
"articleFeedbackv5-helpful-link-$id",
+                                       'class' => 
'articleFeedbackv5-helpful-link'
+                               ), wfMessage( 
'articlefeedbackv5-form-helpful-yes-label' )->text() )
+                               . Html::element( 'a', array(
+                                       'id'    => 
"articleFeedbackv5-unhelpful-link-$id",
+                                       'class' => 
'articleFeedbackv5-unhelpful-link'
+                               ), wfMessage( 
'articlefeedbackv5-form-helpful-no-label' )->text() );
                        }
-
-                       // !can delete == request oversight
-                       if ( $can_hide && !$can_delete ) {
-                               if ( $record[0]->af_oversight_count > 0 ) {
-                                       $msg = 'unoversight';
-                                       $class = 'unrequestoversight';
-                               } else {
-                                       $msg = 'oversight';
-                                       $class = 'requestoversight';
+                       $footer_links .= Html::element( 'span', array(
+                               'class' => 'articleFeedbackv5-helpful-votes',
+                               'id'    => "articleFeedbackv5-helpful-votes-$id"
+                       ), wfMessage( 'articlefeedbackv5-form-helpful-votes',
+                               $wgLang->formatNum( 
$record[0]->af_helpful_count ),
+                               $wgLang->formatNum( 
$record[0]->af_unhelpful_count )
+                       )->text() );
+                       $footer_links .= Html::closeElement( 'div' );
+                       if ( $can_flag ) {
+                               $aclass = 'articleFeedbackv5-abuse-link';
+                               global $wgArticleFeedbackv5AbusiveThreshold;
+                               if ( $record[0]->af_abuse_count >= 
$wgArticleFeedbackv5AbusiveThreshold ) {
+                                       $aclass .= ' abusive';
                                }
-                               $tools .= Html::rawElement( 'li', array(), 
Html::element( 'a', array(
-                                       'id'    => 
"articleFeedbackv5-$class-link-$id",
-                                       'class' => 
"articleFeedbackv5-$class-link",
-                                       'href' => '#',
-                               ), wfMessage( "articlefeedbackv5-form-" . $msg 
)->text() ) );
+                               // Count masked if user cannot hide comments 
(as per Fabrice)
+                               $msg = $can_hide ? 
'articlefeedbackv5-form-abuse' : 'articlefeedbackv5-form-abuse-masked';
+                               $footer_links .= Html::element( 'a', array(
+                                       'id'    => 
"articleFeedbackv5-abuse-link-$id",
+                                       'class' => $aclass,
+                                       'href'  => '#',
+                                       'rel'   => $record[0]->af_abuse_count
+                               ), wfMessage( $msg, $wgLang->formatNum( 
$record[0]->af_abuse_count ) )->text() );
                        }
+                       $footer_links .= Html::closeElement( 'div' );
+       
+                       /*$footer_links .= Html::element( 'span', array(
+                               'class' => 'articleFeedbackv5-helpful-votes'
+                       ), wfMessage( 'articlefeedbackv5-form-helpful-votes', ( 
$record[0]->af_helpful_count + $record[0]->af_unhelpful_count ), 
$record[0]->af_helpful_count, $record[0]->af_unhelpful_count ) )
+                       . ( $can_flag ? Html::rawElement( 'div', array(
+                               'class' => 'articleFeedbackv5-abuse-link-wrap'
+                       ), Html::element( 'a', array(
+                               'id'    => "articleFeedbackv5-abuse-link-$id",
+                               'class' => 'articleFeedbackv5-abuse-link'
+                       ), wfMessage( 'articlefeedbackv5-form-abuse', 
$record[0]->af_abuse_count )->text() ) ) : '' )
+                       . Html::closeElement( 'div' );*/
+       
+                       // Don't render the toolbox if they can't do anything 
with it.
+                       $tools = null;
+                       if ( $can_hide || $can_delete ) {
+                               $tools = Html::openElement( 'div', array(
+                                       'class' => 
'articleFeedbackv5-feedback-tools',
+                                       'id'    => 
'articleFeedbackv5-feedback-tools-' . $id
+                               ) )
+                               . Html::element( 'h3', array(
+                                       'id' => 
'articleFeedbackv5-feedback-tools-header-' . $id
+                               ), wfMessage( 
'articlefeedbackv5-form-tools-label' )->text() )
+                               . Html::openElement( 'ul', array(
+                                       'id' => 
'articleFeedbackv5-feedback-tools-list-' . $id
+                               ) );
 
-                       // can delete == do oversight
-                       if ( $can_delete ) {
-
-                               // if we have oversight requested, add "decline 
oversight" link
-                               if ( $record[0]->af_oversight_count > 0 ) {
+                               if ( $can_hide ) {
+                                       if ( $record[0]->af_is_hidden ) {
+                                               $msg = 'unhide';
+                                               $class = 'show';
+                                       } else {
+                                               $msg = 'hide';
+                                               $class = 'hide';
+                                       }
                                        $tools .= Html::rawElement( 'li', 
array(), Html::element( 'a', array(
-                                               'id'    => 
"articleFeedbackv5-declineoversight-link-$id",
-                                               'class' => 
"articleFeedbackv5-declineoversight-link",
+                                               'id'    => 
"articleFeedbackv5-$class-link-$id",
+                                               'class' => 
"articleFeedbackv5-$class-link",
                                                'href' => '#',
-                                               ), wfMessage( 
"articlefeedbackv5-form-decline" )->text() ) );
+                                       ), wfMessage( "articlefeedbackv5-form-" 
. $msg )->text() ) );
                                }
-
-                               if ( $record[0]->af_is_deleted > 0 ) {
-                                       $msg = 'undelete';
-                                       $class = 'unoversight';
-                               } else {
-                                       $msg = 'delete';
-                                       $class = 'oversight';
+       
+                               // !can delete == request oversight
+                               if ( $can_hide && !$can_delete ) {
+                                       if ( $record[0]->af_oversight_count > 0 
) {
+                                               $msg = 'unoversight';
+                                               $class = 'unrequestoversight';
+                                       } else {
+                                               $msg = 'oversight';
+                                               $class = 'requestoversight';
+                                       }
+                                       $tools .= Html::rawElement( 'li', 
array(), Html::element( 'a', array(
+                                               'id'    => 
"articleFeedbackv5-$class-link-$id",
+                                               'class' => 
"articleFeedbackv5-$class-link",
+                                               'href' => '#',
+                                       ), wfMessage( "articlefeedbackv5-form-" 
. $msg )->text() ) );
                                }
+       
+                               // can delete == do oversight
+                               if ( $can_delete ) {
+       
+                                       // if we have oversight requested, add 
"decline oversight" link
+                                       if ( $record[0]->af_oversight_count > 0 
) {
+                                               $tools .= Html::rawElement( 
'li', array(), Html::element( 'a', array(
+                                                       'id'    => 
"articleFeedbackv5-declineoversight-link-$id",
+                                                       'class' => 
"articleFeedbackv5-declineoversight-link",
+                                                       'href' => '#',
+                                                       ), wfMessage( 
"articlefeedbackv5-form-decline" )->text() ) );
+                                       }
+       
+                                       if ( $record[0]->af_is_deleted > 0 ) {
+                                               $msg = 'undelete';
+                                               $class = 'unoversight';
+                                       } else {
+                                               $msg = 'delete';
+                                               $class = 'oversight';
+                                       }
+                                       $tools .= Html::rawElement( 'li', 
array(), Html::element( 'a', array(
+                                               'id'    => 
"articleFeedbackv5-$class-link-$id",
+                                               'class' => 
"articleFeedbackv5-$class-link",
+                                               'href' => '#',
+                                       ), wfMessage( "articlefeedbackv5-form-" 
. $msg )->text() ) );
+                               }
+       
+                               // view activity link
                                $tools .= Html::rawElement( 'li', array(), 
Html::element( 'a', array(
-                                       'id'    => 
"articleFeedbackv5-$class-link-$id",
-                                       'class' => 
"articleFeedbackv5-$class-link",
-                                       'href' => '#',
-                               ), wfMessage( "articlefeedbackv5-form-" . $msg 
)->text() ) );
+                                               'id'    => 
"articleFeedbackv5-activity-link-$id",
+                                               'class' => 
"articleFeedbackv5-activity-link",
+                                               'href' => '#',
+                                       ), wfMessage( 
"articlefeedbackv5-viewactivity" )->text() ) );
+       
+                               $tools .= Html::closeElement( 'ul' )
+                               . Html::closeElement( 'div' );
                        }
-
-                       // view activity link
-                       $tools .= Html::rawElement( 'li', array(), 
Html::element( 'a', array(
-                                       'id'    => 
"articleFeedbackv5-activity-link-$id",
-                                       'class' => 
"articleFeedbackv5-activity-link",
-                                       'href' => '#',
-                               ), wfMessage( "articlefeedbackv5-viewactivity" 
)->text() ) );
-
-                       $tools .= Html::closeElement( 'ul' )
-                       . Html::closeElement( 'div' );
+       
+                       $topClass = 'articleFeedbackv5-feedback';
+                       if ( $record[0]->af_is_hidden ) {
+                               $topClass .= ' 
articleFeedbackv5-feedback-hidden';
+                       }
+                       if ( $record[0]->af_is_deleted ) {
+                               $topClass .= ' 
articleFeedbackv5-feedback-deleted';
+                       }
+       
+                       $attributes = array(
+                               'class' => $topClass,
+                               'rel'   => $id
+                       );
+                       if ( $record[0]->af_is_hidden ) {
+       
+                               $attributes['hide-user'] = 
ApiArticleFeedbackv5Utils::getUserLink( $record[0]->af_hide_user_id, 
$default_user );
+                               $attributes['hide-timestamp'] =  wfTimestamp( 
TS_RFC2822, $record[0]->af_hide_timestamp );
+                       }
+                       if ( $record[0]->af_is_deleted ) {
+       
+                               $attributes['oversight-user'] = 
ApiArticleFeedbackv5Utils::getUserLink( $record[0]->af_oversight_user_id, 
$default_user );
+                               $attributes['oversight-timestamp'] =  
wfTimestamp( TS_RFC2822, $record[0]->af_oversight_timestamp );
+                       }
                }
 
-               $topClass = 'articleFeedbackv5-feedback';
-               if ( $record[0]->af_is_hidden ) {
-                       $topClass .= ' articleFeedbackv5-feedback-hidden';
-               }
-               if ( $record[0]->af_is_deleted ) {
-                       $topClass .= ' articleFeedbackv5-feedback-deleted';
-               }
-
-               $attributes = array(
-                       'class' => $topClass,
-                       'rel'   => $id
-               );
-               if ( $record[0]->af_is_hidden ) {
-
-                       $attributes['hide-user'] = 
ApiArticleFeedbackv5Utils::getUserLink( $record[0]->af_hide_user_id, 
$default_user );
-                       $attributes['hide-timestamp'] =  wfTimestamp( 
TS_RFC2822, $record[0]->af_hide_timestamp );
-               }
-               if ( $record[0]->af_is_deleted ) {
-
-                       $attributes['oversight-user'] = 
ApiArticleFeedbackv5Utils::getUserLink( $record[0]->af_oversight_user_id, 
$default_user );
-                       $attributes['oversight-timestamp'] =  wfTimestamp( 
TS_RFC2822, $record[0]->af_oversight_timestamp );
-               }
-
                return Html::openElement( 'div', $attributes )
                . Html::openElement( 'div', array(
                        'class' => "articleFeedbackv5-comment-wrap"


Property changes on: 
branches/wmf/1.19wmf1/extensions/ArticleFeedbackv5/modules/jquery.articleFeedbackv5/images/1x1_tab_blue.png
___________________________________________________________________
Modified: svn:mime-type
   - application/octet-stream
   + image/png

Added: 
branches/wmf/1.19wmf1/extensions/ArticleFeedbackv5/modules/jquery.articleFeedbackv5/images/flag.png
===================================================================
(Binary files differ)


Property changes on: 
branches/wmf/1.19wmf1/extensions/ArticleFeedbackv5/modules/jquery.articleFeedbackv5/images/flag.png
___________________________________________________________________
Added: svn:mime-type
   + image/png

Added: 
branches/wmf/1.19wmf1/extensions/ArticleFeedbackv5/modules/jquery.articleFeedbackv5/images/flag_active.png
===================================================================
(Binary files differ)


Property changes on: 
branches/wmf/1.19wmf1/extensions/ArticleFeedbackv5/modules/jquery.articleFeedbackv5/images/flag_active.png
___________________________________________________________________
Added: svn:mime-type
   + image/png

Added: 
branches/wmf/1.19wmf1/extensions/ArticleFeedbackv5/modules/jquery.articleFeedbackv5/images/flag_hover.png
===================================================================
(Binary files differ)


Property changes on: 
branches/wmf/1.19wmf1/extensions/ArticleFeedbackv5/modules/jquery.articleFeedbackv5/images/flag_hover.png
___________________________________________________________________
Added: svn:mime-type
   + image/png


Property changes on: 
branches/wmf/1.19wmf1/extensions/ArticleFeedbackv5/modules/jquery.articleFeedbackv5/images/flyover_x.png
___________________________________________________________________
Modified: svn:mime-type
   - application/octet-stream
   + image/png


Property changes on: 
branches/wmf/1.19wmf1/extensions/ArticleFeedbackv5/modules/jquery.articleFeedbackv5/images/tab_x_off.png
___________________________________________________________________
Modified: svn:mime-type
   - application/octet-stream
   + image/png


Property changes on: 
branches/wmf/1.19wmf1/extensions/ArticleFeedbackv5/modules/jquery.articleFeedbackv5/images/tab_x_on.png
___________________________________________________________________
Modified: svn:mime-type
   - application/octet-stream
   + image/png

Added: 
branches/wmf/1.19wmf1/extensions/ArticleFeedbackv5/modules/jquery.articleFeedbackv5/images/thumbdwn.png
===================================================================
(Binary files differ)


Property changes on: 
branches/wmf/1.19wmf1/extensions/ArticleFeedbackv5/modules/jquery.articleFeedbackv5/images/thumbdwn.png
___________________________________________________________________
Added: svn:mime-type
   + image/png

Added: 
branches/wmf/1.19wmf1/extensions/ArticleFeedbackv5/modules/jquery.articleFeedbackv5/images/thumbdwn_active.png
===================================================================
(Binary files differ)


Property changes on: 
branches/wmf/1.19wmf1/extensions/ArticleFeedbackv5/modules/jquery.articleFeedbackv5/images/thumbdwn_active.png
___________________________________________________________________
Added: svn:mime-type
   + image/png

Added: 
branches/wmf/1.19wmf1/extensions/ArticleFeedbackv5/modules/jquery.articleFeedbackv5/images/thumbdwn_hover.png
===================================================================
(Binary files differ)


Property changes on: 
branches/wmf/1.19wmf1/extensions/ArticleFeedbackv5/modules/jquery.articleFeedbackv5/images/thumbdwn_hover.png
___________________________________________________________________
Added: svn:mime-type
   + image/png

Added: 
branches/wmf/1.19wmf1/extensions/ArticleFeedbackv5/modules/jquery.articleFeedbackv5/images/thumbup.png
===================================================================
(Binary files differ)


Property changes on: 
branches/wmf/1.19wmf1/extensions/ArticleFeedbackv5/modules/jquery.articleFeedbackv5/images/thumbup.png
___________________________________________________________________
Added: svn:mime-type
   + image/png

Added: 
branches/wmf/1.19wmf1/extensions/ArticleFeedbackv5/modules/jquery.articleFeedbackv5/images/thumbup_active.png
===================================================================
(Binary files differ)


Property changes on: 
branches/wmf/1.19wmf1/extensions/ArticleFeedbackv5/modules/jquery.articleFeedbackv5/images/thumbup_active.png
___________________________________________________________________
Added: svn:mime-type
   + image/png

Added: 
branches/wmf/1.19wmf1/extensions/ArticleFeedbackv5/modules/jquery.articleFeedbackv5/images/thumbup_hover.png
===================================================================
(Binary files differ)


Property changes on: 
branches/wmf/1.19wmf1/extensions/ArticleFeedbackv5/modules/jquery.articleFeedbackv5/images/thumbup_hover.png
___________________________________________________________________
Added: svn:mime-type
   + image/png

Added: 
branches/wmf/1.19wmf1/extensions/ArticleFeedbackv5/modules/jquery.articleFeedbackv5/images/toolbox_activity.png
===================================================================
(Binary files differ)


Property changes on: 
branches/wmf/1.19wmf1/extensions/ArticleFeedbackv5/modules/jquery.articleFeedbackv5/images/toolbox_activity.png
___________________________________________________________________
Added: svn:mime-type
   + image/png

Added: 
branches/wmf/1.19wmf1/extensions/ArticleFeedbackv5/modules/jquery.articleFeedbackv5/images/toolbox_activity_hover.png
===================================================================
(Binary files differ)


Property changes on: 
branches/wmf/1.19wmf1/extensions/ArticleFeedbackv5/modules/jquery.articleFeedbackv5/images/toolbox_activity_hover.png
___________________________________________________________________
Added: svn:mime-type
   + image/png

Added: 
branches/wmf/1.19wmf1/extensions/ArticleFeedbackv5/modules/jquery.articleFeedbackv5/images/toolbox_decline.png
===================================================================
(Binary files differ)


Property changes on: 
branches/wmf/1.19wmf1/extensions/ArticleFeedbackv5/modules/jquery.articleFeedbackv5/images/toolbox_decline.png
___________________________________________________________________
Added: svn:mime-type
   + image/png

Added: 
branches/wmf/1.19wmf1/extensions/ArticleFeedbackv5/modules/jquery.articleFeedbackv5/images/toolbox_decline_hover.png
===================================================================
(Binary files differ)


Property changes on: 
branches/wmf/1.19wmf1/extensions/ArticleFeedbackv5/modules/jquery.articleFeedbackv5/images/toolbox_decline_hover.png
___________________________________________________________________
Added: svn:mime-type
   + image/png

Added: 
branches/wmf/1.19wmf1/extensions/ArticleFeedbackv5/modules/jquery.articleFeedbackv5/images/toolbox_feature.png
===================================================================
(Binary files differ)


Property changes on: 
branches/wmf/1.19wmf1/extensions/ArticleFeedbackv5/modules/jquery.articleFeedbackv5/images/toolbox_feature.png
___________________________________________________________________
Added: svn:mime-type
   + image/png

Added: 
branches/wmf/1.19wmf1/extensions/ArticleFeedbackv5/modules/jquery.articleFeedbackv5/images/toolbox_feature_hover.png
===================================================================
(Binary files differ)


Property changes on: 
branches/wmf/1.19wmf1/extensions/ArticleFeedbackv5/modules/jquery.articleFeedbackv5/images/toolbox_feature_hover.png
___________________________________________________________________
Added: svn:mime-type
   + image/png

Added: 
branches/wmf/1.19wmf1/extensions/ArticleFeedbackv5/modules/jquery.articleFeedbackv5/images/toolbox_hide.png
===================================================================
(Binary files differ)


Property changes on: 
branches/wmf/1.19wmf1/extensions/ArticleFeedbackv5/modules/jquery.articleFeedbackv5/images/toolbox_hide.png
___________________________________________________________________
Added: svn:mime-type
   + image/png

Added: 
branches/wmf/1.19wmf1/extensions/ArticleFeedbackv5/modules/jquery.articleFeedbackv5/images/toolbox_hide_hover.png
===================================================================
(Binary files differ)


Property changes on: 
branches/wmf/1.19wmf1/extensions/ArticleFeedbackv5/modules/jquery.articleFeedbackv5/images/toolbox_hide_hover.png
___________________________________________________________________
Added: svn:mime-type
   + image/png

Added: 
branches/wmf/1.19wmf1/extensions/ArticleFeedbackv5/modules/jquery.articleFeedbackv5/images/toolbox_oversight.png
===================================================================
(Binary files differ)


Property changes on: 
branches/wmf/1.19wmf1/extensions/ArticleFeedbackv5/modules/jquery.articleFeedbackv5/images/toolbox_oversight.png
___________________________________________________________________
Added: svn:mime-type
   + image/png

Added: 
branches/wmf/1.19wmf1/extensions/ArticleFeedbackv5/modules/jquery.articleFeedbackv5/images/toolbox_oversight_hover.png
===================================================================
(Binary files differ)


Property changes on: 
branches/wmf/1.19wmf1/extensions/ArticleFeedbackv5/modules/jquery.articleFeedbackv5/images/toolbox_oversight_hover.png
___________________________________________________________________
Added: svn:mime-type
   + image/png

Added: 
branches/wmf/1.19wmf1/extensions/ArticleFeedbackv5/modules/jquery.articleFeedbackv5/images/toolbox_resolved.png
===================================================================
(Binary files differ)


Property changes on: 
branches/wmf/1.19wmf1/extensions/ArticleFeedbackv5/modules/jquery.articleFeedbackv5/images/toolbox_resolved.png
___________________________________________________________________
Added: svn:mime-type
   + image/png

Added: 
branches/wmf/1.19wmf1/extensions/ArticleFeedbackv5/modules/jquery.articleFeedbackv5/images/toolbox_resolved_hover.png
===================================================================
(Binary files differ)


Property changes on: 
branches/wmf/1.19wmf1/extensions/ArticleFeedbackv5/modules/jquery.articleFeedbackv5/images/toolbox_resolved_hover.png
___________________________________________________________________
Added: svn:mime-type
   + image/png

Modified: 
branches/wmf/1.19wmf1/extensions/ArticleFeedbackv5/modules/jquery.articleFeedbackv5/jquery.articleFeedbackv5.special.css
===================================================================
--- 
branches/wmf/1.19wmf1/extensions/ArticleFeedbackv5/modules/jquery.articleFeedbackv5/jquery.articleFeedbackv5.special.css
    2012-04-12 17:34:49 UTC (rev 114866)
+++ 
branches/wmf/1.19wmf1/extensions/ArticleFeedbackv5/modules/jquery.articleFeedbackv5/jquery.articleFeedbackv5.special.css
    2012-04-12 17:42:40 UTC (rev 114867)
@@ -10,11 +10,11 @@
        clear: both;
 }
 .articlefeedbackv5-beta-notice {
-    text-transform: uppercase;
-    color: #800;
-    font-size: 1.4em;
-    font-weight: normal;
-    display: block;
+       text-transform: uppercase;
+       color: #800;
+       font-size: 1.4em;
+       font-weight: normal;
+       display: block;
        position: relative;
        top: 1.3em;
        left: 3em;
@@ -46,7 +46,7 @@
        font-size: 1.4em;
        margin: 15px 0 5px 0;
        float: left;
-}  
+}
 #articleFeedbackv5-percent-found-wrap .stat-marker {
        font-weight: bold;
        line-height: 32px;
@@ -109,7 +109,7 @@
        top: 0;
        right: 150;
        font-size: 1.125em;
-       width: 140px;
+       width: 160px;
 }
 
 #articleFeedbackv5-show-feedback {
@@ -147,7 +147,7 @@
 }
 .articleFeedbackv5-feedback .articleFeedbackv5-feedback-tools {
        /* display: none; */
-       width: 140px;
+       width: 160px;
        position: absolute;
        top: 10px;
        right: 10px;
@@ -157,7 +157,7 @@
        text-align: center;
        font-weight: normal;
        font-size: 1em;
-       width: 140px;
+       width: 160px;
        height: 20px;
        line-height: 15px;
        margin: 0;
@@ -252,17 +252,96 @@
        margin: 0;
        padding: 0;
 }
-
-#articleFeedbackv5-show-feedback .articleFeedbackv5-abuse-link {
+.articleFeedbackv5-hide-link, .articleFeedbackv5-delete-link {
        cursor: pointer;
 }
-.articleFeedbackv5-hide-link, .articleFeedbackv5-delete-link {
+
+.articleFeedbackv5-feedback-tools li a {
+       display: block;
+       padding-left: 30px;
+       height: 25px;
+       background-repeat: no-repeat;
+       background-position: left bottom;
+}
+.articleFeedbackv5-feedback-tools li a.articleFeedbackv5-hide-link,
+.articleFeedbackv5-feedback-tools li a.articleFeedbackv5-show-link {
+       /* @embed */
+       background-image: url(images/toolbox_hide.png);
+}
+.articleFeedbackv5-feedback-tools li a.articleFeedbackv5-hide-link:hover,
+.articleFeedbackv5-feedback-tools li a.articleFeedbackv5-show-link:hover {
+       /* @embed */
+       background-image: url(images/toolbox_hide_hover.png);
+}
+.articleFeedbackv5-feedback-tools li a.articleFeedbackv5-feature-link {
+       /* @embed */
+       background-image: url(images/toolbox_feature.png);
+}
+.articleFeedbackv5-feedback-tools li a.articleFeedbackv5-feature-link:hover {
+       /* @embed */
+       background-image: url(images/toolbox_feature_hover.png);
+}
+.articleFeedbackv5-feedback-tools li a.articleFeedbackv5-requestoversight-link,
+.articleFeedbackv5-feedback-tools li a.articleFeedbackv5-oversight-link,
+.articleFeedbackv5-feedback-tools li a.articleFeedbackv5-unoversight-link {
+       /* @embed */
+       background-image: url(images/toolbox_oversight.png);
+}
+.articleFeedbackv5-feedback-tools li 
a.articleFeedbackv5-requestoversight-link:hover,
+.articleFeedbackv5-feedback-tools li a.articleFeedbackv5-oversight-link:hover,
+.articleFeedbackv5-feedback-tools li 
a.articleFeedbackv5-unoversight-link:hover {
+       /* @embed */
+       background-image: url(images/toolbox_oversight_hover.png);
+}
+.articleFeedbackv5-feedback-tools li a.articleFeedbackv5-resolved-link {
+       /* @embed */
+       background-image: url(images/toolbox_resolved.png);
+}
+.articleFeedbackv5-feedback-tools li a.articleFeedbackv5-resolved-link:hover {
+       /* @embed */
+       background-image: url(images/toolbox_resolved_hover.png);
+}
+.articleFeedbackv5-feedback-tools li a.articleFeedbackv5-declineoversight-link 
{
+       /* @embed */
+       background-image: url(images/toolbox_decline.png);
+}
+.articleFeedbackv5-feedback-tools li 
a.articleFeedbackv5-declineoversight-link:hover {
+       /* @embed */
+       background-image: url(images/toolbox_decline_hover.png);
+}
+.articleFeedbackv5-feedback-tools li a.articleFeedbackv5-activity-link {
+       /* @embed */
+       background-image: url(images/toolbox_activity.png);
+}
+.articleFeedbackv5-feedback-tools li a.articleFeedbackv5-activity-link:hover {
+       /* @embed */
+       background-image: url(images/toolbox_activity_hover.png);
+}
+
+#articleFeedbackv5-show-feedback .articleFeedbackv5-abuse-link,
+#articleFeedbackv5-show-feedback .articleFeedbackv5-unabuse-link {
        cursor: pointer;
+       display: inline-block;
+       height: 16px;
+       padding-left: 16px;
+       /* @embed */
+       background-image: url(images/flag.png);
+       background-repeat: no-repeat;
+       background-position: left bottom;
 }
+#articleFeedbackv5-show-feedback .articleFeedbackv5-abuse-link:hover {
+       /* @embed */
+       background-image: url(images/flag_hover.png);
+}
+#articleFeedbackv5-show-feedback .articleFeedbackv5-unabuse-link {
+       /* @embed */
+       background-image: url(images/flag_active.png);
+}
 #articleFeedbackv5-show-feedback .articleFeedbackv5-abuse-link.abusive,
 #articleFeedbackv5-show-feedback .articleFeedbackv5-unabuse-link.abusive {
        color: red;
 }
+
 #articleFeedbackv5-show-feedback .articleFeedbackv5-comment-foot {
        line-height: 22px;
        float: left;
@@ -276,6 +355,7 @@
 #articleFeedbackv5-show-feedback .articleFeedbackv5-comment-foot 
.articleFeedbackv5-helpful-caption {
        margin: 0 15px 0 0;
 }
+
 #articleFeedbackv5-show-feedback .articleFeedbackv5-comment-foot 
.articleFeedbackv5-helpful-link,
 #articleFeedbackv5-show-feedback .articleFeedbackv5-comment-foot 
.articleFeedbackv5-unhelpful-link,
 #articleFeedbackv5-show-feedback .articleFeedbackv5-comment-foot 
.articleFeedbackv5-reversehelpful-link,
@@ -291,42 +371,52 @@
        color: #333;
        font-weight: bold;
        /* @embed */
-       background: url(images/bg-button-disable.png) repeat-x;
-       -moz-border-radius: 3px;
-       -webkit-border-radius: 3px;
-       border-radius: 3px; 
-       -khtml-border-radius: 3px; 
-       -moz-box-shadow: -2px 2px 1px #999;
-       -webkit-box-shadow: -2px 2px 1px #999;
-       box-shadow: -2px 2px 1px #999;
+       background: url(images/thumbup.png) no-repeat;
 }
 
+#articleFeedbackv5-show-feedback .articleFeedbackv5-comment-foot 
.articleFeedbackv5-unhelpful-link,
+#articleFeedbackv5-show-feedback .articleFeedbackv5-comment-foot 
.articleFeedbackv5-reverseunhelpful-link {
+       /* @embed */
+       background: url(images/thumbdwn.png) no-repeat;
+}
+
 #articleFeedbackv5-show-feedback .articleFeedbackv5-comment-foot 
.articleFeedbackv5-helpful-link:hover,
 #articleFeedbackv5-show-feedback .articleFeedbackv5-comment-foot 
.articleFeedbackv5-unhelpful-link:hover,
 #articleFeedbackv5-show-feedback .articleFeedbackv5-comment-foot 
.articleFeedbackv5-reversehelpful-link:hover,
 #articleFeedbackv5-show-feedback .articleFeedbackv5-comment-foot 
.articleFeedbackv5-reverseunhelpful-link:hover {
        /* @embed */
-       background: url(images/bg-button-hov.png) repeat-x;
+       background-image: url(images/thumbup_hover.png);
        cursor: pointer;
        color: #333;
        text-decoration: none;
 }
 
-#articleFeedbackv5-show-feedback .articleFeedbackv5-comment-foot 
.articleFeedbackv5-helpful-link.active,
-#articleFeedbackv5-show-feedback .articleFeedbackv5-comment-foot 
.articleFeedbackv5-unhelpful-link.active,
-#articleFeedbackv5-show-feedback .articleFeedbackv5-comment-foot 
.articleFeedbackv5-helpful-link.active:hover,
-#articleFeedbackv5-show-feedback .articleFeedbackv5-comment-foot 
.articleFeedbackv5-unhelpful-link.active:hover,
-#articleFeedbackv5-show-feedback .articleFeedbackv5-comment-foot 
.articleFeedbackv5-reversehelpful-link.active,
-#articleFeedbackv5-show-feedback .articleFeedbackv5-comment-foot 
.articleFeedbackv5-reverseunhelpful-link.active,
-#articleFeedbackv5-show-feedback .articleFeedbackv5-comment-foot 
.articleFeedbackv5-reversehelpful-link.active:hover,
-#articleFeedbackv5-show-feedback .articleFeedbackv5-comment-foot 
.articleFeedbackv5-reverseunhelpful-link.active:hover {
+#articleFeedbackv5-show-feedback .articleFeedbackv5-comment-foot 
.articleFeedbackv5-unhelpful-link:hover,
+#articleFeedbackv5-show-feedback .articleFeedbackv5-comment-foot 
.articleFeedbackv5-reverseunhelpful-link:hover {
        /* @embed */
-       background: url(images/bg-button.png) repeat-x;
-       color: #fff;
+       background-image: url(images/thumbdwn_hover.png);
 }
+
+#articleFeedbackv5-show-feedback .articleFeedbackv5-comment-foot 
.articleFeedbackv5-helpful-link.helpful-active,
+#articleFeedbackv5-show-feedback .articleFeedbackv5-comment-foot 
.articleFeedbackv5-helpful-link.helpful-active:hover,
+#articleFeedbackv5-show-feedback .articleFeedbackv5-comment-foot 
.articleFeedbackv5-reversehelpful-link.helpful-active,
+#articleFeedbackv5-show-feedback .articleFeedbackv5-comment-foot 
.articleFeedbackv5-reversehelpful-link.helpful-active:hover {
+       /* @embed */
+       background-image: url(images/thumbup_active.png);
+}
+
+#articleFeedbackv5-show-feedback .articleFeedbackv5-comment-foot 
.articleFeedbackv5-unhelpful-link.helpful-active,
+#articleFeedbackv5-show-feedback .articleFeedbackv5-comment-foot 
.articleFeedbackv5-unhelpful-link.helpful-active:hover,
+#articleFeedbackv5-show-feedback .articleFeedbackv5-comment-foot 
.articleFeedbackv5-reverseunhelpful-link.helpful-active,
+#articleFeedbackv5-show-feedback .articleFeedbackv5-comment-foot 
.articleFeedbackv5-reverseunhelpful-link.helpful-active:hover {
+       /* @embed */
+       background-image: url(images/thumbdwn_active.png);
+}
+
 .articleFeedbackv5-helpful-votes {
        color: #888;
 }
+
 .articleFeedbackv5-feedback .articleFeedbackv5-comment-wrap h3 {
        display: block;
        float: left;
@@ -391,11 +481,6 @@
        background-size: 11px 7px;
 }
 
-a.helpful-active {
-       /* @embed */
-       background: url(images/bg-button.png) !important;
-       color: white !important;
-}
 .articleFeedbackv5-comment-wrap {
        width: 100%;
 }
@@ -452,8 +537,8 @@
        padding: 0 10px 3px 10px;
        -moz-border-radius: 3px 3px 0 0;
        -webkit-border-radius: 3px 3px 0 0;
-       border-radius: 3px 3px 0 0; 
-       -khtml-border-radius: 3px 3px 0 0; 
+       border-radius: 3px 3px 0 0;
+       -khtml-border-radius: 3px 3px 0 0;
 }
 .articlefeedbackv5-flyover-header h3 {
        font-size: 1.125em;
@@ -520,8 +605,8 @@
        background: url(images/bg-button-disable.png) repeat-x;
        -moz-border-radius: 3px;
        -webkit-border-radius: 3px;
-       border-radius: 3px; 
-       -khtml-border-radius: 3px; 
+       border-radius: 3px;
+       -khtml-border-radius: 3px;
        -moz-box-shadow: -2px 2px 1px #999;
        -webkit-box-shadow: -2px 2px 1px #999;
        box-shadow: -2px 2px 1px #999;
@@ -601,4 +686,7 @@
        text-align: center;
        padding: 5px;
        background-color: #d2e5f7;
-}
\ No newline at end of file
+}
+.articleFeedbackv5-feedback-emptymask {
+       min-height: 100px;
+}

Modified: 
branches/wmf/1.19wmf1/extensions/ArticleFeedbackv5/modules/jquery.articleFeedbackv5/jquery.articleFeedbackv5.special.js
===================================================================
--- 
branches/wmf/1.19wmf1/extensions/ArticleFeedbackv5/modules/jquery.articleFeedbackv5/jquery.articleFeedbackv5.special.js
     2012-04-12 17:34:49 UTC (rev 114866)
+++ 
branches/wmf/1.19wmf1/extensions/ArticleFeedbackv5/modules/jquery.articleFeedbackv5/jquery.articleFeedbackv5.special.js
     2012-04-12 17:42:40 UTC (rev 114867)
@@ -808,12 +808,19 @@
                                                        }
                                                }
 
-                                               if ( $( this ).hasClass( 
'articleFeedbackv5-feedback-deleted' ) ) {
+                                               if ( $( this ).hasClass( 
'articleFeedbackv5-feedback-emptymask' ) ) {
+                                                       var $screen = $( this 
).find( '.articleFeedbackv5-post-screen' );
+                                                       $screen.height( 
Math.max($( this ).innerHeight(), 100) );
+                                                       $screen.find( 
'.articleFeedbackv5-mask-text-wrapper')
+                                                               .css( 'top', 
$screen.innerHeight() / 2 - 12 );
+
+                                               } else if ( $( this ).hasClass( 
'articleFeedbackv5-feedback-deleted' ) ) {
                                                        
$.articleFeedbackv5special.markDeleted( $( this ), $( this 
).attr('oversight-user'), $( this ).attr('oversight-timestamp'));
                                                } else if ( $( this ).hasClass( 
'articleFeedbackv5-feedback-hidden' ) ) {
                                                        
$.articleFeedbackv5special.markHidden( $( this ), $( this ).attr('hide-user'), 
$( this ).attr('hide-timestamp'));
                                                }
 
+
                                        } );
                                        $( 
'#articleFeedbackv5-feedback-count-total' ).text( 
data['articlefeedbackv5-view-feedback'].count );
                                        
$.articleFeedbackv5special.listControls.continue   = 
data['articlefeedbackv5-view-feedback'].continue;

Modified: 
branches/wmf/1.19wmf1/extensions/ArticleFeedbackv5/sql/ArticleFeedbackv5.sql
===================================================================
--- 
branches/wmf/1.19wmf1/extensions/ArticleFeedbackv5/sql/ArticleFeedbackv5.sql    
    2012-04-12 17:34:49 UTC (rev 114866)
+++ 
branches/wmf/1.19wmf1/extensions/ArticleFeedbackv5/sql/ArticleFeedbackv5.sql    
    2012-04-12 17:42:40 UTC (rev 114867)
@@ -57,8 +57,10 @@
   -- keep track of "this has a comment" for filtering purposes (avoids a join)
   af_has_comment      boolean NOT NULL DEFAULT FALSE,
   -- Keep track of number of activities (hide/show/flag/unflag)
+  -- or suppress log items
   -- should be equivalent to counting rows in logging table
   af_activity_count  integer unsigned NOT NULL DEFAULT 0,
+  af_suppress_count  integer unsigned NOT NULL DEFAULT 0,
   -- keep the user id of the last hider and/or oversighter of the feedback
   -- only registered users can do this, which is why no ips
   -- data used on the overlay of hidden/oversighted items

Modified: branches/wmf/1.19wmf1/extensions/ArticleFeedbackv5/sql/alter.sql
===================================================================
--- branches/wmf/1.19wmf1/extensions/ArticleFeedbackv5/sql/alter.sql    
2012-04-12 17:34:49 UTC (rev 114866)
+++ branches/wmf/1.19wmf1/extensions/ArticleFeedbackv5/sql/alter.sql    
2012-04-12 17:42:40 UTC (rev 114867)
@@ -158,3 +158,6 @@
 UPDATE /*_*/aft_article_feedback SET af_experiment = CONCAT(af_form_id, 'E') 
WHERE DATE(af_created) > '2012-03-21' AND af_link_id = 5;
 UPDATE /*_*/aft_article_feedback SET af_experiment = CONCAT(af_form_id, '?') 
WHERE DATE(af_created) > '2012-03-21' AND af_link_id = 0;
 
+
+-- Added 3/30 (emsmith)
+ALTER TABLE /*_*/aft_article_feedback ADD COLUMN af_suppress_count integer 
unsigned NOT NULL DEFAULT 0;

Modified: 
branches/wmf/1.19wmf1/extensions/ArticleFeedbackv5/sql/filter_count.sql
===================================================================
--- branches/wmf/1.19wmf1/extensions/ArticleFeedbackv5/sql/filter_count.sql     
2012-04-12 17:34:49 UTC (rev 114866)
+++ branches/wmf/1.19wmf1/extensions/ArticleFeedbackv5/sql/filter_count.sql     
2012-04-12 17:42:40 UTC (rev 114867)
@@ -1,35 +1,35 @@
 DELETE FROM aft_article_filter_count;
 
 -- all includes oversighted and hidden
-INSERT INTO aft_article_filter_count(afc_page_id, afc_filter_name, 
afc_filter_count) SELECT af_page_id, 'all', COUNT(*) FROM aft_article_feedback 
WHERE af_bucket_id = 1 GROUP BY af_page_id;
+INSERT INTO aft_article_filter_count(afc_page_id, afc_filter_name, 
afc_filter_count) SELECT af_page_id, 'all', COUNT(*) FROM aft_article_feedback 
WHERE af_form_id = 1 GROUP BY af_page_id;
 
 -- notdeleted includes all but oversighted
-INSERT INTO aft_article_filter_count(afc_page_id, afc_filter_name, 
afc_filter_count) SELECT af_page_id, 'notdeleted', COUNT(*) FROM 
aft_article_feedback WHERE af_bucket_id = 1 AND af_is_deleted IS FALSE GROUP BY 
af_page_id;
+INSERT INTO aft_article_filter_count(afc_page_id, afc_filter_name, 
afc_filter_count) SELECT af_page_id, 'notdeleted', COUNT(*) FROM 
aft_article_feedback WHERE af_form_id = 1 AND af_is_deleted IS FALSE GROUP BY 
af_page_id;
 
 -- has text in the comment
-INSERT INTO aft_article_filter_count(afc_page_id, afc_filter_name, 
afc_filter_count) SELECT af_page_id, 'comment', COUNT(*) FROM 
aft_article_feedback, aft_article_answer WHERE af_bucket_id = 1 AND af_id = 
aa_feedback_id AND aa_response_text IS NOT NULL  AND af_is_hidden IS FALSE AND 
af_is_deleted IS FALSE GROUP BY af_page_id;
+INSERT INTO aft_article_filter_count(afc_page_id, afc_filter_name, 
afc_filter_count) SELECT af_page_id, 'comment', COUNT(*) FROM 
aft_article_feedback, aft_article_answer WHERE af_form_id = 1 AND af_id = 
aa_feedback_id AND aa_response_text IS NOT NULL  AND af_is_hidden IS FALSE AND 
af_is_deleted IS FALSE GROUP BY af_page_id;
 
 -- oversighted
-INSERT INTO aft_article_filter_count(afc_page_id, afc_filter_name, 
afc_filter_count) SELECT af_page_id, 'deleted', COUNT(*) FROM 
aft_article_feedback WHERE af_bucket_id = 1 AND af_is_deleted IS TRUE GROUP BY 
af_page_id;
+INSERT INTO aft_article_filter_count(afc_page_id, afc_filter_name, 
afc_filter_count) SELECT af_page_id, 'deleted', COUNT(*) FROM 
aft_article_feedback WHERE af_form_id = 1 AND af_is_deleted IS TRUE GROUP BY 
af_page_id;
 -- unoversighted
-INSERT INTO aft_article_filter_count(afc_page_id, afc_filter_name, 
afc_filter_count) SELECT af_page_id, 'undeleted', COUNT(*) FROM 
aft_article_feedback WHERE af_bucket_id = 1 AND af_is_deleted IS FALSE AND 
af_is_undeleted IS TRUE GROUP BY af_page_id;
+INSERT INTO aft_article_filter_count(afc_page_id, afc_filter_name, 
afc_filter_count) SELECT af_page_id, 'undeleted', COUNT(*) FROM 
aft_article_feedback WHERE af_form_id = 1 AND af_is_deleted IS FALSE AND 
af_is_undeleted IS TRUE GROUP BY af_page_id;
 
 -- visible (all not hidden)
-INSERT INTO aft_article_filter_count(afc_page_id, afc_filter_name, 
afc_filter_count) SELECT af_page_id, 'visible', COUNT(*) FROM 
aft_article_feedback WHERE af_bucket_id = 1 AND af_is_hidden IS FALSE AND 
af_is_deleted IS FALSE GROUP BY af_page_id;
+INSERT INTO aft_article_filter_count(afc_page_id, afc_filter_name, 
afc_filter_count) SELECT af_page_id, 'visible', COUNT(*) FROM 
aft_article_feedback WHERE af_form_id = 1 AND af_is_hidden IS FALSE AND 
af_is_deleted IS FALSE GROUP BY af_page_id;
 -- invisible (hidden)
-INSERT INTO aft_article_filter_count(afc_page_id, afc_filter_name, 
afc_filter_count) SELECT af_page_id, 'invisible', COUNT(*) FROM 
aft_article_feedback WHERE af_bucket_id = 1 AND af_is_hidden IS TRUE GROUP BY 
af_page_id;
+INSERT INTO aft_article_filter_count(afc_page_id, afc_filter_name, 
afc_filter_count) SELECT af_page_id, 'invisible', COUNT(*) FROM 
aft_article_feedback WHERE af_form_id = 1 AND af_is_hidden IS TRUE GROUP BY 
af_page_id;
 -- once was hidden, now is visible (unhidden)
-INSERT INTO aft_article_filter_count(afc_page_id, afc_filter_name, 
afc_filter_count) SELECT af_page_id, 'unhidden', COUNT(*) FROM 
aft_article_feedback WHERE af_bucket_id = 1 AND af_is_hidden IS FALSE AND 
af_is_unhidden IS TRUE GROUP BY af_page_id;
+INSERT INTO aft_article_filter_count(afc_page_id, afc_filter_name, 
afc_filter_count) SELECT af_page_id, 'unhidden', COUNT(*) FROM 
aft_article_feedback WHERE af_form_id = 1 AND af_is_hidden IS FALSE AND 
af_is_unhidden IS TRUE GROUP BY af_page_id;
 
 -- abusive - not hidden/deleted and has flag count
-INSERT INTO aft_article_filter_count(afc_page_id, afc_filter_name, 
afc_filter_count) SELECT af_page_id, 'abusive', COUNT(*) FROM 
aft_article_feedback WHERE af_bucket_id = 1 AND af_abuse_count > 0 AND 
af_is_hidden IS FALSE AND af_is_deleted IS FALSE GROUP BY af_page_id;
+INSERT INTO aft_article_filter_count(afc_page_id, afc_filter_name, 
afc_filter_count) SELECT af_page_id, 'abusive', COUNT(*) FROM 
aft_article_feedback WHERE af_form_id = 1 AND af_abuse_count > 0 AND 
af_is_hidden IS FALSE AND af_is_deleted IS FALSE GROUP BY af_page_id;
 
 -- needs oversight - has at least one oversight request
-INSERT INTO aft_article_filter_count(afc_page_id, afc_filter_name, 
afc_filter_count) SELECT af_page_id, 'needsoversight', COUNT(*) FROM 
aft_article_feedback WHERE af_bucket_id = 1 AND af_oversight_count > 0 GROUP BY 
af_page_id;
+INSERT INTO aft_article_filter_count(afc_page_id, afc_filter_name, 
afc_filter_count) SELECT af_page_id, 'needsoversight', COUNT(*) FROM 
aft_article_feedback WHERE af_form_id = 1 AND af_oversight_count > 0 GROUP BY 
af_page_id;
 
 -- declined - had oversight declined 
-INSERT INTO aft_article_filter_count(afc_page_id, afc_filter_name, 
afc_filter_count) SELECT af_page_id, 'declined', COUNT(*) FROM 
aft_article_feedback WHERE af_bucket_id = 1 AND af_is_declined IS TRUE GROUP BY 
af_page_id;
+INSERT INTO aft_article_filter_count(afc_page_id, afc_filter_name, 
afc_filter_count) SELECT af_page_id, 'declined', COUNT(*) FROM 
aft_article_feedback WHERE af_form_id = 1 AND af_is_declined IS TRUE GROUP BY 
af_page_id;
 
 -- helpful and unhelpful counts
-INSERT INTO aft_article_filter_count(afc_page_id, afc_filter_name, 
afc_filter_count) SELECT af_page_id, 'helpful', COUNT(*) FROM 
aft_article_feedback WHERE af_bucket_id = 1 AND CONVERT(af_helpful_count, 
SIGNED) - CONVERT(af_unhelpful_count, SIGNED) > 0  AND af_is_hidden IS FALSE 
AND af_is_deleted IS FALSE GROUP BY af_page_id;
-INSERT INTO aft_article_filter_count(afc_page_id, afc_filter_name, 
afc_filter_count) SELECT af_page_id, 'unhelpful', COUNT(*) FROM 
aft_article_feedback WHERE af_bucket_id = 1 AND CONVERT(af_helpful_count, 
SIGNED) - CONVERT(af_unhelpful_count, SIGNED) < 0  AND af_is_hidden IS FALSE 
AND af_is_deleted IS FALSE GROUP BY af_page_id;
+INSERT INTO aft_article_filter_count(afc_page_id, afc_filter_name, 
afc_filter_count) SELECT af_page_id, 'helpful', COUNT(*) FROM 
aft_article_feedback WHERE af_form_id = 1 AND CONVERT(af_helpful_count, SIGNED) 
- CONVERT(af_unhelpful_count, SIGNED) > 0  AND af_is_hidden IS FALSE AND 
af_is_deleted IS FALSE GROUP BY af_page_id;
+INSERT INTO aft_article_filter_count(afc_page_id, afc_filter_name, 
afc_filter_count) SELECT af_page_id, 'unhelpful', COUNT(*) FROM 
aft_article_feedback WHERE af_form_id = 1 AND CONVERT(af_helpful_count, SIGNED) 
- CONVERT(af_unhelpful_count, SIGNED) < 0  AND af_is_hidden IS FALSE AND 
af_is_deleted IS FALSE GROUP BY af_page_id;


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

Reply via email to