Fix inline layout for group, radio and checkbox elements see BT#10887

pull/2487/head
jmontoyaa 9 years ago
parent 01d19bdc9b
commit 076aedf361
  1. 5
      main/inc/lib/pear/HTML/QuickForm/Renderer/Default.php
  2. 77
      main/inc/lib/pear/HTML/QuickForm/checkbox.php
  3. 74
      main/inc/lib/pear/HTML/QuickForm/group.php
  4. 29
      main/inc/lib/pear/HTML/QuickForm/radio.php
  5. 34
      main/lp/learnpath.class.php

@ -298,6 +298,7 @@ class HTML_QuickForm_Renderer_Default extends HTML_QuickForm_Renderer
$html = str_replace('{label}', $nameLabel, $this->_templates[$name]); $html = str_replace('{label}', $nameLabel, $this->_templates[$name]);
} else { } else {
$customElementTemplate = $this->getCustomElementTemplate(); $customElementTemplate = $this->getCustomElementTemplate();
if (empty($customElementTemplate)) { if (empty($customElementTemplate)) {
if (method_exists($element, 'getTemplate')) { if (method_exists($element, 'getTemplate')) {
$template = $element->getTemplate( $template = $element->getTemplate(
@ -328,7 +329,6 @@ class HTML_QuickForm_Renderer_Default extends HTML_QuickForm_Renderer
$html = preg_replace("/([ \t\n\r]*)?<!-- BEGIN required -->.*<!-- END required -->([ \t\n\r]*)?/isU", '', $html); $html = preg_replace("/([ \t\n\r]*)?<!-- BEGIN required -->.*<!-- END required -->([ \t\n\r]*)?/isU", '', $html);
} }
if (isset($error)) { if (isset($error)) {
$html = str_replace('{error}', $error, $html); $html = str_replace('{error}', $error, $html);
$html = str_replace('{error_class}', 'error has-error', $html); $html = str_replace('{error_class}', 'error has-error', $html);
$html = str_replace('<!-- BEGIN error -->', '', $html); $html = str_replace('<!-- BEGIN error -->', '', $html);
@ -349,9 +349,8 @@ class HTML_QuickForm_Renderer_Default extends HTML_QuickForm_Renderer
$html = preg_replace('/\s*<!-- BEGIN label_(\S+) -->.*<!-- END label_\1 -->\s*/is', '', $html); $html = preg_replace('/\s*<!-- BEGIN label_(\S+) -->.*<!-- END label_\1 -->\s*/is', '', $html);
} }
return $html; return $html;
} // end func _prepareTemplate }
/** /**
* Renders an element Html * Renders an element Html

@ -155,10 +155,81 @@ class HTML_QuickForm_checkbox extends HTML_QuickForm_input
} }
return HTML_QuickForm_input::toHtml() . $label; return HTML_QuickForm_input::toHtml() . $label;
} //end func toHtml }
// }}} /**
// {{{ getFrozenHtml() * @param string $layout
*
* @return string
*/
public function getTemplate($layout)
{
$size = $this->getColumnsSize();
if (empty($size)) {
$size = array(2, 8, 2);
} else {
if (is_array($size)) {
if (count($size) == 1) {
$size = array(2, intval($size[0]), 2);
} elseif (count($size) != 3) {
$size = array(2, 8, 2);
}
// else just keep the $size array as received
} else {
$size = array(2, intval($size), 2);
}
}
switch ($layout) {
case FormValidator::LAYOUT_INLINE:
return '
<div class="input-group">
<label {label-for} >
<!-- BEGIN required --><span class="form_required">*</span><!-- END required -->
{label}
</label>
</div>
<div class="input-group {error_class}">
{element}
</div>
';
break;
case FormValidator::LAYOUT_HORIZONTAL:
return '
<div class="form-group {error_class}">
<label {label-for} class="col-sm-'.$size[0].' control-label {extra_label_class}" >
<!-- BEGIN required --><span class="form_required">*</span><!-- END required -->
{label}
</label>
<div class="col-sm-'.$size[1].'">
{icon}
{element}
<!-- BEGIN label_2 -->
<p class="help-block">{label_2}</p>
<!-- END label_2 -->
<!-- BEGIN error -->
<span class="help-inline">{error}</span>
<!-- END error -->
</div>
<div class="col-sm-'.$size[2].'">
<!-- BEGIN label_3 -->
{label_3}
<!-- END label_3 -->
</div>
</div>';
break;
case FormValidator::LAYOUT_BOX_NO_LABEL:
return '
<div class="input-group">
{icon}
{element}
</div>';
break;
}
}
/** /**
* Returns the value of field without HTML tags * Returns the value of field without HTML tags

@ -522,4 +522,78 @@ class HTML_QuickForm_group extends HTML_QuickForm_element
$this->_elements[$key]->setPersistantFreeze($persistant); $this->_elements[$key]->setPersistantFreeze($persistant);
} }
} }
/**
* @param string $layout
*
* @return string
*/
public function getTemplate($layout)
{
$size = $this->getColumnsSize();
if (empty($size)) {
$size = array(2, 8, 2);
} else {
if (is_array($size)) {
if (count($size) == 1) {
$size = array(2, intval($size[0]), 2);
} elseif (count($size) != 3) {
$size = array(2, 8, 2);
}
// else just keep the $size array as received
} else {
$size = array(2, intval($size), 2);
}
}
switch ($layout) {
case FormValidator::LAYOUT_INLINE:
return '
<div class="input-group">
<label {label-for} >
<!-- BEGIN required --><span class="form_required">*</span><!-- END required -->
{label}
</label>
</div>
<div class="input-group {error_class}">
{element}
</div>
';
break;
case FormValidator::LAYOUT_HORIZONTAL:
return '
<div class="form-group {error_class}">
<label {label-for} class="col-sm-'.$size[0].' control-label {extra_label_class}" >
<!-- BEGIN required --><span class="form_required">*</span><!-- END required -->
{label}
</label>
<div class="col-sm-'.$size[1].'">
{icon}
{element}
<!-- BEGIN label_2 -->
<p class="help-block">{label_2}</p>
<!-- END label_2 -->
<!-- BEGIN error -->
<span class="help-inline">{error}</span>
<!-- END error -->
</div>
<div class="col-sm-'.$size[2].'">
<!-- BEGIN label_3 -->
{label_3}
<!-- END label_3 -->
</div>
</div>';
break;
case FormValidator::LAYOUT_BOX_NO_LABEL:
return '
<div class="input-group">
{icon}
{element}
</div>';
break;
}
}
} }

@ -74,6 +74,9 @@ class HTML_QuickForm_radio extends HTML_QuickForm_input
unset($attributes['radio-class']); unset($attributes['radio-class']);
} }
$columnsSize = isset($attributes['cols-size']) ? $attributes['cols-size'] : null;
$this->setColumnsSize($columnsSize);
parent::__construct($elementName, $elementLabel, $attributes); parent::__construct($elementName, $elementLabel, $attributes);
if (isset($value)) { if (isset($value)) {
$this->setValue($value); $this->setValue($value);
@ -92,7 +95,7 @@ class HTML_QuickForm_radio extends HTML_QuickForm_input
* @access public * @access public
* @return void * @return void
*/ */
function setChecked($checked) public function setChecked($checked)
{ {
if (!$checked) { if (!$checked) {
$this->removeAttribute('checked'); $this->removeAttribute('checked');
@ -108,7 +111,7 @@ class HTML_QuickForm_radio extends HTML_QuickForm_input
* @access public * @access public
* @return string * @return string
*/ */
function getChecked() public function getChecked()
{ {
return $this->getAttribute('checked'); return $this->getAttribute('checked');
} }
@ -129,9 +132,14 @@ class HTML_QuickForm_radio extends HTML_QuickForm_input
} else { } else {
$labelClass = $this->labelClass; $labelClass = $this->labelClass;
$radioClass = $this->radioClass; $radioClass = $this->radioClass;
$label = '<div class="'.$radioClass.'"><label class="'.$labelClass.'">' .
HTML_QuickForm_input::toHtml().$this->_text . $label = '<div class="'.$radioClass.'">
'</label></div>'; <label class="'.$labelClass.'">' .
HTML_QuickForm_input::toHtml().
''.
$this->_text .
'</label>&nbsp;&nbsp;
</div>';
return $label; return $label;
} }
@ -139,6 +147,7 @@ class HTML_QuickForm_radio extends HTML_QuickForm_input
return HTML_QuickForm_input::toHtml() . $label; return HTML_QuickForm_input::toHtml() . $label;
} }
/** /**
* Returns the value of field without HTML tags * Returns the value of field without HTML tags
* *
@ -238,4 +247,14 @@ class HTML_QuickForm_radio extends HTML_QuickForm_input
return $this->_prepareValue($value, $assoc); return $this->_prepareValue($value, $assoc);
} }
/**
* @return null
*/
public function getColumnsSize()
{
return $this->columnsSize;
}
} }

@ -8959,7 +8959,8 @@ class learnpath
'POST', 'POST',
$this->getCurrentBuildingModeURL(), $this->getCurrentBuildingModeURL(),
'', '',
array('enctype' => 'multipart/form-data') array('enctype' => 'multipart/form-data'),
FormValidator::LAYOUT_INLINE
); );
$folders = DocumentManager::get_all_document_folders( $folders = DocumentManager::get_all_document_folders(
@ -8977,9 +8978,36 @@ class learnpath
'directory_parent_id' 'directory_parent_id'
); );
$form->addElement('radio', 'if_exists', get_lang('UplWhatIfFileExists'), get_lang('UplDoNothing'), 'nothing'); $form->addHtml('<hr>');
$group = array(
$form->createElement(
'radio',
'if_exists',
get_lang("UplWhatIfFileExists"),
get_lang('Yes'),
'nothing'
),
$form->createElement(
'radio',
'if_exists',
null,
get_lang('UplOverwriteLong'),
'overwrite'
),
$form->createElement(
'radio',
'if_exists',
null,
get_lang('UplRenameLong'),
'rename'
)
);
$form->addGroup($group, null, get_lang('UplWhatIfFileExists'));
$form->addHtml('<br />');
/*$form->addElement('radio', 'if_exists', get_lang('UplWhatIfFileExists'), get_lang('UplDoNothing'), 'nothing');
$form->addElement('radio', 'if_exists', '', get_lang('UplOverwriteLong'), 'overwrite'); $form->addElement('radio', 'if_exists', '', get_lang('UplOverwriteLong'), 'overwrite');
$form->addElement('radio', 'if_exists', '', get_lang('UplRenameLong'), 'rename'); $form->addElement('radio', 'if_exists', '', get_lang('UplRenameLong'), 'rename');*/
$form->setDefaults(['if_exists' => 'rename']); $form->setDefaults(['if_exists' => 'rename']);
// Check box options // Check box options

Loading…
Cancel
Save