mirror of
https://github.com/YunoHost-Apps/hotspot_ynh.git
synced 2024-09-03 19:25:53 +02:00
Add Wifi N option
This commit is contained in:
parent
979a09ba8c
commit
71b630005b
9 changed files with 63 additions and 3 deletions
|
@ -1,6 +1,8 @@
|
|||
interface=<TPL:WIFI_DEVICE>
|
||||
ssid=<TPL:WIFI_SSID>
|
||||
hw_mode=g
|
||||
<TPL:N_COMMENT>ieee80211n=1
|
||||
<TPL:N_COMMENT>wmm_enabled=1
|
||||
channel=<TPL:WIFI_CHANNEL>
|
||||
macaddr_acl=0
|
||||
auth_algs=1
|
||||
|
|
|
@ -89,6 +89,12 @@ start_hostapd() {
|
|||
sed "s|<TPL:WIFI_PASSPHRASE>|${ynh_wifi_passphrase}|g" -i /etc/hostapd/hostapd.conf
|
||||
sed "s|<TPL:WIFI_CHANNEL>|${ynh_wifi_channel}|g" -i /etc/hostapd/hostapd.conf
|
||||
|
||||
if [ "${ynh_wifi_n}" -eq 1 ]; then
|
||||
sed "s|<TPL:N_COMMENT>||g" -i /etc/hostapd/hostapd.conf
|
||||
else
|
||||
sed "s|<TPL:N_COMMENT>|#|g" -i /etc/hostapd/hostapd.conf
|
||||
fi
|
||||
|
||||
service hostapd start
|
||||
}
|
||||
|
||||
|
@ -186,6 +192,7 @@ ynh_wifi_device=$(moulinette_get wifi_device)
|
|||
ynh_wifi_ssid=$(moulinette_get wifi_ssid)
|
||||
ynh_wifi_passphrase=$(moulinette_get wifi_passphrase)
|
||||
ynh_wifi_channel=$(moulinette_get wifi_channel)
|
||||
ynh_wifi_n=$(moulinette_get wifi_n)
|
||||
ynh_ip6_addr=$(moulinette_get ip6_addr)
|
||||
ynh_ip6_net=$(moulinette_get ip6_net)
|
||||
ynh_ip6_dns0=$(moulinette_get ip6_dns0)
|
||||
|
|
|
@ -40,6 +40,7 @@ sudo yunohost app setting hotspot wifi_ssid -v "${wifi_ssid}"
|
|||
sudo yunohost app setting hotspot wifi_passphrase -v "${wifi_passphrase}"
|
||||
sudo yunohost app setting hotspot wifi_device -v "${wifi_device}"
|
||||
sudo yunohost app setting hotspot wifi_channel -v 6
|
||||
sudo yunohost app setting hotspot wifi_n -v 0
|
||||
sudo yunohost app setting hotspot ip6_addr -v "${ip6_addr}"
|
||||
sudo yunohost app setting hotspot ip6_net -v "${ip6_net}"
|
||||
sudo yunohost app setting hotspot ip6_dns0 -v "${ip6_dns0}"
|
||||
|
|
|
@ -16,8 +16,6 @@ function restart_service() {
|
|||
}
|
||||
|
||||
dispatch('/', function() {
|
||||
set('title', T_('Wifi Hotspot'));
|
||||
|
||||
exec('ip link', $devs);
|
||||
$wifi_device = moulinette_get('wifi_device');
|
||||
$devs_list = "";
|
||||
|
@ -37,6 +35,7 @@ dispatch('/', function() {
|
|||
set('wifi_ssid', moulinette_get('wifi_ssid'));
|
||||
set('wifi_passphrase', moulinette_get('wifi_passphrase'));
|
||||
set('wifi_channel', moulinette_get('wifi_channel'));
|
||||
set('wifi_n', moulinette_get('wifi_n'));
|
||||
set('wifi_device', $wifi_device);
|
||||
set('wifi_device_list', $devs_list);
|
||||
set('ip6_net', moulinette_get('ip6_net'));
|
||||
|
@ -53,6 +52,7 @@ dispatch_put('/settings', function() {
|
|||
moulinette_set('wifi_ssid', $_POST['wifi_ssid']);
|
||||
moulinette_set('wifi_passphrase', $_POST['wifi_passphrase']);
|
||||
moulinette_set('wifi_channel', $_POST['wifi_channel']);
|
||||
moulinette_set('wifi_n', isset($_POST['wifi_n']) ? 1 : 0);
|
||||
moulinette_set('wifi_device', $_POST['wifi_device']);
|
||||
moulinette_set('ip6_net', $_POST['ip6_net']);
|
||||
moulinette_set('ip6_dns0', $_POST['ip6_dns0']);
|
||||
|
|
28
sources/public/css/bootstrap-toggle.min.css
vendored
Normal file
28
sources/public/css/bootstrap-toggle.min.css
vendored
Normal file
|
@ -0,0 +1,28 @@
|
|||
/*! ========================================================================
|
||||
* Bootstrap Toggle: bootstrap-toggle.css v2.0.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}
|
9
sources/public/js/bootstrap-toggle.min.js
vendored
Normal file
9
sources/public/js/bootstrap-toggle.min.js
vendored
Normal file
|
@ -0,0 +1,9 @@
|
|||
/*! ========================================================================
|
||||
* Bootstrap Toggle: bootstrap-toggle.js v2.0.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="3.0.0",c.DEFAULTS={on:"On",off:"Off",onstyle:"primary",offstyle:"default",size:"normal",style:""},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}},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=Math.max(c.outerWidth(),d.outerWidth())+e.outerWidth()/2,i=Math.max(c.outerHeight(),d.outerHeight());c.addClass("toggle-on"),d.addClass("toggle-off"),this.$toggle.css({width:h,height:i}),this.update(),this.trigger(!0)},c.prototype.toggle=function(){this.$element.prop("checked")?this.off():this.on()},c.prototype.on=function(){return this.$element.prop("disabled")?!1:(this.$toggle.removeClass(this._offstyle+" off").addClass(this._onstyle),this.$element.prop("checked",!0),void this.trigger())},c.prototype.off=function(){return this.$element.prop("disabled")?!1:(this.$toggle.removeClass(this._onstyle).addClass(this._offstyle+" off"),this.$element.prop("checked",!1),void 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(){this.$element.prop("disabled")?this.disable():this.enable(),this.$element.prop("checked")?this.on():this.off()},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
|
|
@ -26,4 +26,6 @@ $(document).ready(function() {
|
|||
|
||||
input.attr('value', $(this).text());
|
||||
});
|
||||
|
||||
$('.switch').bootstrapToggle();
|
||||
});
|
||||
|
|
|
@ -6,13 +6,15 @@
|
|||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
||||
<title>VPN Client <? echo (isset($title)) ? "| ".$title : "" ?></title>
|
||||
<title>Wifi Hotspot <? echo (isset($title)) ? "| ".$title : "" ?></title>
|
||||
<meta name="viewport" content="width=device-width">
|
||||
<link media="all" type="text/css" href="<?= PUBLIC_DIR ?>/bootstrap/css/bootstrap.min.css" rel="stylesheet">
|
||||
<link media="all" type="text/css" href="<?= PUBLIC_DIR ?>/bootstrap/css/bootstrap-theme.min.css" rel="stylesheet">
|
||||
<link media="all" type="text/css" href="<?= PUBLIC_DIR ?>/css/bootstrap-toggle.min.css" rel="stylesheet">
|
||||
<link media="all" type="text/css" href="<?= PUBLIC_DIR ?>/css/style.css" rel="stylesheet">
|
||||
<script src="<?= PUBLIC_DIR ?>/jquery/jquery-2.1.1.min.js"></script>
|
||||
<script src="<?= PUBLIC_DIR ?>/bootstrap/js/bootstrap.min.js"></script>
|
||||
<script src="<?= PUBLIC_DIR ?>/js/bootstrap-toggle.min.js"></script>
|
||||
<script src="<?= PUBLIC_DIR ?>/js/custom.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
|
|
|
@ -50,6 +50,15 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="wifi_passphrase" class="col-sm-3 control-label"><?= T_('Wifi N') ?></label>
|
||||
<div class="col-sm-9 input-group-btn" data-toggle="tooltip" data-title="<?= T_('Only if your antenna is 802.11n compliant') ?>">
|
||||
<div class="input-group">
|
||||
<input type="checkbox" class="form-control switch" name="wifi_n" id="wifi_n" value="1" <?= $wifi_n == 1 ? 'checked="checked"' : '' ?> />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="wifi_device" class="col-sm-3 control-label"><?= T_('Device') ?></label>
|
||||
<div class="col-sm-9 input-group-btn">
|
||||
|
|
Loading…
Reference in a new issue