UNPKG

yunkong2.admin

Version:

The adapter opens a webserver for the yunkong2 admin UI.

225 lines (199 loc) 10.5 kB
<html> <!-- DEPRECATED FROM ADMIN 3 --> <link rel="stylesheet" type="text/css" href="../../lib/css/themes/jquery-ui/redmond/jquery-ui.min.css"/> <link rel="stylesheet" type="text/css" href="../../css/adapter.css"/> <script type="text/javascript" src="../../lib/js/jquery-3.2.1.min.js"></script> <script type="text/javascript" src="../../socket.io/socket.io.js"></script> <script type="text/javascript" src="../../lib/js/jquery-ui-1.10.3.full.min.js"></script> <script type="text/javascript" src="../../js/translate.js"></script> <script type="text/javascript" src="../../js/adapter-settings.js"></script> <script type="text/javascript" src="words.js"></script> <style> .number { width: 70px } </style> <script type="text/javascript"> var oldBind; var oldSecure; var oldPort; function showHideSettings() { var $secure = $('#secure'); var $auth = $('#auth'); if ($secure.prop('checked')) { $('#_certPublic').show(); $('#_certPrivate').show(); $('#_certChained').show(); $('.le-settings').show(); if ($('#leEnabled').prop('checked')) { $('.le-sub-settings').show(); if ($('#leUpdate').prop('checked')) { $('.le-sub-settings-update').show(); } else { $('.le-sub-settings-update').hide(); } } else { $('.le-sub-settings').hide(); } } else { $('#_certPublic').hide(); $('#_certPrivate').hide(); $('#_certChained').hide(); $auth.prop('checked', false); $('.le-settings').hide(); } if ($auth.prop('checked')) { $secure.prop('checked', true); $('#defaultUser').val('admin'); $('.defaultUser').hide(); $('#_ttl').show(); } else { $('.defaultUser').show(); $('#_ttl').hide(); } } // the function loadSettings has to exist ... function load(settings, onChange) { if (!settings) return; if (!settings.thresholdValue) { settings.thresholdValue = 200; } getIPs(function(ips) { for (var i = 0; i < ips.length; i++) { $('#bind').append('<option value="' + ips[i].address + '">' + ips[i].name + '</option>'); } $('#bind.value').val(settings.bind); }); oldBind = settings.bind; oldSecure = settings.secure; oldPort = settings.port; if (settings.autoUpdate === undefined) settings.autoUpdate = 24; if (!settings.lePort) settings.lePort = 80; $('.value').each(function () { var key = $(this).attr('id'); var $value = $('#' + key + '.value'); if ($value.attr('type') === 'checkbox') { $value.prop('checked', settings[key]).on('change', function() { showHideSettings(); onChange(); }); } else { $value.val(settings[key]).on('change', onChange).on('keyup', function() { onChange(); // Chack that only numbers entered if ($(this).hasClass('number')) { var val = $(this).val(); if (val) { var newVal = ''; for (var i = 0; i < val.length; i++) { if (val[i] >= '0' && val[i] <= '9') { newVal += val[i]; } } if (val != newVal) { $(this).val(newVal); } } } }); } }); onChange(false); fillSelectCertificates('#certPublic', 'public', settings.certPublic); fillSelectCertificates('#certPrivate', 'private', settings.certPrivate); fillSelectCertificates('#certChained', 'chained', settings.certChained); fillUsers('#defaultUser', settings.defaultUser); showHideSettings(); $('#auth').change(function () { if ($(this).prop('checked')) { $('#secure').prop('checked', true); showHideSettings(); } }); } function save(callback) { var obj = {}; $('.value').each(function () { var $this = $(this); if ($this.attr('type') === 'checkbox') { obj[$this.attr('id')] = $this.prop('checked'); } else { obj[$this.attr('id')] = $this.val(); } }); if ($('#secure').prop('checked') && (!$('#certPrivate').val() || !$('#certPublic').val())) { showMessage(_('Set certificates or load it first in the system settings (right top).')); return; } var isRedirect = false; var isHttp = false; if (oldBind !== obj.bind) { isRedirect = true; } if (oldSecure !== obj.secure) { isHttp = true; } if (oldPort !== obj.port) { isRedirect = true; } var href = ''; if (isRedirect || isHttp) { href = obj.secure ? 'https://' : 'http://'; href += (obj.bind !== '0.0.0.0') ? obj.bind : document.location.hostname; href += ':' + obj.port; } callback(obj, null, href); } </script> <!-- you have to put your config page in a div with id adapter-container --> <div id="adapter-container"> <table><tr><td><img src="admin.png"></td><td><h3 class="translate">Admin adapter settings</h3></td></tr></table> <table> <tr><td><label class="translate" for="bind">IP:</label></td><td class="admin-icon"></td><td><select class="value" id="bind"></select></td><td class="admin-tooltip" data-id="bind"></td></tr> <tr><td><label class="translate" for="port">Port:</label></td><td class="admin-icon"></td><td><input class="value number" id="port" size="5" maxlength="5" type="number"/></td><td class="admin-tooltip"></td></tr> <tr><td><label class="translate" for="secure">Secure(HTTPS):</label></td><td class="admin-icon"></td><td><input class="value" id="secure" type="checkbox" /></td><td class="admin-tooltip"></td></tr> <tr id="_certPublic"> <td><label class="translate" for="certPublic">Public certificate:</label></td> <td class="admin-icon"></td> <td><select id="certPublic" class="value"></select></td> <td class="admin-tooltip"></td> </tr> <tr id="_certPrivate"> <td><label class="translate" for="certPrivate">Private certificate:</label></td> <td class="admin-icon"></td> <td><select id="certPrivate" class="value"></select></td> <td class="admin-tooltip"></td> </tr> <tr id="_certChained"> <td><label class="translate" for="certChained">Chained certificate:</label></td> <td class="admin-icon"></td> <td><select id="certChained" class="value"></select></td> <td class="admin-tooltip"></td> </tr> <tr><td><label class="translate" for="auth">Authentication:</label></td><td class="admin-icon"></td><td><input class="value" id="auth" type="checkbox" /></td><td class="admin-text"></td></tr> <tr id="_ttl"><td><label class="translate" for="ttl">Login timeout(sec):</label></td><td class="admin-icon"></td><td><input class="value" id="ttl" /></td><td class="admin-tooltip"></td></tr> <tr><td><label class="translate" for="cache">Cache:</label></td><td class="admin-icon"></td><td><input class="value" id="cache" type="checkbox" /></td><td class="admin-tooltip"></td></tr> <tr class="defaultUser"><td><label class="translate" for="defaultUser">Run as:</label></td><td class="admin-icon"></td><td><select class="value" id="defaultUser"></select></td><td class="admin-tooltip"></td></tr> <tr><td><label class="translate" for="autoUpdate">Auto update:</label></td><td class="admin-icon"></td><td> <select class="value" id="autoUpdate"> <option value="0" class="translate">manually</option> <option value="12" class="translate">every 12 hours</option> <option value="24" class="translate">every day</option> <option value="48" class="translate">every 2 days</option> <option value="72" class="translate">every 3 days</option> <option value="168" class="translate">every week</option> <option value="336" class="translate">every 2 weeks</option> <option value="720" class="translate">monthly</option> </select> </td> <td class="admin-tooltip"></td> </tr> <tr><td><label class="translate" for="thresholdValue">Events threshold value:</label></td><td class="admin-icon"></td><td><input class="value" id="thresholdValue" type="number" min="50"/></td><td class="admin-tooltip"></td></tr> <tr><td colspan="2">&nbsp;</td></tr> <tr class="le-settings"><td colspan="2"><h3 class="translate">Let's Encrypt settings</h3></tr> <tr class="le-settings"><td><label for="leEnabled" class="translate">Use Lets Encrypt certificates:</label></td><td class="admin-icon"></td><td><input class="value" id="leEnabled" type="checkbox" /></td><td class="admin-tooltip" data-link="lets-encrypt-certificates"></td></tr> <tr class="le-settings le-sub-settings"><td><label for="leUpdate" class="translate">Use this instance for automatic update:</label></td><td class="admin-icon"></td><td><input class="value" id="leUpdate" type="checkbox" /></td><td class="admin-tooltip" data-link="lets-encrypt-certificates"></td></tr> <tr class="le-settings le-sub-settings le-sub-settings-update"><td><label for="lePort" class="translate">Port to check the domain:</label></td><td class="admin-icon"></td><td><input class="value number" id="lePort" type="number" size="5" maxlength="5" /></td><td class="admin-tooltip" data-link="lets-encrypt-certificates"></td></tr> </table> </div> </html>