Nikerabbit has uploaded a new change for review.
https://gerrit.wikimedia.org/r/65099
Change subject: Accepting and rejecting users by age
......................................................................
Accepting and rejecting users by age
* No i18n yet
* No proper styling yet
Change-Id: Ie9862692f2fe60fc32b6b010cfb6561f965bd78a
---
M resources/css/ext.translate.special.translatesandbox.css
M resources/js/ext.translate.special.translatesandbox.js
M specials/SpecialTranslateSandbox.php
M utils/TranslateSandbox.php
4 files changed, 101 insertions(+), 13 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Translate
refs/changes/99/65099/1
diff --git a/resources/css/ext.translate.special.translatesandbox.css
b/resources/css/ext.translate.special.translatesandbox.css
index e892902..e788d55 100644
--- a/resources/css/ext.translate.special.translatesandbox.css
+++ b/resources/css/ext.translate.special.translatesandbox.css
@@ -42,19 +42,26 @@
.request .username,
.request .selector {
- height: 30px;
- line-height: 30px;
+ height: 20px;
font-size: 16px;
text-wrap: nowrap;
}
+.request .selector input {
+ height: 20px;
+ display: block;
+ margin: auto;
+}
+
.request .email,
.request .signup-age {
- height: 20px;
- line-height: 20px;
- font-size: 12px;
color: #6c6d70;
- text-wrap: nowrap;
+}
+
+.request .email {
+ height: 30px;
+ line-height: 30px;
+ font-size: 12px;
}
.request .username,
@@ -64,6 +71,9 @@
}
.request .signup-age {
+ height: 30px;
+ line-height: 15px;
+ font-size: 12px;
text-align: center;
overflow: hidden;
}
diff --git a/resources/js/ext.translate.special.translatesandbox.js
b/resources/js/ext.translate.special.translatesandbox.js
index 6070f5d..5d528cb 100644
--- a/resources/js/ext.translate.special.translatesandbox.js
+++ b/resources/js/ext.translate.special.translatesandbox.js
@@ -7,6 +7,74 @@
(function ( $, mw ) {
'use strict';
+ function addSelectorStatusBar () {
+ var $selected, oldest, $older,
+ $container = $( '.pane.requests' );
+
+ $selected = $( '.selector input:checked' );
+
+ $( '.statusbar' ).remove();
+
+ if ( $selected.length === 0 ) {
+ return;
+ }
+
+ oldest = Number.MAX_VALUE;
+ $selected.each( function () {
+ oldest = Math.min( oldest, $( this ).parents(
'.request' ).data( 'data' ).registration );
+ } );
+
+ $older = $( '.selector input' ).not( ':checked' ).filter(
function() {
+ return $( this ).parents( '.request' ).data( 'data'
).registration < oldest;
+ } );
+
+ $container.append(
+ $( '<div>' )
+ .text( $selected.length + ' selected' )
+ .addClass( 'statusbar row' )
+ .append(
+ $( '<button>' )
+ .text( 'Accept all' )
+ .addClass( 'accept green
button' )
+ .click( function () {
+ $selected.each(
function () {
+ var $parent =
$( this ).parents( '.request' );
+ doApiAction( {
+ userid:
$parent.data( 'data' ).id,
+ 'do':
'promote'
+ } );
+
$parent.remove();
+ $(
'.details.pane' ).empty();
+
addSelectorStatusBar();
+ } );
+ } ),
+ $( '<button>' )
+ .text( 'Reject all' )
+ .addClass( 'delete red button' )
+ .click( function () {
+ $selected.each(
function () {
+ var $parent =
$( this ).parents( '.request' );
+ doApiAction( {
+ userid:
$parent.data( 'data' ).id,
+ 'do':
'delete'
+ } );
+
$parent.remove();
+ $(
'.details.pane' ).empty();
+
addSelectorStatusBar();
+ } );
+ } ),
+ $( '<a>' )
+ .text( $older.length + ' older
requests' )
+ .prop( 'href', '#' )
+ .click( function ( event ) {
+ event.preventDefault();
+ $older.prop( 'checked',
true );
+ addSelectorStatusBar();
+ } )
+ )
+ );
+ }
+
function doApiAction( options ) {
var api = new mw.Api();
@@ -15,10 +83,11 @@
token: $( '#token' ).val()
}, options );
- api.post( options )
- .done( function () { window.alert( 'Success' ); } )
- .fail( function () { window.alert( 'Failure' ); } )
- ;
+ api
+ .post( options )
+ .fail( function () {
+ mw.notify( 'Action ' + options.do + ' failed' );
+ } );
}
/**
@@ -112,6 +181,8 @@
$( document ).ready( function () {
var $requests, $detailsPane;
+ $( '.selector input' ).click( addSelectorStatusBar );
+
$detailsPane = $( '.details.pane' );
$requests = $( '.requests .request' );
$requests.on( 'click', function () {
@@ -141,6 +212,9 @@
userid:
$this.data( 'data' ).id,
'do':
'promote'
} );
+ $this.remove();
+
$detailsPane.empty();
+
addSelectorStatusBar();
} ),
$( '<button>' )
.addClass( 'remind
button' )
@@ -150,12 +224,15 @@
} ),
$( '<button>' )
.addClass( 'delete
destructive button' )
- .text( 'Delete' )
+ .text( 'Reject' )
.on( 'click', function
() {
doApiAction( {
userid:
$this.data( 'data' ).id,
'do':
'delete'
} );
+ $this.remove();
+
$detailsPane.empty();
+
addSelectorStatusBar();
} )
)
);
diff --git a/specials/SpecialTranslateSandbox.php
b/specials/SpecialTranslateSandbox.php
index 9c84521..cb23428 100644
--- a/specials/SpecialTranslateSandbox.php
+++ b/specials/SpecialTranslateSandbox.php
@@ -92,7 +92,7 @@
<div class="row email">$emailEnc</div>
</div>
<div class="three columns approval">
- <div class="row selector"></div>
+ <div class="row selector"><input type="checkbox"></div>
<div class="row signup-age">$agoEnc</div>
</div>
</div>
diff --git a/utils/TranslateSandbox.php b/utils/TranslateSandbox.php
index f9a3acb..b6f0aba 100644
--- a/utils/TranslateSandbox.php
+++ b/utils/TranslateSandbox.php
@@ -75,8 +75,9 @@
'ug_group' => 'translate-sandboxed',
'ug_user = user_id',
);
+ $options = array( 'ORDER BY' => 'user_id desc' );
- $res = $dbw->select( $tables, $fields, $conds, __METHOD__ );
+ $res = $dbw->select( $tables, $fields, $conds, __METHOD__,
$options );
return UserArray::newFromResult( $res );
}
--
To view, visit https://gerrit.wikimedia.org/r/65099
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: Ie9862692f2fe60fc32b6b010cfb6561f965bd78a
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Translate
Gerrit-Branch: master
Gerrit-Owner: Nikerabbit <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits