Skip to content

Instantly share code, notes, and snippets.

@kizernis
Created September 2, 2018 12:29
Show Gist options
  • Save kizernis/1e43bb7e81893fd142e702f8928aa7a6 to your computer and use it in GitHub Desktop.
Save kizernis/1e43bb7e81893fd142e702f8928aa7a6 to your computer and use it in GitHub Desktop.
<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>&nbsp;/&nbsp;
<a href="/bsdb/bs.php?<?= http_build_query(array('id' => $_GET['id'])) ?>">БС&nbsp;<?= $_GET['id'] ?></a>&nbsp;/&nbsp;
<a href="/bsdb/">..</a>
</span>
<span style="float:right">
<a href="/bsdb/admin.php?sqlite=&username=&db=bs.db&sql=" class="adminlink">&nbsp;admin&nbsp;</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] : '&nbsp;' ?></td>
<td><?= $row_device[2] ? $row_device[2] : '&nbsp;' ?></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] : '&nbsp;' ?></td>
<td><?= $row_device[2] ? $row_device[2] : '&nbsp;' ?></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