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

Revision: 111845
Author:   jeroendedauw
Date:     2012-02-18 21:19:18 +0000 (Sat, 18 Feb 2012)
Log Message:
-----------
work on article table

Modified Paths:
--------------
    trunk/extensions/EducationProgram/EducationProgram.i18n.php
    trunk/extensions/EducationProgram/EducationProgram.php
    trunk/extensions/EducationProgram/includes/EPArticle.php
    trunk/extensions/EducationProgram/includes/EPArticleTable.php
    trunk/extensions/EducationProgram/resources/ep.articletable.js

Modified: trunk/extensions/EducationProgram/EducationProgram.i18n.php
===================================================================
--- trunk/extensions/EducationProgram/EducationProgram.i18n.php 2012-02-18 
21:01:07 UTC (rev 111844)
+++ trunk/extensions/EducationProgram/EducationProgram.i18n.php 2012-02-18 
21:19:18 UTC (rev 111845)
@@ -271,18 +271,32 @@
        'epstudentpager-yes' => 'Yes',
        'epstudentpager-no' => 'No',
 
-       // Student article pager
+       // Article table
        'epstudentpager-header-student' => 'Student',
        'epstudentpager-header-articles' => 'Articles',
        'epstudentpager-header-reviewers' => 'Reviewers',
        'ep-artciles-remstudent' => 'remove from course',
-       'ep-artciles-remreviewer-self' => 'Remove myself as reviewer',
-       'ep-artciles-remreviewer' => 'remove as reviewer',
+       'ep-artciles-remreviewer-self' => 'Remove myself as 
{{GENDER:$1|reviewer}}',
+       'ep-artciles-remreviewer' => 'remove as {{GENDER:$1|reviewer}}',
        'ep-artciles-remarticle' => 'remove article',
        'ep-artciles-addarticle-text' => 'Add an article:',
        'ep-artciles-addarticle-button' => 'Add article',
-       'ep-artciles-becomereviewer' => 'Add myself as reviewer',
+       'ep-artciles-becomereviewer' => 'Add myself as {{GENDER:$1|reviewer}}',
 
+       // ep.articletable
+       'ep-articletable-addreviwer-title' => 'Become {{GENDER:$1|reviewer}}',
+       'ep-articletable-addreviwer-button' => 'Become {{GENDER:$1|reviewer}}',
+       'ep-articletable-addreviwer-cancel' => 'Cancel',
+       'ep-articletable-addreviwer-text' => 'You are about to enlist yourself 
as {{GENDER:$1|reviewer}} for article $2 worked on by $3.',
+
+       'ep-articletable-remreviwer-title' => 'Remove $1 as 
{{GENDER:$1|reviewer}}',
+       'ep-articletable-remreviwer-title-self' => 'Remove yourself as 
{{GENDER:$1|reviewer}}',
+       'ep-articletable-remreviwer-button' => 'Remove {{GENDER:$1|reviewer}}',
+       'ep-articletable-remreviwer-button-self' => 'Remove yourself',
+       'ep-articletable-remreviwer-cancel' => 'Cancel',
+       'ep-articletable-remreviwer-text-self' => 'You are about to remove 
yourself as {{GENDER:$1|reviewer}} for article $2 worked on by $3.',
+       'ep-articletable-remreviwer-text' => 'You are about to remove $4 as 
{{GENDER:$1|reviewer}} for article $2 worked on by $3.',
+
        // Article pager
        'ep-articles-noresults' => 'There are no articles to list.',
 

Modified: trunk/extensions/EducationProgram/EducationProgram.php
===================================================================
--- trunk/extensions/EducationProgram/EducationProgram.php      2012-02-18 
21:01:07 UTC (rev 111844)
+++ trunk/extensions/EducationProgram/EducationProgram.php      2012-02-18 
21:19:18 UTC (rev 111845)
@@ -432,6 +432,20 @@
                'jquery.ui.button',
                'jquery.ui.dialog',
        ),
+       'messages' => array(
+               'ep-articletable-addreviwer-title',
+               'ep-articletable-addreviwer-button',
+               'ep-articletable-addreviwer-cancel',
+               'ep-articletable-addreviwer-text',
+
+               'ep-articletable-remreviwer-title',
+               'ep-articletable-remreviwer-button',
+               'ep-articletable-remreviwer-cancel',
+               'ep-articletable-remreviwer-text',
+               'ep-articletable-remreviwer-title-self',
+               'ep-articletable-remreviwer-button-self',
+               'ep-articletable-remreviwer-text-self',
+       ),
 );
 
 $wgResourceModules['ep.addorg'] = $moduleTemplate + array(

Modified: trunk/extensions/EducationProgram/includes/EPArticle.php
===================================================================
--- trunk/extensions/EducationProgram/includes/EPArticle.php    2012-02-18 
21:01:07 UTC (rev 111844)
+++ trunk/extensions/EducationProgram/includes/EPArticle.php    2012-02-18 
21:19:18 UTC (rev 111845)
@@ -91,9 +91,8 @@
        public function canBecomeReviewer( User $user ) {
                if ( !array_key_exists( $user->getId(), $this->canBecomeReviwer 
) ) {
                        $this->canBecomeReviwer[$user->getId()] = 
$this->getUser()->isAllowed( 'ep-bereviewer' )
-                               //&& $this->getUser()->getId() !== 
$student->getField( 'user_id' )
-                               //&& !in_array( $this->getUser()->getId(), 
$article->getField( 'reviewers' ) )
-                       ;
+                               && $this->getUser()->getId() !== $user->getId()
+                               && !in_array( $this->getUser()->getId(), 
$this->getField( 'reviewers' ) );
                }
 
                return $this->canBecomeReviwer[$user->getId()];

Modified: trunk/extensions/EducationProgram/includes/EPArticleTable.php
===================================================================
--- trunk/extensions/EducationProgram/includes/EPArticleTable.php       
2012-02-18 21:01:07 UTC (rev 111844)
+++ trunk/extensions/EducationProgram/includes/EPArticleTable.php       
2012-02-18 21:19:18 UTC (rev 111845)
@@ -271,7 +271,7 @@
         * @since 0.1
         *
         * @param EPArticle $article
-        * @param integer $userId
+        * @param integer $userId User id of the reviewer
         *
         * @return string
         */
@@ -292,6 +292,10 @@
                                                'href' => '#',
                                                'data-user-id' => $userId,
                                                'data-article-id' => 
$article->getId(),
+                                               'data-article-name' => 
$article->getTitle()->getFullText(),
+                                               'data-student-name' => 
$article->getUser()->getName(),
+                                               'data-reviewer-name' => 
$user->getName(),
+                                               'data-reviewer-id' => 
$user->getId(),
                                                'class' => 'ep-rem-reviewer',
                                        ),
                                        wfMsg( 'ep-artciles-remreviewer' )
@@ -307,6 +311,8 @@
                                        'class' => 'ep-rem-reviewer-self',
                                        'disabled' => 'disabled',
                                        'data-article-id' => $article->getId(),
+                                       'data-article-name' => 
$article->getField( 'name' ),
+                                       'data-student-name' => 
$article->getUser()->getName(),
                                ),
                                wfMsg( 'ep-artciles-remreviewer-self' )
                        );
@@ -380,6 +386,8 @@
                                'class' => 'ep-become-reviewer',
                                'disabled' => 'disabled',
                                'data-article-id' => $article->getId(),
+                               'data-article-name' => 
$article->getTitle()->getFullText(),
+                               'data-user-name' => 
$article->getUser()->getName(),
                        ),
                        wfMsg( 'ep-artciles-becomereviewer' )
                );

Modified: trunk/extensions/EducationProgram/resources/ep.articletable.js
===================================================================
--- trunk/extensions/EducationProgram/resources/ep.articletable.js      
2012-02-18 21:01:07 UTC (rev 111844)
+++ trunk/extensions/EducationProgram/resources/ep.articletable.js      
2012-02-18 21:19:18 UTC (rev 111845)
@@ -9,16 +9,39 @@
 (function( $, ep ) {
        
        function addReviewer() {
-               $dialog = $( '<div>' ).html( '' ).dialog( {
-                       'title': ep.msg( 'ep-articletable-addreviwer-title' ),
+               var $this = $( this );
+
+               var $form = $( '<form>' ).attr( {
+                       'method': 'post',
+                       'action': window.location
+               } ).msg(
+                       'ep-articletable-addreviwer-text',
+                       mw.user.name,
+                       $( '<b>' ).text( $this.attr( 'data-article-name' ) ),
+                       $( '<b>' ).text( $this.attr( 'data-user-name' ) )
+               );
+
+               $form.append( $( '<input>' ).attr( {
+                       'type': 'hidden',
+                       'name': 'action',
+                       'value': 'epaddreviewer'
+               } ) );
+
+               $form.append( $( '<input>' ).attr( {
+                       'type': 'hidden',
+                       'name': 'article-id',
+                       'value': $this.attr( 'data-article-id' )
+               } ) );
+
+               var $dialog = $( '<div>' ).html( '' ).dialog( {
+                       'title': ep.msg('ep-articletable-addreviwer-title', 
mw.user.name ),
                        'minWidth': 550,
                        'buttons': [
                                {
-                                       'text': ep.msg( 
'ep-articletable-addreviwer-button' ),
+                                       'text': ep.msg( 
'ep-articletable-addreviwer-button', mw.user.name ),
                                        'id': 'ep-addreviwer-button',
                                        'click': function() {
-                                               alert( 'submit' );
-                                               // TODO
+                                               $form.submit();
                                        }
                                },
                                {
@@ -30,6 +53,8 @@
                                }
                        ]
                } );
+
+               $dialog.append( $form );
        }
        
        function addArticle() {
@@ -45,7 +70,62 @@
        }
        
        function removeReviewer() {
-               // TODO
+               var $this = $( this ),
+               isSelf = $this.attr( 'data-reviewer-name' ) === undefined,
+               selfSuffix = isSelf ? '-self' : '',
+               reviewerName = isSelf ? mw.user.name : $this.attr( 
'data-reviewer-name' );
+
+               var $form = $( '<form>' ).attr( {
+                       'method': 'post',
+                       'action': window.location
+               } ).msg(
+                       'ep-articletable-remreviwer-text' + selfSuffix,
+                       reviewerName,
+                       $( '<b>' ).text( $this.attr( 'data-article-name' ) ),
+                       $( '<b>' ).text( $this.attr( 'data-student-name' ) ),
+                       $( '<b>' ).text( reviewerName )
+               );
+
+               $form.append( $( '<input>' ).attr( {
+                       'type': 'hidden',
+                       'name': 'action',
+                       'value': 'epremreviewer'
+               } ) );
+
+               $form.append( $( '<input>' ).attr( {
+                       'type': 'hidden',
+                       'name': 'article-id',
+                       'value': $this.attr( 'data-article-id' )
+               } ) );
+
+               $form.append( $( '<input>' ).attr( {
+                       'type': 'hidden',
+                       'name': 'user-id',
+                       'value': isSelf ? mw.user.id : $this.attr( 
'data-reviewer-id' )
+               } ) );
+
+               var $dialog = $( '<div>' ).html( '' ).dialog( {
+                       'title': ep.msg('ep-articletable-remreviwer-title' + 
selfSuffix, reviewerName ),
+                       'minWidth': 550,
+                       'buttons': [
+                               {
+                                       'text': ep.msg( 
'ep-articletable-remreviwer-button' + selfSuffix, reviewerName ),
+                                       'id': 'ep-remreviwer-button',
+                                       'click': function() {
+                                               $form.submit();
+                                       }
+                               },
+                               {
+                                       'text': ep.msg( 
'ep-articletable-remreviwer-cancel' ),
+                                       'id': 'ep-remreviwer-cancel',
+                                       'click': function() {
+                                               $dialog.dialog( 'close' );
+                                       }
+                               }
+                       ]
+               } );
+
+               $dialog.append( $form );
        }
        
        $( document ).ready( function() {
@@ -54,7 +134,7 @@
 
                $( '.ep-become-reviewer' ).click( addReviewer );
                
-               $( '.ep-rem-reviewer-self' ).click( removeReviewer );
+               $( '.ep-rem-reviewer, .ep-rem-reviewer-self' ).click( 
removeReviewer );
                
                // TODO
        } );


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

Reply via email to