📄 main.cgi.svn-base
字号:
#!/usr/bin/haserl# Copyright (C) 2008 OpenRB.comcontent-type: text/html(function(){ var moduleId = 'qos'; var elems = FlashSYS.getCache( moduleId ); if (!elems) { var window = FlashSYS.newWindow({ id: moduleId, title: $TR( moduleId ), width: 700, height: 225 }); var tabs = new FlashSYS.Tabs(window.contentEl, { tabs: ['ifaces', 'classes', 'rules'], trPrefix: 'qos_', footerEl: window.footerEl }); // QoS interfaces var ifaceTable = new FlashSYS.Table(tabs.getPanelByIndex(0), { params: { 'module': moduleId, 'action': 'formiface' }, trPrefix: 'qos_iface_', tableHead: { 'name': { width: 20 }, 'classes': { width: 35 }, 'download': { width: 20, axis: 'number' }, 'upload': { width: 20, axis: 'number' }, 'status': { width: 5, blank: true, params: { module: 'qos', action: 'status', reload: 'qos' } } } }); // QoS classes var classTable = new FlashSYS.Table(tabs.getPanelByIndex(1), { params: { 'module': moduleId, 'action': 'formclass' }, trPrefix: 'qos_class_', sortable: true, tableHead: { 'name': { width: 20 }, 'priority': { width: 15, axis: 'number' }, 'avgrate': { width: 15, axis: 'number' }, 'limitrate': { width: 15, axis: 'number' }, 'maxsize': { width: 15, axis: 'number' }, 'packetdelay': { width: 15, axis: 'number' }, 'delete': { width: 5, blank: true, confirm: 'del_confirm', params: { module: moduleId, action: 'delete', reload: moduleId } } } }); FlashSYS.Control.addButton(tabs.getFooterByIndex(1), { 'params': { 'module': moduleId, 'action': 'formclass', 'data': { 'new': true } }, 'cls': 'Add', 'title': $TR('add') }); // QoS rules var ruleTable = new FlashSYS.Table(tabs.getPanelByIndex(2), { params: { 'module': moduleId, 'action': 'formrule' }, trPrefix: 'qos_rule_', sortable: true, tableHead: { 'nr': { width: 5, axis: 'number' }, 'target': { width: 15 }, 'srchost': { width: 20 }, 'dsthost': { width: 20 }, 'proto': { width: 10 }, 'layer7': { width: 15 }, 'sortup': { width: 5, blank: true, params: { module: moduleId, action: 'sort', reload: moduleId } }, 'sortdown': { width: 5, blank: true, params: { module: moduleId, action: 'sort', reload: moduleId } }, 'delete': { width: 5, blank: true, confirm: 'del_confirm', params: { module: moduleId, action: 'delete', reload: moduleId } } } }); FlashSYS.Control.addButton(tabs.getFooterByIndex(2), { 'params': { 'module': moduleId, 'action': 'formrule', 'data': { 'new': true } }, 'cls': 'Add', 'title': $TR('add') }); // Element cache elems = FlashSYS.setCache( moduleId, { window: window, tabs: tabs, ifaceTable: ifaceTable, classTable: classTable, ruleTable: ruleTable }); } var tableData = <? /lib/flashsys/modules/qos/main.lua ?>; var ifaceValues = {}, classValues = {}, ruleValues = {}, qosIface = {}, delIcon = { cls: 'Icon Delete', title: $TR('title_delete') }, stUpIcon = {'cls': 'Icon UpDown', 'title': $TR('title_active') }, stDownIcon = {'cls': 'Icon UpDown', 'title': $TR('title_inactive') }, upIcon = { cls: 'Icon SortUp', data: 'up', title: $TR('title_moveup') }, downIcon = { cls: 'Icon SortDown', data: 'down', title: $TR('title_movedown') }, ruleCount = 0; // parse qos config data for (var i = 0, j = tableData.qos.length; i < j; i++) { var options = tableData.qos[ i ]; var id = options['.name']; switch (options['.type']) { case 'class': classValues[ id ] = { cells: [ id, options.priority, options.avgrate, options.limitrate, options.maxsize, options.packetdelay, delIcon ] }; break; case 'default': case 'classify': case 'reclassify': ruleValues[ id ] = { cells: [ (++ruleCount).toString(), options.target, options.srchost, options.dsthost, options.proto, (options.layer7 || (options.ipp2p == 'all' ? 'All P2P' : options.ipp2p)), upIcon, downIcon, delIcon ] }; break; case 'interface': case 'classgroup': qosIface[ id ] = options; break; } } // parse network config data for (id in tableData.network) { var options = tableData.network[ id ]; if (options.ifname == 'lo') { continue; } var qosOptions = qosIface[ id ] || {}, classList = ''; if (qosOptions.classgroup) { var classGroup = qosOptions.classgroup; if (qosIface[ classGroup ]) { classList = qosIface[ classGroup ].classes; } } ifaceValues[ id ] = { cls: (qosOptions.enabled == '1' ? '' : 'Inactive'), cells: [ (options.type == 'bridge' ? 'br-' + id : options.ifname), classList, qosOptions.download, qosOptions.upload, (qosOptions.enabled == '1' ? stUpIcon : stDownIcon) ] }; } elems.ifaceTable.loadValues(ifaceValues); elems.classTable.loadValues(classValues); elems.ruleTable.loadValues(ruleValues);})();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -