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