log
This commit is contained in:
parent
c80709fe14
commit
354455f09a
@ -6,7 +6,7 @@ include $(TOPDIR)/rules.mk
|
||||
PKG_NAME:=luci-app-modem
|
||||
LUCI_TITLE:=LuCI support for Modem
|
||||
LUCI_PKGARCH:=all
|
||||
PKG_VERSION:=1.3.0
|
||||
PKG_VERSION:=1.4.0
|
||||
PKG_LICENSE:=GPLv3
|
||||
PKG_LINCESE_FILES:=LICENSE
|
||||
PKF_MAINTAINER:=siriling <siriling@qq.com>
|
||||
|
@ -24,6 +24,7 @@ function index()
|
||||
entry({"admin", "network", "modem", "config"}, cbi("modem/config")).leaf = true
|
||||
entry({"admin", "network", "modem", "get_modems"}, call("getModems"), nil).leaf = true
|
||||
entry({"admin", "network", "modem", "get_dial_log_info"}, call("getDialLogInfo"), nil).leaf = true
|
||||
entry({"admin", "network", "modem", "clean_dial_log"}, call("cleanDialLog"), nil).leaf = true
|
||||
entry({"admin", "network", "modem", "status"}, call("act_status")).leaf = true
|
||||
|
||||
--模块调试
|
||||
@ -365,9 +366,32 @@ function getDialLogInfo()
|
||||
local command="find "..run_path.." -name \"modem*_dial.cache\""
|
||||
local result=shell(command)
|
||||
|
||||
local log_paths=string.split(result, "\n")
|
||||
|
||||
local logs={}
|
||||
for i = #log_paths, 1, -1 do --倒序遍历
|
||||
|
||||
local log_path=log_paths[i]
|
||||
|
||||
if log_path ~= "" then
|
||||
--获取模组
|
||||
local tmp=string.gsub(log_path, run_path, "")
|
||||
local modem=string.gsub(tmp, "_dial.cache", "")
|
||||
|
||||
--获取日志内容
|
||||
local command="cat "..log_path
|
||||
log=shell(command)
|
||||
|
||||
--排序插入
|
||||
modem_log={}
|
||||
modem_log[modem]=log
|
||||
table.insert(logs, modem_log)
|
||||
end
|
||||
end
|
||||
|
||||
-- 设置值
|
||||
local data={}
|
||||
data["dial_log_info"]=result
|
||||
data["dial_log_info"]=logs
|
||||
-- data["translation"]=translation
|
||||
|
||||
-- 写入Web界面
|
||||
@ -375,6 +399,27 @@ function getDialLogInfo()
|
||||
luci.http.write_json(data)
|
||||
end
|
||||
|
||||
--[[
|
||||
@Description 清空拨号日志
|
||||
]]
|
||||
function cleanDialLog()
|
||||
|
||||
-- 获取拨号日志路径
|
||||
local dial_log_path = http.formvalue("path")
|
||||
|
||||
-- 清空拨号日志
|
||||
local command=": > "..dial_log_path
|
||||
shell(command)
|
||||
|
||||
-- 设置值
|
||||
local data={}
|
||||
data["clean_result"]="clean dial log"
|
||||
|
||||
-- 写入Web界面
|
||||
luci.http.prepare_content("application/json")
|
||||
luci.http.write_json(data)
|
||||
end
|
||||
|
||||
--[[
|
||||
@Description 模块列表状态函数
|
||||
]]
|
||||
|
@ -15,7 +15,7 @@
|
||||
get_modem_debug_info(debug_params);
|
||||
});
|
||||
|
||||
//获取tab菜单
|
||||
//获取标签菜单
|
||||
var tab_menu = document.getElementsByClassName('cbi-tabmenu')[0];
|
||||
set_tab_event(tab_menu);
|
||||
|
||||
@ -69,7 +69,7 @@
|
||||
});
|
||||
}
|
||||
|
||||
//设置tab菜单事件
|
||||
//设置标签菜单事件
|
||||
function set_tab_event(parent_element)
|
||||
{
|
||||
//获取子元素
|
||||
@ -123,7 +123,8 @@
|
||||
function(x, data)
|
||||
{
|
||||
responseElement=document.getElementById("response");
|
||||
if ("response" in data) {
|
||||
if ("response" in data)
|
||||
{
|
||||
//显示当前时间
|
||||
responseElement.value+=data["time"]+" ";
|
||||
//显示返回值
|
||||
@ -233,7 +234,7 @@
|
||||
return disenable_element;
|
||||
}
|
||||
|
||||
// 设置tab显示
|
||||
// 设置标签显示
|
||||
function set_tab_view(disenable_element,enable_element)
|
||||
{
|
||||
//获取tab内容父元素
|
||||
@ -282,17 +283,6 @@
|
||||
document.getElementById("tab_context").style.display="none";
|
||||
}
|
||||
|
||||
// 有模组界面
|
||||
function modems_view()
|
||||
{
|
||||
//显示模组选择界面
|
||||
document.getElementById("cbi-modem").style.display="block";
|
||||
//显示AT命令标题
|
||||
// document.getElementById("at_command_title").style.display="block";
|
||||
//隐藏提示信息
|
||||
// document.getElementById("cbi-info").style.display="none";
|
||||
}
|
||||
|
||||
// 未适配模组界面
|
||||
function not_adapted_modems_view()
|
||||
{
|
||||
@ -300,26 +290,30 @@
|
||||
document.getElementById("info_message").innerHTML="<strong><%:Not adapted to this modem%></strong>";
|
||||
//显示提示信息
|
||||
document.getElementById("cbi-info").style.display="block";
|
||||
//显示tab内容界面
|
||||
//显示模组选择界面
|
||||
document.getElementById("cbi-modem").style.display="block";
|
||||
//显示标签内容界面
|
||||
document.getElementById("tab_context").style.display="block";
|
||||
//显示AT命令标题
|
||||
document.getElementById("at_command_title").style.display="block";
|
||||
//隐藏tab菜单界面
|
||||
//隐藏标签菜单界面
|
||||
document.getElementsByClassName("cbi-tabmenu")[0].style.display="none";
|
||||
//在tab菜单选中AT命令
|
||||
//在标签菜单选中AT命令
|
||||
var data_tab="at_command_tab"
|
||||
var at_command_tab_element = document.querySelector('li[data-tab="'+data_tab+'"]');
|
||||
tab_event(at_command_tab_element);
|
||||
//隐藏tab内容界面
|
||||
// document.getElementById("tab_context").style.display="none";
|
||||
}
|
||||
|
||||
// 全功能界面
|
||||
function all_function_view()
|
||||
{
|
||||
//显示tab菜单界面
|
||||
//更新提示信息
|
||||
document.getElementById("info_message").innerHTML='<img src="<%=resource%>/icons/loading.gif" alt="<%:Loading%>" style="vertical-align:middle"/><%:Loading modem%>...';
|
||||
//显示模组选择界面
|
||||
document.getElementById("cbi-modem").style.display="block";
|
||||
//显示标签菜单界面
|
||||
document.getElementsByClassName("cbi-tabmenu")[0].style.display="block";
|
||||
//显示tab内容界面
|
||||
//显示标签内容界面
|
||||
document.getElementById("tab_context").style.display="block";
|
||||
//隐藏AT命令标题
|
||||
document.getElementById("at_command_title").style.display="none";
|
||||
@ -390,9 +384,6 @@
|
||||
var command_select = document.getElementById('command_select');
|
||||
//更新选项
|
||||
update_option(command_select,data["quick_commands"],true);
|
||||
|
||||
//显示有模组界面
|
||||
modems_view();
|
||||
}
|
||||
);
|
||||
}
|
||||
@ -733,8 +724,6 @@
|
||||
var mode_info=data["mode_info"];
|
||||
if (Object.keys(mode_info).length==0)
|
||||
{
|
||||
//显示未适配模组界面
|
||||
not_adapted_modems_view();
|
||||
return false
|
||||
}
|
||||
|
||||
@ -743,9 +732,6 @@
|
||||
|
||||
//设置第一次获取数据标志
|
||||
debug_params.first_cache=false;
|
||||
|
||||
//显示全功能界面
|
||||
all_function_view();
|
||||
}
|
||||
);
|
||||
}
|
||||
@ -757,8 +743,6 @@
|
||||
var network_prefer_info=data["network_prefer_info"];
|
||||
if (Object.keys(network_prefer_info).length==0)
|
||||
{
|
||||
//显示未适配模组界面
|
||||
not_adapted_modems_view();
|
||||
return false
|
||||
}
|
||||
|
||||
@ -767,9 +751,6 @@
|
||||
|
||||
//设置第一次获取数据标志
|
||||
debug_params.first_cache=false;
|
||||
|
||||
//显示全功能界面
|
||||
all_function_view();
|
||||
}
|
||||
);
|
||||
}
|
||||
@ -781,8 +762,6 @@
|
||||
var self_test_info=data["self_test_info"];
|
||||
if (Object.keys(self_test_info).length==0)
|
||||
{
|
||||
//显示未适配模组界面
|
||||
not_adapted_modems_view();
|
||||
return false
|
||||
}
|
||||
|
||||
@ -791,43 +770,9 @@
|
||||
|
||||
//设置第一次获取数据标志
|
||||
// debug_params.first_cache=false;
|
||||
|
||||
//显示全功能界面
|
||||
all_function_view();
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
//获取调试信息
|
||||
// XHR.get('<%=luci.dispatcher.build_url("admin", "network", "modem", "get_modem_debug_info")%>', {"port":at_port},
|
||||
// function(x, data)
|
||||
// {
|
||||
// var mode_info=data["mode_info"];
|
||||
// var network_prefer_info=data["network_prefer_info"];
|
||||
// var self_test_info=data["self_test_info"];
|
||||
// if (Object.keys(mode_info).length==0||Object.keys(network_prefer_info).length==0) {
|
||||
// //显示未适配模组界面
|
||||
// not_adapted_modems_view();
|
||||
// return false
|
||||
// }
|
||||
|
||||
// //设置模式信息
|
||||
// set_mode_info(mode_info,debug_params.first_cache);
|
||||
|
||||
// //设置网络偏好信息
|
||||
// set_network_prefer_info(network_prefer_info,debug_params.first_cache);
|
||||
|
||||
// //设置模组自检信息
|
||||
// set_modem_self_test_info(self_test_info);
|
||||
|
||||
// //设置第一次获取数据标志
|
||||
// debug_params.first_cache=false;
|
||||
|
||||
// //显示全功能界面
|
||||
// all_function_view();
|
||||
// }
|
||||
// );
|
||||
|
||||
}
|
||||
|
||||
// 定时触发更新AT串口
|
||||
@ -836,7 +781,7 @@
|
||||
{
|
||||
//缓存当前选择的模组
|
||||
var modem_select_cache="";
|
||||
var debug_params={first_cache:true};
|
||||
var debug_params={first_cache:true,view:0};
|
||||
return function(x, data)
|
||||
{
|
||||
var at_ports=data["at_ports"];
|
||||
@ -848,8 +793,7 @@
|
||||
//获取快捷命令
|
||||
if (Object.keys(at_ports).length==0)
|
||||
{
|
||||
//显示无模组界面
|
||||
no_modems_view();
|
||||
debug_params.view=0;
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -857,6 +801,15 @@
|
||||
var modem_select_element = document.getElementById('modem_select');
|
||||
var select_modem_name = modem_select_element.options[modem_select_element.selectedIndex].text;
|
||||
|
||||
if (select_modem_name.includes("ttyUSB")||select_modem_name.includes("at")||select_modem_name.includes("DUN"))
|
||||
{
|
||||
debug_params.view=2;
|
||||
}
|
||||
else
|
||||
{
|
||||
debug_params.view=1;
|
||||
}
|
||||
|
||||
if (select_modem_name != modem_select_cache)
|
||||
{
|
||||
//获取快捷选项
|
||||
@ -864,6 +817,7 @@
|
||||
if (quick_option=="auto") {
|
||||
get_quick_commands();
|
||||
}
|
||||
//缓存当前选中的模组
|
||||
modem_select_cache=select_modem_name;
|
||||
|
||||
//设置第一次获取数据标志
|
||||
@ -873,6 +827,20 @@
|
||||
//获取模组调试信息
|
||||
get_modem_debug_info(debug_params);
|
||||
}
|
||||
|
||||
//设置界面
|
||||
if (debug_params.view==0) {
|
||||
//显示无模组界面
|
||||
no_modems_view();
|
||||
}
|
||||
else if (debug_params.view==1) {
|
||||
//显示全功能界面
|
||||
all_function_view();
|
||||
}
|
||||
else if (debug_params.view==2) {
|
||||
//显示未适配模组界面
|
||||
not_adapted_modems_view();
|
||||
}
|
||||
};
|
||||
})()
|
||||
);
|
||||
@ -1150,8 +1118,8 @@
|
||||
<div id="response_label"><%:Response%></div><br/>
|
||||
<div><textarea readonly="readonly" id="response" rows="20" maxlength="160"></textarea></div>
|
||||
<div class="cbi-page-actions">
|
||||
<input class="btn cbi-button cbi-button-link" type="button" value="<%:Return to old page%>" onclick="location.href='/cgi-bin/luci/admin/network/modem/at_command_old'">
|
||||
<input class="btn cbi-button cbi-button-link" type="button" value="<%:Custom quick commands%>" onclick="location.href='/cgi-bin/luci/admin/network/modem/quick_commands_config'">
|
||||
<input class="btn cbi-button cbi-button-link" type="button" value="<%:Return to old page%>" onclick="location.href='/cgi-bin/luci/admin/network/modem/at_command_old'" alt="<%:Return to old page%>" title="<%:Return to old page%>">
|
||||
<input class="btn cbi-button cbi-button-link" type="button" value="<%:Custom quick commands%>" onclick="location.href='/cgi-bin/luci/admin/network/modem/quick_commands_config'" alt="<%:Custom quick commands%>" title="<%:Custom quick commands%>">
|
||||
<input class="cbi-button cbi-button-reset" type="button" value="<%:Clean%>" onclick="clean_response()" alt="<%:Clean%>" title="<%:Clean%>">
|
||||
</div>
|
||||
</td>
|
||||
|
@ -1,12 +1,236 @@
|
||||
<script type="text/javascript">//<![CDATA[
|
||||
|
||||
function set_tab_event()
|
||||
{
|
||||
var tab_menu = document.getElementById('tab_menu');
|
||||
//获取子元素
|
||||
var childElements = tab_menu.children;
|
||||
//获取需要禁用的元素
|
||||
for (var i = 0; i < childElements.length; i++)
|
||||
{
|
||||
childElements[i].addEventListener('click', function(event) {
|
||||
tab_event(this);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
//获取需要禁用的元素
|
||||
function get_enable_element(parent_element)
|
||||
{
|
||||
var enable_element;
|
||||
//获取子元素
|
||||
var childElements = parent_element.children;
|
||||
//获取已启用的元素
|
||||
for (var i = 0; i < childElements.length; i++)
|
||||
{
|
||||
// 检查当前子元素的class属性是否为cbi-tab
|
||||
if (childElements[i].classList.contains('cbi-tab'))
|
||||
{
|
||||
enable_element=childElements[i];
|
||||
break;
|
||||
}
|
||||
}
|
||||
return enable_element;
|
||||
}
|
||||
|
||||
// 设置tab显示
|
||||
function set_tab_view(disenable_element,enable_element)
|
||||
{
|
||||
//获取tab内容父元素
|
||||
var tab_context = document.getElementById('dial_log_view');
|
||||
|
||||
//禁用tab
|
||||
disenable_element.classList.remove('cbi-tab');
|
||||
disenable_element.classList.add('cbi-tab-disabled');
|
||||
//禁用tab内容
|
||||
var data_tab_disenable = disenable_element.getAttribute('data-tab');
|
||||
var tab_context_disenable_element = tab_context.querySelector('div[data-tab="'+data_tab_disenable+'"]');
|
||||
tab_context_disenable_element.setAttribute('data-tab-active','false');
|
||||
|
||||
//启用tab
|
||||
enable_element.classList.remove('cbi-tab-disabled');
|
||||
enable_element.classList.add('cbi-tab');
|
||||
//启用tab内容
|
||||
var data_tab_enable = enable_element.getAttribute('data-tab');
|
||||
var tab_context_enable_element = tab_context.querySelector('div[data-tab="'+data_tab_enable+'"]');
|
||||
tab_context_enable_element.setAttribute('data-tab-active','true');
|
||||
}
|
||||
|
||||
// tab事件处理(更新选中的tab及tab内容)
|
||||
function tab_event(tab_element)
|
||||
{
|
||||
//获取需要禁用的tab元素
|
||||
var tab_menu = document.getElementById('tab_menu');
|
||||
var disenable_element=get_enable_element(tab_menu);
|
||||
if (tab_element != disenable_element) {
|
||||
set_tab_view(disenable_element,tab_element);
|
||||
}
|
||||
}
|
||||
|
||||
// 设置滚动条
|
||||
function set_scroll_top(log_ids)
|
||||
{
|
||||
for(var log_id in log_ids)
|
||||
{
|
||||
var log_element=document.getElementById(log_id);
|
||||
if (log_ids[log_id]==-1)
|
||||
{
|
||||
log_element.scrollTop = log_element.scrollHeight;
|
||||
}
|
||||
else
|
||||
{
|
||||
log_element.scrollTop = log_ids[log_id];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
XHR.poll(5, '<%=luci.dispatcher.build_url("admin", "network", "modem", "get_dial_log_info")%>', null,
|
||||
function(x, data)
|
||||
{
|
||||
console.log(data);
|
||||
var dial_log_info=data["dial_log_info"];
|
||||
|
||||
var tab_menu=document.getElementById('tab_menu');
|
||||
var dial_log_div=document.getElementById('dial_log_view');
|
||||
if (Object.keys(dial_log_info).length!=0)
|
||||
{
|
||||
// 新添加标签或覆盖标签
|
||||
var tab_view = "";
|
||||
var dial_log_view = "";
|
||||
var log_ids={};
|
||||
var enable_tab_name_cache=""; // 缓存已启用标签名
|
||||
for (var dial_log of dial_log_info)
|
||||
{
|
||||
//遍历拨号日志的信息
|
||||
for ( var key in dial_log)
|
||||
{
|
||||
var class_name="cbi-tab-disabled";
|
||||
var active="false";
|
||||
var log_style="";
|
||||
|
||||
if (tab_menu.hasChildNodes())
|
||||
{
|
||||
// 获取启用的标签元素
|
||||
var enable_element=get_enable_element(tab_menu);
|
||||
|
||||
// 设置启用的标签为上一次的启用标签
|
||||
enable_tab=enable_element.getAttribute("data-tab");
|
||||
enable_tab_name_cache=enable_tab.replace("_tab","");
|
||||
if (enable_tab_name_cache==key)
|
||||
{
|
||||
active="true";
|
||||
class_name="cbi-tab";
|
||||
}
|
||||
|
||||
var log_element=document.getElementById(key+'_log');
|
||||
if (log_element!=null)
|
||||
{
|
||||
// 设置样式
|
||||
log_style=log_element.getAttribute("style");
|
||||
|
||||
// 判断日志是否更新
|
||||
var log=log_element.value;
|
||||
if (dial_log[key]!=log)
|
||||
{
|
||||
// 更新的移动滚动条到最下面
|
||||
log_ids[key+'_log']=-1;
|
||||
}
|
||||
else
|
||||
{
|
||||
// 记录滚到条位置
|
||||
log_ids[key+'_log']=log_element.scrollTop;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 设置模组tab
|
||||
tab_view+='<li class="'+class_name+'" data-tab="'+key+'_tab"><a>'+key+'</a></li>';
|
||||
// 设置日志
|
||||
dial_log_view += '<div class="cbi-section" data-tab="'+key+'_tab" data-tab-title="'+key+'" data-tab-active="'+active+'">';
|
||||
dial_log_view += '<div><textarea readonly="readonly" id="'+key+'_log" rows="20" maxlength="160" style="'+log_style+'">'+dial_log[key]+'</textarea></div>';
|
||||
dial_log_view += '</div>'
|
||||
}
|
||||
}
|
||||
|
||||
// 添加到页面中
|
||||
tab_menu.innerHTML=tab_view;
|
||||
dial_log_div.innerHTML=dial_log_view;
|
||||
|
||||
// 设置默认启用的标签(上次启用标签已删除)
|
||||
var enable_element=document.getElementById(enable_tab_name_cache+"_log");
|
||||
if (enable_element==null)
|
||||
{
|
||||
//设置启用的为第一个标签
|
||||
enable_element=tab_menu.firstChild;
|
||||
enable_element.classList.remove('cbi-tab-disabled');
|
||||
enable_element.classList.add('cbi-tab');
|
||||
|
||||
enable_element=dial_log_div.firstChild;
|
||||
enable_element.setAttribute('data-tab-active','true');
|
||||
}
|
||||
|
||||
//设置滚动条
|
||||
set_scroll_top(log_ids);
|
||||
|
||||
// 设置标签事件
|
||||
set_tab_event();
|
||||
}
|
||||
else
|
||||
{
|
||||
var log_view="<strong><%:No modems found%></strong>";
|
||||
dial_log_div.innerHTML=log_view;
|
||||
// 隐藏模块状态
|
||||
document.getElementById("modem_dial_log_field").style.display="none";
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
// 下载日志
|
||||
function download_dial_log()
|
||||
{
|
||||
// 获取启用的标签名
|
||||
var enable_element=get_enable_element(tab_menu);
|
||||
var enable_tab=enable_element.getAttribute("data-tab");
|
||||
var enable_tab_name=enable_tab.replace("_tab","");
|
||||
|
||||
// 获取拨号日志
|
||||
var log_element=document.getElementById(enable_tab_name+"_log");
|
||||
var log=log_element.value
|
||||
|
||||
// 创建下载链接
|
||||
var file = new Blob([log], {type: 'text/plain'});
|
||||
var fileURL = URL.createObjectURL(file);
|
||||
|
||||
// 创建超链接并触发点击
|
||||
var download_link = document.createElement("a");
|
||||
download_link.href = fileURL;
|
||||
download_link.download = enable_tab_name+"_dial_log.txt";
|
||||
download_link.click();
|
||||
}
|
||||
|
||||
// 清理拨号日志
|
||||
function clean_dial_log()
|
||||
{
|
||||
// 获取启用的标签名
|
||||
var enable_element=get_enable_element(tab_menu);
|
||||
var enable_tab=enable_element.getAttribute("data-tab");
|
||||
var enable_tab_name=enable_tab.replace("_tab","");
|
||||
|
||||
// 清空页面拨号日志
|
||||
var log_element=document.getElementById(enable_tab_name+"_log");
|
||||
log_element.value="";
|
||||
|
||||
// 获取日志路径
|
||||
var path="/tmp/run/modem/"+enable_tab_name+"_dial.cache";
|
||||
|
||||
// 清空文件拨号日志
|
||||
XHR.get('<%=luci.dispatcher.build_url("admin", "network", "modem", "clean_dial_log")%>', {"path":path},
|
||||
function(x, data)
|
||||
{
|
||||
// console.log(data);
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
//]]>
|
||||
</script>
|
||||
|
||||
@ -17,20 +241,37 @@
|
||||
border:none;
|
||||
color:#FFF;
|
||||
width: 100%;
|
||||
|
||||
|
||||
border-top-width: 2px;
|
||||
|
||||
padding-top: 12px;
|
||||
|
||||
}
|
||||
</style>
|
||||
|
||||
<!-- 默认隐藏模块状态 -->
|
||||
<fieldset id="modem_dial_log_field" class="cbi-section" style="display: block;">
|
||||
<div class="cbi-section fade-in">
|
||||
<!-- <legend><%:AT Command%></legend> -->
|
||||
<!-- <legend><%:Dial Log%></legend> -->
|
||||
<h3 id="dial_log_title"><%:Dial Log%></h3>
|
||||
</div>
|
||||
<!-- <div id="response_label"><%:Response%></div><br/> -->
|
||||
<table class="table" id="at_command_info">
|
||||
<tbody>
|
||||
<tr class="tr">
|
||||
<td colspan="2" class="td left">
|
||||
<ul class="cbi-tabmenu" id="tab_menu"></ul>
|
||||
<div id="dial_log_view">
|
||||
<!-- <div class="cbi-section" data-tab="modem0_tab" data-tab-title="<%:Modem0%>" data-tab-active="true">
|
||||
<div><textarea readonly="readonly" id="response" rows="20" maxlength="160"></textarea></div>
|
||||
</div> -->
|
||||
</div>
|
||||
<div class="cbi-page-actions">
|
||||
<input class="btn cbi-button cbi-button-link" type="button" value="<%:Return to old page%>" onclick="location.href='/cgi-bin/luci/admin/network/modem/at_command_old'">
|
||||
<input class="btn cbi-button cbi-button-link" type="button" value="<%:Custom quick commands%>" onclick="location.href='/cgi-bin/luci/admin/network/modem/quick_commands_config'">
|
||||
<input class="cbi-button cbi-button-reset" type="button" value="<%:Clean%>" onclick="clean_response()" alt="<%:Clean%>" title="<%:Clean%>">
|
||||
</div>
|
||||
<input class="btn cbi-button cbi-button-link" type="button" value="<%:Download Log%>" onclick="download_dial_log()" alt="<%:Download Log%>" title="<%:Download Log%>">
|
||||
<input class="cbi-button cbi-button-reset" type="button" value="<%:Clean%>" onclick="clean_dial_log()" alt="<%:Clean%>" title="<%:Clean%>">
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</fieldset>
|
||||
|
@ -1,3 +1,6 @@
|
||||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=UTF-8\n"
|
||||
|
||||
msgid "Base Setting"
|
||||
msgstr "基本设置"
|
||||
|
||||
@ -43,6 +46,9 @@ msgstr "在此页面给所有模组添加拨号配置"
|
||||
msgid "Global Config"
|
||||
msgstr "全局配置"
|
||||
|
||||
msgid "Dial Log"
|
||||
msgstr "拨号日志"
|
||||
|
||||
msgid "connect"
|
||||
msgstr "已连接"
|
||||
|
||||
|
1
applications/luci-app-modem/po/zh_Hans
Normal file
1
applications/luci-app-modem/po/zh_Hans
Normal file
@ -0,0 +1 @@
|
||||
zh-cn
|
Loading…
x
Reference in New Issue
Block a user