mirror of
https://we.phorge.it/source/phorge.git
synced 2025-01-31 00:48:21 +01:00
ef85f49adc
Summary: This commit doesn't change license of any file. It just makes the license implicit (inherited from LICENSE file in the root directory). We are removing the headers for these reasons: - It wastes space in editors, less code is visible in editor upon opening a file. - It brings noise to diff of the first change of any file every year. - It confuses Git file copy detection when creating small files. - We don't have an explicit license header in other files (JS, CSS, images, documentation). - Using license header in every file is not obligatory: http://www.apache.org/dev/apply-license.html#new. This change is approved by Alma Chao (Lead Open Source and IP Counsel at Facebook). Test Plan: Verified that the license survived only in LICENSE file and that it didn't modify externals. Reviewers: epriestley, davidrecordon Reviewed By: epriestley CC: aran, Korvin Maniphest Tasks: T2035 Differential Revision: https://secure.phabricator.com/D3886
166 lines
3.2 KiB
PHP
166 lines
3.2 KiB
PHP
<?php
|
|
|
|
abstract class AphrontFormControl extends AphrontView {
|
|
|
|
private $label;
|
|
private $caption;
|
|
private $error;
|
|
private $name;
|
|
private $value;
|
|
private $disabled;
|
|
private $id;
|
|
private $controlID;
|
|
private $controlStyle;
|
|
|
|
public function setID($id) {
|
|
$this->id = $id;
|
|
return $this;
|
|
}
|
|
|
|
public function getID() {
|
|
return $this->id;
|
|
}
|
|
|
|
public function setControlID($control_id) {
|
|
$this->controlID = $control_id;
|
|
return $this;
|
|
}
|
|
|
|
public function getControlID() {
|
|
return $this->controlID;
|
|
}
|
|
|
|
public function setControlStyle($control_style) {
|
|
$this->controlStyle = $control_style;
|
|
return $this;
|
|
}
|
|
|
|
public function getControlStyle() {
|
|
return $this->controlStyle;
|
|
}
|
|
|
|
public function setLabel($label) {
|
|
$this->label = $label;
|
|
return $this;
|
|
}
|
|
|
|
public function getLabel() {
|
|
return $this->label;
|
|
}
|
|
|
|
public function setCaption($caption) {
|
|
$this->caption = $caption;
|
|
return $this;
|
|
}
|
|
|
|
public function getCaption() {
|
|
return $this->caption;
|
|
}
|
|
|
|
public function setError($error) {
|
|
$this->error = $error;
|
|
return $this;
|
|
}
|
|
|
|
public function getError() {
|
|
return $this->error;
|
|
}
|
|
|
|
public function setName($name) {
|
|
$this->name = $name;
|
|
return $this;
|
|
}
|
|
|
|
public function getName() {
|
|
return $this->name;
|
|
}
|
|
|
|
public function setValue($value) {
|
|
$this->value = $value;
|
|
return $this;
|
|
}
|
|
|
|
public function getValue() {
|
|
return $this->value;
|
|
}
|
|
|
|
public function setDisabled($disabled) {
|
|
$this->disabled = $disabled;
|
|
return $this;
|
|
}
|
|
|
|
public function getDisabled() {
|
|
return $this->disabled;
|
|
}
|
|
|
|
abstract protected function renderInput();
|
|
abstract protected function getCustomControlClass();
|
|
|
|
protected function shouldRender() {
|
|
return true;
|
|
}
|
|
|
|
final public function render() {
|
|
if (!$this->shouldRender()) {
|
|
return null;
|
|
}
|
|
|
|
$custom_class = $this->getCustomControlClass();
|
|
|
|
if (strlen($this->getLabel())) {
|
|
$label =
|
|
'<label class="aphront-form-label">'.
|
|
phutil_escape_html($this->getLabel()).
|
|
'</label>';
|
|
} else {
|
|
$label = null;
|
|
$custom_class .= ' aphront-form-control-nolabel';
|
|
}
|
|
|
|
$input =
|
|
'<div class="aphront-form-input">'.
|
|
$this->renderInput().
|
|
'</div>';
|
|
|
|
if (strlen($this->getError())) {
|
|
$error = $this->getError();
|
|
if ($error === true) {
|
|
$error =
|
|
'<div class="aphront-form-error aphront-form-required">'.
|
|
'Required'.
|
|
'</div>';
|
|
} else {
|
|
$error =
|
|
'<div class="aphront-form-error">'.
|
|
phutil_escape_html($error).
|
|
'</div>';
|
|
}
|
|
} else {
|
|
$error = null;
|
|
}
|
|
|
|
if (strlen($this->getCaption())) {
|
|
$caption =
|
|
'<div class="aphront-form-caption">'.
|
|
$this->getCaption().
|
|
'</div>';
|
|
} else {
|
|
$caption = null;
|
|
}
|
|
|
|
return phutil_render_tag(
|
|
'div',
|
|
array(
|
|
'class' => "aphront-form-control {$custom_class}",
|
|
'id' => $this->controlID,
|
|
'style' => $this->controlStyle,
|
|
),
|
|
$label.
|
|
$error.
|
|
$input.
|
|
$caption.
|
|
|
|
// TODO: Remove this once the redesign finishes up.
|
|
'<div style="clear: both;"></div>');
|
|
}
|
|
}
|