mirror of
https://github.com/billz/raspap-webgui.git
synced 2023-10-10 13:37:24 +02:00
commit
96717deea1
@ -30,6 +30,7 @@
|
||||
],
|
||||
"dependencies": {
|
||||
"bootstrap": "~3.3.7",
|
||||
"bootstrap-toggle": "~2.2.0",
|
||||
"datatables": "~1.10.4",
|
||||
"datatables-plugins": "~1.0.1",
|
||||
"flot": "~0.8.3",
|
||||
|
@ -10,8 +10,13 @@ require dhcp_server_identifier
|
||||
slaac private
|
||||
nohook lookup-hostname
|
||||
|
||||
# RaspAP-WebGui wireless configuration
|
||||
# RaspAP wlan0 configuration
|
||||
interface wlan0
|
||||
static ip_address=10.3.141.1/24
|
||||
static routers=10.3.141.1
|
||||
static domain_name_server=1.1.1.1 8.8.8.8
|
||||
|
||||
# RaspAP uap0 configuration
|
||||
interface uap0
|
||||
static ip_address=192.168.50.1/24
|
||||
nohook wpa_supplicant
|
||||
|
@ -1,3 +1,12 @@
|
||||
domain-needed
|
||||
# RaspAP wlan0 configuration for wired (ethernet) AP mode
|
||||
interface=wlan0
|
||||
dhcp-range=10.3.141.50,10.3.141.255,255.255.255.0,12h
|
||||
|
||||
# RaspAP uap0 configuration for wireless client AP mode
|
||||
#interface=lo,uap0 # Use interfaces lo and uap0
|
||||
#bind-interfaces # Bind to the interfaces
|
||||
#server=8.8.8.8 # Forward DNS requests to Google DNS
|
||||
#domain-needed # Don't forward short names
|
||||
#bogus-priv # Never forward addresses in the non-routed address spaces
|
||||
#dhcp-range=192.168.50.50,192.168.50.150,12h
|
||||
|
||||
|
@ -16,3 +16,6 @@ country_code=
|
||||
#ieee80211n=1 # 802.11n support (Raspberry Pi 3)
|
||||
#wmm_enabled=1 # QoS support (Raspberry Pi 3)
|
||||
#ht_capab=[HT40][SHORT-GI-20][DSSS_CCK-40] # (Raspberry Pi 3)
|
||||
|
||||
## RaspAP wireless client AP mode
|
||||
#interface=uap0
|
@ -11,6 +11,7 @@ define('RASPI_WIFI_CLIENT_INTERFACE', 'wlan0');
|
||||
define('RASPI_DNSMASQ_CONFIG', '/etc/dnsmasq.conf');
|
||||
define('RASPI_DNSMASQ_LEASES', '/var/lib/misc/dnsmasq.leases');
|
||||
define('RASPI_HOSTAPD_CONFIG', '/etc/hostapd/hostapd.conf');
|
||||
define('RASPI_DHCPCD_CONFIG', '/etc/dhcpcd.conf');
|
||||
define('RASPI_WPA_SUPPLICANT_CONFIG', '/etc/wpa_supplicant/wpa_supplicant.conf');
|
||||
define('RASPI_HOSTAPD_CTRL_INTERFACE', '/var/run/hostapd');
|
||||
define('RASPI_WPA_CTRL_INTERFACE', '/var/run/wpa_supplicant');
|
||||
|
@ -27,7 +27,11 @@ function DisplayHostAPDConfig()
|
||||
} elseif( isset($_POST['StartHotspot']) ) {
|
||||
if (CSRFValidate()) {
|
||||
$status->addMessage('Attempting to start hotspot', 'info');
|
||||
exec( 'sudo /etc/init.d/hostapd start', $return );
|
||||
if ($arrHostapdConf['WifiAPEnable'] == 1) {
|
||||
exec('sudo /etc/raspap/hostapd/servicestart.sh --interface uap0 --seconds 5', $return );
|
||||
} else {
|
||||
exec( 'sudo /etc/raspap/hostapd/servicestart.sh --seconds 5', $return );
|
||||
}
|
||||
foreach( $return as $line ) {
|
||||
$status->addMessage($line, 'info');
|
||||
}
|
||||
@ -80,7 +84,7 @@ function DisplayHostAPDConfig()
|
||||
<li class="active"><a href="#basic" data-toggle="tab"><?php echo _("Basic"); ?></a></li>
|
||||
<li><a href="#security" data-toggle="tab"><?php echo _("Security"); ?></a></li>
|
||||
<li><a href="#advanced" data-toggle="tab"><?php echo _("Advanced"); ?></a></li>
|
||||
<li><a href="#logoutput" data-toggle="tab"><?php echo _("Logfile output"); ?></a></li>
|
||||
<li><a href="#logoutput" data-toggle="tab"><?php echo _("Logfile"); ?></a></li>
|
||||
</ul>
|
||||
|
||||
<!-- Tab panes -->
|
||||
@ -183,30 +187,43 @@ if (in_array($arrConfig['country_code'], $countries_max11channels)) {
|
||||
<h4><?php echo _("Advanced settings"); ?></h4>
|
||||
<div class="row">
|
||||
<div class="col-md-4">
|
||||
<div class="form-check">
|
||||
<label class="form-check-label" for="chxlogenable"><?php echo _("Enable logging");
|
||||
$checkedLogEnabled = '';
|
||||
if ($arrHostapdConf['LogEnable'] == 1) {
|
||||
$checkedLogEnabled = ' checked="checked"';
|
||||
<div class="checkbox">
|
||||
<?php
|
||||
$checkedWifiAPEnabled = '';
|
||||
if ($arrHostapdConf['WifiAPEnable'] == 1) {
|
||||
$checkedWifiAPEnabled = ' checked="checked"';
|
||||
}
|
||||
|
||||
?>
|
||||
</label>
|
||||
<input id="chxlogenable" name="logEnable" type="checkbox" class="form-check-input" value="1"<?php echo $checkedLogEnabled; ?> />
|
||||
<input id="chxwificlientap" name="wifiAPEnable" type="checkbox" class="form-check-input" data-toggle="toggle" data-on="Enabled" data-off="Disabled" data-width="100" value="1"<?php echo $checkedWifiAPEnabled; ?> />
|
||||
<label class="form-check-label" for="chxwificlientap"><?php echo _("WiFi client AP mode"); ?></label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-4">
|
||||
<div class="form-check">
|
||||
<label class="form-check-label" for="chxhiddenssid"><?php echo _("Hide SSID in broadcast");
|
||||
<div class="checkbox">
|
||||
<?php
|
||||
$checkedLogEnabled = '';
|
||||
if ($arrHostapdConf['LogEnable'] == 1) {
|
||||
$checkedLogEnabled = ' checked="checked"';
|
||||
}
|
||||
?>
|
||||
<input id="chxlogenable" name="logEnable" type="checkbox" class="form-check-input" data-toggle="toggle" data-on="Enabled" data-off="Disabled" data-width="100" value="1"<?php echo $checkedLogEnabled; ?> />
|
||||
<label class="form-check-label" for="chxlogenable"><?php echo _("Logfile output"); ?></label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-4">
|
||||
<div class="checkbox">
|
||||
<?php
|
||||
$checkedHiddenSSID = '';
|
||||
if ($arrConfig['ignore_broadcast_ssid'] == 1 || $arrConfig['ignore_broadcast_ssid'] == 2) {
|
||||
$checkedHiddenSSID = ' checked="checked"';
|
||||
}
|
||||
|
||||
?> </label>
|
||||
<input id="chxhiddenssid" name="hiddenSSID" type="checkbox" class="form-check-input" value="1"<?php echo $checkedHiddenSSID; ?> />
|
||||
?>
|
||||
<input id="chxhiddenssid" name="hiddenSSID" type="checkbox" class="form-check-input" data-toggle="toggle" data-on="Enabled" data-off="Disabled" data-width="100" value="1"<?php echo $checkedHiddenSSID; ?> />
|
||||
<label class="form-check-label" for="chxhiddenssid"><?php echo _("Hide SSID in broadcast"); ?></label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -518,26 +535,39 @@ function SaveHostAPDConfig($wpa_array, $enc_types, $modes, $interfaces, $status)
|
||||
|
||||
$good_input = true;
|
||||
|
||||
// Check for Logging Checkbox
|
||||
$logEnable = 0;
|
||||
if($arrHostapdConf['LogEnable'] == 0) {
|
||||
if(isset($_POST['logEnable'])) {
|
||||
// Need code to enable logfile logging here
|
||||
$logEnable = 1;
|
||||
exec('sudo /etc/raspap/hostapd/enablelog.sh');
|
||||
} else {
|
||||
exec('sudo /etc/raspap/hostapd/disablelog.sh');
|
||||
// Check for WiFi client AP mode checkbox
|
||||
$wifiAPEnable = 0;
|
||||
if($arrHostapdConf['WifiAPEnable'] == 0) {
|
||||
if(isset($_POST['wifiAPEnable'])) {
|
||||
$wifiAPEnable = 1;
|
||||
}
|
||||
} else {
|
||||
if(isset($_POST['logEnable'])) {
|
||||
$logEnable = 1;
|
||||
exec('sudo /etc/raspap/hostapd/enablelog.sh');
|
||||
} else {
|
||||
exec('sudo /etc/raspap/hostapd/disablelog.sh');
|
||||
if(isset($_POST['wifiAPEnable'])) {
|
||||
$wifiAPEnable = 1;
|
||||
}
|
||||
}
|
||||
|
||||
write_php_ini(["LogEnable" => $logEnable],'/etc/raspap/hostapd.ini');
|
||||
// Check for Logfile output checkbox
|
||||
$logEnable = 0;
|
||||
if($arrHostapdConf['LogEnable'] == 0) {
|
||||
if(isset($_POST['logEnable'])) {
|
||||
$logEnable = 1;
|
||||
exec('sudo /etc/raspap/hostapd/enablelog.sh');
|
||||
} else {
|
||||
exec('sudo /etc/raspap/hostapd/disablelog.sh');
|
||||
}
|
||||
} else {
|
||||
if(isset($_POST['logEnable'])) {
|
||||
$logEnable = 1;
|
||||
exec('sudo /etc/raspap/hostapd/enablelog.sh');
|
||||
} else {
|
||||
exec('sudo /etc/raspap/hostapd/disablelog.sh');
|
||||
}
|
||||
}
|
||||
$cfg = [];
|
||||
$cfg['LogEnable'] = $logEnable;
|
||||
$cfg['WifiAPEnable'] = $wifiAPEnable;
|
||||
write_php_ini($cfg,'/etc/raspap/hostapd.ini');
|
||||
|
||||
// Verify input
|
||||
if (empty($_POST['ssid']) || strlen($_POST['ssid']) > 32) {
|
||||
@ -579,36 +609,83 @@ function SaveHostAPDConfig($wpa_array, $enc_types, $modes, $interfaces, $status)
|
||||
}
|
||||
|
||||
if ($good_input) {
|
||||
if ($tmp_file = fopen('/tmp/hostapddata', 'w')) {
|
||||
// Fixed values
|
||||
fwrite($tmp_file, 'driver=nl80211'.PHP_EOL);
|
||||
fwrite($tmp_file, 'ctrl_interface='.RASPI_HOSTAPD_CTRL_INTERFACE.PHP_EOL);
|
||||
fwrite($tmp_file, 'ctrl_interface_group=0'.PHP_EOL);
|
||||
fwrite($tmp_file, 'auth_algs=1'.PHP_EOL);
|
||||
fwrite($tmp_file, 'wpa_key_mgmt=WPA-PSK'.PHP_EOL);
|
||||
fwrite($tmp_file, 'beacon_int=100'.PHP_EOL);
|
||||
|
||||
fwrite($tmp_file, 'ssid='.$_POST['ssid'].PHP_EOL);
|
||||
fwrite($tmp_file, 'channel='.$_POST['channel'].PHP_EOL);
|
||||
$config = 'driver=nl80211'.PHP_EOL;
|
||||
$config.= 'ctrl_interface='.RASPI_HOSTAPD_CTRL_INTERFACE.PHP_EOL;
|
||||
$config.= 'ctrl_interface_group=0'.PHP_EOL;
|
||||
$config.= 'auth_algs=1'.PHP_EOL;
|
||||
$config.= 'wpa_key_mgmt=WPA-PSK'.PHP_EOL;
|
||||
$config.= 'beacon_int=100'.PHP_EOL;
|
||||
$config.= 'ssid='.$_POST['ssid'].PHP_EOL;
|
||||
$config.= 'channel='.$_POST['channel'].PHP_EOL;
|
||||
if ($_POST['hw_mode'] === 'n') {
|
||||
fwrite($tmp_file, 'hw_mode=g'.PHP_EOL);
|
||||
fwrite($tmp_file, 'ieee80211n=1'.PHP_EOL);
|
||||
$config.= 'hw_mode=g'.PHP_EOL;
|
||||
$config.= 'ieee80211n=1'.PHP_EOL;
|
||||
// Enable basic Quality of service
|
||||
fwrite($tmp_file, 'wme_enabled=1'.PHP_EOL);
|
||||
$config.= 'wme_enabled=1'.PHP_EOL;
|
||||
} else {
|
||||
fwrite($tmp_file, 'hw_mode='.$_POST['hw_mode'].PHP_EOL);
|
||||
fwrite($tmp_file, 'ieee80211n=0'.PHP_EOL);
|
||||
$config.= 'hw_mode='.$_POST['hw_mode'].PHP_EOL;
|
||||
$config.= 'ieee80211n=0'.PHP_EOL;
|
||||
}
|
||||
$config.= 'wpa_passphrase='.$_POST['wpa_passphrase'].PHP_EOL;
|
||||
if ($wifiAPEnable == 1) {
|
||||
$config.= 'interface=uap0'.PHP_EOL;
|
||||
} else {
|
||||
$config.= 'interface='.$_POST['interface'].PHP_EOL;
|
||||
}
|
||||
$config.= 'wpa='.$_POST['wpa'].PHP_EOL;
|
||||
$config.= 'wpa_pairwise='.$_POST['wpa_pairwise'].PHP_EOL;
|
||||
$config.= 'country_code='.$_POST['country_code'].PHP_EOL;
|
||||
$config.= 'ignore_broadcast_ssid='.$ignore_broadcast_ssid.PHP_EOL;
|
||||
|
||||
fwrite($tmp_file, 'wpa_passphrase='.$_POST['wpa_passphrase'].PHP_EOL);
|
||||
fwrite($tmp_file, 'interface='.$_POST['interface'].PHP_EOL);
|
||||
fwrite($tmp_file, 'wpa='.$_POST['wpa'].PHP_EOL);
|
||||
fwrite($tmp_file, 'wpa_pairwise='.$_POST['wpa_pairwise'].PHP_EOL);
|
||||
fwrite($tmp_file, 'country_code='.$_POST['country_code'].PHP_EOL);
|
||||
fwrite($tmp_file, 'ignore_broadcast_ssid='.$ignore_broadcast_ssid.PHP_EOL);
|
||||
fclose($tmp_file);
|
||||
|
||||
exec('echo "'.$config.'" > /tmp/hostapddata', $temp);
|
||||
system( "sudo cp /tmp/hostapddata " . RASPI_HOSTAPD_CONFIG, $return );
|
||||
|
||||
if ($wifiAPEnable == 1) {
|
||||
// Enable uap0 configuration in dnsmasq for Wifi client AP mode
|
||||
$config = 'interface=lo,uap0 # Enable uap0 interface for wireless client AP mode'.PHP_EOL;
|
||||
$config.= 'bind-interfaces # Bind to the interfaces'.PHP_EOL;
|
||||
$config.= 'server=8.8.8.8 # Forward DNS requests to Google DNS'.PHP_EOL;
|
||||
$config.= 'domain-needed # Don\'t forward short names'.PHP_EOL;
|
||||
$config.= 'bogus-priv # Never forward addresses in the non-routed address spaces'.PHP_EOL;
|
||||
$config.= 'dhcp-range=192.168.50.50,192.168.50.150,12h'.PHP_EOL;
|
||||
} else {
|
||||
// Fallback to default config
|
||||
$config = 'domain-needed'.PHP_EOL;
|
||||
$config.= 'interface='.$_POST['interface'].PHP_EOL;
|
||||
$config.= 'dhcp-range=10.3.141.50,10.3.141.255,255.255.255.0,12h'.PHP_EOL;
|
||||
}
|
||||
exec('echo "'.$config.'" > /tmp/dhcpddata', $temp);
|
||||
system('sudo cp /tmp/dhcpddata '.RASPI_DNSMASQ_CONFIG, $return);
|
||||
|
||||
if ($wifiAPEnable == 1) {
|
||||
// Enable uap0 configuration in dhcpcd for Wifi client AP mode
|
||||
$config = PHP_EOL.'# RaspAP uap0 configuration'.PHP_EOL;
|
||||
$config.= 'interface uap0'.PHP_EOL;
|
||||
$config.= 'static ip_address=192.168.50.1/24'.PHP_EOL;
|
||||
$config.= 'nohook wpa_supplicant'.PHP_EOL;
|
||||
} else {
|
||||
// Default config
|
||||
$config = '# RaspAP wlan0 configuration'.PHP_EOL;
|
||||
$config.= 'hostname'.PHP_EOL;
|
||||
$config.= 'clientid'.PHP_EOL;
|
||||
$config.= 'persistent'.PHP_EOL;
|
||||
$config.= 'option rapid_commit'.PHP_EOL;
|
||||
$config.= 'option domain_name_servers, domain_name, domain_search, host_name'.PHP_EOL;
|
||||
$config.= 'option classless_static_routes'.PHP_EOL;
|
||||
$config.= 'option ntp_servers'.PHP_EOL;
|
||||
$config.= 'require dhcp_server_identifier'.PHP_EOL;
|
||||
$config.= 'slaac private'.PHP_EOL;
|
||||
$config.= 'nohook lookup-hostname'.PHP_EOL;
|
||||
$config.= 'interface '.RASPI_WIFI_CLIENT_INTERFACE.PHP_EOL;
|
||||
$config.= 'static ip_address=10.3.141.1/24'.PHP_EOL;
|
||||
$config.= 'static routers=10.3.141.1'.PHP_EOL;
|
||||
$config.= 'static domain_name_server=1.1.1.1 8.8.8.8'.PHP_EOL;
|
||||
}
|
||||
exec('echo "'.$config.'" > /tmp/dhcpddata', $temp);
|
||||
system('sudo cp /tmp/dhcpddata '.RASPI_DHCPCD_CONFIG, $return);
|
||||
|
||||
|
||||
if( $return == 0 ) {
|
||||
$status->addMessage('Wifi Hotspot settings saved', 'success');
|
||||
} else {
|
||||
@ -618,7 +695,6 @@ function SaveHostAPDConfig($wpa_array, $enc_types, $modes, $interfaces, $status)
|
||||
$status->addMessage('Unable to save wifi hotspot settings', 'danger');
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
@ -70,6 +70,9 @@ $theme_url = 'dist/css/'.htmlspecialchars($theme, ENT_QUOTES);
|
||||
<!-- Bootstrap Core CSS -->
|
||||
<link href="vendor/bootstrap/css/bootstrap.min.css" rel="stylesheet">
|
||||
|
||||
<!-- Bootstrap Toggle CSS -->
|
||||
<link href="vendor/bootstrap-toggle/css/bootstrap-toggle.min.css" rel="stylesheet">
|
||||
|
||||
<!-- MetisMenu CSS -->
|
||||
<link href="vendor/metisMenu/metisMenu.min.css" rel="stylesheet">
|
||||
|
||||
@ -246,6 +249,9 @@ $extraFooterScripts = array();
|
||||
<!-- Bootstrap Core JavaScript -->
|
||||
<script src="vendor/bootstrap/js/bootstrap.min.js"></script>
|
||||
|
||||
<!-- Bootstrap Toggle JavaScript -->
|
||||
<script src="vendor/bootstrap-toggle/js/bootstrap-toggle.min.js"></script>
|
||||
|
||||
<!-- Metis Menu Plugin JavaScript -->
|
||||
<script src="vendor/metisMenu/metisMenu.min.js"></script>
|
||||
|
||||
|
@ -114,16 +114,18 @@ function create_raspap_directories() {
|
||||
sudo chown -R $raspap_user:$raspap_user "$raspap_dir" || install_error "Unable to change file ownership for '$raspap_dir'"
|
||||
}
|
||||
|
||||
# Generate logging enable/disable files for hostapd
|
||||
function create_logging_scripts() {
|
||||
install_log "Creating logging scripts"
|
||||
# Generate hostapd logging and service control scripts
|
||||
function create_hostapd_scripts() {
|
||||
install_log "Creating hostapd logging & control scripts"
|
||||
sudo mkdir $raspap_dir/hostapd || install_error "Unable to create directory '$raspap_dir/hostapd'"
|
||||
|
||||
# Move existing shell scripts
|
||||
# Move logging shell scripts
|
||||
sudo mv "$webroot_dir/installers/"*log.sh "$raspap_dir/hostapd" || install_error "Unable to move logging scripts"
|
||||
# Move service control shell scripts
|
||||
sudo mv "$webroot_dir/installers/"service*.sh "$raspap_dir/hostapd" || install_error "Unable to move service control scripts"
|
||||
# Make enablelog.sh and disablelog.sh not writable by www-data group.
|
||||
sudo chown -c root:"$raspap_user" "$raspap_dir/hostapd/"*log.sh || install_error "Unable change owner and/or group."
|
||||
sudo chmod 750 "$raspap_dir/hostapd/"*log.sh || install_error "Unable to change file permissions."
|
||||
sudo chown -c root:"$raspap_user" "$raspap_dir/hostapd/"*.sh || install_error "Unable change owner and/or group."
|
||||
sudo chmod 750 "$raspap_dir/hostapd/"*.sh || install_error "Unable to change file permissions."
|
||||
}
|
||||
|
||||
|
||||
@ -203,7 +205,7 @@ function default_configuration() {
|
||||
lines=(
|
||||
'echo 1 > \/proc\/sys\/net\/ipv4\/ip_forward #RASPAP'
|
||||
'iptables -t nat -A POSTROUTING -j MASQUERADE #RASPAP'
|
||||
|
||||
'iptables -t nat -A POSTROUTING -s 192.168.50.0\/24 ! -d 192.168.50.0\/24 -j MASQUERADE #RASPAP'
|
||||
)
|
||||
|
||||
for line in "${lines[@]}"; do
|
||||
@ -214,6 +216,10 @@ function default_configuration() {
|
||||
echo "Adding line $line"
|
||||
fi
|
||||
done
|
||||
|
||||
# Force a reload of new settings in /etc/rc.local
|
||||
sudo systemctl restart rc-local.service
|
||||
sudo systemctl daemon-reload
|
||||
}
|
||||
|
||||
|
||||
@ -246,6 +252,7 @@ function patch_system_files() {
|
||||
"/etc/init.d/dnsmasq start"
|
||||
"/etc/init.d/dnsmasq stop"
|
||||
"/bin/cp /tmp/dhcpddata /etc/dnsmasq.conf"
|
||||
"/bin/cp /tmp/dhcpddata /etc/dhcpcd.conf"
|
||||
"/sbin/shutdown -h now"
|
||||
"/sbin/reboot"
|
||||
"/sbin/ip link set wlan[0-9] down"
|
||||
@ -254,6 +261,7 @@ function patch_system_files() {
|
||||
"/bin/cp /etc/raspap/networking/dhcpcd.conf /etc/dhcpcd.conf"
|
||||
"/etc/raspap/hostapd/enablelog.sh"
|
||||
"/etc/raspap/hostapd/disablelog.sh"
|
||||
"/etc/raspap/hostapd/servicestart.sh"
|
||||
)
|
||||
|
||||
# Check if sudoers needs patching
|
||||
@ -318,6 +326,9 @@ function optimize_php() {
|
||||
function install_complete() {
|
||||
install_log "Installation completed!"
|
||||
|
||||
# Prompt to reboot if wired ethernet (eth0) is connected.
|
||||
# With default_configuration this will create an active AP on restart.
|
||||
if ip a | grep -q ': eth0:.*state UP'; then
|
||||
echo -n "The system needs to be rebooted as a final step. Reboot now? [y/N]: "
|
||||
read answer
|
||||
if [[ $answer != "y" ]]; then
|
||||
@ -325,6 +336,7 @@ function install_complete() {
|
||||
exit 0
|
||||
fi
|
||||
sudo shutdown -r now || install_error "Unable to execute shutdown"
|
||||
fi
|
||||
}
|
||||
|
||||
function install_raspap() {
|
||||
@ -338,7 +350,7 @@ function install_raspap() {
|
||||
check_for_old_configs
|
||||
download_latest_files
|
||||
change_file_ownership
|
||||
create_logging_scripts
|
||||
create_hostapd_scripts
|
||||
move_config_file
|
||||
default_configuration
|
||||
patch_system_files
|
||||
|
58
installers/servicestart.sh
Executable file
58
installers/servicestart.sh
Executable file
@ -0,0 +1,58 @@
|
||||
#!/bin/bash
|
||||
# When wireless client AP mode is enabled, this script handles starting
|
||||
# up network services in a specific order and timing to avoid race conditions.
|
||||
|
||||
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
|
||||
NAME=raspap
|
||||
DESC="Service control for RaspAP"
|
||||
|
||||
positional=()
|
||||
while [[ $# -gt 0 ]]
|
||||
do
|
||||
key="$1"
|
||||
|
||||
case $key in
|
||||
-i|--interface)
|
||||
interface="$2"
|
||||
shift # past argument
|
||||
shift # past value
|
||||
;;
|
||||
-s|--seconds)
|
||||
seconds="$2"
|
||||
shift # past argument
|
||||
shift # past value
|
||||
;;
|
||||
esac
|
||||
done
|
||||
set -- "${positional[@]}"
|
||||
|
||||
echo "Stopping network services..."
|
||||
systemctl stop hostapd.service
|
||||
systemctl stop dnsmasq.service
|
||||
systemctl stop dhcpcd.service
|
||||
|
||||
echo "Removing uap0 interface..."
|
||||
iw dev uap0 del
|
||||
|
||||
if [ "${interface}" = "uap0" ]; then
|
||||
echo "Adding uap0 interface..."
|
||||
iw dev wlan0 interface add uap0 type __ap
|
||||
|
||||
# Bring up uap0 interface
|
||||
ifconfig uap0 up
|
||||
fi
|
||||
|
||||
# Start services, mitigating race conditions
|
||||
echo "Starting hostapd service..."
|
||||
systemctl start hostapd.service
|
||||
sleep "${seconds}"
|
||||
|
||||
echo "Starting dhcpcd service..."
|
||||
systemctl start dhcpcd.service
|
||||
sleep "${seconds}"
|
||||
|
||||
echo "Starting dnsmasq service..."
|
||||
systemctl start dnsmasq.service
|
||||
|
||||
echo "RaspAP service start DONE"
|
||||
|
37
vendor/bootstrap-toggle/Gruntfile.js
vendored
Normal file
37
vendor/bootstrap-toggle/Gruntfile.js
vendored
Normal file
@ -0,0 +1,37 @@
|
||||
module.exports = function(grunt) {
|
||||
'use strict';
|
||||
|
||||
grunt.initConfig({
|
||||
clean: ['dist'],
|
||||
uglify: {
|
||||
options: {
|
||||
preserveComments: 'some',
|
||||
sourceMap: true
|
||||
},
|
||||
build: {
|
||||
expand: true,
|
||||
cwd: 'js',
|
||||
src: ['**/*.js', ['!**/*.min.js']],
|
||||
dest: 'js',
|
||||
ext: '.min.js',
|
||||
}
|
||||
},
|
||||
cssmin: {
|
||||
options: {
|
||||
keepBreaks: true
|
||||
},
|
||||
build: {
|
||||
expand: true,
|
||||
cwd: 'css',
|
||||
src: ['**/*.css', ['!**/*.min.css']],
|
||||
dest: 'css',
|
||||
ext: '.min.css',
|
||||
}
|
||||
}
|
||||
});
|
||||
grunt.loadNpmTasks('grunt-contrib-clean');
|
||||
grunt.loadNpmTasks('grunt-contrib-uglify');
|
||||
grunt.loadNpmTasks('grunt-contrib-cssmin');
|
||||
grunt.registerTask('default', ['clean', 'uglify', 'cssmin']);
|
||||
|
||||
};
|
21
vendor/bootstrap-toggle/LICENSE
vendored
Normal file
21
vendor/bootstrap-toggle/LICENSE
vendored
Normal file
@ -0,0 +1,21 @@
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2011-2014 Min Hur, The New York Times Company
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
175
vendor/bootstrap-toggle/README.md
vendored
Normal file
175
vendor/bootstrap-toggle/README.md
vendored
Normal file
@ -0,0 +1,175 @@
|
||||
# Bootstrap Toggle
|
||||
Bootstrap Toggle is a highly flexible Bootstrap plugin that converts checkboxes into toggles.
|
||||
|
||||
Visit http://www.bootstraptoggle.com for demos.
|
||||
|
||||
## Getting Started
|
||||
|
||||
### Installation
|
||||
You can [download](https://github.com/minhur/bootstrap-toggle/archive/master.zip) the latest version of Bootstrap Toggle or use CDN to load the library.
|
||||
|
||||
`Warning` If you are using Bootstrap v2.3.2, use `bootstrap2-toggle.min.js` and `bootstrap2-toggle.min.css` instead.
|
||||
|
||||
```html
|
||||
<link href="https://gitcdn.github.io/bootstrap-toggle/2.2.0/css/bootstrap-toggle.min.css" rel="stylesheet">
|
||||
<script src="https://gitcdn.github.io/bootstrap-toggle/2.2.0/js/bootstrap-toggle.min.js"></script>
|
||||
```
|
||||
|
||||
### Bower Install
|
||||
```bash
|
||||
bower install bootstrap-toggle
|
||||
```
|
||||
|
||||
## Usage
|
||||
|
||||
### Basic example
|
||||
Simply add `data-toggle="toggle"` to convert checkboxes into toggles.
|
||||
|
||||
```html
|
||||
<input type="checkbox" checked data-toggle="toggle">
|
||||
```
|
||||
|
||||
### Stacked checkboxes
|
||||
Refer to Bootstrap Form Controls documentation to create stacked checkboxes. Simply add `data-toggle="toggle"` to convert checkboxes into toggles.
|
||||
|
||||
```html
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input type="checkbox" data-toggle="toggle">
|
||||
Option one is enabled
|
||||
</label>
|
||||
</div>
|
||||
<div class="checkbox disabled">
|
||||
<label>
|
||||
<input type="checkbox" disabled data-toggle="toggle">
|
||||
Option two is disabled
|
||||
</label>
|
||||
</div>
|
||||
```
|
||||
|
||||
### Inline Checkboxes
|
||||
Refer to Bootstrap Form Controls documentation to create inline checkboxes. Simply add `data-toggle="toggle"` to a convert checkboxes into toggles.
|
||||
|
||||
```html
|
||||
<label class="checkbox-inline">
|
||||
<input type="checkbox" checked data-toggle="toggle"> First
|
||||
</label>
|
||||
<label class="checkbox-inline">
|
||||
<input type="checkbox" data-toggle="toggle"> Second
|
||||
</label>
|
||||
<label class="checkbox-inline">
|
||||
<input type="checkbox" data-toggle="toggle"> Third
|
||||
</label>
|
||||
```
|
||||
|
||||
## API
|
||||
|
||||
### Initialize by JavaScript
|
||||
Initialize toggles with id `toggle-one` with a single line of JavaScript.
|
||||
|
||||
```html
|
||||
<input id="toggle-one" checked type="checkbox">
|
||||
<script>
|
||||
$(function() {
|
||||
$('#toggle-one').bootstrapToggle();
|
||||
})
|
||||
</script>
|
||||
```
|
||||
|
||||
### Options
|
||||
Options can be passed via data attributes or JavaScript. For data attributes, append the option name to `data-`, as in `data-on="Enabled"`.
|
||||
|
||||
```html
|
||||
<input type="checkbox" data-toggle="toggle" data-on="Enabled" data-off="Disabled">
|
||||
<input type="checkbox" id="toggle-two">
|
||||
<script>
|
||||
$(function() {
|
||||
$('#toggle-two').bootstrapToggle({
|
||||
on: 'Enabled',
|
||||
off: 'Disabled'
|
||||
});
|
||||
})
|
||||
</script>
|
||||
```
|
||||
|
||||
Name|Type|Default|Description|
|
||||
---|---|---|---
|
||||
on|string/html|"On"|Text of the on toggle
|
||||
off|string/html|"Off"|Text of the off toggle
|
||||
size|string|"normal"|Size of the toggle. Possible values are `large`, `normal`, `small`, `mini`.
|
||||
onstyle|string|"primary"|Style of the on toggle. Possible values are `default`, `primary`, `success`, `info`, `warning`, `danger`
|
||||
offstyle|string|"default"|Style of the off toggle. Possible values are `default`, `primary`, `success`, `info`, `warning`, `danger`
|
||||
style|string| |Appends the value to the class attribute of the toggle. This can be used to apply custom styles. Refer to Custom Styles for reference.
|
||||
width|integer|*null*|Sets the width of the toggle. if set to *null*, width will be calculated.
|
||||
height|integer|*null*|Sets the height of the toggle. if set to *null*, height will be calculated.
|
||||
|
||||
### Methods
|
||||
Methods can be used to control toggles directly.
|
||||
|
||||
```html
|
||||
<input id="toggle-demo" type="checkbox" data-toggle="toggle">
|
||||
```
|
||||
|
||||
Method|Example|Description
|
||||
---|---|---
|
||||
initialize|$('#toggle-demo').bootstrapToggle()|Initializes the toggle plugin with options
|
||||
destroy|$('#toggle-demo').bootstrapToggle('destroy')|Destroys the toggle
|
||||
on|$('#toggle-demo').bootstrapToggle('on')|Sets the toggle to 'On' state
|
||||
off|$('#toggle-demo').bootstrapToggle('off')|Sets the toggle to 'Off' state
|
||||
toggle|$('#toggle-demo').bootstrapToggle('toggle')|Toggles the state of the toggle
|
||||
enable|$('#toggle-demo').bootstrapToggle('enable')|Enables the toggle
|
||||
disable|$('#toggle-demo').bootstrapToggle('disable')|Disables the toggle
|
||||
|
||||
## Events
|
||||
|
||||
### Event Propagation
|
||||
Note All events are propagated to and from input element to the toggle.
|
||||
|
||||
You should listen to events from the `<input type="checkbox">` directly rather than look for custom events.
|
||||
|
||||
```html
|
||||
<input id="toggle-event" type="checkbox" data-toggle="toggle">
|
||||
<div id="console-event"></div>
|
||||
<script>
|
||||
$(function() {
|
||||
$('#toggle-event').change(function() {
|
||||
$('#console-event').html('Toggle: ' + $(this).prop('checked'))
|
||||
})
|
||||
})
|
||||
</script>
|
||||
```
|
||||
|
||||
### API vs Input
|
||||
This also means that using the API or Input to trigger events will work both ways.
|
||||
|
||||
```html
|
||||
<input id="toggle-trigger" type="checkbox" data-toggle="toggle">
|
||||
<button class="btn btn-success" onclick="toggleOn()">On by API</button>
|
||||
<button class="btn btn-danger" onclick="toggleOff()">Off by API</button>
|
||||
<button class="btn btn-success" onclick="toggleOnByInput()">On by Input</button>
|
||||
<button class="btn btn-danger" onclick="toggleOffByInput()">Off by Input</button>
|
||||
<script>
|
||||
function toggleOn() {
|
||||
$('#toggle-trigger').bootstrapToggle('on')
|
||||
}
|
||||
function toggleOff() {
|
||||
$('#toggle-trigger').bootstrapToggle('off')
|
||||
}
|
||||
function toggleOnByInput() {
|
||||
$('#toggle-trigger').prop('checked', true).change()
|
||||
}
|
||||
function toggleOffByInput() {
|
||||
$('#toggle-trigger').prop('checked', false).change()
|
||||
}
|
||||
</script>
|
||||
```
|
||||
|
||||
### Integration
|
||||
|
||||
#### [KnockoutJS](http://knockoutjs.com)
|
||||
|
||||
A binding for knockout is available here: [aAXEe/knockout-bootstrap-toggle](https://github.com/aAXEe/knockout-bootstrap-toggle)
|
||||
|
||||
## Demos
|
||||
|
||||
Visit http://www.bootstraptoggle.com for demos.
|
32
vendor/bootstrap-toggle/bower.json
vendored
Normal file
32
vendor/bootstrap-toggle/bower.json
vendored
Normal file
@ -0,0 +1,32 @@
|
||||
{
|
||||
"name": "bootstrap-toggle",
|
||||
"description": "Bootstrap Toggle is a highly flexible Bootstrap plugin that converts checkboxes into toggles",
|
||||
"version": "2.2.1",
|
||||
"keywords": [
|
||||
"bootstrap",
|
||||
"toggle",
|
||||
"bootstrap-toggle",
|
||||
"switch",
|
||||
"bootstrap-switch"
|
||||
],
|
||||
"homepage": "http://www.bootstraptoggle.com",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/minhur/bootstrap-toggle.git"
|
||||
},
|
||||
"license": "MIT",
|
||||
"authors": [
|
||||
"Min Hur <min.hur@gmail.com>"
|
||||
],
|
||||
"main": [
|
||||
"./js/bootstrap-toggle.min.js",
|
||||
"./css/bootstrap-toggle.min.css"
|
||||
],
|
||||
"ignore": [
|
||||
"**/.*",
|
||||
"node_modules",
|
||||
"bower_components",
|
||||
"test",
|
||||
"tests"
|
||||
]
|
||||
}
|
83
vendor/bootstrap-toggle/css/bootstrap-toggle.css
vendored
Normal file
83
vendor/bootstrap-toggle/css/bootstrap-toggle.css
vendored
Normal file
@ -0,0 +1,83 @@
|
||||
/*! ========================================================================
|
||||
* Bootstrap Toggle: bootstrap-toggle.css v2.2.0
|
||||
* http://www.bootstraptoggle.com
|
||||
* ========================================================================
|
||||
* Copyright 2014 Min Hur, The New York Times Company
|
||||
* Licensed under MIT
|
||||
* ======================================================================== */
|
||||
|
||||
|
||||
.checkbox label .toggle,
|
||||
.checkbox-inline .toggle {
|
||||
margin-left: -20px;
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
.toggle {
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
}
|
||||
.toggle input[type="checkbox"] {
|
||||
display: none;
|
||||
}
|
||||
.toggle-group {
|
||||
position: absolute;
|
||||
width: 200%;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
transition: left 0.35s;
|
||||
-webkit-transition: left 0.35s;
|
||||
-moz-user-select: none;
|
||||
-webkit-user-select: none;
|
||||
}
|
||||
.toggle.off .toggle-group {
|
||||
left: -100%;
|
||||
}
|
||||
.toggle-on {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
right: 50%;
|
||||
margin: 0;
|
||||
border: 0;
|
||||
border-radius: 0;
|
||||
}
|
||||
.toggle-off {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
left: 50%;
|
||||
right: 0;
|
||||
margin: 0;
|
||||
border: 0;
|
||||
border-radius: 0;
|
||||
}
|
||||
.toggle-handle {
|
||||
position: relative;
|
||||
margin: 0 auto;
|
||||
padding-top: 0px;
|
||||
padding-bottom: 0px;
|
||||
height: 100%;
|
||||
width: 0px;
|
||||
border-width: 0 1px;
|
||||
}
|
||||
|
||||
.toggle.btn { min-width: 59px; min-height: 34px; }
|
||||
.toggle-on.btn { padding-right: 24px; }
|
||||
.toggle-off.btn { padding-left: 24px; }
|
||||
|
||||
.toggle.btn-lg { min-width: 79px; min-height: 45px; }
|
||||
.toggle-on.btn-lg { padding-right: 31px; }
|
||||
.toggle-off.btn-lg { padding-left: 31px; }
|
||||
.toggle-handle.btn-lg { width: 40px; }
|
||||
|
||||
.toggle.btn-sm { min-width: 50px; min-height: 30px;}
|
||||
.toggle-on.btn-sm { padding-right: 20px; }
|
||||
.toggle-off.btn-sm { padding-left: 20px; }
|
||||
|
||||
.toggle.btn-xs { min-width: 35px; min-height: 22px;}
|
||||
.toggle-on.btn-xs { padding-right: 12px; }
|
||||
.toggle-off.btn-xs { padding-left: 12px; }
|
||||
|
28
vendor/bootstrap-toggle/css/bootstrap-toggle.min.css
vendored
Normal file
28
vendor/bootstrap-toggle/css/bootstrap-toggle.min.css
vendored
Normal file
@ -0,0 +1,28 @@
|
||||
/*! ========================================================================
|
||||
* Bootstrap Toggle: bootstrap-toggle.css v2.2.0
|
||||
* http://www.bootstraptoggle.com
|
||||
* ========================================================================
|
||||
* Copyright 2014 Min Hur, The New York Times Company
|
||||
* Licensed under MIT
|
||||
* ======================================================================== */
|
||||
.checkbox label .toggle,.checkbox-inline .toggle{margin-left:-20px;margin-right:5px}
|
||||
.toggle{position:relative;overflow:hidden}
|
||||
.toggle input[type=checkbox]{display:none}
|
||||
.toggle-group{position:absolute;width:200%;top:0;bottom:0;left:0;transition:left .35s;-webkit-transition:left .35s;-moz-user-select:none;-webkit-user-select:none}
|
||||
.toggle.off .toggle-group{left:-100%}
|
||||
.toggle-on{position:absolute;top:0;bottom:0;left:0;right:50%;margin:0;border:0;border-radius:0}
|
||||
.toggle-off{position:absolute;top:0;bottom:0;left:50%;right:0;margin:0;border:0;border-radius:0}
|
||||
.toggle-handle{position:relative;margin:0 auto;padding-top:0;padding-bottom:0;height:100%;width:0;border-width:0 1px}
|
||||
.toggle.btn{min-width:59px;min-height:34px}
|
||||
.toggle-on.btn{padding-right:24px}
|
||||
.toggle-off.btn{padding-left:24px}
|
||||
.toggle.btn-lg{min-width:79px;min-height:45px}
|
||||
.toggle-on.btn-lg{padding-right:31px}
|
||||
.toggle-off.btn-lg{padding-left:31px}
|
||||
.toggle-handle.btn-lg{width:40px}
|
||||
.toggle.btn-sm{min-width:50px;min-height:30px}
|
||||
.toggle-on.btn-sm{padding-right:20px}
|
||||
.toggle-off.btn-sm{padding-left:20px}
|
||||
.toggle.btn-xs{min-width:35px;min-height:22px}
|
||||
.toggle-on.btn-xs{padding-right:12px}
|
||||
.toggle-off.btn-xs{padding-left:12px}
|
85
vendor/bootstrap-toggle/css/bootstrap2-toggle.css
vendored
Normal file
85
vendor/bootstrap-toggle/css/bootstrap2-toggle.css
vendored
Normal file
@ -0,0 +1,85 @@
|
||||
/*! ========================================================================
|
||||
* Bootstrap Toggle: bootstrap2-toggle.css v2.2.0
|
||||
* http://www.bootstraptoggle.com
|
||||
* ========================================================================
|
||||
* Copyright 2014 Min Hur, The New York Times Company
|
||||
* Licensed under MIT
|
||||
* ======================================================================== */
|
||||
|
||||
|
||||
label.checkbox .toggle,
|
||||
label.checkbox.inline .toggle {
|
||||
margin-left: -20px;
|
||||
margin-right: 5px;
|
||||
}
|
||||
.toggle {
|
||||
min-width: 40px;
|
||||
height: 20px;
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
}
|
||||
.toggle input[type="checkbox"] {
|
||||
display: none;
|
||||
}
|
||||
.toggle-group {
|
||||
position: absolute;
|
||||
width: 200%;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
transition: left 0.35s;
|
||||
-webkit-transition: left 0.35s;
|
||||
-moz-user-select: none;
|
||||
-webkit-user-select: none;
|
||||
}
|
||||
.toggle.off .toggle-group {
|
||||
left: -100%;
|
||||
}
|
||||
.toggle-on {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
right: 50%;
|
||||
margin: 0;
|
||||
border: 0;
|
||||
border-radius: 0;
|
||||
}
|
||||
.toggle-off {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
left: 50%;
|
||||
right: 0;
|
||||
margin: 0;
|
||||
border: 0;
|
||||
border-radius: 0;
|
||||
}
|
||||
.toggle-handle {
|
||||
position: relative;
|
||||
margin: 0 auto;
|
||||
padding-top: 0px;
|
||||
padding-bottom: 0px;
|
||||
height: 100%;
|
||||
width: 0px;
|
||||
border-width: 0 1px;
|
||||
}
|
||||
.toggle-handle.btn-mini {
|
||||
top: -1px;
|
||||
}
|
||||
.toggle.btn { min-width: 30px; }
|
||||
.toggle-on.btn { padding-right: 24px; }
|
||||
.toggle-off.btn { padding-left: 24px; }
|
||||
|
||||
.toggle.btn-large { min-width: 40px; }
|
||||
.toggle-on.btn-large { padding-right: 35px; }
|
||||
.toggle-off.btn-large { padding-left: 35px; }
|
||||
|
||||
.toggle.btn-small { min-width: 25px; }
|
||||
.toggle-on.btn-small { padding-right: 20px; }
|
||||
.toggle-off.btn-small { padding-left: 20px; }
|
||||
|
||||
.toggle.btn-mini { min-width: 20px; }
|
||||
.toggle-on.btn-mini { padding-right: 12px; }
|
||||
.toggle-off.btn-mini { padding-left: 12px; }
|
||||
|
28
vendor/bootstrap-toggle/css/bootstrap2-toggle.min.css
vendored
Normal file
28
vendor/bootstrap-toggle/css/bootstrap2-toggle.min.css
vendored
Normal file
@ -0,0 +1,28 @@
|
||||
/*! ========================================================================
|
||||
* Bootstrap Toggle: bootstrap2-toggle.css v2.2.0
|
||||
* http://www.bootstraptoggle.com
|
||||
* ========================================================================
|
||||
* Copyright 2014 Min Hur, The New York Times Company
|
||||
* Licensed under MIT
|
||||
* ======================================================================== */
|
||||
label.checkbox .toggle,label.checkbox.inline .toggle{margin-left:-20px;margin-right:5px}
|
||||
.toggle{min-width:40px;height:20px;position:relative;overflow:hidden}
|
||||
.toggle input[type=checkbox]{display:none}
|
||||
.toggle-group{position:absolute;width:200%;top:0;bottom:0;left:0;transition:left .35s;-webkit-transition:left .35s;-moz-user-select:none;-webkit-user-select:none}
|
||||
.toggle.off .toggle-group{left:-100%}
|
||||
.toggle-on{position:absolute;top:0;bottom:0;left:0;right:50%;margin:0;border:0;border-radius:0}
|
||||
.toggle-off{position:absolute;top:0;bottom:0;left:50%;right:0;margin:0;border:0;border-radius:0}
|
||||
.toggle-handle{position:relative;margin:0 auto;padding-top:0;padding-bottom:0;height:100%;width:0;border-width:0 1px}
|
||||
.toggle-handle.btn-mini{top:-1px}
|
||||
.toggle.btn{min-width:30px}
|
||||
.toggle-on.btn{padding-right:24px}
|
||||
.toggle-off.btn{padding-left:24px}
|
||||
.toggle.btn-large{min-width:40px}
|
||||
.toggle-on.btn-large{padding-right:35px}
|
||||
.toggle-off.btn-large{padding-left:35px}
|
||||
.toggle.btn-small{min-width:25px}
|
||||
.toggle-on.btn-small{padding-right:20px}
|
||||
.toggle-off.btn-small{padding-left:20px}
|
||||
.toggle.btn-mini{min-width:20px}
|
||||
.toggle-on.btn-mini{padding-right:12px}
|
||||
.toggle-off.btn-mini{padding-left:12px}
|
BIN
vendor/bootstrap-toggle/doc/header.png
vendored
Normal file
BIN
vendor/bootstrap-toggle/doc/header.png
vendored
Normal file
Binary file not shown.
After Width: | Height: | Size: 87 KiB |
BIN
vendor/bootstrap-toggle/doc/nyt.png
vendored
Normal file
BIN
vendor/bootstrap-toggle/doc/nyt.png
vendored
Normal file
Binary file not shown.
After Width: | Height: | Size: 4.9 KiB |
239
vendor/bootstrap-toggle/doc/nytdev.svg
vendored
Normal file
239
vendor/bootstrap-toggle/doc/nytdev.svg
vendored
Normal file
@ -0,0 +1,239 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 16.0.4, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
width="868.575px" height="186.426px" viewBox="0 0 868.575 186.426" enable-background="new 0 0 868.575 186.426"
|
||||
xml:space="preserve">
|
||||
<g>
|
||||
<path fill="#63BB46" d="M20.116,151.421c-4.572-4.576-5.988-10.257-5.988-22.211v-25.691c0-11.028-1.255-12.916-11.19-16.393
|
||||
v-4.877c4.892-1.419,7.096-2.684,8.983-5.025c1.896-2.703,2.207-4.421,2.207-11.518V40.188c0-8.038,0.472-11.508,2.046-15.771
|
||||
c1.89-5.187,6.14-9.44,11.189-11.03c4.876-1.574,8.82-2.03,21.738-2.362v8.366c-10.238,1.888-12.13,4.558-12.13,17.64v27.094
|
||||
c0,4.407-0.621,9.775-1.423,13.235c-0.94,3.469-2.354,5.363-5.664,7.41c3.31,2.355,4.724,4.097,5.516,7.249
|
||||
c0.95,3.622,1.571,8.501,1.571,13.234v27.573c0,12.758,1.739,15.122,12.13,17.173v8.351
|
||||
C30.193,157.873,25.162,156.772,20.116,151.421z"/>
|
||||
</g>
|
||||
<g>
|
||||
<path fill="#63BB46" d="M173.762,158.35v-8.351c10.403-2.051,12.136-4.415,12.136-17.173v-27.573c0-4.733,0.634-9.612,1.573-13.234
|
||||
c0.791-3.152,2.21-4.893,5.52-7.249c-3.309-2.047-4.729-3.94-5.673-7.41c-0.786-3.459-1.419-8.828-1.419-13.235V37.031
|
||||
c0-13.082-1.891-15.752-12.136-17.64v-8.366c12.919,0.332,16.867,0.788,21.742,2.362c5.04,1.59,9.294,5.843,11.189,11.03
|
||||
c1.575,4.263,2.056,7.733,2.056,15.771v25.517c0,7.097,0.301,8.815,2.199,11.518c1.897,2.342,4.096,3.606,8.981,5.025v4.877
|
||||
c-9.928,3.478-11.18,5.365-11.18,16.393v25.691c0,11.954-1.426,17.636-5.989,22.211
|
||||
C197.712,156.772,192.675,157.873,173.762,158.35z"/>
|
||||
</g>
|
||||
<g>
|
||||
<path d="M140.865,22.474c3.434,0.283,8.858,2.001,12.916,5.565c4.331,4.19,5.312,10.578,3.803,16.346
|
||||
c-1.354,5.181-2.864,7.862-8.135,11.416c-5.315,3.62-11.768,3.331-11.768,3.331v22.344l10.886,8.806l-10.886,8.786v30.473
|
||||
c0,0,10.92-6.273,17.669-20.237c0,0,0.292-0.774,0.924-2.24c0.605,3.788,0.247,11.379-3.995,21.077
|
||||
c-3.197,7.353-8.994,14.436-16.294,18.47c-12.915,7.137-22.612,7.835-32.986,5.671c-12.148-2.514-23.206-9.305-30.76-21.241
|
||||
c-5.276-8.391-7.649-18.15-7.435-28.684c0.432-20.613,15.759-38.37,33.463-45.043c2.173-0.801,3.036-1.331,6.077-1.594
|
||||
c-1.404,0.952-3.025,2.161-5.025,3.49C93.611,63,88.712,70.446,86.645,76.187l34.372-15.319v48.066l-27.714,13.847
|
||||
c3.158,4.43,12.744,11.035,20.967,11.959c13.941,1.547,22.152-4.545,22.152-4.545l-0.014-31.129l-10.81-8.786l10.824-8.784V59.131
|
||||
c-5.909-0.708-13.078-2.662-17.276-3.696c-6.167-1.528-26.713-7.286-29.936-7.761c-3.244-0.478-7.222-0.329-9.637,1.809
|
||||
c-2.418,2.188-3.91,6.007-2.871,9.454c0.573,1.95,1.918,3.096,2.945,4.195c0,0-1.188-0.095-3.364-1.387
|
||||
c-3.859-2.325-6.821-6.907-7.176-12.535c-0.442-7.318,2.582-13.968,8.649-18.439c5.281-3.378,11.25-5.543,18.193-4.584
|
||||
c10.116,1.449,23.722,7.205,35.851,10.104c4.693,1.125,8.347,1.497,11.641-0.417c1.542-1.087,4.24-3.943,2.041-7.788
|
||||
c-2.575-4.436-7.534-4.328-11.731-5.129C137.346,22.212,138.165,22.212,140.865,22.474z M99.996,117.999V71.608l-13.955,6.245
|
||||
c0,0-3.576,7.958-2.955,19.531c0.48,9.016,5.542,19.823,9.43,24.345L99.996,117.999z"/>
|
||||
</g>
|
||||
<g>
|
||||
<g>
|
||||
<path d="M264.396,13.138c1.104,0.087,2.844,0.643,4.145,1.792c1.39,1.336,1.708,3.392,1.226,5.247
|
||||
c-0.439,1.658-0.918,2.527-2.613,3.661c-1.712,1.163-3.779,1.07-3.779,1.07v7.172l3.498,2.827l-3.498,2.827v9.778
|
||||
c0,0,3.504-2.01,5.674-6.495c0,0,0.092-0.247,0.292-0.717c0.197,1.209,0.083,3.651-1.283,6.764
|
||||
c-1.019,2.367-2.883,4.638-5.23,5.935c-4.147,2.293-7.259,2.511-10.589,1.817c-3.902-0.81-7.455-2.993-9.877-6.814
|
||||
c-1.692-2.704-2.459-5.837-2.386-9.217c0.137-6.615,5.058-12.32,10.749-14.464c0.692-0.259,0.971-0.431,1.951-0.509
|
||||
c-0.452,0.308-0.973,0.697-1.616,1.122c-1.831,1.215-3.404,3.606-4.074,5.444l11.037-4.912v15.437l-8.893,4.444
|
||||
c1.006,1.425,4.088,3.54,6.728,3.84c4.476,0.495,7.106-1.459,7.106-1.459v-9.993l-3.471-2.827l3.471-2.823v-7.176
|
||||
c-1.891-0.224-4.192-0.857-5.538-1.186c-1.985-0.491-8.583-2.342-9.617-2.499c-1.037-0.149-2.317-0.103-3.09,0.586
|
||||
c-0.774,0.702-1.254,1.933-0.925,3.041c0.185,0.621,0.619,0.985,0.947,1.339c0,0-0.379-0.023-1.078-0.435
|
||||
c-1.237-0.754-2.191-2.225-2.306-4.026c-0.142-2.354,0.833-4.487,2.778-5.924c1.695-1.086,3.612-1.786,5.844-1.473
|
||||
c3.243,0.468,7.615,2.312,11.514,3.243c1.505,0.365,2.673,0.482,3.735-0.132c0.494-0.35,1.363-1.269,0.65-2.5
|
||||
c-0.826-1.422-2.416-1.387-3.766-1.647C263.274,13.057,263.533,13.057,264.396,13.138z M251.272,43.819V28.92l-4.479,2.003
|
||||
c0,0-1.146,2.553-0.947,6.268c0.159,2.902,1.782,6.363,3.025,7.818L251.272,43.819z"/>
|
||||
</g>
|
||||
<g>
|
||||
<path d="M307.204,28.187c0,0-3.373,2.064-5.655,3.409c-2.271,1.344-5.321,2.842-5.321,2.842V48.66l-2.035,1.621l0.272,0.329
|
||||
l1.984-1.608l6.218,5.62l10.811-8.561l-0.261-0.312l-5.971,4.692l-4.915-4.601v-1.714l9.873-7.251L307.204,28.187z
|
||||
M307.348,39.936l-5.017,3.668V31.396L307.348,39.936z"/>
|
||||
</g>
|
||||
<g>
|
||||
<path d="M278.875,59.974c1.416,0.348,3.92,0.541,6.933-0.969c3.344-1.672,5.029-5.222,5.003-8.867l0.145-5.156V33.714l2.136-1.633
|
||||
l-0.25-0.319l-2.104,1.596l-4.851-5.415l-6.226,5.349V15.128l-7.774,6.009c0.338,0.227,1.442,0.424,1.481,1.98v25.451
|
||||
l-3.306,2.438l0.225,0.341l1.6-1.184l4.429,4.121l6.965-5.549l-0.243-0.325l-1.639,1.302l-1.738-1.716l0.018-14.185l2.03-1.732
|
||||
l3.028,3.771c0,0-0.006,9.178,0.009,12.231c-0.033,3.243-0.038,7.296-1.741,9.258C281.293,59.314,280.608,59.455,278.875,59.974z"
|
||||
/>
|
||||
</g>
|
||||
<g>
|
||||
<path d="M327.274,58.695c-2.784-0.33-3.96-2.003-3.925-3.339c0.023-0.865,0.797-2.529,2.489-2.765
|
||||
c1.688-0.216,3.421,0.568,4.884,2.281l6.433-7.112l-0.307-0.28l-1.728,1.936c-1.758-1.994-4.249-3.25-6.725-3.617V24.126
|
||||
l16.71,30.454c0,0,0.159,0.341,0.849,0.341c0.589,0.017,0.448-0.48,0.448-0.48l-0.003-30.638c1.362-0.051,3.43-0.805,4.438-1.832
|
||||
c3.22-3.31,1.906-6.916,1.549-7.27c-0.194,1.586-1.398,3.165-3.425,3.169c-2.66,0.012-4.283-1.943-4.283-1.943l-6.423,7.319
|
||||
l0.306,0.284l1.837-2.099c2.256,2.072,3.898,2.264,5.597,2.372v17.784l-12.403-22.53c-1.124-1.856-2.823-3.496-5.506-3.515
|
||||
c-3.084-0.012-5.286,2.697-5.553,5.024c-0.298,2.653,0.041,3.256,0.041,3.256s0.448-2.946,2.268-2.907
|
||||
c1.631,0.019,2.485,1.522,3.144,2.651v6.524c-1.693,0.126-6.073,0.309-6.35,4.876c-0.015,1.699,1.042,3.481,1.962,4.082
|
||||
c1.186,0.784,2.11,0.766,2.11,0.766s-1.417-0.763-0.996-2.258c0.382-1.335,3.174-1.548,3.274-0.992v9.203
|
||||
c-1.348-0.017-5.64,0.137-7.573,3.821c-1.172,2.215-1.1,4.705,0.146,6.464C321.573,57.484,323.667,59.314,327.274,58.695z"/>
|
||||
</g>
|
||||
<g>
|
||||
<path d="M362.58,28.187c0,0-3.385,2.064-5.66,3.409c-2.282,1.344-5.325,2.842-5.325,2.842V48.66l-2.031,1.621l0.266,0.329
|
||||
l1.99-1.608l6.213,5.62l10.818-8.561l-0.257-0.312l-5.978,4.692l-4.907-4.601v-1.714l9.866-7.251L362.58,28.187z M362.719,39.936
|
||||
l-5.011,3.668V31.396L362.719,39.936z"/>
|
||||
</g>
|
||||
<g>
|
||||
<path d="M377.687,54.733l-5.297-4.407l-2.331,1.689l-0.231-0.325l2.362-1.73V37.645c0.116-5.069-4.642-3.808-4.384-9.194
|
||||
c0.115-2.364,2.401-4.154,3.562-4.734c1.228-0.631,2.572-0.631,2.572-0.631s-2.177,1.356-1.647,3.308
|
||||
c0.812,3.008,5.952,3.272,6.044,7.273v13.976l3.801,3.039l1.001-0.783V34.77l-2.05-2.026l5.271-4.653l4.816,4.263l-1.838,1.981
|
||||
v13.404l4.504,3.713l0.804-0.499V34.824l-2.058-1.923l5.291-4.827l4.934,4.071l1.976-1.736l0.264,0.304l-4.439,3.897v13.142
|
||||
l-11.353,7.011l-5.814-4.598L377.687,54.733z"/>
|
||||
</g>
|
||||
<g>
|
||||
<path d="M609.974,28.187c0,0-3.385,2.064-5.653,3.409c-2.271,1.344-5.323,2.842-5.323,2.842V48.66l-2.04,1.621l0.271,0.329
|
||||
l1.991-1.608l6.214,5.62l10.815-8.561l-0.256-0.312l-5.975,4.692l-4.915-4.601v-1.714l9.87-7.251L609.974,28.187z M610.122,39.936
|
||||
l-5.02,3.668V31.396L610.122,39.936z"/>
|
||||
</g>
|
||||
<g>
|
||||
<polygon points="559.22,34.144 559.485,34.447 561.521,32.704 564.536,36.121 564.536,47.867 563.083,49.205 567.785,54.535
|
||||
572.613,49.77 570.631,47.71 570.631,33.497 571.827,32.536 575.18,36.44 575.18,48.155 573.923,49.41 578.358,54.404
|
||||
583.091,49.654 581.354,47.827 581.308,33.552 582.589,32.522 586.07,36.355 586.07,48.008 584.927,49.155 589.829,54.491
|
||||
596.401,48.418 596.121,48.118 594.522,49.59 592.073,46.872 592.073,33.569 594.436,31.78 594.187,31.458 591.825,33.248
|
||||
587.345,28.233 580.956,33.292 576.476,28.422 570.302,33.243 565.778,28.438 "/>
|
||||
</g>
|
||||
<g>
|
||||
<polygon points="545.834,33.78 546.104,34.08 547.822,32.597 550.521,35.784 550.521,49.215 548.618,50.875 548.885,51.181
|
||||
550.875,49.48 555.219,54.491 561.487,48.888 561.22,48.582 559.375,50.209 556.778,47.222 556.778,34.084 558.972,32.188
|
||||
558.703,31.88 556.622,33.666 552.051,28.345 "/>
|
||||
</g>
|
||||
<g>
|
||||
<polygon points="547.65,22.656 552.369,18.331 556.207,22.587 551.46,26.896 "/>
|
||||
</g>
|
||||
<g>
|
||||
<path d="M541.291,13.138c1.113,0.087,2.844,0.643,4.153,1.792c1.392,1.336,1.709,3.392,1.217,5.247
|
||||
c-0.428,1.658-0.919,2.527-2.607,3.661c-1.713,1.163-3.776,1.07-3.776,1.07v7.172l3.499,2.827l-3.499,2.827v9.778
|
||||
c0,0,3.505-2.01,5.669-6.495c0,0,0.101-0.247,0.296-0.717c0.186,1.209,0.085,3.651-1.277,6.764
|
||||
c-1.027,2.367-2.893,4.638-5.234,5.935c-4.149,2.293-7.263,2.511-10.595,1.817c-3.905-0.81-7.454-2.993-9.871-6.814
|
||||
c-1.701-2.704-2.458-5.837-2.393-9.217c0.139-6.615,5.069-12.32,10.759-14.464c0.682-0.259,0.968-0.431,1.947-0.509
|
||||
c-0.459,0.308-0.967,0.697-1.624,1.122c-1.825,1.215-3.398,3.606-4.064,5.444l11.036-4.912v15.437l-8.902,4.444
|
||||
c1.011,1.425,4.092,3.54,6.728,3.84c4.485,0.495,7.121-1.459,7.121-1.459v-9.993l-3.478-2.827l3.478-2.823v-7.176
|
||||
c-1.895-0.224-4.197-0.857-5.548-1.186c-1.984-0.491-8.578-2.342-9.612-2.499c-1.046-0.149-2.32-0.103-3.093,0.586
|
||||
c-0.778,0.702-1.254,1.933-0.924,3.041c0.186,0.621,0.621,0.985,0.935,1.339c0,0-0.375-0.023-1.058-0.435
|
||||
c-1.253-0.754-2.212-2.225-2.314-4.026c-0.15-2.354,0.828-4.487,2.776-5.924c1.695-1.086,3.612-1.786,5.843-1.473
|
||||
c3.245,0.468,7.614,2.312,11.513,3.243c1.513,0.365,2.681,0.482,3.731-0.132c0.5-0.35,1.363-1.269,0.656-2.5
|
||||
c-0.829-1.422-2.415-1.387-3.763-1.647C540.171,13.057,540.429,13.057,541.291,13.138z M528.174,43.819V28.92l-4.482,2.003
|
||||
c0,0-1.143,2.553-0.945,6.268c0.157,2.902,1.781,6.363,3.025,7.818L528.174,43.819z"/>
|
||||
</g>
|
||||
<g>
|
||||
<path d="M622.005,56.467c-0.725,0.211-3.821-0.552-4.575-3.781c-0.729-3.128,1.464-5.264,4.749-8.619l-3.894-3.554v-6.796
|
||||
c0,0,2.866-1.432,5.105-2.827c2.231-1.41,4.536-2.92,4.536-2.92s1.675,2.101,3.56,1.945c2.967-0.261,2.823-2.596,2.738-3.152
|
||||
c0.509,0.907,1.853,3.587-3.346,9.586l4.235,3.415v8.822c0,0-4.91,2.56-9.569,5.967c0,0-2.601-3.26-4.853-1.701
|
||||
C619.159,53.905,619.866,55.677,622.005,56.467z M618.344,49.654c0,0,2.231-3.691,6.074-2.892c3.688,0.751,4.964,4.65,4.964,4.65
|
||||
v-8.962l-2.564-2.232C623.993,43.06,618.972,47.167,618.344,49.654z M624.037,30.947v7.049l2.361,2.06
|
||||
c0,0,5.103-4.094,6.956-7.878c0,0-2.299,3.116-5.378,2.157C625.386,33.542,624.037,30.947,624.037,30.947z"/>
|
||||
</g>
|
||||
<g>
|
||||
<path d="M463.025,34.058l1.91-1.757l0.272,0.308l-1.859,1.726v14.029c0,0-3.521,1.884-5.983,3.26
|
||||
c-2.455,1.401-5.102,3.023-5.102,3.023l-6.465-5.46l-1.709,1.505l-0.283-0.321l1.805-1.562V33.718h0.019
|
||||
c0,0,3.052-1.376,5.635-2.827c2.303-1.298,4.879-2.813,4.879-2.813L463.025,34.058z M451.752,46.418l5.469,4.966V36.222
|
||||
l-5.469-5.052V46.418z"/>
|
||||
</g>
|
||||
<g>
|
||||
<path d="M475.748,32.644l4.12-4.207c0,0,0.565,0.493,1.101,0.76c0.292,0.143,1.546,0.78,2.685,0.161
|
||||
c0.623-0.343,0.702-0.435,1.386-1.072c0.138,3.272-1.43,5.563-3.39,6.512c-0.801,0.394-3.134,1.143-5.584-1.848v15.11l2.603,2.291
|
||||
l2.171-1.794l0.249,0.312l-6.805,5.684l-5.173-4.723l-1.856,1.764l-0.314-0.319l2.836-2.565l0.022-13.029l-2.177-2.884
|
||||
l-1.865,1.642l-0.271-0.294l6.587-5.934L475.748,32.644z"/>
|
||||
</g>
|
||||
<g>
|
||||
<path d="M493.101,38.941l7.599-11.066c0,0,1.001,1.185,2.752,1.638c2.366,0.623,4.446-1.671,4.446-1.671
|
||||
c-0.398,2.954-1.903,6.323-4.995,6.83c-2.731,0.453-5.267-1.667-5.267-1.667l-0.487,0.761l10.548,15.94l2.108-1.847l0.286,0.304
|
||||
l-7.251,6.328L493.101,38.941z"/>
|
||||
</g>
|
||||
<g>
|
||||
<path d="M486.817,24.163c0-2.386-0.977-3.864-2.259-3.766l8.289-5.811v32.969l0,0l2.19,2.308l1.654-1.438l0.271,0.312
|
||||
l-6.681,5.837l-4.536-4.258l-1.797,1.596l-0.296-0.313l3.164-2.754V24.163z"/>
|
||||
</g>
|
||||
<g>
|
||||
<path d="M417.487,23.613c0-2.215-0.904-3.471-2.371-3.497c-2.104-0.043-2.61,2.929-2.61,2.929s-0.387-2.291,1.539-4.375
|
||||
c1.076-1.169,3.088-2.79,6.229-2.037c3.251,0.787,4.182,3.302,4.182,5.533v30.677c0,0,1.224,0.151,2.069,0.325
|
||||
c0.964,0.216,1.894,0.476,1.894,0.476V16.65h0.399v4.99l6.669-5.362l4.873,4.336l2.279-1.977l0.258,0.314l-2.378,2.047v28.52
|
||||
c-0.12,1.874-0.415,3.768-2.17,4.844c-3.92,2.33-8.652-0.354-12.864-0.965c-3.132-0.463-8.037-1.055-9.254,1.816
|
||||
c-0.418,0.942-0.387,2.405,1.037,3.34c2.839,1.911,15.508-3.189,19.865-1.16c3.958,1.848,3.941,4.769,3.332,6.757
|
||||
c-1.032,3.767-5.778,4.419-5.778,4.419s2.32-1.337,1.658-3.568c-0.336-1.139-1.105-1.449-3.592-1.172
|
||||
c-5.431,0.612-11.92,3.245-16.29,1.422c-2.241-0.94-3.833-3.753-3.681-6.506c0.109-3.979,4.705-5.547,4.705-5.547V38.5
|
||||
c-0.137-0.583-2.586-0.424-3.122,0.65c-0.811,1.629,1.011,2.393,1.011,2.393s-1.504,0.209-2.779-1.255
|
||||
c-0.618-0.709-1.907-3.211-0.231-5.526c1.382-1.904,3.03-2.239,5.122-2.476V23.613z M428.817,53.744c0,0,1.944,0.52,3.352-0.638
|
||||
c1.568-1.293,1.401-3.102,1.401-3.102V38.576c0,0-0.907-1.158-2.354-1.158c-1.438,0-2.399,1.194-2.399,1.194V53.744z
|
||||
M433.57,23.758l-3.203-2.817l-1.55,1.225v10.588c0,0,0.962,1.204,2.399,1.204c1.446,0,2.354-1.159,2.354-1.159V23.758z
|
||||
M433.57,33.431c0,0-0.911,1.041-2.362,1.041c-1.435,0-2.391-1.041-2.391-1.041v4.508c0,0,0.956-1.05,2.391-1.05
|
||||
c1.451,0,2.362,0.998,2.362,0.998V33.431z"/>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<path d="M326.983,117.85c0,5.348-0.836,10.25-2.507,14.707c-1.671,4.457-4.011,8.338-7.019,11.643
|
||||
c-3.008,3.306-6.648,5.96-10.918,7.966c-4.271,2.005-9.007,3.231-14.205,3.676c-1.709,0.15-3.064,0.261-4.066,0.334
|
||||
c-1.003,0.075-1.727,0.111-2.173,0.111H243.09v-17.157h7.464V95.345h-7.464V78.188h42.113c3.713,0,7.019,0.242,9.916,0.724
|
||||
c2.896,0.484,5.719,1.281,8.467,2.396c7.501,2.971,13.275,7.614,17.324,13.926C324.958,101.547,326.983,109.086,326.983,117.85z
|
||||
M297.459,116.958c0-4.233-0.465-7.78-1.393-10.64c-0.93-2.858-2.47-5.365-4.624-7.521c-1.337-1.41-2.896-2.357-4.679-2.841
|
||||
c-1.782-0.482-4.233-0.686-7.353-0.613v43.785c3.045,0.075,5.421-0.148,7.13-0.668c1.708-0.519,3.342-1.485,4.902-2.897
|
||||
C295.454,131.999,297.459,125.798,297.459,116.958z"/>
|
||||
<path d="M391.6,135.007h-35.094c0.891,6.016,3.972,9.024,9.247,9.024c1.708,0,3.212-0.352,4.512-1.058
|
||||
c1.298-0.705,2.58-1.912,3.844-3.621H391.6c-1.041,2.601-2.005,4.643-2.896,6.128c-0.891,1.486-1.969,2.86-3.231,4.122
|
||||
c-2.451,2.451-5.571,4.364-9.358,5.738c-3.788,1.373-7.91,2.061-12.367,2.061c-10.25,0-17.976-2.413-23.174-7.242
|
||||
c-2.896-2.674-5.163-5.849-6.796-9.526c-1.635-3.676-2.451-7.445-2.451-11.308c0-4.084,0.742-7.816,2.229-11.197
|
||||
c1.485-3.379,3.583-6.295,6.294-8.746c2.71-2.451,5.941-4.345,9.693-5.682c3.75-1.337,7.854-2.005,12.311-2.005
|
||||
c3.788,0,7.242,0.501,10.361,1.504c3.119,1.003,6.089,2.582,8.913,4.735c1.633,1.189,3.137,2.637,4.512,4.345
|
||||
c1.374,1.709,2.543,3.584,3.51,5.626c0.964,2.044,1.688,4.197,2.172,6.462c0.482,2.267,0.649,4.551,0.501,6.852L391.6,135.007z
|
||||
M369.652,125.426c0-6.164-2.192-9.247-6.573-9.247c-2.972,0-4.977,1.412-6.016,4.233c-0.223,0.596-0.373,1.245-0.446,1.95
|
||||
c-0.075,0.707-0.111,1.877-0.111,3.51v0.891h13.146V125.426z"/>
|
||||
<path d="M448.865,117.293l-18.049,38.994h-18.939l-15.709-38.994h-3.676v-14.484h32.866v14.484h-3.676l6.238,16.154l7.02-16.154
|
||||
h-4.123v-14.484h20.834v14.484H448.865z"/>
|
||||
<path d="M512.48,135.007h-35.096c0.893,6.016,3.973,9.024,9.248,9.024c1.707,0,3.211-0.352,4.512-1.058
|
||||
c1.299-0.705,2.58-1.912,3.844-3.621h17.492c-1.041,2.601-2.006,4.643-2.898,6.128c-0.891,1.486-1.969,2.86-3.23,4.122
|
||||
c-2.451,2.451-5.57,4.364-9.357,5.738c-3.789,1.373-7.91,2.061-12.367,2.061c-10.25,0-17.975-2.413-23.174-7.242
|
||||
c-2.896-2.674-5.162-5.849-6.795-9.526c-1.635-3.676-2.451-7.445-2.451-11.308c0-4.084,0.74-7.816,2.227-11.197
|
||||
c1.486-3.379,3.584-6.295,6.295-8.746c2.711-2.451,5.941-4.345,9.693-5.682c3.75-1.337,7.855-2.005,12.311-2.005
|
||||
c3.789,0,7.242,0.501,10.361,1.504c3.119,1.003,6.09,2.582,8.914,4.735c1.633,1.189,3.137,2.637,4.512,4.345
|
||||
c1.373,1.709,2.543,3.584,3.51,5.626c0.963,2.044,1.688,4.197,2.172,6.462c0.482,2.267,0.648,4.551,0.502,6.852L512.48,135.007z
|
||||
M490.531,125.426c0-6.164-2.191-9.247-6.572-9.247c-2.973,0-4.977,1.412-6.018,4.233c-0.223,0.596-0.371,1.245-0.445,1.95
|
||||
c-0.074,0.707-0.111,1.877-0.111,3.51v0.891h13.146V125.426z"/>
|
||||
<path d="M516.379,156.287v-14.483h4.457V92.671h-4.457V78.188h29.635v63.616h4.568v14.483H516.379z"/>
|
||||
<path d="M618.654,129.771c0,4.085-0.779,7.818-2.34,11.197c-1.561,3.38-3.77,6.294-6.629,8.746s-6.258,4.345-10.193,5.682
|
||||
c-3.938,1.337-8.244,2.005-12.924,2.005s-8.988-0.707-12.924-2.117c-3.938-1.41-7.354-3.342-10.25-5.793
|
||||
c-2.896-2.451-5.164-5.365-6.797-8.746c-1.635-3.379-2.451-7.074-2.451-11.085c0-4.011,0.816-7.724,2.451-11.141
|
||||
c1.633-3.415,3.9-6.368,6.797-8.857c2.896-2.488,6.312-4.438,10.25-5.849c3.936-1.41,8.205-2.117,12.812-2.117
|
||||
c4.752,0,9.115,0.688,13.09,2.061c3.973,1.375,7.371,3.287,10.195,5.738c2.82,2.451,5.012,5.403,6.572,8.857
|
||||
S618.654,125.612,618.654,129.771z M593.475,129.994c0-4.159-0.297-7.056-0.891-8.69c-0.596-1.56-1.449-2.803-2.562-3.732
|
||||
c-1.113-0.928-2.377-1.393-3.787-1.393c-2.229,0-3.938,1.041-5.125,3.12c-1.189,2.08-1.783,5.125-1.783,9.136
|
||||
c0,4.456,0.613,7.874,1.838,10.25c1.227,2.378,2.99,3.565,5.293,3.565c1.262,0,2.469-0.463,3.621-1.393
|
||||
c1.15-0.928,2.021-2.134,2.617-3.621C593.215,135.75,593.475,133.336,593.475,129.994z"/>
|
||||
<path d="M691.406,129.548c0,4.011-0.613,7.743-1.84,11.197c-1.225,3.454-2.99,6.406-5.291,8.857
|
||||
c-2.229,2.451-4.83,4.364-7.799,5.738c-2.973,1.373-5.904,2.061-8.803,2.061c-2.377,0-4.809-0.428-7.297-1.281
|
||||
s-5.441-2.321-8.857-4.401v10.138h6.018v14.484h-35.652v-14.484h4.457v-44.564h-4.457v-14.484h29.635v5.014
|
||||
c3.268-2.228,6.201-3.805,8.803-4.735c2.598-0.928,5.309-1.393,8.133-1.393c5.496,0,10.174,1.821,14.037,5.459
|
||||
c2.748,2.601,4.92,5.905,6.518,9.916C690.605,121.081,691.406,125.241,691.406,129.548z M666.227,129.994
|
||||
c0-1.931-0.074-3.657-0.223-5.181c-0.15-1.521-0.373-2.691-0.668-3.509c-0.596-1.56-1.469-2.803-2.619-3.732
|
||||
c-1.152-0.928-2.471-1.393-3.955-1.393c-4.828,0-7.242,4.161-7.242,12.478c0,9.062,2.414,13.592,7.242,13.592
|
||||
c1.484,0,2.822-0.463,4.012-1.393c1.186-0.928,2.078-2.134,2.674-3.621C665.965,135.75,666.227,133.336,666.227,129.994z"/>
|
||||
<path d="M754.799,135.007h-35.096c0.893,6.016,3.973,9.024,9.248,9.024c1.707,0,3.211-0.352,4.512-1.058
|
||||
c1.299-0.705,2.58-1.912,3.844-3.621h17.492c-1.041,2.601-2.006,4.643-2.898,6.128c-0.891,1.486-1.969,2.86-3.23,4.122
|
||||
c-2.451,2.451-5.57,4.364-9.357,5.738c-3.789,1.373-7.91,2.061-12.367,2.061c-10.25,0-17.975-2.413-23.174-7.242
|
||||
c-2.896-2.674-5.162-5.849-6.795-9.526c-1.635-3.676-2.451-7.445-2.451-11.308c0-4.084,0.74-7.816,2.227-11.197
|
||||
c1.486-3.379,3.584-6.295,6.295-8.746c2.711-2.451,5.941-4.345,9.693-5.682c3.75-1.337,7.855-2.005,12.311-2.005
|
||||
c3.789,0,7.242,0.501,10.361,1.504c3.119,1.003,6.09,2.582,8.914,4.735c1.633,1.189,3.137,2.637,4.512,4.345
|
||||
c1.373,1.709,2.543,3.584,3.51,5.626c0.963,2.044,1.688,4.197,2.172,6.462c0.482,2.267,0.648,4.551,0.502,6.852L754.799,135.007z
|
||||
M732.85,125.426c0-6.164-2.191-9.247-6.572-9.247c-2.973,0-4.977,1.412-6.018,4.233c-0.223,0.596-0.371,1.245-0.445,1.95
|
||||
c-0.074,0.707-0.111,1.877-0.111,3.51v0.891h13.146V125.426z"/>
|
||||
<path d="M802.258,120.356c-1.635,0.111-3.232,0.354-4.791,0.724c-3.418,0.818-5.906,2.526-7.465,5.125
|
||||
c-0.521,0.966-0.875,2.155-1.059,3.565c-0.186,1.412-0.279,3.64-0.279,6.685v5.348h6.018v14.483h-35.652v-14.483h4.457v-24.51
|
||||
h-4.457v-14.484h29.635v8.245c3.121-3.342,6.146-5.811,9.08-7.409c2.934-1.597,6.184-2.284,9.75-2.061l1.893,0.111v18.494
|
||||
C806.268,120.189,803.891,120.245,802.258,120.356z"/>
|
||||
<path d="M862.309,139.241c0,2.601-0.521,4.996-1.561,7.186c-1.041,2.191-2.488,4.105-4.346,5.738
|
||||
c-1.857,1.634-4.104,2.916-6.74,3.844c-2.637,0.928-5.514,1.393-8.633,1.393c-1.412,0-2.73-0.056-3.955-0.167
|
||||
c-1.227-0.111-2.508-0.316-3.844-0.612c-1.338-0.298-2.77-0.686-4.291-1.17c-1.521-0.482-3.285-1.095-5.291-1.838v2.674h-12.033
|
||||
v-17.826h11.922c0.742,2.378,1.672,4.161,2.785,5.348c1.113,1.189,2.822,1.783,5.125,1.783c1.707,0,3.064-0.352,4.066-1.059
|
||||
c1.002-0.705,1.504-1.727,1.504-3.064c0-1.855-1.189-3.304-3.564-4.345l-11.588-4.902c-2.971-1.262-5.219-3.1-6.74-5.515
|
||||
c-1.523-2.413-2.283-5.031-2.283-7.854c0-2.301,0.518-4.493,1.559-6.573c1.041-2.079,2.488-3.899,4.346-5.459
|
||||
c1.855-1.56,4.029-2.803,6.518-3.732c2.488-0.928,5.143-1.393,7.967-1.393c2.375,0,4.623,0.261,6.74,0.78
|
||||
c2.115,0.521,4.473,1.375,7.074,2.562v-2.229h12.143v17.158h-11.141c-0.52-2.674-1.318-4.716-2.395-6.128
|
||||
c-1.078-1.41-2.619-2.117-4.623-2.117c-1.488,0-2.713,0.39-3.678,1.17c-0.967,0.78-1.447,1.765-1.447,2.952
|
||||
c0,2.081,1.373,3.677,4.121,4.791l11.365,4.456C858.668,127.915,862.309,132.631,862.309,139.241z"/>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 20 KiB |
49
vendor/bootstrap-toggle/doc/script.js
vendored
Normal file
49
vendor/bootstrap-toggle/doc/script.js
vendored
Normal file
@ -0,0 +1,49 @@
|
||||
+function ($) {
|
||||
'use strict';
|
||||
|
||||
$('.example:not(.skip)').each(function() {
|
||||
// fetch & encode html
|
||||
var html = $('<div>').text($(this).html()).html()
|
||||
// find number of space/tabs on first line (minus line break)
|
||||
var count = html.match(/^(\s+)/)[0].length - 1
|
||||
// replace tabs/spaces on each lines with
|
||||
var regex = new RegExp('\\n\\s{'+count+'}', 'g')
|
||||
var code = html.replace(regex, '\n').replace(/\t/g, ' ').trim()
|
||||
// other cleanup
|
||||
code = code.replace(/=""/g,'')
|
||||
// add code block to dom
|
||||
$(this).after( $('<code class="highlight html">').html(code) )
|
||||
});
|
||||
|
||||
$('code.highlight').each(function() {
|
||||
hljs.highlightBlock(this)
|
||||
});
|
||||
|
||||
}(jQuery);
|
||||
|
||||
var Demo = function () {}
|
||||
|
||||
Demo.prototype.init = function(selector) {
|
||||
$(selector).bootstrapToggle(selector)
|
||||
}
|
||||
Demo.prototype.destroy = function(selector) {
|
||||
$(selector).bootstrapToggle('destroy')
|
||||
}
|
||||
Demo.prototype.on = function(selector) {
|
||||
$(selector).bootstrapToggle('on')
|
||||
}
|
||||
Demo.prototype.off = function(selector) {
|
||||
$(selector).bootstrapToggle('off')
|
||||
}
|
||||
Demo.prototype.toggle = function(selector) {
|
||||
$(selector).bootstrapToggle('toggle')
|
||||
}
|
||||
Demo.prototype.enable = function(selector) {
|
||||
$(selector).bootstrapToggle('enable')
|
||||
}
|
||||
Demo.prototype.disable = function(selector) {
|
||||
$(selector).bootstrapToggle('disable')
|
||||
}
|
||||
|
||||
|
||||
demo = new Demo()
|
112
vendor/bootstrap-toggle/doc/stylesheet.css
vendored
Normal file
112
vendor/bootstrap-toggle/doc/stylesheet.css
vendored
Normal file
@ -0,0 +1,112 @@
|
||||
header, footer {
|
||||
padding: 20px;
|
||||
background-image: url('header.png');
|
||||
background-size: 256px 256px;
|
||||
}
|
||||
footer {
|
||||
color: #fff;
|
||||
text-align: center;
|
||||
}
|
||||
.nyt-logo {
|
||||
max-height: 40px;
|
||||
margin-top: 5px;
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
nav.navbar {
|
||||
margin-bottom: 10px;
|
||||
background-color: #fff;
|
||||
border: 0px;
|
||||
border-radius: 2px;
|
||||
}
|
||||
#navbar {
|
||||
margin: 0px;
|
||||
}
|
||||
#navbar .navbar-nav li iframe {
|
||||
margin-top: 15px;
|
||||
}
|
||||
#navbar .navbar-nav li:last-child iframe {
|
||||
margin-right: 15px;
|
||||
}
|
||||
|
||||
@media screen and (max-width: 767px) {
|
||||
#navbar .navbar-nav li iframe {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
.mast-head {
|
||||
margin: 10px 0;
|
||||
}
|
||||
.mast-head h1 {
|
||||
margin-bottom: 15px;
|
||||
color: #fff;
|
||||
}
|
||||
.mast-head p {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.mast-links {
|
||||
padding-top: 10px;
|
||||
}
|
||||
|
||||
.mast-links > * {
|
||||
vertical-align: middle;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.mast-links > .btn {
|
||||
margin-right: 30px;
|
||||
}
|
||||
main {
|
||||
margin: 10px 20px;
|
||||
}
|
||||
main .container {
|
||||
margin-bottom: 40px;
|
||||
}
|
||||
|
||||
code.hljs {
|
||||
border: 1px solid #ccc;
|
||||
padding: 1em;
|
||||
white-space: pre;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.example {
|
||||
position: relative;
|
||||
border: 1px solid #ccc;
|
||||
padding: 1em 1em 0.5em 1em;
|
||||
border-radius: 4px 4px 0 0;
|
||||
}
|
||||
|
||||
.example:after {
|
||||
content: "Example";
|
||||
position: absolute;
|
||||
top: 0px;
|
||||
right: 0px;
|
||||
padding: 3px 7px;
|
||||
font-size: 12px;
|
||||
font-weight: bold;
|
||||
background-color: #f5f5f5;
|
||||
border: 1px solid #ccc;
|
||||
color: #9da0a4;
|
||||
border-radius: 0px 4px 0px 4px;
|
||||
border-width: 0px 0px 1px 1px;
|
||||
}
|
||||
|
||||
.example + code.hljs {
|
||||
border-top: 0;
|
||||
border-radius: 0px 0px 4px 4px;
|
||||
}
|
||||
|
||||
.example > * {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.example > div.toggle {
|
||||
margin-right: 10px;
|
||||
}
|
||||
|
||||
.table-striped code {
|
||||
background-color: inherit;
|
||||
}
|
449
vendor/bootstrap-toggle/index.html
vendored
Normal file
449
vendor/bootstrap-toggle/index.html
vendored
Normal file
@ -0,0 +1,449 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<script> if (window.location.href.indexOf('minhur.github.io') > 0) window.location.replace('http://www.bootstraptoggle.com') </script>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<meta name="msvalidate.01" content="3638AEFC99423BA5CB586805286C39AA" />
|
||||
<meta name="description" content="Bootstrap Toggle is a highly flexible Bootstrap plugin that converts checkboxes into toggles." />
|
||||
<meta name="keywords" content="bootstrap, toggle, switch, bootstrap-toggle, bootstrap-switch" />
|
||||
<meta name="author" content="metatags generator">
|
||||
<meta name="robots" content="index, follow">
|
||||
<meta name="revisit-after" content="1 month">
|
||||
<title>Bootstrap Toggle</title>
|
||||
<link rel="canonical" href="http://www.bootstraptoggle.com">
|
||||
<link href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/8.3/styles/github.min.css" rel="stylesheet" >
|
||||
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css" rel="stylesheet">
|
||||
<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.min.css" rel="stylesheet">
|
||||
<link href="css/bootstrap-toggle.css" rel="stylesheet">
|
||||
<link href="doc/stylesheet.css" rel="stylesheet">
|
||||
<script src="https://code.jquery.com/jquery-2.1.1.min.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<header>
|
||||
<nav class="navbar navbar-default container" role="navigation">
|
||||
<div class="container">
|
||||
<div class="navbar-header">
|
||||
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar">
|
||||
<span class="sr-only">Toggle navigation</span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
</button>
|
||||
<a class="navbar-brand" href="#">Bootstrap Toggle</a>
|
||||
</div>
|
||||
<div id="navbar" class="collapse navbar-collapse">
|
||||
<ul class="nav navbar-nav navbar-right">
|
||||
<li><a href="#usage">Usage</a></li>
|
||||
<li><a href="#api">API</a></li>
|
||||
<li><a href="#events">Events</a></li>
|
||||
<li><a href="#demos">Demos</a></li>
|
||||
<li><a href="https://github.com/minhur/bootstrap-toggle/issues">Issues</a></li>
|
||||
<li><a href="https://github.com/minhur/bootstrap-toggle/archive/master.zip">Download</a></li>
|
||||
<li>
|
||||
<iframe src="https://mdo.github.io/github-buttons/github-btn.html?user=minhur&repo=bootstrap-toggle&type=watch" allowtransparency="true" frameborder="0" scrolling="0" width="62" height="20"></iframe>
|
||||
</li>
|
||||
<li>
|
||||
<iframe src="https://mdo.github.io/github-buttons/github-btn.html?user=minhur&repo=bootstrap-toggle&type=fork" allowtransparency="true" frameborder="0" scrolling="0" width="53" height="20"></iframe>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
<div class="mast-head">
|
||||
<div class="container">
|
||||
<h1>Bootstrap Toggle</h1>
|
||||
<p>Bootstrap Toggle is a highly flexible Bootstrap plugin that converts checkboxes into toggles</p>
|
||||
<div class="mast-links">
|
||||
<iframe src="https://mdo.github.io/github-buttons/github-btn.html?user=minhur&repo=bootstrap-toggle&type=watch&count=true&size=large" allowtransparency="true" frameborder="0" scrolling="0" width="150" height="30"></iframe>
|
||||
<iframe src="https://mdo.github.io/github-buttons/github-btn.html?user=minhur&repo=bootstrap-toggle&type=fork&count=true&size=large" allowtransparency="true" frameborder="0" scrolling="0" width="150" height="30"></iframe>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<main>
|
||||
<div class="container">
|
||||
<h2>Getting Started</h2>
|
||||
<hr>
|
||||
<h3>Installation</h3>
|
||||
<p>You can <a href="https://github.com/minhur/bootstrap-toggle/archive/master.zip">download</a> the latest version of Bootstrap Toggle or use CDN to load the library.</p>
|
||||
<p><span class="label label-warning">Warning</span> If you are using Bootstrap v2.3.2, use <code>bootstrap2-toggle.min.js</code> and <code>bootstrap2-toggle.min.css</code> instead.</p>
|
||||
<code class="highlight"><link href="https://gitcdn.github.io/bootstrap-toggle/2.2.0/css/bootstrap-toggle.min.css" rel="stylesheet">
|
||||
<script src="https://gitcdn.github.io/bootstrap-toggle/2.2.0/js/bootstrap-toggle.min.js"></script></code>
|
||||
|
||||
<h3>Bower Install</h3>
|
||||
<p></p>
|
||||
<code class="highlight bash">bower install bootstrap-toggle</code>
|
||||
</div>
|
||||
<div id="usage" class="container">
|
||||
<h2>Usage</h2>
|
||||
<hr>
|
||||
|
||||
<h3>Basic example</h3>
|
||||
<p>Simply add <code>data-toggle="toggle"</code> to convert checkboxes into toggles.</p>
|
||||
<div class="example">
|
||||
<input type="checkbox" checked data-toggle="toggle">
|
||||
</div>
|
||||
|
||||
<h3>Stacked checkboxes</h3>
|
||||
<p>Refer to Bootstrap <a href="http://getbootstrap.com/css/#forms-controls" target="_blank">Form Controls</a> documentation to create stacked checkboxes. Simply add <code>data-toggle="toggle"</code> to convert checkboxes into toggles.</p>
|
||||
<div class="example">
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input type="checkbox" data-toggle="toggle">
|
||||
Option one is enabled
|
||||
</label>
|
||||
</div>
|
||||
<div class="checkbox disabled">
|
||||
<label>
|
||||
<input type="checkbox" disabled data-toggle="toggle">
|
||||
Option two is disabled
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<h3>Inline Checkboxes</h3>
|
||||
<p>Refer to Bootstrap <a href="http://getbootstrap.com/css/#forms-controls" target="_blank">Form Controls</a> documentation to create inline checkboxes. Simply add <code>data-toggle="toggle"</code> to a convert checkboxes into toggles.</p>
|
||||
<div class="example">
|
||||
<label class="checkbox-inline">
|
||||
<input type="checkbox" checked data-toggle="toggle"> First
|
||||
</label>
|
||||
<label class="checkbox-inline">
|
||||
<input type="checkbox" data-toggle="toggle"> Second
|
||||
</label>
|
||||
<label class="checkbox-inline">
|
||||
<input type="checkbox" data-toggle="toggle"> Third
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="api" class="container">
|
||||
<h2>API</h2>
|
||||
<hr>
|
||||
|
||||
<h3>Initialize by JavaScript</h3>
|
||||
<p>Initialize toggles with id <code>toggle-one</code> with a single line of JavaScript.</p>
|
||||
<div class="example">
|
||||
<input id="toggle-one" checked type="checkbox">
|
||||
<script>
|
||||
$(function() {
|
||||
$('#toggle-one').bootstrapToggle();
|
||||
})
|
||||
</script>
|
||||
</div>
|
||||
|
||||
<h3>Options</h3>
|
||||
<p>Options can be passed via data attributes or JavaScript. For data attributes, append the option name to <code>data-</code>, as in <code>data-on="Enabled"</code>.</p>
|
||||
<div class="example">
|
||||
<input type="checkbox" data-toggle="toggle" data-on="Enabled" data-off="Disabled">
|
||||
<input type="checkbox" id="toggle-two">
|
||||
<script>
|
||||
$(function() {
|
||||
$('#toggle-two').bootstrapToggle({
|
||||
on: 'Enabled',
|
||||
off: 'Disabled'
|
||||
});
|
||||
})
|
||||
</script>
|
||||
</div>
|
||||
<div class="table-responsive">
|
||||
<table class="table table-striped table-condensed">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Name</th>
|
||||
<th>Type</th>
|
||||
<th>Default</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>on</td>
|
||||
<td>string | html</td>
|
||||
<td><code>"On"</code></td>
|
||||
<td>Text of the <em>on</em> toggle</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>off</td>
|
||||
<td>string | html</td>
|
||||
<td><code>"Off"</code></td>
|
||||
<td>Text of the <em>off</em> toggle</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>size</td>
|
||||
<td>string</td>
|
||||
<td><code>"normal"</code></td>
|
||||
<td>
|
||||
Size of the toggle. Possible values are:<code>large</code>,<code>normal</code>,<code>small</code>,<code>mini</code><br>
|
||||
Refer to Bootstrap <a href="http://getbootstrap.com/css/#buttons-sizes" target="_blank">Button Sizes</a> documentation for more information.
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>onstyle</td>
|
||||
<td>string</td>
|
||||
<td><code>"primary"</code></td>
|
||||
<td>
|
||||
Style of the <em>on</em> toggle.<br>Possible values are:<code>default</code>,<code>primary</code>,<code>success</code>,<code>info</code>,<code>warning</code>,<code>danger</code><br>
|
||||
Refer to Bootstrap <a href="http://getbootstrap.com/css/#buttons-options" target="_blank">Button Options</a> documentation for more information.
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>offstyle</td>
|
||||
<td>string</td>
|
||||
<td><code>"default"</code></td>
|
||||
<td>
|
||||
Style of the <em>off</em> toggle.<br>Possible values are:<code>default</code>,<code>primary</code>,<code>success</code>,<code>info</code>,<code>warning</code>,<code>danger</code><br>
|
||||
Refer to Bootstrap <a href="http://getbootstrap.com/css/#buttons-options" target="_blank">Button Options</a> documentation for more information.
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>style</td>
|
||||
<td>string</td>
|
||||
<td></td>
|
||||
<td>
|
||||
Appends the value to the class attribute of the toggle. This can be used to apply custom styles. Refer to Custom Styles for reference.
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>width</td>
|
||||
<td>integer</td>
|
||||
<td><em>null</em></td>
|
||||
<td>
|
||||
Sets the width of the toggle. if set to <em>null</em>, width will be calculated.
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>height</td>
|
||||
<td>integer</td>
|
||||
<td><em>null</em></td>
|
||||
<td>
|
||||
Sets the height of the toggle. if set to <em>null</em>, height will be calculated.
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<h3>Methods</h3>
|
||||
<p>Methods can be used to control toggles directly.</p>
|
||||
<div class="example">
|
||||
<input id="toggle-demo" type="checkbox" data-toggle="toggle">
|
||||
</div>
|
||||
<div class="table-responsive">
|
||||
<table class="table table-striped table-condensed">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Method</th>
|
||||
<th>Example</th>
|
||||
<th>Description</th>
|
||||
<th>Demo</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><em>initialize</em></td>
|
||||
<td><code>$('#toggle-demo').bootstrapToggle()</code></td>
|
||||
<td>Initializes the toggle plugin with options</td>
|
||||
<td><button class="btn btn-default btn-xs" onclick="demo.init('#toggle-demo')">Initialize</button></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>destroy</td>
|
||||
<td><code>$('#toggle-demo').bootstrapToggle('destroy')</code></td>
|
||||
<td>Destroys the toggle</td>
|
||||
<td><button class="btn btn-default btn-xs" onclick="demo.destroy('#toggle-demo')">Destroy</button></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>on</td>
|
||||
<td><code>$('#toggle-demo').bootstrapToggle('on')</code></td>
|
||||
<td>Sets the toggle to 'On' state</td>
|
||||
<td><button class="btn btn-default btn-xs" onclick="demo.on('#toggle-demo')">On</button></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>off</td>
|
||||
<td><code>$('#toggle-demo').bootstrapToggle('off')</code></td>
|
||||
<td>Sets the toggle to 'Off' state</td>
|
||||
<td><button class="btn btn-default btn-xs" onclick="demo.off('#toggle-demo')">Off</button></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>toggle</td>
|
||||
<td><code>$('#toggle-demo').bootstrapToggle('toggle')</code></td>
|
||||
<td>Toggles the state of the toggle</td>
|
||||
<td><button class="btn btn-default btn-xs" onclick="demo.toggle('#toggle-demo')">Toggle</button></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>enable</td>
|
||||
<td><code>$('#toggle-demo').bootstrapToggle('enable')</code></td>
|
||||
<td>Enables the toggle</td>
|
||||
<td><button class="btn btn-default btn-xs" onclick="demo.enable('#toggle-demo')">Enable</button></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>disable</td>
|
||||
<td><code>$('#toggle-demo').bootstrapToggle('disable')</code></td>
|
||||
<td>Disables the toggle</td>
|
||||
<td><button class="btn btn-default btn-xs" onclick="demo.disable('#toggle-demo')">Disable</button></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div id="events" class="container">
|
||||
<h2>Events</h2>
|
||||
<hr>
|
||||
|
||||
<h3>Event Propagation</h3>
|
||||
<p><span class="label label-primary">Note</span> All events are propagated to and from input element to the toggle. </p>
|
||||
<p>You should listen to events from the <code><input type="checkbox"></code> directly rather than look for custom events.</p>
|
||||
<div class="example">
|
||||
<input id="toggle-event" type="checkbox" data-toggle="toggle">
|
||||
<div id="console-event"></div>
|
||||
<script>
|
||||
$(function() {
|
||||
$('#toggle-event').change(function() {
|
||||
$('#console-event').html('Toggle: ' + $(this).prop('checked'))
|
||||
})
|
||||
})
|
||||
</script>
|
||||
</div>
|
||||
|
||||
<h3>API vs Input</h3>
|
||||
<p>This also means that using the API or Input to trigger events will work both ways.</p>
|
||||
<div class="example">
|
||||
<input id="toggle-trigger" type="checkbox" data-toggle="toggle">
|
||||
<button class="btn btn-success" onclick="toggleOn()">On by API</button>
|
||||
<button class="btn btn-danger" onclick="toggleOff()">Off by API</button>
|
||||
<button class="btn btn-success" onclick="toggleOnByInput()">On by Input</button>
|
||||
<button class="btn btn-danger" onclick="toggleOffByInput()">Off by Input</button>
|
||||
<script>
|
||||
function toggleOn() {
|
||||
$('#toggle-trigger').bootstrapToggle('on')
|
||||
}
|
||||
function toggleOff() {
|
||||
$('#toggle-trigger').bootstrapToggle('off')
|
||||
}
|
||||
function toggleOnByInput() {
|
||||
$('#toggle-trigger').prop('checked', true).change()
|
||||
}
|
||||
function toggleOffByInput() {
|
||||
$('#toggle-trigger').prop('checked', false).change()
|
||||
}
|
||||
</script>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="demos" class="container">
|
||||
<h2>Demos</h2>
|
||||
<hr>
|
||||
|
||||
<h3>Sizes</h3>
|
||||
<p>Bootstrap toggle is available in different sizes. Refer to Bootstrap <a href="http://getbootstrap.com/css/#buttons-sizes" target="_blank">Button Sizes</a> documentation for more information.</p>
|
||||
<div class="example">
|
||||
<input type="checkbox" checked data-toggle="toggle" data-size="large">
|
||||
<input type="checkbox" checked data-toggle="toggle" data-size="normal">
|
||||
<input type="checkbox" checked data-toggle="toggle" data-size="small">
|
||||
<input type="checkbox" checked data-toggle="toggle" data-size="mini">
|
||||
</div>
|
||||
|
||||
<h3>Custom Sizes</h3>
|
||||
<p>Bootstrap toggle can handle custom sizes by <code>data-width</code> and <code>data-height</code> options.</p>
|
||||
<div class="example">
|
||||
<input type="checkbox" checked data-toggle="toggle" data-width="100" data-height="75">
|
||||
<input type="checkbox" checked data-toggle="toggle" data-height="75">
|
||||
<input type="checkbox" checked data-toggle="toggle" data-width="100">
|
||||
</div>
|
||||
|
||||
<h3>Colors</h3>
|
||||
<p>Bootstrap Toggle supports various colors. Refer to Bootstrap <a href="http://getbootstrap.com/css/#buttons-options" target="_blank">Button Options</a> documentation for more information.</p>
|
||||
<div class="example">
|
||||
<input type="checkbox" checked data-toggle="toggle" data-onstyle="primary">
|
||||
<input type="checkbox" checked data-toggle="toggle" data-onstyle="success">
|
||||
<input type="checkbox" checked data-toggle="toggle" data-onstyle="info">
|
||||
<input type="checkbox" checked data-toggle="toggle" data-onstyle="warning">
|
||||
<input type="checkbox" checked data-toggle="toggle" data-onstyle="danger">
|
||||
<input type="checkbox" checked data-toggle="toggle" data-onstyle="default">
|
||||
</div>
|
||||
|
||||
<h3>Colors Mix</h3>
|
||||
<p>You can style on state as well as the off state.</p>
|
||||
<div class="example">
|
||||
<input type="checkbox" checked data-toggle="toggle" data-onstyle="success" data-offstyle="danger">
|
||||
<input type="checkbox" checked data-toggle="toggle" data-onstyle="warning" data-offstyle="info">
|
||||
</div>
|
||||
|
||||
<h3>Custom Style</h3>
|
||||
<p>Customized styles can be applied as easily.</p>
|
||||
<div class="example">
|
||||
<style>
|
||||
.toggle.ios, .toggle-on.ios, .toggle-off.ios { border-radius: 20px; }
|
||||
.toggle.ios .toggle-handle { border-radius: 20px; }
|
||||
</style>
|
||||
<input type="checkbox" checked data-toggle="toggle" data-style="ios">
|
||||
<style>
|
||||
.toggle.android { border-radius: 0px;}
|
||||
.toggle.android .toggle-handle { border-radius: 0px; }
|
||||
</style>
|
||||
<input type="checkbox" checked data-toggle="toggle" data-style="android" data-onstyle="info">
|
||||
</div>
|
||||
|
||||
<h3>Custom Text</h3>
|
||||
<p>The text can be changed easily with attributes or options.</p>
|
||||
<div class="example">
|
||||
<input type="checkbox" checked data-toggle="toggle" data-on="Ready" data-off="Not Ready" data-onstyle="success" data-offstyle="danger">
|
||||
</div>
|
||||
|
||||
<h3>Icons/Html Text</h3>
|
||||
<p>You can easily add icons or images since html is supported for on/off text.</p>
|
||||
<div class="example">
|
||||
<input type="checkbox" checked data-toggle="toggle" data-on="<i class='fa fa-play'></i> Play" data-off="<i class='fa fa-pause'></i> Pause">
|
||||
</div>
|
||||
|
||||
<h3>Multiple Lines of Text</h3>
|
||||
<p>Toggles with multiple lines will adjust its heights.</p>
|
||||
<div class="example">
|
||||
<input type="checkbox" checked data-toggle="toggle" data-on="Hello<br>World" data-off="Goodbye<br>World">
|
||||
</div>
|
||||
|
||||
<h3>Animation Speed</h3>
|
||||
<p>Transition speed can be easily controlled with css <code>transition</code> property on <code>.toggle-group</code>. You can also turn animation off completely.</p>
|
||||
<div class="example">
|
||||
<style>
|
||||
.slow .toggle-group { transition: left 0.7s; -webkit-transition: left 0.7s; }
|
||||
.fast .toggle-group { transition: left 0.1s; -webkit-transition: left 0.1s; }
|
||||
.quick .toggle-group { transition: none; -webkit-transition: none; }
|
||||
</style>
|
||||
<input type="checkbox" checked data-toggle="toggle" data-style="slow">
|
||||
<input type="checkbox" checked data-toggle="toggle" data-class="fast">
|
||||
<input type="checkbox" checked data-toggle="toggle" data-style="quick">
|
||||
</div>
|
||||
<div>
|
||||
</main>
|
||||
<footer>
|
||||
<div class="container">
|
||||
<p>
|
||||
<img class="nyt-logo" src="doc/nyt.png">
|
||||
<img class="nyt-logo" src="doc/nytdev.svg">
|
||||
</p>
|
||||
<p>Designed and built by <a href="https://github.com/minhur" target="_blank">Min Hur</a> for <a href="http://developers.nytimes.com" target="_blank">The New York Times Company</a></p>
|
||||
<p>Latest Version: 2.2.0 | Code licensed under MIT</p>
|
||||
<p>
|
||||
<iframe src="https://mdo.github.io/github-buttons/github-btn.html?user=minhur&repo=bootstrap-toggle&type=watch&count=true" allowtransparency="true" frameborder="0" scrolling="0" width="110" height="20"></iframe>
|
||||
<iframe src="https://mdo.github.io/github-buttons/github-btn.html?user=minhur&repo=bootstrap-toggle&type=fork&count=true" allowtransparency="true" frameborder="0" scrolling="0" width="95" height="20"></iframe>
|
||||
</p>
|
||||
</div>
|
||||
</footer>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/8.3/highlight.min.js"></script>
|
||||
<script src="doc/script.js"></script>
|
||||
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
|
||||
<script src="js/bootstrap-toggle.js"></script>
|
||||
<script>
|
||||
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
|
||||
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
|
||||
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
|
||||
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
|
||||
ga('create', 'UA-55669452-1', 'auto');
|
||||
ga('send', 'pageview');
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
180
vendor/bootstrap-toggle/js/bootstrap-toggle.js
vendored
Normal file
180
vendor/bootstrap-toggle/js/bootstrap-toggle.js
vendored
Normal file
@ -0,0 +1,180 @@
|
||||
/*! ========================================================================
|
||||
* Bootstrap Toggle: bootstrap-toggle.js v2.2.0
|
||||
* http://www.bootstraptoggle.com
|
||||
* ========================================================================
|
||||
* Copyright 2014 Min Hur, The New York Times Company
|
||||
* Licensed under MIT
|
||||
* ======================================================================== */
|
||||
|
||||
|
||||
+function ($) {
|
||||
'use strict';
|
||||
|
||||
// TOGGLE PUBLIC CLASS DEFINITION
|
||||
// ==============================
|
||||
|
||||
var Toggle = function (element, options) {
|
||||
this.$element = $(element)
|
||||
this.options = $.extend({}, this.defaults(), options)
|
||||
this.render()
|
||||
}
|
||||
|
||||
Toggle.VERSION = '2.2.0'
|
||||
|
||||
Toggle.DEFAULTS = {
|
||||
on: 'On',
|
||||
off: 'Off',
|
||||
onstyle: 'primary',
|
||||
offstyle: 'default',
|
||||
size: 'normal',
|
||||
style: '',
|
||||
width: null,
|
||||
height: null
|
||||
}
|
||||
|
||||
Toggle.prototype.defaults = function() {
|
||||
return {
|
||||
on: this.$element.attr('data-on') || Toggle.DEFAULTS.on,
|
||||
off: this.$element.attr('data-off') || Toggle.DEFAULTS.off,
|
||||
onstyle: this.$element.attr('data-onstyle') || Toggle.DEFAULTS.onstyle,
|
||||
offstyle: this.$element.attr('data-offstyle') || Toggle.DEFAULTS.offstyle,
|
||||
size: this.$element.attr('data-size') || Toggle.DEFAULTS.size,
|
||||
style: this.$element.attr('data-style') || Toggle.DEFAULTS.style,
|
||||
width: this.$element.attr('data-width') || Toggle.DEFAULTS.width,
|
||||
height: this.$element.attr('data-height') || Toggle.DEFAULTS.height
|
||||
}
|
||||
}
|
||||
|
||||
Toggle.prototype.render = function () {
|
||||
this._onstyle = 'btn-' + this.options.onstyle
|
||||
this._offstyle = 'btn-' + this.options.offstyle
|
||||
var size = this.options.size === 'large' ? 'btn-lg'
|
||||
: this.options.size === 'small' ? 'btn-sm'
|
||||
: this.options.size === 'mini' ? 'btn-xs'
|
||||
: ''
|
||||
var $toggleOn = $('<label class="btn">').html(this.options.on)
|
||||
.addClass(this._onstyle + ' ' + size)
|
||||
var $toggleOff = $('<label class="btn">').html(this.options.off)
|
||||
.addClass(this._offstyle + ' ' + size + ' active')
|
||||
var $toggleHandle = $('<span class="toggle-handle btn btn-default">')
|
||||
.addClass(size)
|
||||
var $toggleGroup = $('<div class="toggle-group">')
|
||||
.append($toggleOn, $toggleOff, $toggleHandle)
|
||||
var $toggle = $('<div class="toggle btn" data-toggle="toggle">')
|
||||
.addClass( this.$element.prop('checked') ? this._onstyle : this._offstyle+' off' )
|
||||
.addClass(size).addClass(this.options.style)
|
||||
|
||||
this.$element.wrap($toggle)
|
||||
$.extend(this, {
|
||||
$toggle: this.$element.parent(),
|
||||
$toggleOn: $toggleOn,
|
||||
$toggleOff: $toggleOff,
|
||||
$toggleGroup: $toggleGroup
|
||||
})
|
||||
this.$toggle.append($toggleGroup)
|
||||
|
||||
var width = this.options.width || Math.max($toggleOn.outerWidth(), $toggleOff.outerWidth())+($toggleHandle.outerWidth()/2)
|
||||
var height = this.options.height || Math.max($toggleOn.outerHeight(), $toggleOff.outerHeight())
|
||||
$toggleOn.addClass('toggle-on')
|
||||
$toggleOff.addClass('toggle-off')
|
||||
this.$toggle.css({ width: width, height: height })
|
||||
if (this.options.height) {
|
||||
$toggleOn.css('line-height', $toggleOn.height() + 'px')
|
||||
$toggleOff.css('line-height', $toggleOff.height() + 'px')
|
||||
}
|
||||
this.update(true)
|
||||
this.trigger(true)
|
||||
}
|
||||
|
||||
Toggle.prototype.toggle = function () {
|
||||
if (this.$element.prop('checked')) this.off()
|
||||
else this.on()
|
||||
}
|
||||
|
||||
Toggle.prototype.on = function (silent) {
|
||||
if (this.$element.prop('disabled')) return false
|
||||
this.$toggle.removeClass(this._offstyle + ' off').addClass(this._onstyle)
|
||||
this.$element.prop('checked', true)
|
||||
if (!silent) this.trigger()
|
||||
}
|
||||
|
||||
Toggle.prototype.off = function (silent) {
|
||||
if (this.$element.prop('disabled')) return false
|
||||
this.$toggle.removeClass(this._onstyle).addClass(this._offstyle + ' off')
|
||||
this.$element.prop('checked', false)
|
||||
if (!silent) this.trigger()
|
||||
}
|
||||
|
||||
Toggle.prototype.enable = function () {
|
||||
this.$toggle.removeAttr('disabled')
|
||||
this.$element.prop('disabled', false)
|
||||
}
|
||||
|
||||
Toggle.prototype.disable = function () {
|
||||
this.$toggle.attr('disabled', 'disabled')
|
||||
this.$element.prop('disabled', true)
|
||||
}
|
||||
|
||||
Toggle.prototype.update = function (silent) {
|
||||
if (this.$element.prop('disabled')) this.disable()
|
||||
else this.enable()
|
||||
if (this.$element.prop('checked')) this.on(silent)
|
||||
else this.off(silent)
|
||||
}
|
||||
|
||||
Toggle.prototype.trigger = function (silent) {
|
||||
this.$element.off('change.bs.toggle')
|
||||
if (!silent) this.$element.change()
|
||||
this.$element.on('change.bs.toggle', $.proxy(function() {
|
||||
this.update()
|
||||
}, this))
|
||||
}
|
||||
|
||||
Toggle.prototype.destroy = function() {
|
||||
this.$element.off('change.bs.toggle')
|
||||
this.$toggleGroup.remove()
|
||||
this.$element.removeData('bs.toggle')
|
||||
this.$element.unwrap()
|
||||
}
|
||||
|
||||
// TOGGLE PLUGIN DEFINITION
|
||||
// ========================
|
||||
|
||||
function Plugin(option) {
|
||||
return this.each(function () {
|
||||
var $this = $(this)
|
||||
var data = $this.data('bs.toggle')
|
||||
var options = typeof option == 'object' && option
|
||||
|
||||
if (!data) $this.data('bs.toggle', (data = new Toggle(this, options)))
|
||||
if (typeof option == 'string' && data[option]) data[option]()
|
||||
})
|
||||
}
|
||||
|
||||
var old = $.fn.bootstrapToggle
|
||||
|
||||
$.fn.bootstrapToggle = Plugin
|
||||
$.fn.bootstrapToggle.Constructor = Toggle
|
||||
|
||||
// TOGGLE NO CONFLICT
|
||||
// ==================
|
||||
|
||||
$.fn.toggle.noConflict = function () {
|
||||
$.fn.bootstrapToggle = old
|
||||
return this
|
||||
}
|
||||
|
||||
// TOGGLE DATA-API
|
||||
// ===============
|
||||
|
||||
$(function() {
|
||||
$('input[type=checkbox][data-toggle^=toggle]').bootstrapToggle()
|
||||
})
|
||||
|
||||
$(document).on('click.bs.toggle', 'div[data-toggle^=toggle]', function(e) {
|
||||
var $checkbox = $(this).find('input[type=checkbox]')
|
||||
$checkbox.bootstrapToggle('toggle')
|
||||
e.preventDefault()
|
||||
})
|
||||
|
||||
}(jQuery);
|
9
vendor/bootstrap-toggle/js/bootstrap-toggle.min.js
vendored
Normal file
9
vendor/bootstrap-toggle/js/bootstrap-toggle.min.js
vendored
Normal file
@ -0,0 +1,9 @@
|
||||
/*! ========================================================================
|
||||
* Bootstrap Toggle: bootstrap-toggle.js v2.2.0
|
||||
* http://www.bootstraptoggle.com
|
||||
* ========================================================================
|
||||
* Copyright 2014 Min Hur, The New York Times Company
|
||||
* Licensed under MIT
|
||||
* ======================================================================== */
|
||||
+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.toggle"),f="object"==typeof b&&b;e||d.data("bs.toggle",e=new c(this,f)),"string"==typeof b&&e[b]&&e[b]()})}var c=function(b,c){this.$element=a(b),this.options=a.extend({},this.defaults(),c),this.render()};c.VERSION="2.2.0",c.DEFAULTS={on:"On",off:"Off",onstyle:"primary",offstyle:"default",size:"normal",style:"",width:null,height:null},c.prototype.defaults=function(){return{on:this.$element.attr("data-on")||c.DEFAULTS.on,off:this.$element.attr("data-off")||c.DEFAULTS.off,onstyle:this.$element.attr("data-onstyle")||c.DEFAULTS.onstyle,offstyle:this.$element.attr("data-offstyle")||c.DEFAULTS.offstyle,size:this.$element.attr("data-size")||c.DEFAULTS.size,style:this.$element.attr("data-style")||c.DEFAULTS.style,width:this.$element.attr("data-width")||c.DEFAULTS.width,height:this.$element.attr("data-height")||c.DEFAULTS.height}},c.prototype.render=function(){this._onstyle="btn-"+this.options.onstyle,this._offstyle="btn-"+this.options.offstyle;var b="large"===this.options.size?"btn-lg":"small"===this.options.size?"btn-sm":"mini"===this.options.size?"btn-xs":"",c=a('<label class="btn">').html(this.options.on).addClass(this._onstyle+" "+b),d=a('<label class="btn">').html(this.options.off).addClass(this._offstyle+" "+b+" active"),e=a('<span class="toggle-handle btn btn-default">').addClass(b),f=a('<div class="toggle-group">').append(c,d,e),g=a('<div class="toggle btn" data-toggle="toggle">').addClass(this.$element.prop("checked")?this._onstyle:this._offstyle+" off").addClass(b).addClass(this.options.style);this.$element.wrap(g),a.extend(this,{$toggle:this.$element.parent(),$toggleOn:c,$toggleOff:d,$toggleGroup:f}),this.$toggle.append(f);var h=this.options.width||Math.max(c.outerWidth(),d.outerWidth())+e.outerWidth()/2,i=this.options.height||Math.max(c.outerHeight(),d.outerHeight());c.addClass("toggle-on"),d.addClass("toggle-off"),this.$toggle.css({width:h,height:i}),this.options.height&&(c.css("line-height",c.height()+"px"),d.css("line-height",d.height()+"px")),this.update(!0),this.trigger(!0)},c.prototype.toggle=function(){this.$element.prop("checked")?this.off():this.on()},c.prototype.on=function(a){return this.$element.prop("disabled")?!1:(this.$toggle.removeClass(this._offstyle+" off").addClass(this._onstyle),this.$element.prop("checked",!0),void(a||this.trigger()))},c.prototype.off=function(a){return this.$element.prop("disabled")?!1:(this.$toggle.removeClass(this._onstyle).addClass(this._offstyle+" off"),this.$element.prop("checked",!1),void(a||this.trigger()))},c.prototype.enable=function(){this.$toggle.removeAttr("disabled"),this.$element.prop("disabled",!1)},c.prototype.disable=function(){this.$toggle.attr("disabled","disabled"),this.$element.prop("disabled",!0)},c.prototype.update=function(a){this.$element.prop("disabled")?this.disable():this.enable(),this.$element.prop("checked")?this.on(a):this.off(a)},c.prototype.trigger=function(b){this.$element.off("change.bs.toggle"),b||this.$element.change(),this.$element.on("change.bs.toggle",a.proxy(function(){this.update()},this))},c.prototype.destroy=function(){this.$element.off("change.bs.toggle"),this.$toggleGroup.remove(),this.$element.removeData("bs.toggle"),this.$element.unwrap()};var d=a.fn.bootstrapToggle;a.fn.bootstrapToggle=b,a.fn.bootstrapToggle.Constructor=c,a.fn.toggle.noConflict=function(){return a.fn.bootstrapToggle=d,this},a(function(){a("input[type=checkbox][data-toggle^=toggle]").bootstrapToggle()}),a(document).on("click.bs.toggle","div[data-toggle^=toggle]",function(b){var c=a(this).find("input[type=checkbox]");c.bootstrapToggle("toggle"),b.preventDefault()})}(jQuery);
|
||||
//# sourceMappingURL=bootstrap-toggle.min.js.map
|
1
vendor/bootstrap-toggle/js/bootstrap-toggle.min.js.map
vendored
Normal file
1
vendor/bootstrap-toggle/js/bootstrap-toggle.min.js.map
vendored
Normal file
@ -0,0 +1 @@
|
||||
{"version":3,"file":"bootstrap-toggle.min.js","sources":["bootstrap-toggle.js"],"names":["$","Plugin","option","this","each","$this","data","options","Toggle","element","$element","extend","defaults","render","VERSION","DEFAULTS","on","off","onstyle","offstyle","size","style","width","height","prototype","attr","_onstyle","_offstyle","$toggleOn","html","addClass","$toggleOff","$toggleHandle","$toggleGroup","append","$toggle","prop","wrap","parent","Math","max","outerWidth","outerHeight","css","update","trigger","toggle","silent","removeClass","enable","removeAttr","disable","change","proxy","destroy","remove","removeData","unwrap","old","fn","bootstrapToggle","Constructor","noConflict","document","e","$checkbox","find","preventDefault","jQuery"],"mappings":"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"}
|
180
vendor/bootstrap-toggle/js/bootstrap2-toggle.js
vendored
Normal file
180
vendor/bootstrap-toggle/js/bootstrap2-toggle.js
vendored
Normal file
@ -0,0 +1,180 @@
|
||||
/*! ========================================================================
|
||||
* Bootstrap Toggle: bootstrap2-toggle.js v2.2.0
|
||||
* http://www.bootstraptoggle.com
|
||||
* ========================================================================
|
||||
* Copyright 2014 Min Hur, The New York Times Company
|
||||
* Licensed under MIT
|
||||
* ======================================================================== */
|
||||
|
||||
|
||||
+function ($) {
|
||||
'use strict';
|
||||
|
||||
// TOGGLE PUBLIC CLASS DEFINITION
|
||||
// ==============================
|
||||
|
||||
var Toggle = function (element, options) {
|
||||
this.$element = $(element)
|
||||
this.options = $.extend({}, this.defaults(), options)
|
||||
this.render()
|
||||
}
|
||||
|
||||
Toggle.VERSION = '2.2.0'
|
||||
|
||||
Toggle.DEFAULTS = {
|
||||
on: 'On',
|
||||
off: 'Off',
|
||||
onstyle: 'primary',
|
||||
offstyle: 'default',
|
||||
size: 'normal',
|
||||
style: '',
|
||||
width: null,
|
||||
height: null
|
||||
}
|
||||
|
||||
Toggle.prototype.defaults = function() {
|
||||
return {
|
||||
on: this.$element.attr('data-on') || Toggle.DEFAULTS.on,
|
||||
off: this.$element.attr('data-off') || Toggle.DEFAULTS.off,
|
||||
onstyle: this.$element.attr('data-onstyle') || Toggle.DEFAULTS.onstyle,
|
||||
offstyle: this.$element.attr('data-offstyle') || Toggle.DEFAULTS.offstyle,
|
||||
size: this.$element.attr('data-size') || Toggle.DEFAULTS.size,
|
||||
style: this.$element.attr('data-style') || Toggle.DEFAULTS.style,
|
||||
width: this.$element.attr('data-width') || Toggle.DEFAULTS.width,
|
||||
height: this.$element.attr('data-height') || Toggle.DEFAULTS.height
|
||||
}
|
||||
}
|
||||
|
||||
Toggle.prototype.render = function () {
|
||||
this._onstyle = 'btn-' + this.options.onstyle
|
||||
this._offstyle = 'btn-' + this.options.offstyle
|
||||
var size = this.options.size === 'large' ? 'btn-large'
|
||||
: this.options.size === 'small' ? 'btn-small'
|
||||
: this.options.size === 'mini' ? 'btn-mini'
|
||||
: ''
|
||||
var $toggleOn = $('<label class="btn">').html(this.options.on)
|
||||
.addClass(this._onstyle + ' ' + size)
|
||||
var $toggleOff = $('<label class="btn">').html(this.options.off)
|
||||
.addClass(this._offstyle + ' ' + size + ' active')
|
||||
var $toggleHandle = $('<span class="toggle-handle btn btn-default">')
|
||||
.addClass(size)
|
||||
var $toggleGroup = $('<div class="toggle-group">')
|
||||
.append($toggleOn, $toggleOff, $toggleHandle)
|
||||
var $toggle = $('<div class="toggle btn" data-toggle="toggle">')
|
||||
.addClass( this.$element.prop('checked') ? this._onstyle : this._offstyle+' off' )
|
||||
.addClass(size).addClass(this.options.style)
|
||||
|
||||
this.$element.wrap($toggle)
|
||||
$.extend(this, {
|
||||
$toggle: this.$element.parent(),
|
||||
$toggleOn: $toggleOn,
|
||||
$toggleOff: $toggleOff,
|
||||
$toggleGroup: $toggleGroup
|
||||
})
|
||||
this.$toggle.append($toggleGroup)
|
||||
|
||||
var width = this.options.width || Math.max($toggleOn.width(), $toggleOff.width())+($toggleHandle.outerWidth()/2)
|
||||
var height = this.options.height || Math.max($toggleOn.height(), $toggleOff.height())
|
||||
$toggleOn.addClass('toggle-on')
|
||||
$toggleOff.addClass('toggle-off')
|
||||
this.$toggle.css({ width: width, height: height })
|
||||
if (this.options.height) {
|
||||
$toggleOn.css('line-height', $toggleOn.height() + 'px')
|
||||
$toggleOff.css('line-height', $toggleOff.height() + 'px')
|
||||
}
|
||||
this.update(true)
|
||||
this.trigger(true)
|
||||
}
|
||||
|
||||
Toggle.prototype.toggle = function () {
|
||||
if (this.$element.prop('checked')) this.off()
|
||||
else this.on()
|
||||
}
|
||||
|
||||
Toggle.prototype.on = function (silent) {
|
||||
if (this.$element.prop('disabled')) return false
|
||||
this.$toggle.removeClass(this._offstyle + ' off').addClass(this._onstyle)
|
||||
this.$element.prop('checked', true)
|
||||
if (!silent) this.trigger()
|
||||
}
|
||||
|
||||
Toggle.prototype.off = function (silent) {
|
||||
if (this.$element.prop('disabled')) return false
|
||||
this.$toggle.removeClass(this._onstyle).addClass(this._offstyle + ' off')
|
||||
this.$element.prop('checked', false)
|
||||
if (!silent) this.trigger()
|
||||
}
|
||||
|
||||
Toggle.prototype.enable = function () {
|
||||
this.$toggle.removeAttr('disabled')
|
||||
this.$element.prop('disabled', false)
|
||||
}
|
||||
|
||||
Toggle.prototype.disable = function () {
|
||||
this.$toggle.attr('disabled', 'disabled')
|
||||
this.$element.prop('disabled', true)
|
||||
}
|
||||
|
||||
Toggle.prototype.update = function (silent) {
|
||||
if (this.$element.prop('disabled')) this.disable()
|
||||
else this.enable()
|
||||
if (this.$element.prop('checked')) this.on(silent)
|
||||
else this.off(silent)
|
||||
}
|
||||
|
||||
Toggle.prototype.trigger = function (silent) {
|
||||
this.$element.off('change.bs.toggle')
|
||||
if (!silent) this.$element.change()
|
||||
this.$element.on('change.bs.toggle', $.proxy(function() {
|
||||
this.update()
|
||||
}, this))
|
||||
}
|
||||
|
||||
Toggle.prototype.destroy = function() {
|
||||
this.$element.off('change.bs.toggle')
|
||||
this.$toggleGroup.remove()
|
||||
this.$element.removeData('bs.toggle')
|
||||
this.$element.unwrap()
|
||||
}
|
||||
|
||||
// TOGGLE PLUGIN DEFINITION
|
||||
// ========================
|
||||
|
||||
function Plugin(option) {
|
||||
return this.each(function () {
|
||||
var $this = $(this)
|
||||
var data = $this.data('bs.toggle')
|
||||
var options = typeof option == 'object' && option
|
||||
|
||||
if (!data) $this.data('bs.toggle', (data = new Toggle(this, options)))
|
||||
if (typeof option == 'string' && data[option]) data[option]()
|
||||
})
|
||||
}
|
||||
|
||||
var old = $.fn.bootstrapToggle
|
||||
|
||||
$.fn.bootstrapToggle = Plugin
|
||||
$.fn.bootstrapToggle.Constructor = Toggle
|
||||
|
||||
// TOGGLE NO CONFLICT
|
||||
// ==================
|
||||
|
||||
$.fn.toggle.noConflict = function () {
|
||||
$.fn.bootstrapToggle = old
|
||||
return this
|
||||
}
|
||||
|
||||
// TOGGLE DATA-API
|
||||
// ===============
|
||||
|
||||
$(function() {
|
||||
$('input[type=checkbox][data-toggle^=toggle]').bootstrapToggle()
|
||||
})
|
||||
|
||||
$(document).on('click.bs.toggle', 'div[data-toggle^=toggle]', function(e) {
|
||||
var $checkbox = $(this).find('input[type=checkbox]')
|
||||
$checkbox.bootstrapToggle('toggle')
|
||||
e.preventDefault()
|
||||
})
|
||||
|
||||
}(jQuery);
|
9
vendor/bootstrap-toggle/js/bootstrap2-toggle.min.js
vendored
Normal file
9
vendor/bootstrap-toggle/js/bootstrap2-toggle.min.js
vendored
Normal file
@ -0,0 +1,9 @@
|
||||
/*! ========================================================================
|
||||
* Bootstrap Toggle: bootstrap2-toggle.js v2.2.0
|
||||
* http://www.bootstraptoggle.com
|
||||
* ========================================================================
|
||||
* Copyright 2014 Min Hur, The New York Times Company
|
||||
* Licensed under MIT
|
||||
* ======================================================================== */
|
||||
+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.toggle"),f="object"==typeof b&&b;e||d.data("bs.toggle",e=new c(this,f)),"string"==typeof b&&e[b]&&e[b]()})}var c=function(b,c){this.$element=a(b),this.options=a.extend({},this.defaults(),c),this.render()};c.VERSION="2.2.0",c.DEFAULTS={on:"On",off:"Off",onstyle:"primary",offstyle:"default",size:"normal",style:"",width:null,height:null},c.prototype.defaults=function(){return{on:this.$element.attr("data-on")||c.DEFAULTS.on,off:this.$element.attr("data-off")||c.DEFAULTS.off,onstyle:this.$element.attr("data-onstyle")||c.DEFAULTS.onstyle,offstyle:this.$element.attr("data-offstyle")||c.DEFAULTS.offstyle,size:this.$element.attr("data-size")||c.DEFAULTS.size,style:this.$element.attr("data-style")||c.DEFAULTS.style,width:this.$element.attr("data-width")||c.DEFAULTS.width,height:this.$element.attr("data-height")||c.DEFAULTS.height}},c.prototype.render=function(){this._onstyle="btn-"+this.options.onstyle,this._offstyle="btn-"+this.options.offstyle;var b="large"===this.options.size?"btn-large":"small"===this.options.size?"btn-small":"mini"===this.options.size?"btn-mini":"",c=a('<label class="btn">').html(this.options.on).addClass(this._onstyle+" "+b),d=a('<label class="btn">').html(this.options.off).addClass(this._offstyle+" "+b+" active"),e=a('<span class="toggle-handle btn btn-default">').addClass(b),f=a('<div class="toggle-group">').append(c,d,e),g=a('<div class="toggle btn" data-toggle="toggle">').addClass(this.$element.prop("checked")?this._onstyle:this._offstyle+" off").addClass(b).addClass(this.options.style);this.$element.wrap(g),a.extend(this,{$toggle:this.$element.parent(),$toggleOn:c,$toggleOff:d,$toggleGroup:f}),this.$toggle.append(f);var h=this.options.width||Math.max(c.width(),d.width())+e.outerWidth()/2,i=this.options.height||Math.max(c.height(),d.height());c.addClass("toggle-on"),d.addClass("toggle-off"),this.$toggle.css({width:h,height:i}),this.options.height&&(c.css("line-height",c.height()+"px"),d.css("line-height",d.height()+"px")),this.update(!0),this.trigger(!0)},c.prototype.toggle=function(){this.$element.prop("checked")?this.off():this.on()},c.prototype.on=function(a){return this.$element.prop("disabled")?!1:(this.$toggle.removeClass(this._offstyle+" off").addClass(this._onstyle),this.$element.prop("checked",!0),void(a||this.trigger()))},c.prototype.off=function(a){return this.$element.prop("disabled")?!1:(this.$toggle.removeClass(this._onstyle).addClass(this._offstyle+" off"),this.$element.prop("checked",!1),void(a||this.trigger()))},c.prototype.enable=function(){this.$toggle.removeAttr("disabled"),this.$element.prop("disabled",!1)},c.prototype.disable=function(){this.$toggle.attr("disabled","disabled"),this.$element.prop("disabled",!0)},c.prototype.update=function(a){this.$element.prop("disabled")?this.disable():this.enable(),this.$element.prop("checked")?this.on(a):this.off(a)},c.prototype.trigger=function(b){this.$element.off("change.bs.toggle"),b||this.$element.change(),this.$element.on("change.bs.toggle",a.proxy(function(){this.update()},this))},c.prototype.destroy=function(){this.$element.off("change.bs.toggle"),this.$toggleGroup.remove(),this.$element.removeData("bs.toggle"),this.$element.unwrap()};var d=a.fn.bootstrapToggle;a.fn.bootstrapToggle=b,a.fn.bootstrapToggle.Constructor=c,a.fn.toggle.noConflict=function(){return a.fn.bootstrapToggle=d,this},a(function(){a("input[type=checkbox][data-toggle^=toggle]").bootstrapToggle()}),a(document).on("click.bs.toggle","div[data-toggle^=toggle]",function(b){var c=a(this).find("input[type=checkbox]");c.bootstrapToggle("toggle"),b.preventDefault()})}(jQuery);
|
||||
//# sourceMappingURL=bootstrap2-toggle.min.js.map
|
1
vendor/bootstrap-toggle/js/bootstrap2-toggle.min.js.map
vendored
Normal file
1
vendor/bootstrap-toggle/js/bootstrap2-toggle.min.js.map
vendored
Normal file
@ -0,0 +1 @@
|
||||
{"version":3,"file":"bootstrap2-toggle.min.js","sources":["bootstrap2-toggle.js"],"names":["$","Plugin","option","this","each","$this","data","options","Toggle","element","$element","extend","defaults","render","VERSION","DEFAULTS","on","off","onstyle","offstyle","size","style","width","height","prototype","attr","_onstyle","_offstyle","$toggleOn","html","addClass","$toggleOff","$toggleHandle","$toggleGroup","append","$toggle","prop","wrap","parent","Math","max","outerWidth","css","update","trigger","toggle","silent","removeClass","enable","removeAttr","disable","change","proxy","destroy","remove","removeData","unwrap","old","fn","bootstrapToggle","Constructor","noConflict","document","e","$checkbox","find","preventDefault","jQuery"],"mappings":"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"}
|
28
vendor/bootstrap-toggle/package.json
vendored
Normal file
28
vendor/bootstrap-toggle/package.json
vendored
Normal file
@ -0,0 +1,28 @@
|
||||
{
|
||||
"name": "bootstrap-toggle",
|
||||
"description": "Bootstrap Toggle is a highly flexible Bootstrap plugin that converts checkboxes into toggles",
|
||||
"version": "2.2.2",
|
||||
"main": "js/bootstrap-toggle.js",
|
||||
"keywords": [
|
||||
"bootstrap",
|
||||
"toggle",
|
||||
"bootstrap-toggle",
|
||||
"switch",
|
||||
"bootstrap-switch"
|
||||
],
|
||||
"homepage": "http://www.bootstraptoggle.com",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/minhur/bootstrap-toggle.git"
|
||||
},
|
||||
"license": "MIT",
|
||||
"author": "Min Hur <min.hur@gmail.com>",
|
||||
"bugs": {
|
||||
"url": "https://github.com/minhur/bootstrap-toggle/issues"
|
||||
},
|
||||
"devDependencies": {
|
||||
"grunt-contrib-clean": "^0.6.0",
|
||||
"grunt-contrib-cssmin": "^0.10.0",
|
||||
"grunt-contrib-uglify": "^0.6.0"
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user