Rev 1310 | Rev 1379 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 1310 | Rev 1312 | ||
---|---|---|---|
Line 1... | Line 1... | ||
1 | <%@ page import="pt.estgp.estgweb.web.filters.TopImageFilter" %> |
1 | <%@ page import="pt.estgp.estgweb.web.filters.TopImageFilter" %> |
2 | <%@ page contentType="text/html;charset=UTF-8" language="java" %> |
2 | <%@ page contentType="text/html;charset=UTF-8" language="java" %> |
3 | - | ||
4 | <meta name="viewport" content="width=device-width, initial-scale=1"> |
- | |
5 | - | ||
6 | <link rel="stylesheet" type="text/css" href="<%=request.getContextPath()%>/yui/build/menu/assets/skins/sam/menu.css" /> |
- | |
7 | <link rel="stylesheet" type="text/css" href="<%=request.getContextPath()%>/yui/build/button/assets/skins/sam/button.css" /> |
- | |
8 | <link rel="stylesheet" type="text/css" href="<%=request.getContextPath()%>/yui/build/fonts/fonts-min.css" /> |
- | |
9 | <link rel="stylesheet" type="text/css" href="<%=request.getContextPath()%>/yui/build/container/assets/skins/sam/container.css" /> |
- | |
10 | <link rel="stylesheet" type="text/css" href="<%=request.getContextPath()%>/yui/build/editor/assets/skins/sam/editor.css" /> |
- | |
11 | - | ||
12 | <!--OFF CANVAS É PARA METER O BODY ABAIXO DO MENU DESLIZANTE DE TOPO--> |
- | |
13 | <!--<link type="text/css" rel="stylesheet" href="<%=request.getContextPath()%>/css/offcanvas.css"/>--> |
- | |
14 | <link type="text/css" rel="stylesheet" href="<%=request.getContextPath()%>/css/style.css"/> |
- | |
15 | <script type="text/javascript" src="<%=request.getContextPath()%>/js/functions.js"></script> |
- | |
16 | <script type="text/javascript" src="<%=request.getContextPath()%>/js/ajax.js"></script> |
- | |
17 | <script type="text/javascript" src="<%=request.getContextPath()%>/js/compactedPopup.js"></script> |
- | |
18 | <!-- |
- | |
19 | <style> |
- | |
20 | body |
- | |
21 | { |
- | |
22 | background: url('http://www.ist.utl.pt/img/page/cubes.png') |
- | |
23 | } |
- | |
24 | </style>--> |
- | |
25 | <!-- |
- | |
26 | <link type="text/css" rel="stylesheet" href="<%=request.getContextPath()%>/js/jquery/style.css"/> |
- | |
27 | <script type="text/javascript" src="<%=request.getContextPath()%>/js/jquery-latest.js"></script> |
- | |
28 | <script type="text/javascript" src="<%=request.getContextPath()%>/js/jquery.tablesorter.js"></script> |
- | |
29 | --> |
- | |
30 | - | ||
31 | <% |
- | |
32 | String link = (String) request.getAttribute(TopImageFilter.TOP_CSS); |
- | |
33 | if (link != null) |
- | |
34 | { |
- | |
35 | %> |
- | |
36 | <link type="text/css" rel="stylesheet" href="<%=link%>"/> |
- | |
37 | <% |
- | |
38 | } |
- | |
39 | %> |
- | |
40 | - | ||
41 | <script type="text/javascript" language="JavaScript"> |
- | |
42 | var cal = new CalendarPopup(); |
- | |
43 | - | ||
44 | /* //TABLE SORTER |
- | |
45 | $(document).ready(function() |
- | |
46 | { |
- | |
47 | $("#myTable").tablesorter(); |
- | |
48 | - | ||
49 | } |
- | |
50 | );*/ |
- | |
51 | - | ||
52 | </script> |
- | |
53 | - | ||
54 | - | ||
55 | - | ||
56 | <script type="text/javascript" src="<%=request.getContextPath()%>/js/jquerytables/jquery-2.1.4.min.js"></script> |
- | |
57 | <script type="text/javascript" src="<%=request.getContextPath()%>/js/jquerytables/jquery.tablesorter.min.js"></script> |
- | |
58 | <script type="text/javascript" src="<%=request.getContextPath()%>/js/jquerytables/jquery.tablesorter.widgets.js"></script> |
- | |
59 | <script type="text/javascript" src="<%=request.getContextPath()%>/js/jquerytables/bootstrap/js/bootstrap.js"></script> |
- | |
60 | <link rel="stylesheet" href="<%=request.getContextPath()%>/js/jquerytables/bootstrap/css/bootstrap.css" type="text/css"/> |
- | |
61 | <!--<link rel="stylesheet" href="<%=request.getContextPath()%>/js/jquerytables/bootstrap/css/bootstrap-theme.css" type="text/css"/>--> |
- | |
62 | <link rel="stylesheet" href="<%=request.getContextPath()%>/js/jquerytables/jquerytable/theme.estg.css" type="text/css"/> |
- | |
63 | <link rel="stylesheet" href="<%=request.getContextPath()%>/js/jquerytables/jquerytable/filter.formatter.css" type="text/css"/> |
- | |
64 | <link type="text/css" rel="stylesheet" href="<%=request.getContextPath()%>/css/variables.less"/> |
- | |
65 | <link type="text/css" rel="stylesheet" href="<%=request.getContextPath()%>/css/lavish-bootstrap.css"/> |
- | |
66 | - | ||
67 | - | ||
68 | <script type="text/javascript" language="JavaScript"> |
- | |
69 | var cal = new CalendarPopup(); |
- | |
70 | - | ||
71 | /* |
- | |
72 | //TABLE SORTER |
- | |
73 | $(document).ready(function() |
- | |
74 | { |
- | |
75 | $("#myTable").tablesorter(); |
- | |
76 | - | ||
77 | } |
- | |
78 | ); |
- | |
79 | */ |
- | |
80 | - | ||
81 | function isBreakpoint( alias ) { |
- | |
82 | return $('.device-' + alias).is(':visible'); |
- | |
83 | } |
- | |
84 | - | ||
85 | - | ||
86 | - | ||
87 | - | ||
88 | - | ||
89 | $(document).ready( |
- | |
90 | function(){ |
- | |
91 | $("#network").hide(); |
- | |
92 | $("#network2").hide(); |
- | |
93 | $("#network").mouseleave( |
- | |
94 | function(){ |
- | |
95 | $("#network").animate({ |
- | |
96 | height: 'hide' |
- | |
97 | }); |
- | |
98 | } |
- | |
99 | - | ||
100 | ); |
- | |
101 | $("#network2").mouseleave( |
- | |
102 | function(){ |
- | |
103 | $("#network2").animate({ |
- | |
104 | height: 'hide' |
- | |
105 | }); |
- | |
106 | } |
- | |
107 | - | ||
108 | ); |
- | |
109 | } |
- | |
110 | ); |
- | |
111 | - | ||
112 | function openNetwork(){ |
- | |
113 | $("#network2").animate({ |
- | |
114 | height: 'hide' |
- | |
115 | }); |
- | |
116 | $("#network").animate({ |
- | |
117 | height: 'toggle' |
- | |
118 | }); |
- | |
119 | } |
- | |
120 | - | ||
121 | function openNetwork2(){ |
- | |
122 | $("#network").animate({ |
- | |
123 | height: 'hide' |
- | |
124 | }); |
- | |
125 | $("#network2").animate({ |
- | |
126 | height: 'toggle' |
- | |
127 | }); |
- | |
128 | } |
- | |
129 | - | ||
130 | </script> |
- | |
131 | <script language="javascript"> |
- | |
132 | - | ||
133 | function ping() |
- | |
134 | { |
- | |
135 | $.ajax({ |
- | |
136 | url: "<%=request.getContextPath()%>/ping.jsp", |
- | |
137 | type: "POST", |
- | |
138 | dataType: "json", |
- | |
139 | success: function(resposta) { |
- | |
140 | setTimeout("ping()",10000); |
- | |
141 | }, |
- | |
142 | error: function() { |
- | |
143 | setTimeout("ping()",10000); |
- | |
144 | } |
- | |
145 | }); |
- | |
146 | - | ||
147 | } |
- | |
148 | $(document).ready(function() |
- | |
149 | { |
- | |
150 | if($("#myTable")) |
- | |
151 | { |
- | |
152 | $("#myTable").tablesorter({ |
- | |
153 | theme: 'blue', |
- | |
154 | - | ||
155 | - | ||
156 | sortMultiSortKey: 'altKey', |
- | |
157 | //sortList: [[0,0]], |
- | |
158 | widgets: ["zebra","filter"], |
- | |
159 | - | ||
160 | ignoreCase: false, |
- | |
161 | widthFixed : true, |
- | |
162 | widgetOptions : {filter_reset : 'button.reset',filter_columnFilters : true}, |
- | |
163 | textExtraction: function(node) { |
- | |
164 | // extract data from markup and return it |
- | |
165 | if($(node).find(':input').size()>0) |
- | |
166 | { |
- | |
167 | var values = $(node).find(":input").map(function() { |
- | |
168 | return $(this).val() |
- | |
169 | }).get().join(","); |
- | |
170 | - | ||
171 | - | ||
172 | return values; |
- | |
173 | } |
- | |
174 | return $(node).text(); |
- | |
175 | }, |
- | |
176 | widgetOptions : { |
- | |
177 | - | ||
178 | filter_excludeFilter : { |
- | |
179 | // target a column by class name or column index (zero-based) |
- | |
180 | '.filter-false' : 'range' |
- | |
181 | } |
- | |
182 | - | ||
183 | } |
- | |
184 | - | ||
185 | /* , |
- | |
186 | - | ||
187 | widgetOptions : { |
- | |
188 | - | ||
189 | // filter_anyMatch options was removed in v2.15; it has been replaced by the filter_external option |
- | |
190 | - | ||
191 | // If there are child rows in the table (rows with class name from "cssChildRow" option) |
- | |
192 | // and this option is true and a match is found anywhere in the child row, then it will make that row |
- | |
193 | // visible; default is false |
- | |
194 | filter_childRows : false, |
- | |
195 | - | ||
196 | // if true, filter child row content by column; filter_childRows must also be true |
- | |
197 | filter_childByColumn : false, |
- | |
198 | - | ||
199 | // if true, a filter will be added to the top of each table column; |
- | |
200 | // disabled by using -> headers: { 1: { filter: false } } OR add class="filter-false" |
- | |
201 | // if you set this to false, make sure you perform a search using the second method below |
- | |
202 | filter_columnFilters : true, |
- | |
203 | - | ||
204 | // if true, allows using "#:{query}" in AnyMatch searches (column:query; added v2.20.0) |
- | |
205 | filter_columnAnyMatch: true, |
- | |
206 | - | ||
207 | // extra css class name (string or array) added to the filter element (input or select) |
- | |
208 | filter_cellFilter : '', |
- | |
209 | - | ||
210 | // extra css class name(s) applied to the table row containing the filters & the inputs within that row |
- | |
211 | // this option can either be a string (class applied to all filters) or an array (class applied to indexed filter) |
- | |
212 | filter_cssFilter : '', // or [] |
- | |
213 | - | ||
214 | // add a default column filter type "~{query}" to make fuzzy searches default; |
- | |
215 | // "{q1} AND {q2}" to make all searches use a logical AND. |
- | |
216 | filter_defaultFilter : {}, |
- | |
217 | - | ||
218 | // filters to exclude, per column |
- | |
219 | filter_excludeFilter : {}, |
- | |
220 | - | ||
221 | // jQuery selector (or object) pointing to an input to be used to match the contents of any column |
- | |
222 | // please refer to the filter-any-match demo for limitations - new in v2.15 |
- | |
223 | filter_external : '', |
- | |
224 | - | ||
225 | // class added to filtered rows (rows that are not showing); needed by pager plugin |
- | |
226 | filter_filteredRow : 'filtered', |
- | |
227 | - | ||
228 | // add custom filter elements to the filter row |
- | |
229 | // see the filter formatter demos for more specifics |
- | |
230 | filter_formatter : null, |
- | |
231 | - | ||
232 | // add custom filter functions using this option |
- | |
233 | // see the filter widget custom demo for more specifics on how to use this option |
- | |
234 | filter_functions : null, |
- | |
235 | - | ||
236 | // hide filter row when table is empty |
- | |
237 | filter_hideEmpty : true, |
- | |
238 | - | ||
239 | // if true, filters are collapsed initially, but can be revealed by hovering over the grey bar immediately |
- | |
240 | // below the header row. Additionally, tabbing through the document will open the filter row when an input gets focus |
- | |
241 | filter_hideFilters : true, |
- | |
242 | - | ||
243 | // Set this option to false to make the searches case sensitive |
- | |
244 | filter_ignoreCase : true, |
- | |
245 | - | ||
246 | // if true, search column content while the user types (with a delay) |
- | |
247 | filter_liveSearch : true, |
- | |
248 | - | ||
249 | // a header with a select dropdown & this class name will only show available (visible) options within that drop down. |
- | |
250 | - | ||
251 | - | ||
252 | // default placeholder text (overridden by any header "data-placeholder" setting) |
- | |
253 | filter_placeholder : { search : '', select : '' }, |
- | |
254 | - | ||
255 | // jQuery selector string of an element used to reset the filters |
- | |
256 | filter_reset : 'button.reset', |
- | |
257 | - | ||
258 | // Use the $.tablesorter.storage utility to save the most recent filters (default setting is false) |
- | |
259 | filter_saveFilters : true, |
- | |
260 | - | ||
261 | // Delay in milliseconds before the filter widget starts searching; This option prevents searching for |
- | |
262 | // every character while typing and should make searching large tables faster. |
- | |
263 | filter_searchDelay : 300, |
- | |
264 | - | ||
265 | // allow searching through already filtered rows in special circumstances; will speed up searching in large tables if true |
- | |
266 | filter_searchFiltered: true, |
- | |
267 | - | ||
268 | // include a function to return an array of values to be added to the column filter select |
- | |
269 | filter_selectSource : null, |
- | |
270 | - | ||
271 | // if true, server-side filtering should be performed because client-side filtering will be disabled, but |
- | |
272 | // the ui and events will still be used. |
- | |
273 | filter_serversideFiltering : false, |
- | |
274 | - | ||
275 | // Set this option to true to use the filter to find text from the start of the column |
- | |
276 | // So typing in "a" will find "albert" but not "frank", both have a's; default is false |
- | |
277 | filter_startsWith : false, |
- | |
278 | - | ||
279 | // Filter using parsed content for ALL columns |
- | |
280 | // be careful on using this on date columns as the date is parsed and stored as time in seconds |
- | |
281 | filter_useParsedData : false, |
- | |
282 | - | ||
283 | // data attribute in the header cell that contains the default filter value |
- | |
284 | filter_defaultAttrib : 'data-value', |
- | |
285 | - | ||
286 | // filter_selectSource array text left of the separator is added to the option value, right into the option text |
- | |
287 | filter_selectSourceSeparator : '|' |
- | |
288 | - | ||
289 | }*/ |
- | |
290 | } |
- | |
291 | ); |
- | |
292 | } |
- | |
293 | - | ||
294 | if($("#myTable2")) |
- | |
295 | { |
- | |
296 | $("#myTable2").tablesorter({ |
- | |
297 | theme: 'blue', |
- | |
298 | sortMultiSortKey: 'altKey', |
- | |
299 | //sortList: [[0,0]], |
- | |
300 | widgets: ["zebra","filter"], |
- | |
301 | ignoreCase: false, |
- | |
302 | widthFixed : true, |
- | |
303 | widgetOptions : {filter_reset : 'button.reset',filter_columnFilters : true, |
- | |
304 | filter_excludeFilter : { |
- | |
305 | // target a column by class name or column index (zero-based) |
- | |
306 | '.filter-false' : 'range' |
- | |
307 | }}, |
- | |
308 | textExtraction: function(node) { |
- | |
309 | // extract data from markup and return it |
- | |
310 | if($(node).find(':input').size()>0) |
- | |
311 | { |
- | |
312 | var values = $(node).find(":input").map(function() { |
- | |
313 | return $(this).val() |
- | |
314 | }).get().join(","); |
- | |
315 | - | ||
316 | - | ||
317 | return values; |
- | |
318 | } |
- | |
319 | return $(node).text(); |
- | |
320 | } |
- | |
321 | } |
- | |
322 | ); |
- | |
323 | } |
- | |
324 | - | ||
325 | if($(".tablesortersimple")) |
- | |
326 | { |
- | |
327 | $(".tablesortersimple").tablesorter({ |
- | |
328 | theme: 'blue', |
- | |
329 | sortMultiSortKey: 'altKey', |
- | |
330 | //sortList: [[0,0]], |
- | |
331 | widgets: ["zebra","filter"], |
- | |
332 | ignoreCase: false, |
- | |
333 | widthFixed : true, |
- | |
334 | widgetOptions : {filter_reset : 'button.reset',filter_columnFilters : true, |
- | |
335 | - | ||
336 | filter_excludeFilter : { |
- | |
337 | // target a column by class name or column index (zero-based) |
- | |
338 | '.filter-false' : 'range' |
- | |
339 | } |
- | |
340 | }, |
- | |
341 | textExtraction: function(node) { |
- | |
342 | // extract data from markup and return it |
- | |
343 | if($(node).find(':input').size()>0) |
- | |
344 | { |
- | |
345 | var values = $(node).find(":input").map(function() { |
- | |
346 | return $(this).val() |
- | |
347 | }).get().join(","); |
- | |
348 | - | ||
349 | - | ||
350 | return values; |
- | |
351 | } |
- | |
352 | return $(node).text(); |
- | |
353 | } |
- | |
354 | } |
- | |
355 | ); |
- | |
356 | } |
- | |
357 | /* |
- | |
358 | if($(".tablesorterfiltered")) |
- | |
359 | { |
- | |
360 | $(".tablesorterfiltered").tablesorter({ |
- | |
361 | theme: 'blue', |
- | |
362 | - | ||
363 | - | ||
364 | sortMultiSortKey: 'altKey', |
- | |
365 | //sortList: [[0,0]], |
- | |
366 | widgets: ["zebra","filter"], |
- | |
367 | - | ||
368 | ignoreCase: false, |
- | |
369 | widthFixed : true, |
- | |
370 | widgetOptions : {filter_reset : 'button.reset',filter_columnFilters : true}, |
- | |
371 | textExtraction: function(node) { |
- | |
372 | // extract data from markup and return it |
- | |
373 | if($(node).find(':input').size()>0) |
- | |
374 | { |
- | |
375 | var values = $(node).find(":input").map(function() { |
- | |
376 | return $(this).val() |
- | |
377 | }).get().join(","); |
- | |
378 | - | ||
379 | - | ||
380 | return values; |
- | |
381 | } |
- | |
382 | return $(node).text(); |
- | |
383 | } |
- | |
384 | } |
- | |
385 | ); |
- | |
386 | }*/ |
- | |
387 | if($(".tablesorterfiltered")) |
- | |
388 | { |
- | |
389 | $(".tablesorterfiltered").tablesorter({ |
- | |
390 | theme: 'blue', |
- | |
391 | - | ||
392 | - | ||
393 | sortMultiSortKey: 'altKey', |
- | |
394 | //sortList: [[0,0]], |
- | |
395 | widgets: ["zebra","filter"], |
- | |
396 | - | ||
397 | ignoreCase: false, |
- | |
398 | widthFixed : true, |
- | |
399 | widgetOptions : {filter_reset : 'button.reset',filter_columnFilters : true, |
- | |
400 | - | ||
401 | filter_excludeFilter : { |
- | |
402 | // target a column by class name or column index (zero-based) |
- | |
403 | '.filter-false' : 'range' |
- | |
404 | - | ||
405 | - | ||
406 | } |
- | |
407 | }, |
- | |
408 | textExtraction: function(node) { |
- | |
409 | // extract data from markup and return it |
- | |
410 | if($(node).find(':input').size()>0) |
- | |
411 | { |
- | |
412 | var values = $(node).find(":input").map(function() { |
- | |
413 | return $(this).val() |
- | |
414 | }).get().join(","); |
- | |
415 | - | ||
416 | - | ||
417 | return values; |
- | |
418 | } |
- | |
419 | return $(node).text(); |
- | |
420 | } |
- | |
421 | } |
- | |
422 | ); |
- | |
423 | } |
- | |
424 | - | ||
425 | - | ||
426 | - | ||
427 | // External search |
- | |
428 | // buttons set up like this: |
- | |
429 | // <button type="button" data-filter-column="4" data-filter-text="2?%">Saved Search</button> |
- | |
430 | $('button[data-filter-column]').click(function(){ |
- | |
431 | /*** first method *** data-filter-column="1" data-filter-text="!son" |
- | |
432 | add search value to Discount column (zero based index) input */ |
- | |
433 | var filters = [], |
- | |
434 | $t = $(this), |
- | |
435 | col = $t.data('filter-column'), // zero-based index |
- | |
436 | txt = $t.data('filter-text') || $t.text(); // text to add to filter |
- | |
437 | - | ||
438 | filters[col] = txt; |
- | |
439 | // using "table.hasFilters" here to make sure we aren't targeting a sticky header |
- | |
440 | if($('#myTable')) |
- | |
441 | $.tablesorter.setFilters( $('#myTable'), filters, true ); // new v2.9 |
- | |
442 | if($('#myTable2')) |
- | |
443 | $.tablesorter.setFilters( $('#myTable2'), filters, true ); // new v2.9 |
- | |
444 | if($('.tablesorterfiltered')) |
- | |
445 | $.tablesorter.setFilters( $('.tablesorterfiltered'), filters, true ); // new v2.9 |
- | |
446 | - | ||
447 | /* |
- | |
448 | if($('.tablesorterfiltered')) |
- | |
449 | $.tablesorter.setFilters( $('.tablesorterfiltered'), filters, true ); // new v2.9 |
- | |
450 | */ |
- | |
451 | /** old method (prior to tablsorter v2.9 *** |
- | |
452 | var filters = $('table.tablesorter').find('input.tablesorter-filter'); |
- | |
453 | filters.val(''); // clear all filters |
- | |
454 | filters.eq(col).val(txt).trigger('search', false); |
- | |
455 | ******/ |
- | |
456 | - | ||
457 | /*** second method *** |
- | |
458 | this method bypasses the filter inputs, so the "filter_columnFilters" |
- | |
459 | option can be set to false (no column filters showing) |
- | |
460 | ******/ |
- | |
461 | /* |
- | |
462 | var columns = []; |
- | |
463 | columns[5] = '2?%'; // or define the array this way [ '', '', '', '', '', '2?%' ] |
- | |
464 | $('table').trigger('search', [ columns ]); |
- | |
465 | */ |
- | |
466 | - | ||
467 | return false; |
- | |
468 | }); |
- | |
469 | - | ||
470 | } |
- | |
471 | - | ||
472 | - | ||
473 | ); |
- | |
474 | </script> |
- | |
475 | <style> |
- | |
476 | th.headerSortUp { |
- | |
477 | background-image: url(<%=request.getContextPath()%>/js/jquerytables/jquerytable/asc.gif); |
- | |
478 | background-color: #3399FF; |
- | |
479 | } |
- | |
480 | th.headerSortDown { |
- | |
481 | background-image: url(<%=request.getContextPath()%>/js/jquerytables/jquerytable/desc.gif); |
- | |
482 | background-color: #3399FF; |
- | |
483 | } |
- | |
484 | .dorsalActivado span, .dorsal span |
- | |
485 | { |
- | |
486 | text-align: center; |
- | |
487 | background-color: white; |
- | |
488 | padding: 3px; |
- | |
489 | border: 1px solid black; |
- | |
490 | font-weight: bold; |
- | |
491 | white-space: nowrap; |
- | |
492 | } |
- | |
493 | - | ||
494 | .tablesorterfiltered thead .disabled {display: none} |
- | |
495 | - | ||
496 | </style> |
- | |
497 | 3 | <jsp:include page="setTheme.jsp"/> |
|
- | 4 | <jsp:include page="/layout/themes/${pt_estgp_estgweb_theme}/scripts.jsp"/> |
|
- | 5 |