238 lines
5.8 KiB
HTML
238 lines
5.8 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("<%: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><%:SMS Messages%></h2>
|
|
<div class="cbi-map-descr"><%:Web UI for sending messages via sms_tool. More information about the sms-tool on the%> <a href="https://eko.one.pl/?p=openwrt-sms_tool" target="_blank"><%:eko.one.pl forum%></a>.</div>
|
|
<p></p>
|
|
|
|
<h4><%:Send Messages%></h4>
|
|
|
|
<div class="table">
|
|
|
|
<div class="tr">
|
|
<div class="td left" ><%:User Phonebook%>:</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" ><%:Send to%>:</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" ><%:Message text%>:</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" ><%:Status%>:</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="<%:Send Message%>" /></div>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<%+footer%>
|