Revize f7184136
Přidáno uživatelem Jan Šedivý před asi 6 roky(ů)
app/FrontModule/component/Transliteration/TransliterationSearchForm.latte | ||
---|---|---|
23 | 23 |
{input exact_match} |
24 | 24 |
<hr> |
25 | 25 |
|
26 |
{*<div class="search-options">*} |
|
27 |
{*<div class="form-group row">*} |
|
28 |
{*<label for="book" class="col-sm-2 col-form-label">Book</label>*} |
|
29 |
{*<div class="col-sm-3">*} |
|
30 |
{*<div class="input-group">*} |
|
31 |
|
|
32 |
{*<select name="book-op" class="form-control">*} |
|
33 |
{*<option value="equals">*} |
|
34 |
{*equals*} |
|
35 |
{*</option>*} |
|
36 |
{*<option value="not equals">*} |
|
37 |
{*not equals*} |
|
38 |
{*</option>*} |
|
39 |
{*<option value="contains" selected="selected">*} |
|
40 |
{*contains*} |
|
41 |
{*</option>*} |
|
42 |
{*<option value="begins with">*} |
|
43 |
{*begins with*} |
|
44 |
{*</option>*} |
|
45 |
{*<option value="ends with">*} |
|
46 |
{*ends with*} |
|
47 |
{*</option>*} |
|
48 |
{*</select>*} |
|
49 |
{*<input type="text" id="book" name="book" class="form-control">*} |
|
50 |
{*</div>*} |
|
51 |
{*</div>*} |
|
52 |
{*</div>*} |
|
53 |
{*<div class="form-group row">*} |
|
54 |
{*<label for="museum-no" class="col-sm-2 col-form-label">Museum number</label>*} |
|
55 |
{*<div class="col-sm-3">*} |
|
56 |
{*<div class="input-group">*} |
|
57 |
|
|
58 |
{*<select name="museum-no-op" class="form-control">*} |
|
59 |
{*<option value="equals">*} |
|
60 |
{*equals*} |
|
61 |
{*</option>*} |
|
62 |
{*<option value="not equals">*} |
|
63 |
{*not equals*} |
|
64 |
{*</option>*} |
|
65 |
{*<option value="contains" selected="selected">*} |
|
66 |
{*contains*} |
|
67 |
{*</option>*} |
|
68 |
{*<option value="begins with">*} |
|
69 |
{*begins with*} |
|
70 |
{*</option>*} |
|
71 |
{*<option value="ends with">*} |
|
72 |
{*ends with*} |
|
73 |
{*</option>*} |
|
74 |
{*</select>*} |
|
75 |
{*<input type="text" name="museum-no" id="museum-no" class="form-control">*} |
|
76 |
{*</div>*} |
|
77 |
{*</div>*} |
|
78 |
{*</div>*} |
|
79 |
{*<div class="form-group row">*} |
|
80 |
{*<label for="id_book_type" class="col-sm-2 col-form-label">Type</label>*} |
|
81 |
{*<div class="col-sm-3">*} |
|
82 |
{*<div class="input-group">*} |
|
83 |
|
|
84 |
{*<select name="book-type-op" class="form-control">*} |
|
85 |
{*<option value="is">*} |
|
86 |
{*is*} |
|
87 |
{*</option>*} |
|
88 |
{*<option value="is not">*} |
|
89 |
{*is not*} |
|
90 |
{*</option>*} |
|
91 |
{*</select>*} |
|
92 |
{*<select name="id_book_type" id="id_book_type" class="form-control">*} |
|
93 |
|
|
94 |
{*<option value="0" label="- NOT SELECTED -">*} |
|
95 |
{*- NOT SELECTED -*} |
|
96 |
{*</option>*} |
|
97 |
{*<option value="1" label="letter">*} |
|
98 |
{*letter*} |
|
99 |
{*</option>*} |
|
100 |
{*<option value="2" label="document">*} |
|
101 |
{*document*} |
|
102 |
{*</option>*} |
|
103 |
{*<option value="3" label="epic">*} |
|
104 |
{*epic*} |
|
105 |
{*</option>*} |
|
106 |
{*<option value="4" label="hymn">*} |
|
107 |
{*hymn*} |
|
108 |
{*</option>*} |
|
109 |
{*<option value="5" label="incantation">*} |
|
110 |
{*incantation*} |
|
111 |
{*</option>*} |
|
112 |
{*<option value="6" label="legal text">*} |
|
113 |
{*legal text*} |
|
114 |
{*</option>*} |
|
115 |
{*<option value="8" label="mathematics">*} |
|
116 |
{*mathematics*} |
|
117 |
{*</option>*} |
|
118 |
{*<option value="9" label="omina">*} |
|
119 |
{*omina*} |
|
120 |
{*</option>*} |
|
121 |
{*<option value="10" label="other">*} |
|
122 |
{*other*} |
|
123 |
{*</option>*} |
|
124 |
{*<option value="11" label="royal inscription">*} |
|
125 |
{*royal inscription*} |
|
126 |
{*</option>*} |
|
127 |
{*<option value="13" label="school text">*} |
|
128 |
{*school text*} |
|
129 |
{*</option>*} |
|
130 |
|
|
131 |
{*</select>*} |
|
132 |
{*</div>*} |
|
133 |
{*</div>*} |
|
134 |
{*</div>*} |
|
135 |
{*<div class="form-group row">*} |
|
136 |
{*<label for="id_origin" class="col-sm-2 col-form-label">Origin</label>*} |
|
137 |
{*<div class="col-sm-3">*} |
|
138 |
{*<div class="input-group">*} |
|
139 |
|
|
140 |
{*<select name="origin-op" class="form-control">*} |
|
141 |
{*<option value="is">*} |
|
142 |
{*is*} |
|
143 |
{*</option>*} |
|
144 |
{*<option value="is not">*} |
|
145 |
{*is not*} |
|
146 |
{*</option>*} |
|
147 |
{*</select>*} |
|
148 |
{*<select name="id_origin" id="id_origin" class="form-control">*} |
|
149 |
|
|
150 |
{*<option value="0" label="- NOT SELECTED -">*} |
|
151 |
{*/ - NOT SELECTED -*} |
|
152 |
{*</option>*} |
|
153 |
{*<option value="9" label="Tell Ḫarīrī">*} |
|
154 |
{*Mari / Tell Ḫarīrī*} |
|
155 |
{*</option>*} |
|
156 |
{*<option value="10" label="Išān Baḫriyāt">*} |
|
157 |
{*Isin / Išān Baḫriyāt*} |
|
158 |
{*</option>*} |
|
159 |
{*<option value="11" label="Nuffar">*} |
|
160 |
{*Nippur / Nuffar*} |
|
161 |
{*</option>*} |
|
162 |
{*<option value="1" label="Babylon">*} |
|
163 |
{*Bābili / Babylon*} |
|
164 |
{*</option>*} |
|
165 |
{*<option value="2" label="Tell Inġarra, Tell al-Uḫaimir">*} |
|
166 |
{*Kiš / Tell Inġarra, Tell al-Uḫaimir*} |
|
167 |
{*</option>*} |
|
168 |
{*<option value="3" label="Abū Ḫaṭab">*} |
|
169 |
{*Kisurra / Abū Ḫaṭab*} |
|
170 |
{*</option>*} |
|
171 |
{*<option value="4" label="unknown">*} |
|
172 |
{*Lagaba / unknown*} |
|
173 |
{*</option>*} |
|
174 |
{*<option value="5" label="as-Sankara">*} |
|
175 |
{*Larsa / as-Sankara*} |
|
176 |
{*</option>*} |
|
177 |
{*<option value="6" label="Tell Harmal">*} |
|
178 |
{*Šaduppûm / Tell Harmal*} |
|
179 |
{*</option>*} |
|
180 |
{*<option value="12" label="Tell Asmar">*} |
|
181 |
{*Ešnunna / Tell Asmar*} |
|
182 |
{*</option>*} |
|
183 |
{*<option value="13" label="Tell al-Muqaiyar">*} |
|
184 |
{*Ur / Tell al-Muqaiyar*} |
|
185 |
{*</option>*} |
|
186 |
{*<option value="14" label="Tulūl al-Ḫumr">*} |
|
187 |
{*- / Tulūl al-Ḫumr*} |
|
188 |
{*</option>*} |
|
189 |
{*<option value="15" label="Tell Abū Duwari">*} |
|
190 |
{*Maškan-šāpir / Tell Abū Duwari*} |
|
191 |
{*</option>*} |
|
192 |
{*<option value="16" label="Khafajah">*} |
|
193 |
{*/ Khafajah*} |
|
194 |
{*</option>*} |
|
195 |
{*<option value="17" label="Borsippa, Birs Nimrūd">*} |
|
196 |
{*Barsip / Borsippa, Birs Nimrūd*} |
|
197 |
{*</option>*} |
|
198 |
{*<option value="18" label="Tell Abū Ḫabba">*} |
|
199 |
{*Sippar / Tell Abū Ḫabba*} |
|
200 |
{*</option>*} |
|
201 |
{*<option value="19" label="Tell Muḫammad">*} |
|
202 |
{*Diniktum? / Tell Muḫammad*} |
|
203 |
{*</option>*} |
|
204 |
{*<option value="21" label="Khafajah">*} |
|
205 |
{*Dūr-Samsu-iluna / Khafajah*} |
|
206 |
{*</option>*} |
|
207 |
{*<option value="22" label="">*} |
|
208 |
{*unknown /*} |
|
209 |
{*</option>*} |
|
210 |
{*<option value="24" label="Sūsa">*} |
|
211 |
{*Šūšan / Sūsa*} |
|
212 |
{*</option>*} |
|
213 |
{*<option value="23" label="Warka">*} |
|
214 |
{*Uruk / Warka*} |
|
215 |
{*</option>*} |
|
216 |
{*<option value="25" label="Ishchali">*} |
|
217 |
{*Nērebtum? / Ishchali*} |
|
218 |
{*</option>*} |
|
219 |
{*<option value="26" label="Cytheria (island)">*} |
|
220 |
{*/ Cytheria (island)*} |
|
221 |
{*</option>*} |
|
222 |
{*<option value="27" label="Cyprus">*} |
|
223 |
{*Iadnāna / Cyprus*} |
|
224 |
{*</option>*} |
|
225 |
{*<option value="29" label="Qalʾat Šarqāṭ">*} |
|
226 |
{*Aššur / Qalʾat Šarqāṭ*} |
|
227 |
{*</option>*} |
|
228 |
{*<option value="28" label="Tell Ḫaddād">*} |
|
229 |
{*Mê-Turran / Tell Ḫaddād*} |
|
230 |
{*</option>*} |
|
231 |
{*<option value="30" label="Tell Leilān">*} |
|
232 |
{*Šubat-Enlil / Tell Leilān*} |
|
233 |
{*</option>*} |
|
234 |
{*<option value="31" label="Acem Höyük">*} |
|
235 |
{*? / Acem Höyük*} |
|
236 |
{*</option>*} |
|
237 |
{*<option value="32" label="Tell al-ʾAšāra">*} |
|
238 |
{*Terqa / Tell al-ʾAšāra*} |
|
239 |
{*</option>*} |
|
240 |
{*<option value="33" label="Išān Dhaḫāk">*} |
|
241 |
{*/ Išān Dhaḫāk*} |
|
242 |
{*</option>*} |
|
243 |
{*<option value="34" label="Tell ad-Dibāʾī">*} |
|
244 |
{*Zaralulu / Tell ad-Dibāʾī*} |
|
245 |
{*</option>*} |
|
246 |
{*<option value="35" label="Tell al-Suleimaḫ">*} |
|
247 |
{*Batir? / Tell al-Suleimaḫ*} |
|
248 |
{*</option>*} |
|
249 |
{*<option value="36" label="Bardi Sanjian in Bītwāta">*} |
|
250 |
{*/ Bardi Sanjian in Bītwāta*} |
|
251 |
{*</option>*} |
|
252 |
{*<option value="37" label="near Tūz Ḫurmati">*} |
|
253 |
{*Ḫuršītum? / near Tūz Ḫurmati*} |
|
254 |
{*</option>*} |
|
255 |
{*<option value="38" label="Tell Šamšāra">*} |
|
256 |
{*Šušarrā / Tell Šamšāra*} |
|
257 |
{*</option>*} |
|
258 |
{*<option value="39" label="Dura-Europos">*} |
|
259 |
{*Damara / Dura-Europos*} |
|
260 |
{*</option>*} |
|
261 |
{*<option value="20" label="Tell ar-Rimāḫ">*} |
|
262 |
{*Qaṭṭarā / Tell ar-Rimāḫ*} |
|
263 |
{*</option>*} |
|
264 |
{*<option value="40" label="Tell Açana">*} |
|
265 |
{*Alalaḫ / Tell Açana*} |
|
266 |
{*</option>*} |
|
267 |
{*<option value="7" label="Rās aš-Šamra">*} |
|
268 |
{*Ugarit / Rās aš-Šamra*} |
|
269 |
{*</option>*} |
|
270 |
{*<option value="41" label="Tell Mardiḫ">*} |
|
271 |
{*Ebla / Tell Mardiḫ*} |
|
272 |
{*</option>*} |
|
273 |
{*<option value="42" label="Hillah (near Babylon)">*} |
|
274 |
{*/ Hillah (near Babylon)*} |
|
275 |
{*</option>*} |
|
276 |
{*<option value="43" label="Bismāya">*} |
|
277 |
{*Adab / Bismāya*} |
|
278 |
{*</option>*} |
|
279 |
{*<option value="44" label="al-Hibā">*} |
|
280 |
{*Lagaš / al-Hibā*} |
|
281 |
{*</option>*} |
|
282 |
{*<option value="45" label="Tell ed-Dēr">*} |
|
283 |
{*Sippar-Iaḫrūrum / Tell ed-Dēr*} |
|
284 |
{*</option>*} |
|
285 |
{*<option value="46" label="Tell Dulaiḫim or Tell Muḫaṭṭaṭ">*} |
|
286 |
{*Dilbat / Tell Dulaiḫim or Tell Muḫaṭṭaṭ*} |
|
287 |
{*</option>*} |
|
288 |
|
|
289 |
{*</select>*} |
|
290 |
{*</div>*} |
|
291 |
{*</div>*} |
|
292 |
{*</div>*} |
|
293 |
{*<div class="form-group row">*} |
|
294 |
{*<label for="reg_no" class="col-sm-2 col-form-label">Registration / Ex. number</label>*} |
|
295 |
{*<div class="col-sm-3">*} |
|
296 |
{*<div class="input-group">*} |
|
297 |
|
|
298 |
{*<select name="reg_no-op" class="form-control">*} |
|
299 |
{*<option value="equals">*} |
|
300 |
{*equals*} |
|
301 |
{*</option>*} |
|
302 |
{*<option value="not equals">*} |
|
303 |
{*not equals*} |
|
304 |
{*</option>*} |
|
305 |
{*<option value="contains" selected="selected">*} |
|
306 |
{*contains*} |
|
307 |
{*</option>*} |
|
308 |
{*<option value="begins with">*} |
|
309 |
{*begins with*} |
|
310 |
{*</option>*} |
|
311 |
{*<option value="ends with">*} |
|
312 |
{*ends with*} |
|
313 |
{*</option>*} |
|
314 |
{*</select>*} |
|
315 |
{*<input type="text" id="reg_no" name="reg_no" class="form-control">*} |
|
316 |
{*</div>*} |
|
317 |
{*</div>*} |
|
318 |
{*</div>*} |
|
319 |
{*<div class="form-group row">*} |
|
320 |
{*<label for="date" class="col-sm-2 col-form-label">Date</label>*} |
|
321 |
{*<div class="col-sm-3">*} |
|
322 |
{*<div class="input-group">*} |
|
323 |
|
|
324 |
{*<select name="date-op" class="form-control">*} |
|
325 |
{*<option value="equals">*} |
|
326 |
{*equals*} |
|
327 |
{*</option>*} |
|
328 |
{*<option value="not equals">*} |
|
329 |
{*not equals*} |
|
330 |
{*</option>*} |
|
331 |
{*<option value="contains" selected="selected">*} |
|
332 |
{*contains*} |
|
333 |
{*</option>*} |
|
334 |
{*<option value="begins with">*} |
|
335 |
{*begins with*} |
|
336 |
{*</option>*} |
|
337 |
{*<option value="ends with">*} |
|
338 |
{*ends with*} |
|
339 |
{*</option>*} |
|
340 |
{*</select>*} |
|
341 |
{*<input type="text" id="date" name="date" class="form-control">*} |
|
342 |
{*</div>*} |
|
343 |
{*</div>*} |
|
344 |
{*</div>*} |
|
345 |
{*</div>*} |
|
346 |
{*<hr>*} |
|
347 |
|
|
348 |
{*<label for="line-count">Representation of search result:</label>*} |
|
349 |
{*<div class="form-inline">*} |
|
350 |
{*<div class="form-group">*} |
|
351 |
{*<small class="text-muted">*} |
|
352 |
{*Print*} |
|
353 |
{*</small>*} |
|
354 |
{*<select name="line-count" id="line-count" class="form-control form-control-sm mx-sm-3">*} |
|
355 |
{*<option value="0" selected="selected">0</option>*} |
|
356 |
{*<option value="1">1</option>*} |
|
357 |
{*<option value="2">2</option>*} |
|
358 |
{*<option value="3">3</option>*} |
|
359 |
{*<option value="5">5</option>*} |
|
360 |
{*<option value="10">10</option>*} |
|
361 |
{*<option value="15">15</option>*} |
|
362 |
{*</select>*} |
|
363 |
{*<small id="passwordHelpInline" class="text-muted">*} |
|
364 |
{*lines before and after found line.*} |
|
365 |
{*</small>*} |
|
366 |
{*</div>*} |
|
367 |
{*</div>*} |
|
368 |
{*<div class="form-inline">*} |
|
369 |
{*<div class="form-group">*} |
|
370 |
{*<small class="text-muted">*} |
|
371 |
{*Show*} |
|
372 |
{*</small>*} |
|
373 |
{*<select name="r_limit" class="form-control form-control-sm mx-sm-3">*} |
|
374 |
{*<option value="1">1</option>*} |
|
375 |
{*<option value="2">2</option>*} |
|
376 |
{*<option value="3">3</option>*} |
|
377 |
{*<option value="5" selected="selected">5</option>*} |
|
378 |
{*<option value="10">10</option>*} |
|
379 |
{*<option value="15">15</option>*} |
|
380 |
{*<option value="30">30</option>*} |
|
381 |
{*</select>*} |
|
382 |
{*<small class="text-muted">*} |
|
383 |
{*found transliteration per site.*} |
|
384 |
{*</small>*} |
|
385 |
{*</div>*} |
|
386 |
{*</div>*} |
|
26 |
<div class="search-options"> |
|
27 |
<div class="form-group row"> |
|
28 |
{label book class => 'col-sm-2 col-form-label'} |
|
29 |
<div class="col-sm-3"> |
|
30 |
<div class="input-group"> |
|
31 |
{input book_condition} |
|
32 |
{input book} |
|
33 |
</div> |
|
34 |
</div> |
|
35 |
</div> |
|
36 |
<div class="form-group row"> |
|
37 |
{label museum class => 'col-sm-2 col-form-label'} |
|
38 |
<div class="col-sm-3"> |
|
39 |
<div class="input-group"> |
|
40 |
{input museum_condition} |
|
41 |
{input museum} |
|
42 |
</div> |
|
43 |
</div> |
|
44 |
</div> |
|
45 |
<div class="form-group row"> |
|
46 |
{label type class => 'col-sm-2 col-form-label'} |
|
47 |
<div class="col-sm-3"> |
|
48 |
<div class="input-group"> |
|
49 |
{input type_condition} |
|
50 |
{input type} |
|
51 |
</div> |
|
52 |
</div> |
|
53 |
</div> |
|
54 |
<div class="form-group row"> |
|
55 |
{label origin class => 'col-sm-2 col-form-label'} |
|
56 |
<div class="col-sm-3"> |
|
57 |
<div class="input-group"> |
|
58 |
{input origin_condition} |
|
59 |
{input origin} |
|
60 |
</div> |
|
61 |
</div> |
|
62 |
</div> |
|
63 |
<div class="form-group row"> |
|
64 |
{label registration class => 'col-sm-2 col-form-label'} |
|
65 |
<div class="col-sm-3"> |
|
66 |
<div class="input-group"> |
|
67 |
{input registration_condition} |
|
68 |
{input registration} |
|
69 |
</div> |
|
70 |
</div> |
|
71 |
</div> |
|
72 |
<div class="form-group row"> |
|
73 |
{label date class => 'col-sm-2 col-form-label'} |
|
74 |
<div class="col-sm-3"> |
|
75 |
<div class="input-group"> |
|
76 |
{input date_condition} |
|
77 |
{input date} |
|
78 |
</div> |
|
79 |
</div> |
|
80 |
</div> |
|
81 |
</div> |
|
387 | 82 |
</div> |
388 | 83 |
<div class="form-group row"> |
389 | 84 |
<div class="col-sm-10"> |
app/FrontModule/component/Transliteration/TransliterationSearchForm.php | ||
---|---|---|
2 | 2 |
|
3 | 3 |
namespace App\FrontModule\Components; |
4 | 4 |
|
5 |
use App\Enum\ELogicalConditions; |
|
5 |
use App\Enum\ESearchFormOperators; |
|
6 |
use App\Model\Repository\BookTypeRepository; |
|
7 |
use App\Model\Repository\OriginRepository; |
|
6 | 8 |
use App\Model\TransliterationSearchModel; |
9 |
use App\Utils\Form; |
|
7 | 10 |
use Nette\Application\UI\Control; |
8 |
use Nette\Application\UI\Form; |
|
9 | 11 |
use Nette\Utils\ArrayHash; |
10 | 12 |
|
11 | 13 |
class TransliterationSearchForm extends Control |
... | ... | |
13 | 15 |
/** @var TransliterationSearchModel */ |
14 | 16 |
private $transliterationSearchModel; |
15 | 17 |
|
18 |
/** @var BookTypeRepository */ |
|
19 |
private $bookTypeRepository; |
|
20 |
|
|
21 |
/** @var OriginRepository */ |
|
22 |
private $originRepository; |
|
23 |
|
|
16 | 24 |
/** |
17 | 25 |
* TransliterationSearchForm constructor. |
18 | 26 |
* @param TransliterationSearchModel $transliterationSearchModel |
19 | 27 |
*/ |
20 |
public function __construct(TransliterationSearchModel $transliterationSearchModel) |
|
28 |
public function __construct( |
|
29 |
TransliterationSearchModel $transliterationSearchModel, |
|
30 |
BookTypeRepository $bookTypeRepository, |
|
31 |
OriginRepository $originRepository |
|
32 |
) |
|
21 | 33 |
{ |
22 | 34 |
parent::__construct(); |
23 | 35 |
$this->transliterationSearchModel = $transliterationSearchModel; |
36 |
$this->bookTypeRepository = $bookTypeRepository; |
|
37 |
$this->originRepository = $originRepository; |
|
24 | 38 |
} |
25 | 39 |
|
26 | 40 |
|
... | ... | |
35 | 49 |
$form = new Form(); |
36 | 50 |
|
37 | 51 |
$form->addText('word1', 'Word 1') |
38 |
->setRequired(true, 'Field Word 1 is required');
|
|
52 |
->addRule(Form::REQUIRED, 'Field %label is required.');
|
|
39 | 53 |
$form->addText('word2', 'Word 2'); |
40 |
$form->addSelect('word2_condition', '', ELogicalConditions::$selectValues);
|
|
54 |
$form->addSelect('word2_condition', '', ESearchFormOperators::$wordSelectLabels);
|
|
41 | 55 |
$form->addText('word3', 'Word 3'); |
42 |
$form->addSelect('word3_condition', '', ELogicalConditions::$selectValues);
|
|
56 |
$form->addSelect('word3_condition', '', ESearchFormOperators::$wordSelectLabels);
|
|
43 | 57 |
|
44 | 58 |
$form->addCheckbox('exact_match', ' Exact Match'); |
45 | 59 |
|
60 |
$form->addSelect('book_condition', '', ESearchFormOperators::$selectLikeOperatorLabels) |
|
61 |
->setDefaultValue(ESearchFormOperators::CONTAINS); |
|
62 |
$form->addText('book', 'Book'); |
|
63 |
$form->addSelect('museum_condition', '', ESearchFormOperators::$selectLikeOperatorLabels) |
|
64 |
->setDefaultValue(ESearchFormOperators::CONTAINS); |
|
65 |
$form->addText('museum', 'Museum number'); |
|
66 |
|
|
67 |
$form->addSelect('type_condition', '', ESearchFormOperators::$selectEqualsOperatorLabels) |
|
68 |
->setDefaultValue(ESearchFormOperators::IS); |
|
69 |
$form->addSelect('type', 'Type', $this->bookTypeRepository->getTypesForSelect()); |
|
70 |
// ->setDefaultValue(ESearchFormOperators::IS); |
|
71 |
$form->addSelect('origin_condition', '', ESearchFormOperators::$selectEqualsOperatorLabels) |
|
72 |
->setDefaultValue(ESearchFormOperators::IS); |
|
73 |
$form->addSelect('origin', 'Origin', $this->originRepository->getOriginsForSelect()); |
|
74 |
|
|
75 |
|
|
76 |
$form->addSelect('registration_condition', '', ESearchFormOperators::$selectLikeOperatorLabels) |
|
77 |
->setDefaultValue(ESearchFormOperators::CONTAINS); |
|
78 |
$form->addText('registration', 'Registration / Ex. number'); |
|
79 |
$form->addSelect('date_condition', '', ESearchFormOperators::$selectLikeOperatorLabels) |
|
80 |
->setDefaultValue(ESearchFormOperators::CONTAINS); |
|
81 |
$form->addText('date', 'Date'); |
|
82 |
|
|
46 | 83 |
$form->addSubmit('submit', 'Search'); |
47 | 84 |
$form->onSuccess[] = [$this, 'formSuccess']; |
48 | 85 |
|
app/enum/ELogicalConditions.php | ||
---|---|---|
1 |
<?php |
|
2 |
|
|
3 |
namespace App\Enum; |
|
4 |
|
|
5 |
|
|
6 |
class ELogicalConditions |
|
7 |
{ |
|
8 |
const NOT_USED = ''; |
|
9 |
const AND = 'and'; |
|
10 |
const OR = 'or'; |
|
11 |
const AND_NOT = 'and_not'; |
|
12 |
|
|
13 |
public static $selectValues = [ |
|
14 |
self::NOT_USED => '- NOT USED -', |
|
15 |
self::AND => 'AND', |
|
16 |
self::OR => 'OR', |
|
17 |
self::AND_NOT => 'AND NOT' |
|
18 |
]; |
|
19 |
|
|
20 |
public static $whereCondition = [ |
|
21 |
self::AND => 'AND', |
|
22 |
self::OR => 'OR', |
|
23 |
self::AND_NOT => 'AND NOT' |
|
24 |
]; |
|
25 |
} |
app/enum/ESearchFormOperators.php | ||
---|---|---|
1 |
<?php |
|
2 |
|
|
3 |
namespace App\Enum; |
|
4 |
|
|
5 |
|
|
6 |
class ESearchFormOperators |
|
7 |
{ |
|
8 |
const NOT_USED = ''; |
|
9 |
const AND = 'and'; |
|
10 |
const OR = 'or'; |
|
11 |
const AND_NOT = 'and_not'; |
|
12 |
|
|
13 |
const EQUALS = 'eq'; |
|
14 |
const NOT_EQUALS = 'neq'; |
|
15 |
const CONTAINS = 'con'; |
|
16 |
const BEGINS_WITH = 'bw'; |
|
17 |
const ENDS_WITH = 'ew'; |
|
18 |
|
|
19 |
const IS = 'is'; |
|
20 |
const IS_NOT = 'is_not'; |
|
21 |
|
|
22 |
|
|
23 |
public static $wordSelectLabels = [ |
|
24 |
self::NOT_USED => '- NOT USED -', |
|
25 |
self::AND => 'AND', |
|
26 |
self::OR => 'OR', |
|
27 |
self::AND_NOT => 'AND NOT' |
|
28 |
]; |
|
29 |
|
|
30 |
public static $wordWhereCondition = [ |
|
31 |
self::AND => 'AND', |
|
32 |
self::OR => 'OR', |
|
33 |
self::AND_NOT => 'AND NOT' |
|
34 |
]; |
|
35 |
|
|
36 |
|
|
37 |
public static $selectLikeOperatorLabels = [ |
|
38 |
self::EQUALS => 'Equals', |
|
39 |
self::NOT_EQUALS => 'Not equals', |
|
40 |
self::CONTAINS => 'Contains', |
|
41 |
self::BEGINS_WITH => 'Begins with', |
|
42 |
self::ENDS_WITH => 'Ends with' |
|
43 |
]; |
|
44 |
|
|
45 |
public static $selectLikeOperatorQueryCondition = [ |
|
46 |
self::EQUALS => ' = ? ', |
|
47 |
self::NOT_EQUALS => ' <> ? ', |
|
48 |
self::CONTAINS => ' LIKE ? ', |
|
49 |
self::BEGINS_WITH => ' LIKE ? ', |
|
50 |
self::ENDS_WITH => ' LIKE ? ' |
|
51 |
]; |
|
52 |
|
|
53 |
|
|
54 |
public static $selectEqualsOperatorLabels = [ |
|
55 |
self::IS => 'Is', |
|
56 |
self::IS_NOT => 'Is not' |
|
57 |
]; |
|
58 |
|
|
59 |
public static $selectEqualsOperatorQueryCondition = [ |
|
60 |
self::IS => ' = ? ', |
|
61 |
self::IS_NOT => ' <> ? ' |
|
62 |
]; |
|
63 |
} |
app/model/repository/BookTypeRepository.php | ||
---|---|---|
16 | 16 |
/** Sloupečky tabulky */ |
17 | 17 |
const COLUMN_ID = 'id_book_type'; |
18 | 18 |
const COLUMN_BOOK_TYPE = 'book_type'; |
19 |
|
|
20 |
/** |
|
21 |
* Return all book types for select values |
|
22 |
* @return array |
|
23 |
*/ |
|
24 |
public function getTypesForSelect() |
|
25 |
{ |
|
26 |
$types = $this->findAll()->fetchPairs(self::COLUMN_ID, self::COLUMN_BOOK_TYPE); |
|
27 |
$types[0] = '- NOT SELECTED -'; |
|
28 |
return $types; |
|
29 |
} |
|
19 | 30 |
} |
app/model/repository/OriginRepository.php | ||
---|---|---|
17 | 17 |
const COLUMN_ID = 'id_origin'; |
18 | 18 |
const COLUMN_ORIGIN = 'origin'; |
19 | 19 |
const COLUMN_OLD_NAME = 'old_name'; |
20 |
|
|
21 |
/** |
|
22 |
* Return all origins for select values |
|
23 |
* @return array |
|
24 |
*/ |
|
25 |
public function getOriginsForSelect() |
|
26 |
{ |
|
27 |
$origins = $this->findAll()->fetchPairs(self::COLUMN_ID, self::COLUMN_ORIGIN); |
|
28 |
$origins[0] = '- NOT SELECTED -'; |
|
29 |
return $origins; |
|
30 |
} |
|
20 | 31 |
} |
app/model/repository/TransliterationRepository.php | ||
---|---|---|
2 | 2 |
|
3 | 3 |
namespace App\Model\Repository; |
4 | 4 |
|
5 |
use App\Enum\ELogicalConditions;
|
|
5 |
use App\Enum\ESearchFormOperators;
|
|
6 | 6 |
use Nette\Utils\ArrayHash; |
7 | 7 |
|
8 | 8 |
/** |
... | ... | |
54 | 54 |
{ |
55 | 55 |
if($queryParams['exact_match']) |
56 | 56 |
{ |
57 |
$where .= ELogicalConditions::$whereCondition[$queryParams['word2_condition']] . " l.transliteration LIKE ? ";
|
|
57 |
$where .= ESearchFormOperators::$wordWhereCondition[$queryParams['word2_condition']] . " l.transliteration LIKE ? ";
|
|
58 | 58 |
$whereArgs[] = "%" . $queryParams['word2'] . "%"; |
59 | 59 |
} |
60 | 60 |
else |
61 | 61 |
{ |
62 |
$where .= ELogicalConditions::$whereCondition[$queryParams['word2_condition']] . " l.transliteration REGEXP ? ";
|
|
62 |
$where .= ESearchFormOperators::$wordWhereCondition[$queryParams['word2_condition']] . " l.transliteration REGEXP ? ";
|
|
63 | 63 |
$whereArgs[] = $this->prepareSearchRegExp($queryParams['word2']); |
64 | 64 |
} |
65 | 65 |
} |
... | ... | |
68 | 68 |
{ |
69 | 69 |
if($queryParams['exact_match']) |
70 | 70 |
{ |
71 |
$where .= ELogicalConditions::$whereCondition[$queryParams['word3_condition']] . " l.transliteration LIKE ? ";
|
|
71 |
$where .= ESearchFormOperators::$wordWhereCondition[$queryParams['word3_condition']] . " l.transliteration LIKE ? ";
|
|
72 | 72 |
$whereArgs[] = "%" . $queryParams['word3'] . "%"; |
73 | 73 |
} |
74 | 74 |
else |
75 | 75 |
{ |
76 |
$where .= ELogicalConditions::$whereCondition[$queryParams['word3_condition']] . " l.transliteration REGEXP ? ";
|
|
76 |
$where .= ESearchFormOperators::$wordWhereCondition[$queryParams['word3_condition']] . " l.transliteration REGEXP ? ";
|
|
77 | 77 |
$whereArgs[] = $this->prepareSearchRegExp($queryParams['word3']); |
78 | 78 |
} |
79 | 79 |
} |
Také k dispozici: Unified diff
Re #7328 inputy formuláře pro pokročilé filtry