1
0
mirror of https://github.com/e107inc/e107.git synced 2025-04-14 17:42:10 +02:00

Switch fix

This commit is contained in:
Cameron 2017-03-03 08:44:42 -08:00
parent 551bee9b47
commit 2be943f45a
2 changed files with 21 additions and 9 deletions

View File

@ -2251,7 +2251,7 @@ class e_form
if(empty($options['id']))
{
$options['id'] = '';
unset($options['id']);
}
// $options['class'] = 'inline';
$text = "";
@ -2341,7 +2341,7 @@ class e_form
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'
{
@ -2368,7 +2368,7 @@ class e_form
* @param array $options
* @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']))
@ -2385,9 +2385,11 @@ class e_form
}
$switchName = $name.'__switch';
$js_options = array(
// Each form element has its own options.
$name => array(
$switchName => array(
'size' => $options['switch'],
'onText' => $labels['on'],
'offText' => $labels['off'],
@ -2406,7 +2408,7 @@ class e_form
e107::js('footer', '{e_WEB}js/bootstrap.switch.init.js', 'jquery', 5);
$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;
}
@ -2862,6 +2864,7 @@ class e_form
function hidden($name, $value, $options = array())
{
$options = $this->format_options('hidden', $name, $options);
return "<input type='hidden' name='{$name}' value='{$value}'".$this->get_attributes($options, $name, $value)." />";
}

View File

@ -3,6 +3,9 @@ var e107 = e107 || {'settings': {}, 'behaviors': {}};
(function ($)
{
/**
* @type {{attach: e107.behaviors.bootstrapSwitchInit.attach}}
*/
@ -24,13 +27,19 @@ var e107 = e107 || {'settings': {}, 'behaviors': {}};
size: options.size || 'mini',
onText: options.onText || null,
offText: options.offText || null,
wrapperClass: options.wrapperClass || null
// state:
wrapperClass: options.wrapperClass || null,
// disabled: false
// state: $('input[type="hidden"][name="' + name + '"]').data('on')
// inverse: options.inverse // this is 'reverse' - default values but reversed order.
});
$(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;
if(state === false)
@ -47,7 +56,7 @@ var e107 = e107 || {'settings': {}, 'behaviors': {}};
$('input[type="hidden"][name="' + name + '"]').val(value);
event.preventDefault();
// event.preventDefault();
});
}
});