diff options
Diffstat (limited to 'modules/internetaccess')
-rw-r--r-- | modules/internetaccess/config.json | 4 | ||||
-rw-r--r-- | modules/internetaccess/module.inc.php | 51 | ||||
-rw-r--r-- | modules/internetaccess/templates/_page.html | 40 | ||||
-rw-r--r-- | modules/internetaccess/templates/restart.html | 22 |
4 files changed, 117 insertions, 0 deletions
diff --git a/modules/internetaccess/config.json b/modules/internetaccess/config.json new file mode 100644 index 00000000..4e7fa5fb --- /dev/null +++ b/modules/internetaccess/config.json @@ -0,0 +1,4 @@ +{ + "category":"content", + "enabled":"true" +} diff --git a/modules/internetaccess/module.inc.php b/modules/internetaccess/module.inc.php new file mode 100644 index 00000000..b949be26 --- /dev/null +++ b/modules/internetaccess/module.inc.php @@ -0,0 +1,51 @@ +<?php + +class Page_InternetAccess extends Page +{ + + protected function doPreprocess() + { + User::load(); + if (!User::hasPermission('superadmin')) { + Message::addError('no-permission'); + Util::redirect('?do=Main'); + } + if (isset($_POST['PROXY_CONF'])) { + $data = array(); + foreach (array('PROXY_CONF', 'PROXY_ADDR', 'PROXY_PORT', 'PROXY_USERNAME', 'PROXY_PASSWORD') as $key) { + $data[$key] = Request::post($key, ''); + } + if (!FileUtil::arrayToFile(CONFIG_PROXY_CONF, $data)) { + Message::addError('error-write', CONFIG_PROXY_CONF); + Util::redirect(); + } else { + Message::addSuccess('settings-updated'); + Taskmanager::release(Taskmanager::submit('ReloadProxy')); + $taskids = array(); + Trigger::stopDaemons(NULL, $taskids); + $taskids = array(); + Trigger::startDaemons(NULL, $taskids); + Session::set('ia-restart', $taskids); + Util::redirect('?do=InternetAccess&show=update'); + } + } + } + + protected function doRender() + { + if (Request::any('show') === 'update') { + $taskids = Session::get('ia-restart'); + if (is_array($taskids)) { + Render::addTemplate('restart', $taskids); + } else { + Message::addError('invalid-action', 'Restart'); + } + } + $data = FileUtil::fileToArray(CONFIG_PROXY_CONF); + if (!isset($data['PROXY_CONF'])) + $data['PROXY_CONF'] = 'AUTO'; + $data['selected_' . $data['PROXY_CONF']] = 'selected'; + Render::addTemplate('_page', $data); + } + +} diff --git a/modules/internetaccess/templates/_page.html b/modules/internetaccess/templates/_page.html new file mode 100644 index 00000000..a2aaddac --- /dev/null +++ b/modules/internetaccess/templates/_page.html @@ -0,0 +1,40 @@ +<h1>{{lang_internetAccess}}</h1> + +<form action="?do=InternetAccess" method="post"> + <input type="text" name="prevent_autofill" id="prevent_autofill" value="" style="display:none;"> + <input type="password" name="password_fake" id="password_fake" value="" style="display:none;"> + <input type="hidden" name="token" value="{{token}}"> + <div class="panel panel-default"> + <div class="panel-heading">{{lang_internetAccess}}</div> + <div class="panel-body"> + <p>{{lang_description}}</p> + <div class="input-group"> + <span class="input-group-addon slx-ga">{{lang_proxyType}}</span> + <select name="PROXY_CONF" class="form-control"> + <option value="AUTO" {{selected_AUTO}}>{{lang_automatic}} (dns-wpad)</option> + <option value="NO" {{selected_NO}}>{{lang_no}}</option> + <option value="YES" {{selected_YES}}>{{lang_manual}}</option> + </select> + </div> + <br> + <p>{{lang_manualProxyConfig}}</p> + <div class="input-group"> + <span class="input-group-addon slx-ga">{{lang_proxyAddress}} *</span> + <input name="PROXY_ADDR" value="{{PROXY_ADDR}}" type="text" class="form-control"> + </div> + <div class="input-group"> + <span class="input-group-addon slx-ga">{{lang_proxyPort}} *</span> + <input name="PROXY_PORT" value="{{PROXY_PORT}}" type="text" class="form-control"> + </div> + <div class="input-group"> + <span class="input-group-addon slx-ga">{{lang_proxyUsername}}</span> + <input name="PROXY_USERNAME" value="{{PROXY_USERNAME}}" type="text" class="form-control"> + </div> + <div class="input-group"> + <span class="input-group-addon slx-ga">{{lang_proxyPassword}}</span> + <input name="PROXY_PASSWORD" value="{{PROXY_PASSWORD}}" type="{{password_type}}" class="form-control"> + </div> + <button class="btn btn-primary" type="submit">{{lang_save}}</button> + </div> + </div> +</form> diff --git a/modules/internetaccess/templates/restart.html b/modules/internetaccess/templates/restart.html new file mode 100644 index 00000000..effe1feb --- /dev/null +++ b/modules/internetaccess/templates/restart.html @@ -0,0 +1,22 @@ +<div class="panel panel-default"> + <div class="panel-heading">{{lang_serviceRestart}}</div> + <div class="panel-body"> + <div data-tm-id="{{syncid}}" data-tm-log="messages" data-tm-callback="restartCb">{{lang_restarting}} syncdaemon</div> + <div data-tm-id="{{dmsdid}}" data-tm-log="messages" data-tm-callback="restartCb">{{lang_restarting}} dmsd</div> + <div data-tm-id="{{ldadpid}}" data-tm-log="messages" data-tm-callback="restartCb">{{lang_restarting}} ldadp</div> + <div id="restartfailed" class="alert alert-danger" style="display:none"> + {{lang_restartFailed}} + </div> + </div> +</div> + +<script type="text/javascript"> + function restartCb(task) + { + if (!task || !task.statusCode) + return; + if (task.statusCode === 'TASK_ERROR') { + $('#restartfailed').show('slow'); + } + } +</script> |