Make site open and accessible to everyone
This commit is contained in:
parent
1fa55637f7
commit
2eccacde8b
39
index.html
39
index.html
@ -30,38 +30,6 @@ body{font:17px/1.6 -apple-system,BlinkMacSystemFont,"Segoe UI",Inter,system-ui,s
|
||||
</head>
|
||||
<body>
|
||||
<div id="app">
|
||||
<!-- LOGIN SCREEN -->
|
||||
<div id="login-screen" class="min-h-screen flex items-center justify-center p-4">
|
||||
<div class="card w-full max-w-md">
|
||||
<h1 class="text-2xl font-bold mb-2">HSE Assistant</h1>
|
||||
<p class="text-gray-500 mb-6">Войдите через корпоративные данные</p>
|
||||
<div class="mb-4">
|
||||
<label class="block text-sm font-semibold mb-2">Табельный номер или логин</label>
|
||||
<input type="text" id="login-id" class="input" placeholder="Например: admin">
|
||||
</div>
|
||||
<div class="mb-6">
|
||||
<label class="block text-sm font-semibold mb-2">Пароль (любой для админа)</label>
|
||||
<input type="password" id="login-pass" class="input" placeholder="••••••••">
|
||||
</div>
|
||||
<button onclick="doLogin()" class="btn w-full">Войти</button>
|
||||
<div class="mt-4 p-3 bg-blue-50 rounded-lg border border-blue-200">
|
||||
<p class="text-sm font-semibold text-blue-800 mb-2">🔑 Быстрый вход:</p>
|
||||
<button onclick="quickLogin('admin')" class="btn text-sm py-1 px-3 mb-2 w-full">Админ (admin)</button>
|
||||
<button onclick="quickLogin('1001')" class="btn btn-outline text-sm py-1 px-3 w-full">Сотрудник (1001)</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="mb-6">
|
||||
<label class="block text-sm font-semibold mb-2">Пароль</label>
|
||||
<input type="password" id="login-pass" class="input" placeholder="••••••••">
|
||||
</div>
|
||||
<button onclick="doLogin()" class="btn w-full">Войти</button>
|
||||
<p class="text-sm text-gray-500 mt-4">Демо: admin / 12345 (админ) или 1001 / пароль (сотрудник)</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- MAIN APP -->
|
||||
<div id="main-app" class="hidden">
|
||||
<!-- HEADER -->
|
||||
<header class="bg-[#0F1218] text-white p-4 sticky top-0 z-50">
|
||||
<div class="max-w-7xl mx-auto flex justify-between items-center">
|
||||
@ -69,8 +37,7 @@ body{font:17px/1.6 -apple-system,BlinkMacSystemFont,"Segoe UI",Inter,system-ui,s
|
||||
<span class="text-[#00E5FF] text-xl font-bold">🛡️ HSE Assistant</span>
|
||||
</div>
|
||||
<div class="flex items-center gap-4">
|
||||
<span id="user-info" class="text-sm text-gray-400"></span>
|
||||
<button onclick="doLogout()" class="btn btn-outline text-sm text-white border-gray-600 hover:bg-gray-800">Выйти</button>
|
||||
<span class="text-sm text-gray-400">Открытый доступ</span>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
@ -170,10 +137,8 @@ body{font:17px/1.6 -apple-system,BlinkMacSystemFont,"Segoe UI",Inter,system-ui,s
|
||||
<h2 class="text-xl font-bold mb-4" id="emp-title">Моё HSE обучение</h2>
|
||||
<div id="emp-courses"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/xlsx/0.18.5/xlsx.full.min.js"></script>
|
||||
<script src="script.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
52
script.js
52
script.js
@ -97,59 +97,17 @@ function generateEmployees() {
|
||||
const EMPLOYEES = generateEmployees();
|
||||
|
||||
// ========== СОСТОЯНИЕ ==========
|
||||
let currentUser = null;
|
||||
let isAdmin = false;
|
||||
let currentUser = { tab: 'admin', fullName: 'Администратор системы', role: 'admin' };
|
||||
let isAdmin = true;
|
||||
|
||||
// ========== АВТОРИЗАЦИЯ ==========
|
||||
function doLogin() {
|
||||
const login = document.getElementById('login-id').value.trim();
|
||||
const pass = document.getElementById('login-pass').value.trim();
|
||||
|
||||
if (!login) { alert('Введите табельный номер'); return; }
|
||||
|
||||
// Админ - любой пароль
|
||||
if (login === 'admin' || login === '12345' || login === 'administrator' || login === 'root') {
|
||||
isAdmin = true;
|
||||
currentUser = { tab: 'admin', fullName: 'Администратор системы', role: 'admin' };
|
||||
} else {
|
||||
// Поиск сотрудника
|
||||
const emp = EMPLOYEES.find(e => e.tab === login || e.fullName.toLowerCase().includes(login.toLowerCase()));
|
||||
if (!emp) { alert('Сотрудник не найден. Попробуйте: 1001-1050'); return; }
|
||||
isAdmin = false;
|
||||
currentUser = emp;
|
||||
}
|
||||
|
||||
document.getElementById('login-screen').classList.add('hidden');
|
||||
document.getElementById('main-app').classList.remove('hidden');
|
||||
document.getElementById('user-info').textContent = `${currentUser.fullName} (${isAdmin ? 'Администратор' : 'Сотрудник'})`;
|
||||
|
||||
if (isAdmin) {
|
||||
// ========== АВТОМАТИЧЕСКАЯ ЗАГРУЗКА ==========
|
||||
document.addEventListener('DOMContentLoaded', function() {
|
||||
document.getElementById('admin-panel').classList.remove('hidden');
|
||||
document.getElementById('employee-panel').classList.add('hidden');
|
||||
showTab('dashboard');
|
||||
renderDashboard();
|
||||
renderCityStats();
|
||||
} else {
|
||||
document.getElementById('admin-panel').classList.add('hidden');
|
||||
document.getElementById('employee-panel').classList.remove('hidden');
|
||||
renderEmployeeCourses(currentUser);
|
||||
}
|
||||
}
|
||||
|
||||
function doLogout() {
|
||||
currentUser = null;
|
||||
isAdmin = false;
|
||||
document.getElementById('login-screen').classList.remove('hidden');
|
||||
document.getElementById('main-app').classList.add('hidden');
|
||||
document.getElementById('login-id').value = '';
|
||||
document.getElementById('login-pass').value = '';
|
||||
}
|
||||
|
||||
function quickLogin(login) {
|
||||
document.getElementById('login-id').value = login;
|
||||
document.getElementById('login-pass').value = '12345';
|
||||
doLogin();
|
||||
}
|
||||
});
|
||||
|
||||
// ========== ТАБЫ ==========
|
||||
function showTab(name) {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user