mirror of
https://github.com/e107inc/e107.git
synced 2025-07-28 18:30:53 +02:00
Switch fix
This commit is contained in:
@@ -2251,7 +2251,7 @@ class e_form
|
|||||||
|
|
||||||
if(empty($options['id']))
|
if(empty($options['id']))
|
||||||
{
|
{
|
||||||
$options['id'] = '';
|
unset($options['id']);
|
||||||
}
|
}
|
||||||
// $options['class'] = 'inline';
|
// $options['class'] = 'inline';
|
||||||
$text = "";
|
$text = "";
|
||||||
@@ -2341,7 +2341,7 @@ class e_form
|
|||||||
|
|
||||||
if(!empty($options['switch']))
|
if(!empty($options['switch']))
|
||||||
{
|
{
|
||||||
return $this->switch($name,$checked_enabled, array('on'=>$options_on['label'],'off'=>$options_off['label']),$options);
|
return $this->flipswitch($name,$checked_enabled, array('on'=>$options_on['label'],'off'=>$options_off['label']),$options);
|
||||||
}
|
}
|
||||||
elseif(!empty($options['inverse'])) // Same as 'writeParms'=>'reverse=1&enabled=LAN_DISABLED&disabled=LAN_ENABLED'
|
elseif(!empty($options['inverse'])) // Same as 'writeParms'=>'reverse=1&enabled=LAN_DISABLED&disabled=LAN_ENABLED'
|
||||||
{
|
{
|
||||||
@@ -2368,7 +2368,7 @@ class e_form
|
|||||||
* @param array $options
|
* @param array $options
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
public function switch($name, $checked_enabled = false, $labels=array('on' =>LAN_ON, 'off' =>LAN_OFF), $options = array())
|
public function flipswitch($name, $checked_enabled = false, $labels=array('on' =>LAN_ON, 'off' =>LAN_OFF), $options = array())
|
||||||
{
|
{
|
||||||
|
|
||||||
if(!empty($options['inverse']))
|
if(!empty($options['inverse']))
|
||||||
@@ -2385,9 +2385,11 @@ class e_form
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$switchName = $name.'__switch';
|
||||||
|
|
||||||
$js_options = array(
|
$js_options = array(
|
||||||
// Each form element has its own options.
|
// Each form element has its own options.
|
||||||
$name => array(
|
$switchName => array(
|
||||||
'size' => $options['switch'],
|
'size' => $options['switch'],
|
||||||
'onText' => $labels['on'],
|
'onText' => $labels['on'],
|
||||||
'offText' => $labels['off'],
|
'offText' => $labels['off'],
|
||||||
@@ -2406,7 +2408,7 @@ class e_form
|
|||||||
e107::js('footer', '{e_WEB}js/bootstrap.switch.init.js', 'jquery', 5);
|
e107::js('footer', '{e_WEB}js/bootstrap.switch.init.js', 'jquery', 5);
|
||||||
|
|
||||||
$text = $this->hidden($name, (int) $checked_enabled);
|
$text = $this->hidden($name, (int) $checked_enabled);
|
||||||
$text .= $this->checkbox($name, $checked_enabled, $checked_enabled);
|
$text .= $this->checkbox($switchName, (int) $checked_enabled, $checked_enabled);
|
||||||
|
|
||||||
return $text;
|
return $text;
|
||||||
}
|
}
|
||||||
@@ -2862,6 +2864,7 @@ class e_form
|
|||||||
function hidden($name, $value, $options = array())
|
function hidden($name, $value, $options = array())
|
||||||
{
|
{
|
||||||
$options = $this->format_options('hidden', $name, $options);
|
$options = $this->format_options('hidden', $name, $options);
|
||||||
|
|
||||||
return "<input type='hidden' name='{$name}' value='{$value}'".$this->get_attributes($options, $name, $value)." />";
|
return "<input type='hidden' name='{$name}' value='{$value}'".$this->get_attributes($options, $name, $value)." />";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
17
e107_web/js/bootstrap.switch.init.js
vendored
17
e107_web/js/bootstrap.switch.init.js
vendored
@@ -3,6 +3,9 @@ var e107 = e107 || {'settings': {}, 'behaviors': {}};
|
|||||||
(function ($)
|
(function ($)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @type {{attach: e107.behaviors.bootstrapSwitchInit.attach}}
|
* @type {{attach: e107.behaviors.bootstrapSwitchInit.attach}}
|
||||||
*/
|
*/
|
||||||
@@ -24,13 +27,19 @@ var e107 = e107 || {'settings': {}, 'behaviors': {}};
|
|||||||
size: options.size || 'mini',
|
size: options.size || 'mini',
|
||||||
onText: options.onText || null,
|
onText: options.onText || null,
|
||||||
offText: options.offText || null,
|
offText: options.offText || null,
|
||||||
wrapperClass: options.wrapperClass || null
|
wrapperClass: options.wrapperClass || null,
|
||||||
// state:
|
// disabled: false
|
||||||
|
// state: $('input[type="hidden"][name="' + name + '"]').data('on')
|
||||||
// inverse: options.inverse // this is 'reverse' - default values but reversed order.
|
// inverse: options.inverse // this is 'reverse' - default values but reversed order.
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
$(this).on('switchChange.bootstrapSwitch', function (event, state) {
|
$(this).on('switchChange.bootstrapSwitch', function (event, state) {
|
||||||
var name = $(this).attr('name');
|
|
||||||
|
var tmp = $(this).attr('name').split('__');
|
||||||
|
|
||||||
|
var name = tmp[0]; // $(this).attr('name');
|
||||||
var checked = true;
|
var checked = true;
|
||||||
|
|
||||||
if(state === false)
|
if(state === false)
|
||||||
@@ -47,7 +56,7 @@ var e107 = e107 || {'settings': {}, 'behaviors': {}};
|
|||||||
|
|
||||||
$('input[type="hidden"][name="' + name + '"]').val(value);
|
$('input[type="hidden"][name="' + name + '"]').val(value);
|
||||||
|
|
||||||
event.preventDefault();
|
// event.preventDefault();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
Reference in New Issue
Block a user