open hub + fix nav
This commit is contained in:
202
iforte/base.js
202
iforte/base.js
@@ -1,3 +1,102 @@
|
|||||||
|
$(document).ready(function() {
|
||||||
|
$('body').prepend(generateNavBar());
|
||||||
|
var am = 0;
|
||||||
|
var mip = 0;
|
||||||
|
mip = 1;
|
||||||
|
var href = $(location).attr('pathname');
|
||||||
|
if (href.indexOf('personality') != -1) am = 1;
|
||||||
|
if (href.indexOf('logs') != -1) am = 2;
|
||||||
|
if (href.indexOf('sensors') != -1) am = 3;
|
||||||
|
if (href.indexOf('discovery') != -1) am = (3 + mip);
|
||||||
|
$('#navbar ul li').eq(am).addClass('active');
|
||||||
|
|
||||||
|
//handle settings
|
||||||
|
$(document).on('click','#scfg',function() {
|
||||||
|
mhdr_status('');
|
||||||
|
$('#m-t').html('Site settings');
|
||||||
|
var h = '<h3>Password settings</h3>';
|
||||||
|
h += c_txt('opswd','Old password','Please put old password (four digits)','','password');
|
||||||
|
h += c_txt('npswd','New password','Please put new password (four digits)','','password');
|
||||||
|
h += c_txt('npsch','New password check','New passwords check failed','','password');
|
||||||
|
$('#m-b').html(h);
|
||||||
|
$('.sb').unbind();
|
||||||
|
$('#cfg-modal').modal();
|
||||||
|
$('.sb').bind('click',function() {
|
||||||
|
loader(1);
|
||||||
|
var par = ['opswd','npswd','npsch'];
|
||||||
|
do_ajax('/set_cfg',pv(par),function (json) {
|
||||||
|
if (json) {
|
||||||
|
if (json['status'] == 0) {
|
||||||
|
mhdr_status('suc');
|
||||||
|
close_modal();
|
||||||
|
location = '/';
|
||||||
|
}
|
||||||
|
show_errors(json['status'],par);
|
||||||
|
loader(0);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
//periodicly get status
|
||||||
|
var bsy = false;
|
||||||
|
var ebli = 0;
|
||||||
|
var eblio = 255;
|
||||||
|
var idntb = $('#idnt img');
|
||||||
|
function sta() {
|
||||||
|
do_ajax('/serr',{},function (json) {
|
||||||
|
// console.log(json);
|
||||||
|
dmxsnf = '';
|
||||||
|
if (json ) {
|
||||||
|
if (json['err'] == 1) ebli = 0x80;
|
||||||
|
else ebli = 0;
|
||||||
|
if (json['dmxsnf'] == 1) dmxsnf = ' [sniffing DMX]';
|
||||||
|
if (json['idnt'] == 1) idntb.addClass('a');
|
||||||
|
else idntb.removeClass('a');
|
||||||
|
if (json['dls'] && json['dls'] == 1) {
|
||||||
|
$('.snz').show();
|
||||||
|
}
|
||||||
|
} else if (json == undefined) {
|
||||||
|
ebli = 0x40;
|
||||||
|
} else ebli = 0;
|
||||||
|
bsy = false;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
setInterval(function() {
|
||||||
|
if (!bsy) {
|
||||||
|
bsy = true;
|
||||||
|
sta();
|
||||||
|
}
|
||||||
|
},3000);
|
||||||
|
sta();
|
||||||
|
setInterval(function() {
|
||||||
|
if (ebli == eblio) return;
|
||||||
|
var opre = pre;
|
||||||
|
if (ebli & 0x80) {
|
||||||
|
ebli ^= 0x01;
|
||||||
|
if (ebli & 0x01) pre = '(!) ';
|
||||||
|
$('#pth').removeClass('stou');
|
||||||
|
$('#pth').addClass('serr');
|
||||||
|
} else if (ebli & 0x40) {
|
||||||
|
ebli ^= 0x01;
|
||||||
|
if (ebli & 0x01) pre = '(?) ';
|
||||||
|
$('#pth').removeClass('serr');
|
||||||
|
$('#pth').addClass('stou');
|
||||||
|
} else {
|
||||||
|
ebli = 0;
|
||||||
|
$('#pth').removeClass('serr stou');
|
||||||
|
pre = '';
|
||||||
|
}
|
||||||
|
//$('#pt_v').html(pre + $('#pth').data('title') + dmxsnf);
|
||||||
|
if (opre != pre) ptit('');
|
||||||
|
eblio = ebli;
|
||||||
|
},1000);
|
||||||
|
$('#idnt').click(function() {
|
||||||
|
idntb.toggleClass('a');
|
||||||
|
do_ajax('/rdmi',{s:idntb.hasClass('a') ? 1:0},function(json) {});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
function get_cookie(n,d,ti=false) {
|
function get_cookie(n,d,ti=false) {
|
||||||
var r = d;
|
var r = d;
|
||||||
var c = document.cookie.split(';');
|
var c = document.cookie.split(';');
|
||||||
@@ -209,8 +308,7 @@ function box(t,id,p,su = '',vid = '',bc = '') {
|
|||||||
return s;
|
return s;
|
||||||
}
|
}
|
||||||
|
|
||||||
function gens() {
|
function generateNavBar() {
|
||||||
|
|
||||||
var o = '<nav class="navbar fixed-top navbar-expand-md navbar-dark bg-dark">';
|
var o = '<nav class="navbar fixed-top navbar-expand-md navbar-dark bg-dark">';
|
||||||
|
|
||||||
o += '<div class="container">';
|
o += '<div class="container">';
|
||||||
@@ -322,102 +420,4 @@ function c_fsens(i,t,u) {
|
|||||||
html += '</div>';
|
html += '</div>';
|
||||||
|
|
||||||
return html;
|
return html;
|
||||||
}
|
}
|
||||||
|
|
||||||
$(document).ready(function() {
|
|
||||||
$('body').prepend(gens());
|
|
||||||
var am = 0;
|
|
||||||
var mip = 0;
|
|
||||||
mip = 1;
|
|
||||||
var href = $(location).attr('pathname');
|
|
||||||
if (href.indexOf('personality') != -1) am = 1;
|
|
||||||
if (href.indexOf('logs') != -1) am = 2;
|
|
||||||
if (href.indexOf('sensors') != -1) am = 3;
|
|
||||||
if (href.indexOf('discovery') != -1) am = (3 + mip);
|
|
||||||
$('#navbar ul li').eq(am).addClass('active');
|
|
||||||
|
|
||||||
//handle settings
|
|
||||||
$(document).on('click','#scfg',function() {
|
|
||||||
mhdr_status('');
|
|
||||||
$('#m-t').html('Site settings');
|
|
||||||
var h = '<h3>Password settings</h3>';
|
|
||||||
h += c_txt('opswd','Old password','Please put old password (four digits)','','password');
|
|
||||||
h += c_txt('npswd','New password','Please put new password (four digits)','','password');
|
|
||||||
h += c_txt('npsch','New password check','New passwords check failed','','password');
|
|
||||||
$('#m-b').html(h);
|
|
||||||
$('.sb').unbind();
|
|
||||||
$('#cfg-modal').modal();
|
|
||||||
$('.sb').bind('click',function() {
|
|
||||||
loader(1);
|
|
||||||
var par = ['opswd','npswd','npsch'];
|
|
||||||
do_ajax('/set_cfg',pv(par),function (json) {
|
|
||||||
if (json) {
|
|
||||||
if (json['status'] == 0) {
|
|
||||||
mhdr_status('suc');
|
|
||||||
close_modal();
|
|
||||||
location = '/';
|
|
||||||
}
|
|
||||||
show_errors(json['status'],par);
|
|
||||||
loader(0);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
|
||||||
});
|
|
||||||
//periodicly get status
|
|
||||||
var bsy = false;
|
|
||||||
var ebli = 0;
|
|
||||||
var eblio = 255;
|
|
||||||
var idntb = $('#idnt img');
|
|
||||||
function sta() {
|
|
||||||
do_ajax('/serr',{},function (json) {
|
|
||||||
// console.log(json);
|
|
||||||
dmxsnf = '';
|
|
||||||
if (json ) {
|
|
||||||
if (json['err'] == 1) ebli = 0x80;
|
|
||||||
else ebli = 0;
|
|
||||||
if (json['dmxsnf'] == 1) dmxsnf = ' [sniffing DMX]';
|
|
||||||
if (json['idnt'] == 1) idntb.addClass('a');
|
|
||||||
else idntb.removeClass('a');
|
|
||||||
if (json['dls'] && json['dls'] == 1) {
|
|
||||||
$('.snz').show();
|
|
||||||
}
|
|
||||||
} else if (json == undefined) {
|
|
||||||
ebli = 0x40;
|
|
||||||
} else ebli = 0;
|
|
||||||
bsy = false;
|
|
||||||
});
|
|
||||||
}
|
|
||||||
setInterval(function() {
|
|
||||||
if (!bsy) {
|
|
||||||
bsy = true;
|
|
||||||
sta();
|
|
||||||
}
|
|
||||||
},3000);
|
|
||||||
sta();
|
|
||||||
setInterval(function() {
|
|
||||||
if (ebli == eblio) return;
|
|
||||||
var opre = pre;
|
|
||||||
if (ebli & 0x80) {
|
|
||||||
ebli ^= 0x01;
|
|
||||||
if (ebli & 0x01) pre = '(!) ';
|
|
||||||
$('#pth').removeClass('stou');
|
|
||||||
$('#pth').addClass('serr');
|
|
||||||
} else if (ebli & 0x40) {
|
|
||||||
ebli ^= 0x01;
|
|
||||||
if (ebli & 0x01) pre = '(?) ';
|
|
||||||
$('#pth').removeClass('serr');
|
|
||||||
$('#pth').addClass('stou');
|
|
||||||
} else {
|
|
||||||
ebli = 0;
|
|
||||||
$('#pth').removeClass('serr stou');
|
|
||||||
pre = '';
|
|
||||||
}
|
|
||||||
//$('#pt_v').html(pre + $('#pth').data('title') + dmxsnf);
|
|
||||||
if (opre != pre) ptit('');
|
|
||||||
eblio = ebli;
|
|
||||||
},1000);
|
|
||||||
$('#idnt').click(function() {
|
|
||||||
idntb.toggleClass('a');
|
|
||||||
do_ajax('/rdmi',{s:idntb.hasClass('a') ? 1:0},function(json) {});
|
|
||||||
});
|
|
||||||
});
|
|
||||||
@@ -11,43 +11,7 @@
|
|||||||
<title id="pt_v">iForte</title>
|
<title id="pt_v">iForte</title>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<nav class="navbar fixed-top navbar-expand-md navbar-dark bg-dark">
|
<!-- NAV WILL BE ADDED HERE BY JS gens() FUNCTION IN BASE -->
|
||||||
<div class="container">
|
|
||||||
<a class="navbar-brand" href="./index.html">
|
|
||||||
<img src="../files/robe_logo_white.svg">
|
|
||||||
</a>
|
|
||||||
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbar">
|
|
||||||
<span class="navbar-toggler-icon"></span>
|
|
||||||
</button>
|
|
||||||
<div class="collapse navbar-collapse" id="navbar">
|
|
||||||
<ul class="navbar-nav mr-auto">
|
|
||||||
<li class="nav-item">
|
|
||||||
<a class="nav-link" href="./index.html">Status</a>
|
|
||||||
</li>
|
|
||||||
<li class="nav-item">
|
|
||||||
<a class="nav-link" href="./personality.html">Personality</a>
|
|
||||||
</li>
|
|
||||||
<li class="nav-item">
|
|
||||||
<a class="nav-link" href="./logs.html">Logs</a>
|
|
||||||
</li>
|
|
||||||
<li class="nav-item snz">
|
|
||||||
<a class="nav-link" href="./sensors.html">RAINS logs</a>
|
|
||||||
</li>
|
|
||||||
<li class="nav-item active">
|
|
||||||
<a class="nav-link" href="./discovery.html">Discovery</a>
|
|
||||||
</li>
|
|
||||||
<li class="nav-item">
|
|
||||||
<a class="nav-link" href="#" id="scfg">Settings</a>
|
|
||||||
</li>
|
|
||||||
<li class="nav-item">
|
|
||||||
<a class="nav-link" href="#" id="idnt">
|
|
||||||
<img class="rdmi" src="../files/identify.svg">
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</nav>
|
|
||||||
<div class="fixed-top text-center device-label" id="pth">iForte</div>
|
<div class="fixed-top text-center device-label" id="pth">iForte</div>
|
||||||
<div class="container-fluid in">
|
<div class="container-fluid in">
|
||||||
<h1>Discovery</h1>
|
<h1>Discovery</h1>
|
||||||
|
|||||||
@@ -11,43 +11,7 @@
|
|||||||
<title id="pt_v">iForte</title>
|
<title id="pt_v">iForte</title>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<nav class="navbar fixed-top navbar-expand-md navbar-dark bg-dark">
|
<!-- NAV WILL BE ADDED HERE BY JS gens() FUNCTION IN BASE -->
|
||||||
<div class="container">
|
|
||||||
<a class="navbar-brand" href="./index.html">
|
|
||||||
<img src="../files/robe_logo_white.svg">
|
|
||||||
</a>
|
|
||||||
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbar">
|
|
||||||
<span class="navbar-toggler-icon"></span>
|
|
||||||
</button>
|
|
||||||
<div class="collapse navbar-collapse" id="navbar">
|
|
||||||
<ul class="navbar-nav mr-auto">
|
|
||||||
<li class="nav-item active">
|
|
||||||
<a class="nav-link" href="./index.html">Status</a>
|
|
||||||
</li>
|
|
||||||
<li class="nav-item">
|
|
||||||
<a class="nav-link" href="./personality.html">Personality</a>
|
|
||||||
</li>
|
|
||||||
<li class="nav-item">
|
|
||||||
<a class="nav-link" href="./logs.html">Logs</a>
|
|
||||||
</li>
|
|
||||||
<li class="nav-item snz">
|
|
||||||
<a class="nav-link" href="./sensors.html">RAINS logs</a>
|
|
||||||
</li>
|
|
||||||
<li class="nav-item">
|
|
||||||
<a class="nav-link" href="./discovery.html">Discovery</a>
|
|
||||||
</li>
|
|
||||||
<li class="nav-item">
|
|
||||||
<a class="nav-link" href="#" id="scfg">Settings</a>
|
|
||||||
</li>
|
|
||||||
<li class="nav-item">
|
|
||||||
<a class="nav-link" href="#" id="idnt">
|
|
||||||
<img class="rdmi" src="../files/identify.svg">
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</nav>
|
|
||||||
<div class="fixed-top text-center device-label" id="pth">iForte</div>
|
<div class="fixed-top text-center device-label" id="pth">iForte</div>
|
||||||
<div class="container-fluid in">
|
<div class="container-fluid in">
|
||||||
<h1>Device status</h1>
|
<h1>Device status</h1>
|
||||||
|
|||||||
@@ -11,43 +11,7 @@
|
|||||||
<title id="pt_v">iForte</title>
|
<title id="pt_v">iForte</title>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<nav class="navbar fixed-top navbar-expand-md navbar-dark bg-dark">
|
<!-- NAV WILL BE ADDED HERE BY JS gens() FUNCTION IN BASE -->
|
||||||
<div class="container">
|
|
||||||
<a class="navbar-brand" href="./index.html">
|
|
||||||
<img src="../files/robe_logo_white.svg">
|
|
||||||
</a>
|
|
||||||
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbar">
|
|
||||||
<span class="navbar-toggler-icon"></span>
|
|
||||||
</button>
|
|
||||||
<div class="collapse navbar-collapse" id="navbar">
|
|
||||||
<ul class="navbar-nav mr-auto">
|
|
||||||
<li class="nav-item">
|
|
||||||
<a class="nav-link" href="./index.html">Status</a>
|
|
||||||
</li>
|
|
||||||
<li class="nav-item">
|
|
||||||
<a class="nav-link" href="./personality.html">Personality</a>
|
|
||||||
</li>
|
|
||||||
<li class="nav-item active">
|
|
||||||
<a class="nav-link" href="./logs.html">Logs</a>
|
|
||||||
</li>
|
|
||||||
<li class="nav-item snz">
|
|
||||||
<a class="nav-link" href="./sensors.html">RAINS logs</a>
|
|
||||||
</li>
|
|
||||||
<li class="nav-item">
|
|
||||||
<a class="nav-link" href="./discovery.html">Discovery</a>
|
|
||||||
</li>
|
|
||||||
<li class="nav-item">
|
|
||||||
<a class="nav-link" href="#" id="scfg">Settings</a>
|
|
||||||
</li>
|
|
||||||
<li class="nav-item">
|
|
||||||
<a class="nav-link" href="#" id="idnt">
|
|
||||||
<img class="rdmi" src="../files/identify.svg">
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</nav>
|
|
||||||
<div class="fixed-top text-center device-label" id="pth">iForte</div>
|
<div class="fixed-top text-center device-label" id="pth">iForte</div>
|
||||||
<div class="container-fluid in">
|
<div class="container-fluid in">
|
||||||
<h1>Device logs</h1>
|
<h1>Device logs</h1>
|
||||||
|
|||||||
@@ -11,43 +11,7 @@
|
|||||||
<title id="pt_v">iForte</title>
|
<title id="pt_v">iForte</title>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<nav class="navbar fixed-top navbar-expand-md navbar-dark bg-dark">
|
<!-- NAV WILL BE ADDED HERE BY JS gens() FUNCTION IN BASE -->
|
||||||
<div class="container">
|
|
||||||
<a class="navbar-brand" href="./index.html">
|
|
||||||
<img src="../files/robe_logo_white.svg">
|
|
||||||
</a>
|
|
||||||
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbar">
|
|
||||||
<span class="navbar-toggler-icon"></span>
|
|
||||||
</button>
|
|
||||||
<div class="collapse navbar-collapse" id="navbar">
|
|
||||||
<ul class="navbar-nav mr-auto">
|
|
||||||
<li class="nav-item">
|
|
||||||
<a class="nav-link" href="./index.html">Status</a>
|
|
||||||
</li>
|
|
||||||
<li class="nav-item active">
|
|
||||||
<a class="nav-link" href="./personality.html">Personality</a>
|
|
||||||
</li>
|
|
||||||
<li class="nav-item">
|
|
||||||
<a class="nav-link" href="./logs.html">Logs</a>
|
|
||||||
</li>
|
|
||||||
<li class="nav-item snz">
|
|
||||||
<a class="nav-link" href="./sensors.html">RAINS logs</a>
|
|
||||||
</li>
|
|
||||||
<li class="nav-item">
|
|
||||||
<a class="nav-link" href="./discovery.html">Discovery</a>
|
|
||||||
</li>
|
|
||||||
<li class="nav-item">
|
|
||||||
<a class="nav-link" href="#" id="scfg">Settings</a>
|
|
||||||
</li>
|
|
||||||
<li class="nav-item">
|
|
||||||
<a class="nav-link" href="#" id="idnt">
|
|
||||||
<img class="rdmi" src="../files/identify.svg">
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</nav>
|
|
||||||
<div class="fixed-top text-center device-label" id="pth">iForte</div>
|
<div class="fixed-top text-center device-label" id="pth">iForte</div>
|
||||||
<div class="container-fluid in">
|
<div class="container-fluid in">
|
||||||
<h1>Personality</h1>
|
<h1>Personality</h1>
|
||||||
|
|||||||
@@ -11,43 +11,7 @@
|
|||||||
<title id="pt_v">iForte</title>
|
<title id="pt_v">iForte</title>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<nav class="navbar fixed-top navbar-expand-md navbar-dark bg-dark">
|
<!-- NAV WILL BE ADDED HERE BY JS gens() FUNCTION IN BASE -->
|
||||||
<div class="container">
|
|
||||||
<a class="navbar-brand" href="./index.html">
|
|
||||||
<img src="../files/robe_logo_white.svg">
|
|
||||||
</a>
|
|
||||||
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbar">
|
|
||||||
<span class="navbar-toggler-icon"></span>
|
|
||||||
</button>
|
|
||||||
<div class="collapse navbar-collapse" id="navbar">
|
|
||||||
<ul class="navbar-nav mr-auto">
|
|
||||||
<li class="nav-item">
|
|
||||||
<a class="nav-link" href="./index.html">Status</a>
|
|
||||||
</li>
|
|
||||||
<li class="nav-item">
|
|
||||||
<a class="nav-link" href="./personality.html">Personality</a>
|
|
||||||
</li>
|
|
||||||
<li class="nav-item">
|
|
||||||
<a class="nav-link" href="./logs.html">Logs</a>
|
|
||||||
</li>
|
|
||||||
<li class="nav-item snz active">
|
|
||||||
<a class="nav-link" href="./sensors.html">RAINS logs</a>
|
|
||||||
</li>
|
|
||||||
<li class="nav-item">
|
|
||||||
<a class="nav-link" href="./discovery.html">Discovery</a>
|
|
||||||
</li>
|
|
||||||
<li class="nav-item">
|
|
||||||
<a class="nav-link" href="#" id="scfg">Settings</a>
|
|
||||||
</li>
|
|
||||||
<li class="nav-item">
|
|
||||||
<a class="nav-link" href="#" id="idnt">
|
|
||||||
<img class="rdmi" src="../files/identify.svg">
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</nav>
|
|
||||||
<div class="fixed-top text-center device-label" id="pth">iForte</div>
|
<div class="fixed-top text-center device-label" id="pth">iForte</div>
|
||||||
<div class="container-fluid in">
|
<div class="container-fluid in">
|
||||||
<h1>RAINS logs</h1>
|
<h1>RAINS logs</h1>
|
||||||
|
|||||||
@@ -27,13 +27,13 @@
|
|||||||
<div class="col-md-6 col-xl-4 box-c">
|
<div class="col-md-6 col-xl-4 box-c">
|
||||||
<h2>iForte</h2>
|
<h2>iForte</h2>
|
||||||
<div class="box">
|
<div class="box">
|
||||||
<button type="button" class="btn btn-primary" style="width: 100%;" onclick="location.href='./iforte/index.html'" disabled><img src="./iforte/iforte.png" style="height: 100px;"><br>Coming soon</button>
|
<button type="button" class="btn btn-primary" style="width: 100%;" onclick="location.href='./iforte/index.html'"><img src="./iforte/iforte.png" style="height: 100px;"><br>Launch</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-6 col-xl-4 box-c">
|
<div class="col-md-6 col-xl-4 box-c">
|
||||||
<h2>ProMotion</h2>
|
<h2>ProMotion</h2>
|
||||||
<div class="box">
|
<div class="box">
|
||||||
<button type="button" class="btn btn-primary" style="width: 100%;" onclick="location.href='iforte_index.html'" disabled><img src="./promotion/promotion.png" style="height: 100px;"><br>Coming soon</button>
|
<button type="button" class="btn btn-primary" style="width: 100%;" onclick="location.href='./promotion/index.html'" disabled><img src="./promotion/promotion.png" style="height: 100px;"><br>Coming soon</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Reference in New Issue
Block a user