238 lines
6.0 KiB
HTML
238 lines
6.0 KiB
HTML
<%
|
||
local util = require "luci.util"
|
||
local sys = require "luci.sys"
|
||
local uci = require "luci.model.uci".cursor()
|
||
|
||
local pon = tostring(uci:get("sms_tool", "general", "prefix"))
|
||
local pnumber = tostring(uci:get("sms_tool", "general", "pnumber"))
|
||
local info = tostring(uci:get("sms_tool", "general", "information"))
|
||
|
||
-%>
|
||
|
||
<%+header%>
|
||
|
||
<!--
|
||
-- Copyright 2020-2022 Rafał Wabik (IceG) - From eko.one.pl forum
|
||
-- Licensed to the GNU General Public License v3.0.
|
||
-->
|
||
|
||
<style>
|
||
|
||
textarea {
|
||
height:120px;
|
||
max-height:120px;
|
||
min-height:120px;
|
||
min-width:100%;
|
||
resize:vertical;
|
||
}
|
||
|
||
}
|
||
|
||
</style>
|
||
|
||
<script type="text/javascript">//<![CDATA[
|
||
|
||
|
||
window.onload = function prefiksSMS() {
|
||
|
||
var phk = document.getElementById("numer").value;
|
||
var on = <%=pon%>;
|
||
|
||
var msg = <%=info%>;
|
||
|
||
var pfixnum = document.getElementById("numer");
|
||
if ( on == "1" ) {
|
||
var phn2 = <%=pnumber%>;
|
||
pfixnum.value = phn2;
|
||
}
|
||
|
||
if ( msg == "1" ) {
|
||
alert("<%:电话号码的前面应该有国家的前缀(波兰是48,没有+)。如果号码是5个、4个或3个字符,它将被视为短号码,而不应在前面加上国家前缀。(The phone number should be preceded by the country prefix (for Poland it is 48, without +). If the number is 5, 4 or 3 characters, it is treated as.. short and should not be preceded by a country prefix.)%>");
|
||
}
|
||
|
||
|
||
|
||
XHR.get('<%=luci.dispatcher.build_url("admin", "modem", "sms", "user_phonebook")%>', null,
|
||
function(x, json)
|
||
{
|
||
select = document.getElementById('pb');
|
||
var opt = document.createElement('option');
|
||
opt.text = phn2;
|
||
opt.value = phn2;
|
||
opt.innerHTML = ">";
|
||
select.appendChild(opt);
|
||
|
||
var countpb = Object.keys(json).length;
|
||
|
||
|
||
for(var d=0;d<=countpb;d++)
|
||
{
|
||
var opt = document.createElement('option');
|
||
var s = json[d].phb;
|
||
var fields = s.split(/;/);
|
||
var name = fields[0];
|
||
var number = fields[1];
|
||
opt.text = name;
|
||
opt.value = number.trim();
|
||
opt.innerHTML = name;
|
||
select.appendChild(opt);
|
||
}
|
||
|
||
}
|
||
);
|
||
|
||
|
||
|
||
|
||
}
|
||
|
||
|
||
function copyFunction2() {
|
||
|
||
var x = document.getElementById("pb").value;
|
||
document.getElementById("numer").value = x;
|
||
document.getElementById("odp").innerHTML = "";
|
||
|
||
|
||
}
|
||
|
||
|
||
function count_replace(obj) {
|
||
|
||
document.getElementById('counter').innerHTML = (160 - document.getElementById('smstxt').value.length);
|
||
|
||
obj.value = obj.value.replace(/ą/g, 'a').replace(/Ą/g, 'A');
|
||
obj.value = obj.value.replace(/ć/g, 'c').replace(/Ć/g, 'C')
|
||
obj.value = obj.value.replace(/ę/g, 'e').replace(/Ę/g, 'E')
|
||
obj.value = obj.value.replace(/ł/g, 'l').replace(/Ł/g, 'L')
|
||
obj.value = obj.value.replace(/ń/g, 'n').replace(/Ń/g, 'N')
|
||
obj.value = obj.value.replace(/ó/g, 'o').replace(/Ó/g, 'O')
|
||
obj.value = obj.value.replace(/ś/g, 's').replace(/Ś/g, 'S')
|
||
obj.value = obj.value.replace(/ż/g, 'z').replace(/Ż/g, 'Z')
|
||
obj.value = obj.value.replace(/ź/g, 'z').replace(/Ź/g, 'Z');
|
||
document.getElementById("odp").innerHTML = "";
|
||
|
||
}
|
||
|
||
function codsp() {
|
||
|
||
document.getElementById("odp").innerHTML = "";
|
||
|
||
}
|
||
|
||
|
||
|
||
function postcmd(cmd) {
|
||
(new XHR()).post("<%=luci.dispatcher.build_url("admin", "modem", "sms", "run_sms")%>", {"scode":cmd}, function(x) {
|
||
console.log(x.response)
|
||
console.log(x)
|
||
var cut = x.response;
|
||
cut = cut.substr(0, 20);
|
||
if ( cut == "sms sent sucessfully" ) {
|
||
document.getElementById("odp").innerHTML = "<%:SMS sent sucessfully%>"};
|
||
|
||
});
|
||
return false;
|
||
}
|
||
|
||
|
||
document.addEventListener('DOMContentLoaded', function (ev) {var button = document.getElementById("sendsms");
|
||
button.addEventListener("click", function () {
|
||
|
||
|
||
var ph = document.getElementById("numer").value;
|
||
if ( ph.length < 2 || ph.length == 0 )
|
||
{
|
||
document.getElementById("odp").innerHTML = "";
|
||
alert("<%:Please enter phone number%>");
|
||
return false;
|
||
}
|
||
|
||
ph = ph.trim();
|
||
|
||
if ( isNaN(ph) )
|
||
{
|
||
alert("<%:Please correct phone number%>");
|
||
return false;
|
||
}
|
||
|
||
var num = ph.concat(" ");
|
||
num = num.substr(0, 20);
|
||
|
||
var tm = document.getElementById("smstxt").value;
|
||
if ( tm.length == 0 )
|
||
{
|
||
alert("<%:Please enter a message text%>");
|
||
return false;
|
||
}
|
||
num = num.concat(tm);
|
||
postcmd(num);
|
||
var delsms = document.getElementById("smstxt");
|
||
var delnum = document.getElementById("numer");
|
||
document.getElementById('counter').innerHTML = "160";
|
||
delsms.value = "";
|
||
delnum.value = "";
|
||
|
||
var on = <%=pon%>;
|
||
var pfixnum = document.getElementById("numer");
|
||
if ( on == "1" ) {
|
||
var phn2 = <%=pnumber%>;
|
||
pfixnum.value = phn2;
|
||
}
|
||
|
||
return true;
|
||
});
|
||
}, true);
|
||
|
||
|
||
//]]></script>
|
||
|
||
|
||
<h2><%:短信%></h2>
|
||
<div class="cbi-map-descr"><%:通过sms_tool发送信息的Web用户界面。关于短信工具的更多信息,请见%> <a href="https://eko.one.pl/?p=openwrt-sms_tool" target="_blank"><%:eko.one.pl 论坛%></a>.</div>
|
||
<p></p>
|
||
|
||
<h4><%:发送短信%></h4>
|
||
|
||
<div class="table">
|
||
|
||
<div class="tr">
|
||
<div class="td left" ><%:用户电话簿%>:</div>
|
||
<div class="td left" >
|
||
|
||
<select name="ussd" id="pb" onchange="copyFunction2()">
|
||
|
||
</select>
|
||
</div>
|
||
<div class="td left" ></div>
|
||
</div>
|
||
|
||
<div class="tr">
|
||
<div class="td left" ><%:发送至%>:</div>
|
||
<div class="td left" ><input type="text" id="numer" onKeyUp="codsp()" placeholder="<%:PHONE_NUMBER%>" required minlength="3" maxlength="24" size="11"></div>
|
||
<div class="td left" ></div>
|
||
</div>
|
||
<div class="tr">
|
||
<div class="td left" ><%:消息正文%>:</div>
|
||
<div class="td left" ><textarea id="smstxt" onKeyUp="count_replace(this)" required></textarea><div id="counter">160</div></div>
|
||
<div class="td left" ></div>
|
||
</div>
|
||
|
||
<div class="tr">
|
||
<div class="td left" ><%:状态%>:</div><div class="td left" id="odp"></div>
|
||
|
||
</div>
|
||
|
||
</div>
|
||
<div class="table">
|
||
|
||
<div class="tr cbi-rowstyle-2">
|
||
<div class="td right"><input type="button" style="margin-right: 5%"; id="sendsms" class="btn cbi-button cbi-button-neutral" value="<%:发送短信%>" /></div>
|
||
</div>
|
||
|
||
</div>
|
||
|
||
|
||
|
||
<%+footer%>
|