1
0
mirror of https://github.com/e107inc/e107.git synced 2025-07-28 18:30:53 +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'])) 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)." />";
} }

View File

@@ -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();
}); });
} }
}); });