mirror of
				https://github.com/billz/raspap-webgui.git
				synced 2025-03-01 10:31:47 +00:00 
			
		
		
		
	| @@ -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 --> | ||||
| @@ -180,33 +184,46 @@ if (in_array($arrConfig['country_code'], $countries_max11channels)) { | ||||
|                 </div> | ||||
|               </div> | ||||
|               <div class="tab-pane fade" id="advanced"> | ||||
|                 <h4><?php echo _("Advanced settings"); ?></h4> | ||||
| 		<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> | ||||
| @@ -517,27 +534,40 @@ function SaveHostAPDConfig($wpa_array, $enc_types, $modes, $interfaces, $status) | ||||
|   } | ||||
|  | ||||
|   $good_input = true; | ||||
|    | ||||
|   // Check for WiFi client AP mode checkbox | ||||
|   $wifiAPEnable = 0; | ||||
|   if($arrHostapdConf['WifiAPEnable'] == 0) { | ||||
|       if(isset($_POST['wifiAPEnable'])) { | ||||
|           $wifiAPEnable = 1; | ||||
|       } | ||||
|   } else { | ||||
|       if(isset($_POST['wifiAPEnable'])) { | ||||
|           $wifiAPEnable = 1; | ||||
|       } | ||||
|   }  | ||||
|  | ||||
|   // 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'); | ||||
|         } | ||||
|     } else { | ||||
|         if(isset($_POST['logEnable'])) { | ||||
|             $logEnable = 1; | ||||
|             exec('sudo /etc/raspap/hostapd/enablelog.sh'); | ||||
|         } else { | ||||
|             exec('sudo /etc/raspap/hostapd/disablelog.sh'); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     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,45 +609,91 @@ 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); | ||||
|     // Fixed values | ||||
|     $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') { | ||||
|       $config.= 'hw_mode=g'.PHP_EOL; | ||||
|       $config.= 'ieee80211n=1'.PHP_EOL; | ||||
|       // Enable basic Quality of service | ||||
|       $config.= 'wme_enabled=1'.PHP_EOL; | ||||
|     } else { | ||||
|       $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, 'ssid='.$_POST['ssid'].PHP_EOL); | ||||
|       fwrite($tmp_file, '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); | ||||
|         // Enable basic Quality of service | ||||
|         fwrite($tmp_file, 'wme_enabled=1'.PHP_EOL); | ||||
|       } else { | ||||
|         fwrite($tmp_file, 'hw_mode='.$_POST['hw_mode'].PHP_EOL); | ||||
|         fwrite($tmp_file, 'ieee80211n=0'.PHP_EOL); | ||||
|       } | ||||
|     exec('echo "'.$config.'" > /tmp/hostapddata', $temp); | ||||
|     system( "sudo cp /tmp/hostapddata " . RASPI_HOSTAPD_CONFIG, $return ); | ||||
|  | ||||
|       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); | ||||
|     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);  | ||||
|  | ||||
|       system( "sudo cp /tmp/hostapddata " . RASPI_HOSTAPD_CONFIG, $return ); | ||||
|       if( $return == 0 ) { | ||||
|         $status->addMessage('Wifi Hotspot settings saved', 'success'); | ||||
|       } else { | ||||
|         $status->addMessage('Unable to save wifi hotspot settings', 'danger'); | ||||
|       } | ||||
|    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 { | ||||
|       $status->addMessage('Unable to save wifi hotspot settings', 'danger'); | ||||
|       return false; | ||||
|     } | ||||
|   } else { | ||||
|     $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,13 +326,17 @@ function optimize_php() { | ||||
| function install_complete() { | ||||
|     install_log "Installation completed!" | ||||
|  | ||||
|     echo -n "The system needs to be rebooted as a final step. Reboot now? [y/N]: " | ||||
|     read answer | ||||
|     if [[ $answer != "y" ]]; then | ||||
|         echo "Installation reboot aborted." | ||||
|         exit 0 | ||||
|     # 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 | ||||
|             echo "Installation reboot aborted." | ||||
|             exit 0 | ||||
|         fi | ||||
|         sudo shutdown -r now || install_error "Unable to execute shutdown" | ||||
|     fi | ||||
|     sudo shutdown -r now || install_error "Unable to execute shutdown" | ||||
| } | ||||
|  | ||||
| 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" | ||||
|   } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user