-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.html
191 lines (191 loc) · 10.1 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
<!DOCTYPE html>
<html lang="ru">
<head>
<link rel="icon" type="image/png" href="data/images/icon.png" />
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1" />
<meta name="analytics" content="UA-77400806-1" />
<meta name="home" content="/page/index/index.html" />
<meta name="description" content="" />
<meta name="url" content="" />
<meta name="dev" content="" />
<title>QAD CMF</title>
</head>
<body>
<noscript>
<div class="card" style="background:#F44336">
<h2>Ошибка</h2>
<p><b>Вы используете устаревший браузер</b><br />Для работы с сайтом необходима поддержка Javascript и Cookies</p>
<a href="https://chrome.com/" target="_blank"><button>Установить Google Chrome</button></a>
</div>
</noscript>
<div class="template">
<div class="card" style="display:none;background:{color}">
<h2>{title}</h2>
<p>{msg}</p>
<button onclick="window.history.back()">Назад</button>
<a href="{url}"><button style="float:right">{button}</button></a>
</div>
</div>
<script>
if (location.hostname.indexOf('dev') == -1 && location.hostname != 'localhost' && !location.pathname.split('/')[location.pathname.split('/').length-1])
if (document.querySelector('meta[name="analytics"]')) {
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
ga('create', document.querySelector('meta[name="analytics"]').content, 'auto');
ga('send', 'pageview');
if (location.search.indexOf('?code') == 0)
ga('send','event','Error Page',location.search.replace('?code=',''),document.referrer);
else if (location.search.indexOf('?url') == 0)
ga('send','event','Redirect Page',location.search.replace('?url=',''),document.referrer);
}
if (location.search.indexOf('?code') == 0) {
code = {
400: Array('Неверный запрос', 'Серверу не удалось разобрать синтаксис запроса.'),
401: Array('Неавторизован', 'Запрос требует проверки подлинности.'),
403: Array('Доступ запрещен', 'Сервер отказывает запросу.'),
404: Array('Страница не найдена', 'Сервер не может найти запрашиваемую страницу.'),
405: Array('Недопустимый метод', 'Метод, указанный в запросе, не разрешен.'),
406: Array('Неприемлемый запрос', 'Запрашиваемая страница не может быть возвращена с указанными в запросе характеристиками содержания.'),
408: Array('Тайм-аут запроса', 'На сервере истекло время ожидания запроса.'),
412: Array('Hе выполнено предварительное условие', 'Сервер не соответствует одному из предварительных условий, указанных отправителем в запросе.'),
413: Array('Слишком большой размер запроса', 'Сервер не может обработать запрос, потому что его размер превышает максимально допустимый.'),
414: Array('Слишком большой размер запрашиваемого URI', 'Запрашиваемый URI (обычно URL-адрес) имеет слишком большой размер для обработки сервером.'),
415: Array('Неподдерживаемый тип содержания', 'Формат запроса не поддерживается запрашиваемой страницей.'),
500: Array('Внутренняя ошибка сервера', 'На сервере возникла ошибка, и он не может выполнить запрос.'),
501: Array('Метод не поддерживается', 'Сервер не располагает функциональностью для выполнения запроса.'),
502: Array('Неверный шлюз', 'Сервер получил неправильный ответ.'),
503: Array('Служба недоступна', 'Сервер временно недоступен (так как он перегружен или отключен для обслуживания).'),
504: Array('Истекло время ожидания шлюза', 'Вышестоящий сервер не ответил за установленное время.'),
505: Array('Версия HTTP не поддерживается', 'Сервер не поддерживает версию протокола НТТР, используемую при запросе.'),
}
t = {
color:'#F44336',
title:'Ошибка',
msg:(code[location.search.replace('?code=','')]?'<b>'+code[location.search.replace('?code=','')][0]+'</b><br />'+code[location.search.replace('?code=','')][1]:'<b>Код ошибки не правильный.</b>'),
url:'',
button:''
}
}else if (location.search.indexOf('?url') == 0) {
t = {
color:'#4285F4',
title:'Переход по внешней ссылке',
msg:'Вы покидаете сайт <b><a href="'+location.origin+'">'+location.origin+'</a></b> по внешней ссылке <b>'+location.search.replace('?url=','')+'</b>.<br/ >Мы не несем ответственности за содержимое сайта <b>'+location.search.replace('?url=','')+'</b> и настоятельно рекомендует <b>не указывать</b> никаких своих личных данных на сторонних сайтах.<br />Кроме того, сайт <b>'+location.search.replace('?url=','')+'</b> может содержать вирусы, трояны и другие вредоносные программы, опасные для Вашего компьютера.',
url: location.search.replace('?url=',''),
button: 'Перейти'
}
}else if (location.search.indexOf('?browser') == 0)
document.querySelector('.template').innerHTML = document.querySelector('noscript').innerHTML.replace(/</g,'<').replace(/>/g,'>');
else if (location.pathname.split('/')[location.pathname.split('/').length-1]) {
a = JSON.parse('['+document.querySelector('meta[name=url]').content.replace(/ /g,'').replace(/'/g,'"').slice(1,-1)+']');
o = location.pathname.split('/')[location.pathname.split('/').length-1];
for (var i in a)
if (o.indexOf(a[i][0]) != -1) {
var f = document.createElement('iframe');
f.src = a[i][1].replace('@',o.replace('@',''));
f.onload = function() {
[].forEach.call(f.contentDocument.querySelectorAll('a'), function(e1) {
e1.target = '_top';
});
}
document.querySelector('body').appendChild(f);
}
}else if (location.hostname.indexOf('dev') != -1 || location.hostname == 'localhost') {
a = JSON.parse('['+document.querySelector('meta[name=dev]').content.replace(/ /g,'').replace(/'/g,'"').slice(1,-1)+']');
var b = '';
for (var i in a)
b += '<a href="'+a[i][1]+'"><button>'+a[i][0]+'</button></a>';
s = [ 'Пре-альфа', 'Альфа', 'Бета' ];
t = {
color:'#607D8B',
title: s[0],
msg: b+'<br /><pre id="todo" style="padding:0 20px;white-space:pre-wrap;color:darkred;"></pre>',
url: '',
button: ''
}
document.querySelector('button').remove();
var xhr = new XMLHttpRequest();
xhr.open('GET', 'TODO');
xhr.onload = function () {
res = xhr.responseText;
res = res.slice(res.indexOf('#QWEDL')+7);
res = res.slice(0,res.indexOf('#QWEDL'));
document.querySelector('#todo').innerHTML = res;
}
xhr.send();
}else if (document.querySelector('meta[name="home"]'))
location.href = document.querySelector('meta[name="home"]').content;
if (typeof(t) == 'object') {
document.querySelector('.template').innerHTML = document.querySelector('.template').innerHTML.replace('none','block').replace('{color}',t.color).replace('{title}',t.title).replace('{msg}',t.msg).replace('{url}',t.url).replace('{button}',t.button);
if (document.querySelector('html').lang != navigator.language) {
document.cookie = 'googtrans=/'+document.querySelector('html').lang+'/'+navigator.language+';domain=;path=/';
function googleTranslateElementInit() {
new google.translate.TranslateElement({pageLanguage: document.querySelector('html').lang}, 'google_translate_element');
}
(function(s,o,g,a,m){
a=s.createElement(o),m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(document,'script','https://translate.google.com/translate_a/element.js?cb=googleTranslateElementInit');
}
}
</script>
<style>
html {
height: inherit !important;
}
body {
font-family: sans-serif;
background: #f1f1f1;
top: 0 !important;
}
.template, noscript {
display: table-cell;
vertical-align: middle;
height: 95vh;
width: 100vw;
}
.card {
border-radius: 0.125rem;
box-shadow: 0 2px 2px 0 rgba(0,0,0,.14),0 3px 1px -2px rgba(0,0,0,.2),0 1px 5px 0 rgba(0,0,0,.12);
}
.card h2 {
color: white;
font-weight: 300;
text-align: center;
font-size: 18px;
margin: 0;
padding: 8px 0;
line-height: 28px;
}
.card > p {
margin: 8px 0 0 0;
padding: 16px;
border-bottom: 1px solid rgba(0,0,0,.1);
color: rgba(0,0,0,.54);
font-size: 13px;
line-height: 24px;
}
.card button {
background: 0;
box-shadow: none;
margin: 8px 16px;
color: #fff;
border: none;
height: 36px;
padding: 0 16px;
text-transform: uppercase;
cursor: pointer;
outline: none;
}
iframe {
position: fixed;
top: 0;
left: 0;
width: 100vw;
height: 100vh;
border: none;
}
</style>
</body>
</html>