Created
September 2, 2018 12:29
-
-
Save kizernis/1e43bb7e81893fd142e702f8928aa7a6 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<html> | |
<head> | |
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> | |
<style type="text/css"> | |
body, table, tr, td, input, textarea { font-family: Verdana; font-size: 12px; } | |
fieldset { padding: 10px; } | |
a { color: blue; outline: 0; } | |
.adminlink { color: red; text-decoration: none; } | |
.adminlink:hover { text-shadow: red 0 0 5px; } | |
.thumb { position: relative; display: inline-block; } | |
.closebtn { position: absolute; left: 0px; top: 0px; } | |
.row { background-color: white; cursor: pointer; } | |
.row:hover { background-color: #eeeeee; } | |
.text_field { width: 300px; } | |
</style> | |
<script type="text/javascript" src="script.js"></script> | |
<script src="_jscal/js/jscal2.js"></script><script src="_jscal/js/lang/ru.js"></script> | |
<link rel="stylesheet" type="text/css" href="_jscal/css/jscal2.css" /> | |
<link rel="stylesheet" type="text/css" href="_jscal/css/border-radius.css" /> | |
<link rel="stylesheet" type="text/css" href="_jscal/css/steel/steel.css" /> | |
</head> | |
<body> | |
<? | |
$internal_error_message = 'Внутренняя ошибка B%03d, обратитесь к разработчику.<br /><br /><a href="/bsdb/">перейти к списку БС</a>'; | |
if ((!isset($_GET['add']) && !isset($_GET['id'])) | |
|| ((isset($_GET['save']) || isset($_GET['rm_device'])) && !isset($_GET['id']))) | |
die(sprintf($internal_error_message, 1)); | |
if (isset($_GET['save']) && !isset($_POST['id'])) | |
{ | |
?> | |
<script type="text/javascript">setTimeout(function () { history.back(); }, 1500);</script> | |
<table width="100%" height="100%" border="0"><tr><td align="center" valign="center"><table border="1" bgcolor="yellow" cellpadding="20"><tr><td><b>Выбранный файл слишком большой!</b></td></tr></td></tr></table> | |
<? | |
exit(0); | |
} | |
date_default_timezone_set('Europe/Moscow'); | |
$now = date('d.m.Y H:i'); | |
$db = new PDO('sqlite:bs.db'); | |
if (isset($_GET['save'])) | |
{ | |
$id_update_error = false; | |
if ($_POST['id'] != $_GET['id'] && ($id_update_error = (false !== $db->query('select 1 from bs where id = ' . $db->quote($_POST['id']))->fetch(PDO::FETCH_NUM)))) | |
$_POST['id'] = $_GET['id']; | |
$st = $db->prepare('update bs set id = ?, address = ?, latitude = ?, longitude = ?, mount_date = ?, last_changes_date = ?, comment = ? where id = ?'); | |
$st->execute(array($_POST['id'], $_POST['address'], $_POST['latitude'], $_POST['longitude'], $_POST['mount_date'], $now, $_POST['comment'], $_GET['id'])); $st = null; | |
if ($_GET['id'] != $_POST['id']) | |
{ | |
$db->exec('update device set bs_id = ' . $db->quote($_POST['id']) . 'where bs_id = ' . $db->quote($_GET['id'])); // TODO: on update cascade | |
$_GET['id'] = $_POST['id']; | |
} | |
} | |
elseif (isset($_GET['add'])) | |
{ | |
$r = $db->query('select max(cast(id as integer)) from bs')->fetch(PDO::FETCH_NUM); $r[0]++; | |
$st = $db->prepare('insert into bs (id, mount_date, last_changes_date, photo_cnt) values (?, ?, ?, ?)'); | |
$st->execute(array($r[0], $now, $now, 0)); $st = null; | |
$_GET['id'] = $r[0]; | |
} | |
elseif (isset($_GET['rm_device'])) | |
include('rm_device.inc'); | |
$row_bs = $db->query('select * from bs where id = ' . $db->quote($_GET['id']))->fetch(PDO::FETCH_ASSOC); | |
if (false === $row_bs) | |
die(sprintf($internal_error_message, 2)); | |
?> | |
<form action="/bsdb/bs.php?<?= http_build_query(array('id' => $_GET['id'])) ?>&save=_" method="post" enctype="multipart/form-data"> | |
<script type="text/javascript">original_bs_id = '<?= $_GET['id'] ?>'; original_action = document.forms[0].action;</script> | |
<table border="0" width="100%"> | |
<tr><td align="center"> | |
<table border="0" cellspacing="10"> | |
<tr><td bgcolor="#cccccc" height="24" colspan="2"> | |
<span style="float:left"> | |
<a href="/bsdb/">Список БС</a> / | |
<a href="/bsdb/bs.php?<?= http_build_query(array('id' => $_GET['id'])) ?>">БС <?= $_GET['id'] ?></a> / | |
<a href="/bsdb/">..</a> | |
</span> | |
<span style="float:right"> | |
<a href="/bsdb/admin.php?sqlite=&username=&db=bs.db&sql=" class="adminlink"> admin </a> | |
</span> | |
</td></tr> | |
<tr> | |
<td valign="top"> | |
<table border="0"> | |
<? if (isset($_GET['save']) && $id_update_error) { ?><tr><td></td><td><font color="red">указанное имя уже занято</font></td></tr><? } ?> | |
<tr><td align="right">Имя</td><td><input name="id" class="text_field" value="<?= $row_bs['id'] ?>" onblur="check_id('bs')" ondblclick="auto_id('bs')" /></td></tr> | |
<tr><td align="right">Адрес</td><td><input name="address" class="text_field" value="<?= $row_bs['address'] ?>" /></td></tr> | |
<tr><td align="right">Широта</td><td><input name="latitude" class="text_field" value="<?= $row_bs['latitude'] ?>" /></td></tr> | |
<tr><td align="right">Долгота</td><td><input name="longitude" class="text_field" value="<?= $row_bs['longitude'] ?>" /></td></tr> | |
<tr><td align="right">Дата установки</td><td><input id="txt_mount_date" name="mount_date" class="text_field" value="<?= $row_bs['mount_date'] ?>" /></td></tr> | |
<script>Calendar.setup({ showTime: 24, dateFormat: '%d.%m.%Y %H:%M', onSelect: function() { this.hide() }, trigger: 'txt_mount_date', inputField: 'txt_mount_date' });</script> | |
<tr><td align="right" valign="top">Комментарий</td><td><textarea name="comment" class="text_field"><?= $row_bs['comment'] ?></textarea></td></tr> | |
<tr><td colspan="2"> | |
<br /> | |
<fieldset><legend>PtP</legend> | |
<? | |
$st = $db->query('select id, mount_date, last_changes_date, photo_cnt from device where type = \'p\' and bs_id = ' . $db->quote($_GET['id'])); | |
$st->setFetchMode(PDO::FETCH_NUM); $i = 0; | |
while ($row_device = $st->fetch()) | |
{ | |
if (++$i == 1) | |
{ | |
?> | |
<table border="1" cellspacing="0" cellpadding="4" width="100%"> | |
<tr align="center" bgcolor="#cccccc"> | |
<td>Имя</td><td>Дата установки</td><td>Дата последних изменений</td><td>Фото</td> | |
</tr> | |
<? | |
} | |
?> | |
<tr id="<?= $row_device[0]?>" onclick="window.location='device.php?<?= http_build_query(array('id' => $row_device[0])) ?>'" class="row"> | |
<td><?= $row_device[0] ?></td> | |
<td><?= $row_device[1] ? $row_device[1] : ' ' ?></td> | |
<td><?= $row_device[2] ? $row_device[2] : ' ' ?></td> | |
<td><?= $row_device[3] ? $row_device[3] : '0' ?></td> | |
</tr> | |
<? | |
} | |
if ($i != 0) echo '</table>'; else { ?><br /><input type="button" style="float:right" onclick="window.location='device.php?add=_&<?= http_build_query(array('bs_id' => $_GET['id'])) ?>&type=p'" value="Добавить PtP" /><? }; | |
$st = null; | |
?> | |
</fieldset><br /> | |
<fieldset><legend>Секторы</legend> | |
<? | |
$st = $db->query('select id, mount_date, last_changes_date, photo_cnt from device where type = \'s\' and bs_id = ' . $db->quote($_GET['id'])); | |
$st->setFetchMode(PDO::FETCH_NUM); $i = 0; | |
while ($row_device = $st->fetch()) | |
{ | |
if (++$i == 1) | |
{ | |
?> | |
<table border="1" cellspacing="0" cellpadding="4" width="100%"> | |
<tr align="center" bgcolor="#cccccc"> | |
<td>Имя</td><td>Дата установки</td><td>Дата последних изменений</td><td>Фото</td> | |
</tr> | |
<? | |
} | |
?> | |
<tr id="<?= $row_device[0]?>" onclick="window.location='device.php?<?= http_build_query(array('id' => $row_device[0])) ?>'" class="row"> | |
<td><?= $row_device[0] ?></td> | |
<td><?= $row_device[1] ? $row_device[1] : ' ' ?></td> | |
<td><?= $row_device[2] ? $row_device[2] : ' ' ?></td> | |
<td><?= $row_device[3] ? $row_device[3] : '0' ?></td> | |
</tr> | |
<? | |
} | |
if ($i != 0) echo '</table>'; | |
$st = null; | |
?> | |
<br /><input type="button" style="float:right" onclick="window.location='device.php?add=_&<?= http_build_query(array('bs_id' => $_GET['id'])) ?>&type=s'" value="Добавить сектор" /> | |
</fieldset> | |
</td></tr> | |
</table> | |
</td> | |
<td valign="top"> | |
<input type="hidden" name="MAX_FILE_SIZE" value="15728640" /> | |
<? $table_name = 'bs'; include('fn_proper_file_name.inc'); ?> | |
<? | |
/* | |
echo '<pre>'; | |
echo "GET:\n"; var_dump($_GET); | |
echo "\nPOST:\n"; var_dump($_POST); | |
echo "\nFILES:\n"; var_dump($_FILES); | |
echo '</pre>'; | |
*/ | |
?> | |
<fieldset><legend>Фотографии</legend> | |
<? include('photo.inc'); ?> | |
<br /> | |
<div id="new_photo_container"><input type="file" name="new_photo" onchange="add_photo()" /></div> | |
</fieldset><br /> | |
<fieldset><legend>Другие прикреплённые файлы</legend> | |
<? include('attachments.inc'); ?> | |
<br /> | |
<div id="new_attach_container"><input type="file" name="new_attach" onchange="add_attach()" /></div> | |
</fieldset> | |
</td> | |
</tr> | |
<tr bgcolor="#cccccc" height="24"><td colspan="2"> | |
<span style="float:left"><input type="button" onclick="save_bs()" value="Сохранить" /></span> | |
<span style="float:right"><input type="button" style="color:red" onclick="rm_bs()" value="Удалить эту БС" /></span> | |
</td></tr> | |
</table> | |
</td></tr> | |
</table> | |
</form> | |
</body> | |
</html> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment