From 4670c76fe96e1ff78ff094e6fae8469d2d10d747 Mon Sep 17 00:00:00 2001
From: Jacek Kowalski <Jacek@jacekk.info>
Date: Sat, 07 Jul 2012 20:37:10 +0000
Subject: [PATCH] Poprawki i dalsza część budowy systemu inwentaryzacji: - dodanie strony zakończenia inwentaryzacji, - aktualizacja instrukcji przed rozpoczęciem procesu, - zmiany w wyświetlanych tekstach.
---
inwentaryzacja/locate.js | 84 ++++++++++++++++++++++++++++++------------
inwentaryzacja/make.php | 3 +
inwentaryzacja/end.php | 18 +++++++--
inwentaryzacja/begin.php | 8 ++-
4 files changed, 81 insertions(+), 32 deletions(-)
diff --git a/inwentaryzacja/begin.php b/inwentaryzacja/begin.php
index 7b1a73b..4895a7b 100644
--- a/inwentaryzacja/begin.php
+++ b/inwentaryzacja/begin.php
@@ -7,12 +7,14 @@
<p>Ten krok służy do przygotowania listy książek, które zostaną objęte inwentaryzacją.</p>
-<p>W trakcie inwentaryzacji zaleca się nie zmieniać położenia książek za pomocą interfejsu, gdyż dane te zostaną po zakończeniu procesu (krok 3) nadpisane.</p>
+<p>W trakcie inwentaryzacji zaleca się nie zmieniać położenia książek za pomocą interfejsu, gdyż dane te mogą zostać nadpisane po zakończeniu procesu (krok 3).</p>
+
+<p>Z interfejsu inwentaryzacji w danej chwili powinna korzystać tylko jedna osoba, w przeciwnym wypadku osoby inwentaryzujące mogą wzajemnie nadpisywać dane.</p>
<?php
-if(file_exists('list.txt')) {
+if(file_exists('list.xml')) {
?>
-<p><strong>Niezapisane dane z poprzedniej inwentaryzacji zostaną usunięte!</strong></p>
+<p><strong>Dane z poprzedniej (niedokończonej) inwentaryzacji zostaną usunięte!</strong></p>
<?php
}
diff --git a/inwentaryzacja/end.php b/inwentaryzacja/end.php
index 49c8238..21ccd63 100644
--- a/inwentaryzacja/end.php
+++ b/inwentaryzacja/end.php
@@ -14,11 +14,11 @@
}
?>
-<p>Poniżej znajduje się lista zmian do wykonania. Aby zatrzymać dane zmiany należy odznaczyć odpowiednie pole wyboru.</p>
+<p>Poniżej znajduje się lista zmian do wykonania. Aby nie dokonywać danej zmiany należy odznaczyć odpowiednie pole wyboru.</p>
<form action="finish.php">
<table class="width">
-<tr> <th>Okł.</th> <th> <b>Kod</b> <br /> Wyd. </th> <th> Autor <br /> <b>Tytuł</b> </th> <th> Miejsce, rok <br /> Wydawnictwo </th> <th> Akcje </th> </tr>
+<tr> <th> <b>Kod</b> <br /> Wyd. </th> <th> Autor <br /> <b>Tytuł</b> </th> <th> Miejsce, rok <br /> Wydawnictwo </th> <th> Akcje </th> </tr>
<?php
$doc = new DOMDocument;
if(!$doc->load('list.xml')) {
@@ -32,6 +32,8 @@
if(!($loc instanceof DOMElement) || $loc->tagName != 'lokalizacja') {
continue;
}
+
+ $location = $loc->getAttribute('regal').'/'.$loc->getAttribute('polka').'/'.$loc->getAttribute('rzad');
foreach($loc->childNodes as $node) {
if(!($node instanceof DOMElement) || $node->tagName != 'ksiazka') {
@@ -52,13 +54,21 @@
}
}
- echo '<tr> <td></td> <td> <b>'.$dane['id'].'</b> <br /> </td> <td>'.$dane['autor'].' <br /> <b>'.$dane['tytul'].'</b></td> <td>'.$dane['miejsce'].' '.$dane['rok'].' <br /> '.$dane['wydawnictwo'].'</td> <td></td> </tr>'."\n";
+ echo '<tr class="'.($dane['status'] == 'moved' ? 'poz' : 'wyc').'"> <td> <b>'.$dane['id'].'</b> <br /> </td> <td>'.$dane['autor'].' <br /> <b>'.$dane['tytul'].'</b></td> <td>'.$dane['miejsce'].' '.$dane['rok'].' <br /> '.$dane['wydawnictwo'].'</td> <td>';
+ if($dane['status'] == 'moved') {
+ echo '<label><input type="checkbox" name="move['.$dane['id'].']" value="'.htmlspecialchars($location).'" checked="checked" />Przenieś do '.htmlspecialchars($location).'</label>';
+ }
+ else
+ {
+ echo '<label><input type="checkbox" name="repulse['.$dane['id'].']" value="1" checked="checked" />Wycofaj</label>';
+ }
+ echo '</td> </tr>'."\n";
}
}
?>
</table>
-<p><input type="submit" value="Wykonaj wybrane operacje" /></p>
+<p><input type="submit" value="Wykonaj wybrane operacje" /> <a href="locate.htm">Kontynuuj inwentaryzację</a> <a href="begin.php">Zacznij inwentaryzację od nowa</a></p>
</form>
<?php
diff --git a/inwentaryzacja/locate.js b/inwentaryzacja/locate.js
index 41494b0..64a84de 100644
--- a/inwentaryzacja/locate.js
+++ b/inwentaryzacja/locate.js
@@ -140,6 +140,10 @@
}
function changeBook(book) {
+ if(document.getElementById('input').style.display != 'block') {
+ return false;
+ }
+
if(book.parentNode == loc) {
xml.getElementById(book.id).setAttribute('status', 'ok');
@@ -175,6 +179,10 @@
}
function processInput() {
+ if(document.getElementById('input').style.display != 'block') {
+ return false;
+ }
+
var reg = /^([0-9]{1,8})$/;
var i1 = document.getElementById('i1').value;
var i2 = document.getElementById('i2').value;
@@ -220,6 +228,57 @@
clearInput();
return false;
}
+}
+
+function saveWithCallback(callback) {
+ ajax.open('POST', 'save.php', true);
+ ajax.onreadystatechange = callback;
+ ajax.send(xml);
+}
+
+function save() {
+ document.getElementById('input').style.display = 'none';
+ status('Zapisywanie. Proszę czekać...');
+
+ saveWithCallback(function() {
+ if(ajax.readyState == 3) {
+ status('Wysyłanie danych...');
+ }
+ else if(ajax.readyState == 4) {
+ if(ajax.status == 200) {
+ status('Dane zostały zapisane. '+ajax.status);
+ }
+ else
+ {
+ error('Zapis nie powiódł się. Błąd HTTP '+ajax.status);
+ }
+
+ document.getElementById('input').style.display = 'block';
+ }
+ });
+}
+
+function end() {
+ document.getElementById('input').style.display = 'none';
+ status('Zapisywanie. Proszę czekać...');
+
+ saveWithCallback(function() {
+ if(ajax.readyState == 3) {
+ status('Wysyłanie danych...');
+ }
+ else if(ajax.readyState == 4) {
+ if(ajax.status == 200) {
+ status('Dane zostały zapisane. '+ajax.status);
+ status('Przekierowywanie... Proszę czekać...');
+ window.location.replace('end.php');
+ }
+ else
+ {
+ error('Zapis nie powiódł się. Błąd HTTP '+ajax.status);
+ document.getElementById('input').style.display = 'block';
+ }
+ }
+ });
}
function process() {
@@ -269,33 +328,10 @@
document.getElementById('i1').onkeydown = document.getElementById('i2').onkeydown = document.getElementById('i3').onkeydown = keyEvent;
document.getElementById('i4').onclick = processInput;
document.getElementById('i5').onclick = save;
+ document.getElementById('i6').onclick = end;
document.getElementById('i1').focus();
status('Gotowy do pracy.');
-}
-
-function save() {
- document.getElementById('input').style.display = 'none';
- status('Zapisywanie. Proszę czekać...');
-
- ajax.open('POST', 'save.php', true);
- ajax.onreadystatechange = function() {
- if(ajax.readyState == 3) {
- status('Wysyłanie danych...');
- }
- else if(ajax.readyState == 4) {
- if(ajax.status == 200) {
- status('Dane zostały zapisane. '+ajax.status);
- }
- else
- {
- error('Zapis nie powiódł się. Błąd HTTP '+ajax.status);
- }
-
- document.getElementById('input').style.display = 'block';
- }
- };
- ajax.send(xml);
}
function getData() {
diff --git a/inwentaryzacja/make.php b/inwentaryzacja/make.php
index dee8cb5..5544aab 100644
--- a/inwentaryzacja/make.php
+++ b/inwentaryzacja/make.php
@@ -1,6 +1,7 @@
<?php
$title = 'Inwentaryzacja - rozpoczęcie';
include('design/top.php');
+include('../includes/config.php');
include('../includes/db2.php');
$fields = array('tytul', 'autor', 'miejsce', 'rok', 'wydawnictwo');
@@ -64,7 +65,7 @@
<p>Jeżeli nie widzisz błędów powyżej to krok pierwszy został pomyślnie zakończony.</p>
-<form action="locate.php">
+<form action="locate.htm">
<p>Możesz: <input type="submit" value="Rozpocząć inwentaryzację" /></p>
</form>
--
Gitblit v1.9.1