Merge "Convert Special:DeletedContributions to use OOUI."
[lhc/web/wiklou.git] / includes / htmlform / fields / HTMLSizeFilterField.php
1 <?php
2
3 /**
4 * A size filter field for use on query-type special pages. It looks a bit like:
5 *
6 * (o) Min size ( ) Max size: [ ] bytes
7 *
8 * Minimum size limits are represented using a positive integer, while maximum
9 * size limits are represented using a negative integer.
10 */
11 class HTMLSizeFilterField extends HTMLIntField {
12 public function getSize() {
13 return isset( $this->mParams['size'] ) ? $this->mParams['size'] : 9;
14 }
15
16 public function getInputHTML( $value ) {
17 $attribs = [];
18 if ( !empty( $this->mParams['disabled'] ) ) {
19 $attribs['disabled'] = 'disabled';
20 }
21
22 $html = Xml::radioLabel(
23 $this->msg( 'minimum-size' )->text(),
24 $this->mName . '-mode',
25 'min',
26 $this->mID . '-mode-min',
27 $value >= 0,
28 $attribs
29 );
30 $html .= '&#160;' . Xml::radioLabel(
31 $this->msg( 'maximum-size' )->text(),
32 $this->mName . '-mode',
33 'max',
34 $this->mID . '-mode-max',
35 $value < 0,
36 $attribs
37 );
38 $html .= '&#160;' . parent::getInputHTML( $value ? abs( $value ) : '' );
39 $html .= '&#160;' . $this->msg( 'pagesize' )->parse();
40
41 return $html;
42 }
43
44 // No OOUI yet
45 public function getInputOOUI( $value ) {
46 return false;
47 }
48
49 /**
50 * @param WebRequest $request
51 *
52 * @return string
53 */
54 public function loadDataFromRequest( $request ) {
55 $size = $request->getInt( $this->mName );
56 if ( !$size ) {
57 return $this->getDefault();
58 }
59 $size = abs( $size );
60
61 // negative numbers represent "max", positive numbers represent "min"
62 if ( $request->getVal( $this->mName . '-mode' ) === 'max' ) {
63 return -$size;
64 } else {
65 return $size;
66 }
67 }
68
69 protected function needsLabel() {
70 return false;
71 }
72 }