onclick прямо в HTML кнопок — как в рабочей тестовой странице
This commit is contained in:
parent
603def833d
commit
1c5348083a
122
index.html
122
index.html
@ -81,11 +81,11 @@ body{font:15px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",Inter,system-ui,s
|
||||
<div id="logScreen" class="ls">
|
||||
<div class="lc">
|
||||
<div class="logo"><span class="icon">🛡️</span><h1>Поведенческий аудит безопасности</h1><p>Система учёта и аналитики ПАБ</p></div>
|
||||
<div class="ltab"><button class="lt ac" id="tL">Вход</button><button class="lt" id="tR">Регистрация</button></div>
|
||||
<div class="ltab"><button class="lt ac" id="tL" onclick="showLoginTab()">Вход</button><button class="lt" id="tR" onclick="showRegTab()">Регистрация</button></div>
|
||||
<div id="fL" class="lf ac">
|
||||
<div class="fg"><label>Логин</label><input type="text" id="lu" placeholder="Введите логин"></div>
|
||||
<div class="fg"><label>Пароль</label><input type="password" id="lp" placeholder="Введите пароль"></div>
|
||||
<button class="btn bp bw" id="lb">Войти</button>
|
||||
<button class="btn bp bw" id="lb" onclick="loginUser()">Войти</button>
|
||||
<div class="em" id="le">Неверный логин или пароль</div>
|
||||
</div>
|
||||
<div id="fR" class="lf">
|
||||
@ -95,11 +95,68 @@ body{font:15px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",Inter,system-ui,s
|
||||
<div class="fr"><div class="fg"><label>Филиал</label><input type="text" id="rb" placeholder="АО «Казахтелеком»"></div><div class="fg"><label>Подразделение</label><input type="text" id="rd" placeholder="ЦТО МС"></div></div>
|
||||
<div class="fr"><div class="fg"><label>Регион</label><input type="text" id="rg" placeholder="Алматинский"></div><div class="fg"><label>Область</label><input type="text" id="ro" placeholder="Алматинская обл."></div></div>
|
||||
<div class="fg"><label>Город / село</label><input type="text" id="rc" placeholder="г. Алматы"></div>
|
||||
<button class="btn bp bw" id="rbb">Зарегистрироваться</button>
|
||||
<button class="btn bp bw" id="rbb" onclick="regUser()">Зарегистрироваться</button>
|
||||
<div class="em" id="rerr"></div><div class="ok" id="rok">Регистрация успешна! Теперь войдите.</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
// Login function - globally accessible for onclick
|
||||
function loginUser(){
|
||||
var u = document.getElementById("lu").value.trim().toLowerCase();
|
||||
var p = document.getElementById("lp").value.trim();
|
||||
if (u === "admin" && p === "admin") {
|
||||
doAppLogin({login:"admin",name:"Администратор",role:"Руководитель",email:"admin@telecom.kz",branch:"АО «Казахтелеком»",dept:"ЦА",region:"Центральный",oblast:"—",city:"г. Астана"});
|
||||
return;
|
||||
}
|
||||
var users = {}; try{ users = JSON.parse(localStorage.getItem("pab_users")||"{}"); }catch(e){}
|
||||
if (users[u] && users[u].pass === p) {
|
||||
doAppLogin({login:u,name:users[u].name,role:users[u].role,email:users[u].email||"",branch:users[u].branch||"",dept:users[u].dept||"",region:users[u].region||"",oblast:users[u].oblast||"",city:users[u].city||""});
|
||||
return;
|
||||
}
|
||||
document.getElementById("le").style.display = "block";
|
||||
}
|
||||
function regUser(){
|
||||
var login = document.getElementById("rl").value.trim().toLowerCase();
|
||||
var pass = document.getElementById("rp").value.trim();
|
||||
var name = document.getElementById("rn").value.trim();
|
||||
var email = document.getElementById("re").value.trim();
|
||||
var role = document.getElementById("rr").value;
|
||||
var branch = document.getElementById("rb").value.trim();
|
||||
var dept = document.getElementById("rd").value.trim();
|
||||
var region = document.getElementById("rg").value.trim();
|
||||
var oblast = document.getElementById("ro").value.trim();
|
||||
var city = document.getElementById("rc").value.trim();
|
||||
var e = document.getElementById("rerr"), ok = document.getElementById("rok"); ok.style.display="none";
|
||||
if(!login||login.length<2){e.textContent="Логин минимум 2 символа";e.style.display="block";return}
|
||||
if(!pass||pass.length<3){e.textContent="Пароль минимум 3 символа";e.style.display="block";return}
|
||||
if(!name){e.textContent="Укажите ФИО";e.style.display="block";return}
|
||||
if(!role){e.textContent="Выберите должность";e.style.display="block";return}
|
||||
if(!email||email.indexOf("@")<0){e.textContent="Укажите Email";e.style.display="block";return}
|
||||
if(!branch){e.textContent="Укажите филиал";e.style.display="block";return}
|
||||
if(!region){e.textContent="Укажите регион";e.style.display="block";return}
|
||||
if(!city){e.textContent="Укажите город";e.style.display="block";return}
|
||||
if(!dept){e.textContent="Укажите подразделение";e.style.display="block";return}
|
||||
var users = {}; try{users=JSON.parse(localStorage.getItem("pab_users")||"{}")}catch(e){}
|
||||
if(users[login]){e.textContent="Логин занят";e.style.display="block";return}
|
||||
e.style.display="none";
|
||||
users[login]={pass:pass,name:name,email:email,role:role,branch:branch,dept:dept,region:region,oblast:oblast,city:city};
|
||||
localStorage.setItem("pab_users",JSON.stringify(users));
|
||||
ok.style.display="block";document.getElementById("rl").value="";document.getElementById("rp").value="";document.getElementById("rn").value="";document.getElementById("re").value="";document.getElementById("rb").value="";document.getElementById("rd").value="";document.getElementById("rg").value="";document.getElementById("ro").value="";document.getElementById("rc").value="";
|
||||
document.getElementById("lu").value=login;
|
||||
setTimeout(function(){ok.style.display="none";showLoginTab()},2000);
|
||||
}
|
||||
function showLoginTab(){
|
||||
document.getElementById("fL").classList.add("ac"); document.getElementById("fR").classList.remove("ac");
|
||||
document.getElementById("tL").classList.add("ac"); document.getElementById("tR").classList.remove("ac");
|
||||
document.getElementById("le").style.display="none"; document.getElementById("rerr").style.display="none"; document.getElementById("rok").style.display="none";
|
||||
}
|
||||
function showRegTab(){
|
||||
document.getElementById("fL").classList.remove("ac"); document.getElementById("fR").classList.add("ac");
|
||||
document.getElementById("tL").classList.remove("ac"); document.getElementById("tR").classList.add("ac");
|
||||
document.getElementById("le").style.display="none"; document.getElementById("rerr").style.display="none"; document.getElementById("rok").style.display="none";
|
||||
}
|
||||
</script>
|
||||
<!-- APP -->
|
||||
<div class="app" id="appScreen">
|
||||
<header class="ah"><div class="la"><span class="icon">🛡️</span>ПАБ Система</div><nav><a data-p="NA" class="ac">Новый аудит</a><a data-p="MS">Мой график</a><a data-p="DB">Дашборд</a><a data-p="VL">Нарушения</a><a data-p="HS">История</a></nav><div class="ua"><span class="role" id="dn"></span><button class="btn bo bs" style="color:#9aa3b2;border-color:#3a4452" id="lo">Выход</button></div></header>
|
||||
@ -134,65 +191,6 @@ body{font:15px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",Inter,system-ui,s
|
||||
<div class="tw"><table class="dt"><thead><tr><th>Бланк №</th><th>Дата</th><th>Время</th><th>Место</th><th>Наблюдатель</th><th>Статус</th><th>Нарушений</th><th></th></tr></thead><tbody id="hbdy"></tbody></table></div><div class="nd" id="hnd" style="display:none"><span class="icon">📭</span><p>Нет записей</p></div></div>
|
||||
</div></div>
|
||||
<script>
|
||||
// ===== SIMPLE LOGIN (guaranteed to work) =====
|
||||
document.getElementById("lb").onclick = function(){
|
||||
var u = document.getElementById("lu").value.trim().toLowerCase();
|
||||
var p = document.getElementById("lp").value.trim();
|
||||
if (u === "admin" && p === "admin") {
|
||||
doAppLogin({login:"admin",name:"Администратор",role:"Руководитель",email:"admin@telecom.kz",branch:"АО «Казахтелеком»",dept:"ЦА",region:"Центральный",oblast:"—",city:"г. Астана"});
|
||||
return;
|
||||
}
|
||||
var users = {}; try{ users = JSON.parse(localStorage.getItem("pab_users")||"{}"); }catch(e){}
|
||||
if (users[u] && users[u].pass === p) {
|
||||
doAppLogin({login:u,name:users[u].name,role:users[u].role,email:users[u].email||"",branch:users[u].branch||"",dept:users[u].dept||"",region:users[u].region||"",oblast:users[u].oblast||"",city:users[u].city||""});
|
||||
return;
|
||||
}
|
||||
document.getElementById("le").style.display = "block";
|
||||
};
|
||||
document.getElementById("lp").onkeydown = function(e){ if(e.key==="Enter") document.getElementById("lb").onclick(); };
|
||||
|
||||
document.getElementById("tL").onclick = function(){
|
||||
document.getElementById("fL").classList.add("ac"); document.getElementById("fR").classList.remove("ac");
|
||||
this.classList.add("ac"); document.getElementById("tR").classList.remove("ac");
|
||||
document.getElementById("le").style.display="none"; document.getElementById("rerr").style.display="none"; document.getElementById("rok").style.display="none";
|
||||
};
|
||||
document.getElementById("tR").onclick = function(){
|
||||
document.getElementById("fL").classList.remove("ac"); document.getElementById("fR").classList.add("ac");
|
||||
this.classList.add("ac"); document.getElementById("tL").classList.remove("ac");
|
||||
document.getElementById("le").style.display="none"; document.getElementById("rerr").style.display="none"; document.getElementById("rok").style.display="none";
|
||||
};
|
||||
|
||||
document.getElementById("rbb").onclick = function(){
|
||||
var login = document.getElementById("rl").value.trim().toLowerCase();
|
||||
var pass = document.getElementById("rp").value.trim();
|
||||
var name = document.getElementById("rn").value.trim();
|
||||
var email = document.getElementById("re").value.trim();
|
||||
var role = document.getElementById("rr").value;
|
||||
var branch = document.getElementById("rb").value.trim();
|
||||
var dept = document.getElementById("rd").value.trim();
|
||||
var region = document.getElementById("rg").value.trim();
|
||||
var oblast = document.getElementById("ro").value.trim();
|
||||
var city = document.getElementById("rc").value.trim();
|
||||
var e = document.getElementById("rerr"), ok = document.getElementById("rok"); ok.style.display="none";
|
||||
if(!login||login.length<2){e.textContent="Логин минимум 2 символа";e.style.display="block";return}
|
||||
if(!pass||pass.length<3){e.textContent="Пароль минимум 3 символа";e.style.display="block";return}
|
||||
if(!name){e.textContent="Укажите ФИО";e.style.display="block";return}
|
||||
if(!role){e.textContent="Выберите должность";e.style.display="block";return}
|
||||
if(!email||email.indexOf("@")<0){e.textContent="Укажите Email";e.style.display="block";return}
|
||||
if(!branch){e.textContent="Укажите филиал";e.style.display="block";return}
|
||||
if(!region){e.textContent="Укажите регион";e.style.display="block";return}
|
||||
if(!city){e.textContent="Укажите город";e.style.display="block";return}
|
||||
if(!dept){e.textContent="Укажите подразделение";e.style.display="block";return}
|
||||
var users = {}; try{users=JSON.parse(localStorage.getItem("pab_users")||"{}")}catch(e){}
|
||||
if(users[login]){e.textContent="Логин занят";e.style.display="block";return}
|
||||
e.style.display="none";
|
||||
users[login]={pass:pass,name:name,email:email,role:role,branch:branch,dept:dept,region:region,oblast:oblast,city:city};
|
||||
localStorage.setItem("pab_users",JSON.stringify(users));
|
||||
ok.style.display="block";document.getElementById("rl").value="";document.getElementById("rp").value="";document.getElementById("rn").value="";document.getElementById("re").value="";document.getElementById("rb").value="";document.getElementById("rd").value="";document.getElementById("rg").value="";document.getElementById("ro").value="";document.getElementById("rc").value="";
|
||||
document.getElementById("lu").value=login;
|
||||
setTimeout(function(){ok.style.display="none";document.getElementById("tL").onclick()},2000);
|
||||
};
|
||||
|
||||
// ===== INIT APP =====
|
||||
function doAppLogin(user){
|
||||
U = user;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user