Bernd Wurst commited on 2020-06-15 20:45:48
Zeige 6 geänderte Dateien mit 313 Einfügungen und 24 Löschungen.
... | ... |
@@ -0,0 +1,34 @@ |
1 |
+<?php |
|
2 |
+require_once 'lib/api.php'; |
|
3 |
+require_once 'lib/tools.php'; |
|
4 |
+// some sort of limit?! |
|
5 |
+session_start(); |
|
6 |
+ |
|
7 |
+$ret = ''; |
|
8 |
+$data = array("kunde" => array(), "uuid" => ''); |
|
9 |
+ |
|
10 |
+$fields = array("kundennr", "firma", "vorname", "nachname", "adresse", "plz", "ort"); |
|
11 |
+foreach ($fields as $key) { |
|
12 |
+ if (isset($_GET[$key])) { |
|
13 |
+ $data['kunde'][$key] = $_GET[$key]; |
|
14 |
+ } |
|
15 |
+} |
|
16 |
+if (isset($_GET['telefon'])) { |
|
17 |
+ $data['kunde']['kontakt'] = array(); |
|
18 |
+ $data['kunde']['kontakt'][] = array( |
|
19 |
+ "typ" => "telefon", |
|
20 |
+ "wert" => $_GET['telefon']); |
|
21 |
+} |
|
22 |
+ |
|
23 |
+$ret = api_call('kunde/aendern', $data); |
|
24 |
+ |
|
25 |
+if (!isset($ret['kunde'])) { |
|
26 |
+ return; |
|
27 |
+} |
|
28 |
+$ret['kunde']['html'] = adresse($ret['kunde'], 'kundendaten'); |
|
29 |
+ |
|
30 |
+header('Content-Type: application/json'); |
|
31 |
+echo json_encode($ret['kunde']); |
|
32 |
+ |
|
33 |
+ |
|
34 |
+ |
... | ... |
@@ -1,34 +1,63 @@ |
1 | 1 |
<?php |
2 | 2 |
require_once 'lib/api.php'; |
3 |
+require_once 'lib/tools.php'; |
|
3 | 4 |
// some sort of limit?! |
4 | 5 |
session_start(); |
5 | 6 |
|
6 |
-$ret = ''; |
|
7 |
-$data = array(); |
|
7 |
+$data = array("handle" => $_GET['handle']); |
|
8 | 8 |
|
9 |
-if (isset($_GET['handle'])) { |
|
10 |
- $data['handle'] = htmlspecialchars($_GET['handle']); |
|
9 |
+$ret = api_call('vorgang/lesen', $data); |
|
10 |
+ |
|
11 |
+if (!isset($ret['vorgang'])) { |
|
12 |
+ echo 'error!'; |
|
13 |
+ die(); |
|
11 | 14 |
} |
12 | 15 |
|
13 |
-if ($data) { |
|
14 |
- $ret = api_call('vorgang/lesen', $data); |
|
16 |
+$vorgang = $ret['vorgang']; |
|
17 |
+ |
|
18 |
+switch ($_GET['action']) { |
|
19 |
+ case 'delete_gitterbox': |
|
20 |
+ if (isset($_GET['id'])) { |
|
21 |
+ $id = $_GET['id']; |
|
22 |
+ foreach ($vorgang['bestellung'][0]['gitterbox'] as $key => $item) { |
|
23 |
+ if ($item['id'] == $id) { |
|
24 |
+ unset($vorgang['bestellung'][0]['gitterbox'][$key]); |
|
25 |
+ break; |
|
26 |
+ } |
|
27 |
+ } |
|
28 |
+ } else { |
|
29 |
+ array_shift($vorgang['bestellung'][0]['gitterbox']); |
|
30 |
+ } |
|
31 |
+ break; |
|
32 |
+ case 'delete_anhaenger': |
|
33 |
+ $kennz = $_GET['kennz']; |
|
34 |
+ foreach ($vorgang['bestellung'][0]['anhaenger'] as $key => $item) { |
|
35 |
+ if ($item['kennz'] == $kennz) { |
|
36 |
+ unset($vorgang['bestellung'][0]['anhaenger'][$key]); |
|
37 |
+ break; |
|
38 |
+ } |
|
39 |
+ } |
|
40 |
+ break; |
|
41 |
+ case 'add_gitterbox': |
|
42 |
+ $id = (isset($_GET['id']) ? $_GET['id'] : null); |
|
43 |
+ $vorgang['bestellung'][0]['gitterbox'][] = array("id" => $id); |
|
44 |
+ break; |
|
45 |
+ case 'add_anhaenger': |
|
46 |
+ $kennz = (isset($_GET['kennz']) ? $_GET['kennz'] : null); |
|
47 |
+ $vorgang['bestellung'][0]['anhaenger'][] = array("kennz" => $kennz); |
|
48 |
+ break; |
|
15 | 49 |
} |
16 | 50 |
|
17 |
-$auftrag = $ret['vorgang']; |
|
18 | 51 |
|
19 |
-$changes = $_GET; |
|
20 |
-unset($changes['handle']); |
|
21 | 52 |
|
22 |
-foreach ($changes as $path => $value) { |
|
23 |
- $current =& $auftrag; |
|
24 |
- // setze Referenz $current Schritt für Schritt auf $array['item_1']['item_2'][...]['item_n'] |
|
25 |
- foreach(explode('/', $path) as $key) { |
|
26 |
- $current =& $current[$key]; |
|
27 |
- } |
|
28 |
- // belege dieses Array-Element mit $value |
|
29 |
- $current = $value; |
|
53 |
+$ret = api_call('vorgang/aendern', $vorgang); |
|
54 |
+ |
|
55 |
+if (!isset($ret['vorgang'])) { |
|
56 |
+ return; |
|
30 | 57 |
} |
31 | 58 |
|
32 |
-api_call('vorgang/aendern', $auftrag); |
|
59 |
+header('Content-Type: application/json'); |
|
60 |
+echo json_encode($ret['vorgang']); |
|
61 |
+ |
|
33 | 62 |
|
34 | 63 |
|
... | ... |
@@ -83,12 +83,90 @@ function telefonnummer_fuer_auftrag() { |
83 | 83 |
auftrag_telefon_speichern() |
84 | 84 |
} |
85 | 85 |
|
86 |
+function gitterbox_loeschen_callback( gb ) { |
|
87 |
+ return function() { |
|
88 |
+ $.getJSON('ajax_vorgang_aendern.php', {"handle": $('#handle').val(), "action": "delete_gitterbox", "id": gb }, callback_obstlieferung); |
|
89 |
+ } |
|
90 |
+} |
|
91 |
+ |
|
92 |
+ |
|
93 |
+function callback_obstlieferung( vorgang ) { |
|
94 |
+ $(".lieferart .gitterbox").remove(); |
|
95 |
+ $(".lieferart .anhaenger").remove(); |
|
96 |
+ for (let idx in vorgang['bestellung'][0]['gitterbox']) { |
|
97 |
+ gb = vorgang['bestellung'][0]['gitterbox'][idx]; |
|
98 |
+ var img = '<img class="gitterbox" src="/assets/images/gitterbox.png"><br>'; |
|
99 |
+ if (gb['id']) { |
|
100 |
+ img += 'GB #'+gb['id']; |
|
101 |
+ } else { |
|
102 |
+ img += 'Gitterbox'; |
|
103 |
+ } |
|
104 |
+ $(".lieferart").prepend('<a href="#" class="gitterbox">'+img+'</a>'); |
|
105 |
+ } |
|
106 |
+ for (let idx in vorgang['bestellung'][0]['anhaenger']) { |
|
107 |
+ anh = vorgang['bestellung'][0]['anhaenger'][idx]; |
|
108 |
+ var img = '<img class="anhaenger" src="/assets/images/anhaenger.png"><br>'; |
|
109 |
+ if (anh['kennz']) { |
|
110 |
+ img += ' <strong>'+anh['kennz']+'</strong> '; |
|
111 |
+ } else { |
|
112 |
+ img += ' <em>Anhänger</em>'; |
|
113 |
+ } |
|
114 |
+ $(".lieferart").prepend('<a href="#" class="anhaenger">'+img+'</a>'); |
|
115 |
+ } |
|
116 |
+ $('a.anhaenger').off("click"); |
|
117 |
+ $('a.gitterbox').off("click"); |
|
118 |
+ $('a.anhaenger').click(anhaenger_loeschen); |
|
119 |
+ $('a.gitterbox').click(gitterbox_loeschen); |
|
120 |
+} |
|
121 |
+ |
|
122 |
+function anhaenger_loeschen_callback( kennz ) { |
|
123 |
+ return function() { |
|
124 |
+ $.getJSON('ajax_vorgang_aendern.php', {"handle": $('#handle').val(), "action": "delete_anhaenger", "kennz": kennz}, callback_obstlieferung); |
|
125 |
+ } |
|
126 |
+} |
|
127 |
+ |
|
86 | 128 |
|
87 |
-function gitterbox_loeschen() { |
|
129 |
+function gitterbox_loeschen( event ) { |
|
130 |
+ modal_confirmation("Gitterbox löschen?", "Soll eine Gitterbox gelöscht werden?", gitterbox_loeschen_callback(null)); |
|
131 |
+ event.preventDefault(); |
|
132 |
+} |
|
133 |
+ |
|
134 |
+function anhaenger_loeschen() { |
|
135 |
+ kennz = $(this).find("strong").text(); |
|
136 |
+ modal_confirmation("Anhaenger löschen?", "Soll der Anhänger <strong>"+kennz+"</strong> gelöscht werden?", anhaenger_loeschen_callback(kennz)); |
|
137 |
+ event.preventDefault(); |
|
138 |
+ |
|
139 |
+} |
|
140 |
+ |
|
141 |
+function callback_gitterbox_neu( vorgang ) |
|
142 |
+{ |
|
143 |
+ $('#gitterbox-neu-dialog').modal('hide'); |
|
144 |
+ callback_obstlieferung(vorgang); |
|
145 |
+} |
|
146 |
+ |
|
147 |
+function gitterbox_neu() { |
|
148 |
+ $('#gitterbox-neu-dialog').modal('show'); |
|
149 |
+ $('#gitterbox-neu-gb').off(); |
|
150 |
+ $('#gitterbox-neu-gb').click(function () { |
|
151 |
+ id = $('#gitterbox-neu-id').val(); |
|
152 |
+ if (id == '') { |
|
153 |
+ id = null; |
|
154 |
+ } |
|
155 |
+ $.getJSON('ajax_vorgang_aendern.php', {"handle": $('#handle').val(), "action": "add_gitterbox", "id": id }, callback_gitterbox_neu); |
|
156 |
+ }); |
|
157 |
+ $('#gitterbox-neu-anh').off(); |
|
158 |
+ $('#gitterbox-neu-anh').click(function () { |
|
159 |
+ kennz = $('#gitterbox_neu_kennz').val(); |
|
160 |
+ if (kennz == '') { |
|
161 |
+ kennz = null; |
|
162 |
+ } |
|
163 |
+ $.getJSON('ajax_vorgang_aendern.php', {"handle": $('#handle').val(), "action": "add_anhaenger", "kennz": kennz }, callback_gitterbox_neu); |
|
164 |
+ }); |
|
88 | 165 |
} |
89 | 166 |
|
90 | 167 |
|
91 | 168 |
$(document).ready(function () { |
169 |
+ // Kundendaten |
|
92 | 170 |
$('#kundendaten_kundennr').change(function () { |
93 | 171 |
if ($('#kundendaten_kundennr').val() != '') { |
94 | 172 |
$.getJSON('ajax_kundendaten.php', {"kundennr": $('#kundendaten_kundennr').val()}, lade_kundendaten_callback); |
... | ... |
@@ -100,8 +178,14 @@ $(document).ready(function () { |
100 | 178 |
$('#telefon').change(auftrag_telefon_speichern); |
101 | 179 |
$('#auftragsdaten_telefon').click(telefonnummer_fuer_auftrag); |
102 | 180 |
$('#btn_kunde_suchen').click( kunde_suchen ); |
181 |
+ $('#btn_kunde_aendern').click( modal_kunde_aendern ); |
|
103 | 182 |
if ($('#kundendaten_kundennr').val() != '') { |
104 | 183 |
$.getJSON('ajax_kundendaten.php', {"kundennr": $('#kundendaten_kundennr').val()}, lade_kundendaten_callback); |
105 | 184 |
} |
106 | 185 |
modal_kundensuche(); |
186 |
+ |
|
187 |
+ // Auftrag |
|
188 |
+ $('a.anhaenger').click(anhaenger_loeschen) |
|
189 |
+ $('a.gitterbox').click(gitterbox_loeschen); |
|
190 |
+ $('a.gitterbox_neu').click(gitterbox_neu); |
|
107 | 191 |
}); |
... | ... |
@@ -53,7 +53,7 @@ function kundensuche_callback( data ) { |
53 | 53 |
|
54 | 54 |
function kundeerstellen_callback( data ) { |
55 | 55 |
if (data['kundennr'] != '') { |
56 |
- $('#kundendaten_kundennr').val(kundennr); |
|
56 |
+ $('#kundendaten_kundennr').val(data['kundennr']); |
|
57 | 57 |
$('#kundendaten_kundennr').change(); |
58 | 58 |
$('#kundeerstellen-dialog').modal('hide'); |
59 | 59 |
} |
... | ... |
@@ -104,6 +104,68 @@ function modal_kundensuche() { |
104 | 104 |
} |
105 | 105 |
|
106 | 106 |
|
107 |
+function kunde_aendern_callback( data ) { |
|
108 |
+ if (data['kundennr'] != '') { |
|
109 |
+ $('#kundendaten_kundennr').val(data['kundennr']); |
|
110 |
+ $('#kundendaten_kundennr').change(); |
|
111 |
+ $('#kundeaendern-dialog').modal('hide'); |
|
112 |
+ } |
|
113 |
+} |
|
114 |
+ |
|
115 |
+ |
|
116 |
+function kunde_aendern_fillfields( data ) { |
|
117 |
+ $('#kundeaendern_kundennr').val(data['kundennr']); |
|
118 |
+ $('#kundeaendern_firma').val(data['firma']); |
|
119 |
+ $('#kundeaendern_vorname').val(data['vorname']); |
|
120 |
+ $('#kundeaendern_nachname').val(data['nachname']); |
|
121 |
+ $('#kundeaendern_adresse').val(data['adresse']); |
|
122 |
+ $('#kundeaendern_plz').val(data['plz']); |
|
123 |
+ $('#kundeaendern_ort').val(data['ort']); |
|
124 |
+ $('#kundeaendern_telefon').val(data['kontakt'][0]['wert']); |
|
125 |
+} |
|
126 |
+ |
|
127 |
+ |
|
128 |
+function modal_kunde_aendern() { |
|
129 |
+ // #kundendaten_kundennr ist immer ein Formularfeld |
|
130 |
+ $('#kundenaendern_kundennr').val($('#kundendaten_kundennr').val()); |
|
131 |
+ $.getJSON('ajax_kundendaten.php', {"kundennr": $('#kundendaten_kundennr').val()}, kunde_aendern_fillfields); |
|
132 |
+ $('#kundeaendern-dialog').modal('show'); |
|
133 |
+ $('#kundeaendern_submit').off("click"); |
|
134 |
+ $('#kundeaendern_submit').click(function () { |
|
135 |
+ // speichern |
|
136 |
+ $.getJSON('ajax_kunde_aendern.php', { |
|
137 |
+ "kundennr": $('#kundeaendern_kundennr').val(), |
|
138 |
+ "firma": $('#kundeaendern_firma').val(), |
|
139 |
+ "vorname": $('#kundeaendern_vorname').val(), |
|
140 |
+ "nachname": $('#kundeaendern_nachname').val(), |
|
141 |
+ "adresse": $('#kundeaendern_adresse').val(), |
|
142 |
+ "plz": $('#kundeaendern_plz').val(), |
|
143 |
+ "ort": $('#kundeaendern_ort').val(), |
|
144 |
+ "telefon": $('#kundeaendern_telefon').val() |
|
145 |
+ }, kunde_aendern_callback); |
|
146 |
+ }); |
|
147 |
+ |
|
148 |
+} |
|
149 |
+ |
|
150 |
+function modal_confirmation_okcallback( cb ) |
|
151 |
+{ |
|
152 |
+ return function () { |
|
153 |
+ $('#confirmation-dialog').modal('hide'); |
|
154 |
+ cb(); |
|
155 |
+ }; |
|
156 |
+} |
|
157 |
+ |
|
158 |
+ |
|
159 |
+function modal_confirmation( title, body, callback_ok ) |
|
160 |
+{ |
|
161 |
+ $('#confirmation-dialog .modal-title').text(title); |
|
162 |
+ $('#confirmation-dialog .modal-body').html(body); |
|
163 |
+ $('#confirmation-ok').off("click"); |
|
164 |
+ $('#confirmation-ok').on("click", modal_confirmation_okcallback(callback_ok)); |
|
165 |
+ $('#confirmation-dialog').modal('show'); |
|
166 |
+} |
|
167 |
+ |
|
168 |
+ |
|
107 | 169 |
$(document).ready( function () { |
108 | 170 |
|
109 | 171 |
}); |
... | ... |
@@ -42,9 +42,9 @@ $content .= adresse($a['kundendaten'], 'auftragsdaten'); |
42 | 42 |
$content .= '</p>'; |
43 | 43 |
$content .= '</div> |
44 | 44 |
<div class="kundendaten_kunde"> |
45 |
-<p><em>Aus der Datenbank</em></p> |
|
45 |
+<p><em>Kundendaten:</em></p> |
|
46 | 46 |
<p id="kundendaten_kundenadresse">---</p>'; |
47 |
-$content .= '</td><td><input type="hidden" name="kundendaten_kundennr" id="kundendaten_kundennr" value="'.(isset($a['kundennr']) ? $a['kundennr'] : '').'"><button class="btn btn-secondary" id="btn_kunde_suchen">Kunde suchen</button>'; |
|
47 |
+$content .= '</td><td><input type="hidden" name="kundendaten_kundennr" id="kundendaten_kundennr" value="'.(isset($a['kundennr']) ? $a['kundennr'] : '').'"><button class="btn btn-secondary" id="btn_kunde_suchen">Kunde suchen</button> <button class="btn btn-outline-secondary" id="btn_kunde_aendern">Kunde ändern</button> '; |
|
48 | 48 |
$content .= '</div>'; |
49 | 49 |
|
50 | 50 |
$content .= '</td></tr></table>'; |
... | ... |
@@ -132,8 +132,35 @@ $content .= '<div class="auftrag_bestaetigen"><button class="btn btn-primary">Au |
132 | 132 |
<button class="btn btn-secondary">Auftrag annehmen und sofort verarbeiten</button></div>'; |
133 | 133 |
$content .= '</form>'; |
134 | 134 |
|
135 |
+$content .= ' |
|
136 |
+ <div class="modal fade" id="gitterbox-neu-dialog" tabindex="-1" role="dialog" aria-labelledby="Gitterbox" aria-hidden="true"> |
|
137 |
+ <div class="modal-dialog"> |
|
138 |
+ <div class="modal-content"> |
|
139 |
+ <div class="modal-header"> |
|
140 |
+ <h4 class="modal-title">Neue Gitterbox erfassen</h4> |
|
141 |
+ </div> |
|
142 |
+ |
|
143 |
+ <div class="modal-body"> |
|
144 |
+ <p>ID-Nummer: <input type="text" name="gb" id="gitterbox-neu-id" value=""></p> |
|
145 |
+ <p><button class="btn btn-primary" id="gitterbox-neu-gb">Gitterbox hinzufügen</p> |
|
146 |
+ </div> |
|
147 |
+ |
|
148 |
+ <div class="modal-body"> |
|
149 |
+ <p>Kennzeichen: <input type="text" name="kennz" id="gitterbox-neu-kennz" value=""></p> |
|
150 |
+ <p><button class="btn btn-primary" id="gitterbox-neu-anh">Anhänger hinzufügen</p> |
|
151 |
+ </div> |
|
152 |
+ |
|
153 |
+ <div class="modal-footer"> |
|
154 |
+ <button type="button" class="btn btn-outline-secondary" data-dismiss="modal">Abbrechen</button> |
|
155 |
+ </div> |
|
156 |
+ </div> |
|
157 |
+ </div> |
|
158 |
+ </div> |
|
159 |
+'; |
|
135 | 160 |
|
136 | 161 |
$content .= modal_kundensuche($a['kundendaten']); |
162 |
+$content .= modal_kunde_aendern(); |
|
163 |
+$content .= modal_confirmation(); |
|
137 | 164 |
|
138 | 165 |
|
139 | 166 |
include "template.php"; |
... | ... |
@@ -54,11 +54,42 @@ function modal_kundensuche($k = null) { |
54 | 54 |
</table> |
55 | 55 |
</div> |
56 | 56 |
|
57 |
- <div class="modal-body" id="kundensuche_ergebnisse"> |
|
57 |
+ <div class="modal-footer"> |
|
58 |
+ <button type="button" class="btn btn-primary" id="kundeerstellen_submit">Kunde anlegen</button> |
|
59 |
+ <button type="button" class="btn btn-outline-secondary" data-dismiss="modal">Abbrechen</button> |
|
60 |
+ </div> |
|
61 |
+ </div> |
|
62 |
+ </div> |
|
63 |
+ </div> |
|
64 |
+'; |
|
65 |
+ return $ret; |
|
66 |
+} |
|
67 |
+ |
|
68 |
+ |
|
69 |
+function modal_kunde_aendern() { |
|
70 |
+ $ret = ' |
|
71 |
+ <div class="modal fade" id="kundeaendern-dialog" tabindex="-1" role="dialog" aria-labelledby="Kundendaten ändern" aria-hidden="true"> |
|
72 |
+ <div class="modal-dialog"> |
|
73 |
+ <div class="modal-content"> |
|
74 |
+ <div class="modal-header"> |
|
75 |
+ <h4 class="modal-title">Kundendaten ändern</h4> |
|
76 |
+ </div> |
|
77 |
+ |
|
78 |
+ <div class="modal-body"> |
|
79 |
+ <input type="hidden" name="kundennr" id="kundeaendern_kundennr" value=""> |
|
80 |
+ <table> |
|
81 |
+ <tr><td>Firmenname:</td><td><input type="text" name="kundeaendern_firma" id="kundeaendern_firma" value=""</td></tr> |
|
82 |
+ <tr><td>Vorname:</td><td><input type="text" name="kundeaendern_vorname" id="kundeaendern_vorname" value=""</td></tr> |
|
83 |
+ <tr><td>Nachname:</td><td><input type="text" name="kundeaendern_nachname" id="kundeaendern_nachname" value=""</td></tr> |
|
84 |
+ <tr><td>Adresse:</td><td><input type="text" name="kundeaendern_adresse" id="kundeaendern_adresse" value=""</td></tr> |
|
85 |
+ <tr><td>PLZ:</td><td><input type="text" name="kundeaendern_plz" id="kundeaendern_plz" value=""</td></tr> |
|
86 |
+ <tr><td>Ort:</td><td><input type="text" name="kundeaendern_ort" id="kundeaendern_ort" value=""</td></tr> |
|
87 |
+ <tr><td>Telefon:</td><td><input type="text" name="kundeaendern_telefon" id="kundeaendern_telefon" value=""</td></tr> |
|
88 |
+ </table> |
|
58 | 89 |
</div> |
59 | 90 |
|
60 | 91 |
<div class="modal-footer"> |
61 |
- <button type="button" class="btn btn-primary" id="kundeerstellen_submit">Kunde anlegen</button> |
|
92 |
+ <button type="button" class="btn btn-primary" id="kundeaendern_submit">Daten ändern</button> |
|
62 | 93 |
<button type="button" class="btn btn-outline-secondary" data-dismiss="modal">Abbrechen</button> |
63 | 94 |
</div> |
64 | 95 |
</div> |
... | ... |
@@ -68,5 +99,27 @@ function modal_kundensuche($k = null) { |
68 | 99 |
return $ret; |
69 | 100 |
} |
70 | 101 |
|
102 |
+function modal_confirmation() { |
|
103 |
+ $ret = ' |
|
104 |
+ <div class="modal fade" id="confirmation-dialog" tabindex="-1" role="dialog" aria-labelledby="Sicher?" aria-hidden="true"> |
|
105 |
+ <div class="modal-dialog"> |
|
106 |
+ <div class="modal-content"> |
|
107 |
+ <div class="modal-header"> |
|
108 |
+ <h4 class="modal-title">Sicher?</h4> |
|
109 |
+ </div> |
|
110 |
+ |
|
111 |
+ <div class="modal-body"> |
|
112 |
+ </div> |
|
113 |
+ |
|
114 |
+ <div class="modal-footer"> |
|
115 |
+ <button type="button" class="btn btn-danger" id="confirmation-ok">Löschen</button> |
|
116 |
+ <button type="button" class="btn btn-outline-secondary" data-dismiss="modal">Abbrechen</button> |
|
117 |
+ </div> |
|
118 |
+ </div> |
|
119 |
+ </div> |
|
120 |
+ </div> |
|
121 |
+'; |
|
122 |
+ return $ret; |
|
123 |
+} |
|
71 | 124 |
|
72 | 125 |
|
73 | 126 |