Completed
Branch master (537795)
by
unknown
33:10
created

HTMLSizeFilterField::needsLabel()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 2
nc 1
nop 0
dl 0
loc 3
rs 10
c 0
b 0
f 0
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
	function getSize() {
13
		return isset( $this->mParams['size'] ) ? $this->mParams['size'] : 9;
14
	}
15
16
	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
	function getInputOOUI( $value ) {
46
		return false;
47
	}
48
49
	/**
50
	 * @param WebRequest $request
51
	 *
52
	 * @return string
53
	 */
54
	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
}
73