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]);
} else {
$customElementTemplate = $this->getCustomElementTemplate();
if (empty($customElementTemplate)) {
if (method_exists($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);
}
if (isset($error)) {
$html = str_replace('{error}', $error, $html);
$html = str_replace('{error_class}', 'error has-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);
}
return $html;
} // end func _prepareTemplate
}
/**
* Renders an element Html

@ -155,10 +155,81 @@ class HTML_QuickForm_checkbox extends HTML_QuickForm_input
}
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

@ -522,4 +522,78 @@ class HTML_QuickForm_group extends HTML_QuickForm_element
$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']);
}
$columnsSize = isset($attributes['cols-size']) ? $attributes['cols-size'] : null;
$this->setColumnsSize($columnsSize);
parent::__construct($elementName, $elementLabel, $attributes);
if (isset($value)) {
$this->setValue($value);
@ -92,7 +95,7 @@ class HTML_QuickForm_radio extends HTML_QuickForm_input
* @access public
* @return void
*/
function setChecked($checked)
public function setChecked($checked)
{
if (!$checked) {
$this->removeAttribute('checked');
@ -108,7 +111,7 @@ class HTML_QuickForm_radio extends HTML_QuickForm_input
* @access public
* @return string
*/
function getChecked()
public function getChecked()
{
return $this->getAttribute('checked');
}
@ -129,9 +132,14 @@ class HTML_QuickForm_radio extends HTML_QuickForm_input
} else {
$labelClass = $this->labelClass;
$radioClass = $this->radioClass;
$label = '<div class="'.$radioClass.'"><label class="'.$labelClass.'">' .
HTML_QuickForm_input::toHtml().$this->_text .
'</label></div>';
$label = '<div class="'.$radioClass.'">
<label class="'.$labelClass.'">' .
HTML_QuickForm_input::toHtml().
''.
$this->_text .
'</label>&nbsp;&nbsp;
</div>';
return $label;
}
@ -139,6 +147,7 @@ class HTML_QuickForm_radio extends HTML_QuickForm_input
return HTML_QuickForm_input::toHtml() . $label;
}
/**
* 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 null
*/
public function getColumnsSize()
{
return $this->columnsSize;
}
}

@ -8959,7 +8959,8 @@ class learnpath
'POST',
$this->getCurrentBuildingModeURL(),
'',
array('enctype' => 'multipart/form-data')
array('enctype' => 'multipart/form-data'),
FormValidator::LAYOUT_INLINE
);
$folders = DocumentManager::get_all_document_folders(
@ -8977,9 +8978,36 @@ class learnpath
'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('UplRenameLong'), 'rename');
$form->addElement('radio', 'if_exists', '', get_lang('UplRenameLong'), 'rename');*/
$form->setDefaults(['if_exists' => 'rename']);
// Check box options

Loading…
Cancel
Save