PageSourceSearch

https://unafiscosaude.org.br/site/wp-content/plugins/pretty-file-list-pro/js/PrettyFileList.js?ver=5.1.8

js unafiscosaude.org.br collected 2026-09-25 23:36:00 UTC 17,702 bytes, 451 lines download raw bytes

1jQuery(function($) {
2        //SETTINGS        
3        var searchBoxDefault = FileListProParams.defaultSearchMessage;//"Search...";        
4        
5        var allPFLContainers = $('.prettyFileList');                
6        
7        allPFLContainers.each(function(){
8            //DOM OBJECTS
9            
10            //File container
11            var allFilesContainer = $(this);
12            //Message box
13            var messageBox = $('.prettyMessage',allFilesContainer);
14            var messageText = $('span',messageBox);           
15            //All files
16            var filteredFiles = $('.prettylink',allFilesContainer);
17            //Working file list
18            var allFiles = filteredFiles.clone();
19            //File container
20            var fileContainer = $('.prettyListItems',allFilesContainer);
21            //Next and prev buttons
22            var nextButton = $('.pfl_next',allFilesContainer);
23            var prevButton = $('.pfl_prev',allFilesContainer);
24            //Paging info
25            var pageAt = allFilesContainer.data('filesperpage');
26            var paginationContainer = $('.prettyPagination',allFilesContainer);
27            var currentPageCounter = $('.currentPage',allFilesContainer);
28            var totalPageCounter = $('.totalPages',allFilesContainer);
29            //Top bar
30            var searchAndFilterContainer = $('.prettyFileBar',allFilesContainer);	
31            //Filters
32            var showFilterBtn = $('.showFilterBtn',allFilesContainer);
33            var filterLinksContainer = $('.prettyFileFilters',allFilesContainer);
34            var filterLinks = $('li a',filterLinksContainer);
35            //Sorting
36            var showSortingBtn = $('.showSortingBtn',allFilesContainer);
37            var sortingLinksContainer = $('.prettyFileSorting',allFilesContainer);
38            var sortingLinks = $('.prettyFileSorting li a',allFilesContainer);
39
40            //Search
41            var searchBoxContainer = $('.prettyFileListSearch',allFilesContainer);
42            var searchBox = $('.prettySearchValue',searchBoxContainer);
43            var searchButton = $('.doPrettySearch',searchBoxContainer);
44            var clearSearchButton = $('.clearSearch',searchBoxContainer);
45            var hideInitially = allFilesContainer.data('hideinitially');//Hide items until search 
46            var currentlyHidden = hideInitially;
47
48            //VARIABLES
49            var currentPage = 0;
50            //Total number of files
51            var totalFiles = filteredFiles.length;	
52            //Total pages
53            var totalPages = (Math.ceil(totalFiles / pageAt));
54            
55            //Show pages and paging
56            function showHidePages(){
57                //Hide if only showing after search
58                if(hideInitially == true && searchBox.val() === searchBoxDefault){
59                    fileContainer.hide(); 
60                    paginationContainer.hide();
61                    showFilterBtn.hide();    
62                    showSortingBtn.hide();
63                }
64                else{
65
66                    //Hide all
67                    filteredFiles.hide();                
68
69                    //Show current page
70                    filteredFiles.filter(':lt(' + ((currentPage + 1)  * pageAt) + ')').css('display', 'block');
71                    filteredFiles.filter(':lt(' + (currentPage * pageAt) + ')').hide();
72
73                    //Remove loading
74                    fileContainer.removeClass('loading');
75
76                    //Set paging
77                    if(currentPage === 0){
78                        prevButton.addClass('disabled');
79                    }
80                    else{
81                        prevButton.removeClass('disabled');
82                    }
83                    if(currentPage === (totalPages - 1)){
84                        nextButton.addClass('disabled');
85                    }
86                    else{
87                        nextButton.removeClass('disabled');
88                    }
89
90                    //Update paging text
91                    if(totalPages > 1){
92                        paginationContainer.show();
93                        currentPageCounter.text(currentPage + 1);
94                        totalPageCounter.text(totalPages);
95                        //hide pages as not needed
96                        paginationContainer.show();
97                    }
98                    else{
99                        //hide pages as not needed
100                        paginationContainer.hide();
101                    }  
102
103                    fileContainer.show();   
104                    showFilterBtn.show();    
105                    showSortingBtn.show();     
106                }
107            }
108
109            //Reset paging
110            function resetPaging(){
111                //Back to first page
112                currentPage = 0;
113                //Recalculate total pages
114                totalPages = (Math.ceil(filteredFiles.length / pageAt));
115            }
116
117            //Show and hide error message
118            function showHideMessage(message){
119                    messageText.text(message);
120
121                    if(message.length > 0){
122                        //Get the filtered files again and then Delete all files
123                        filteredFiles.remove();
124                        //Reset paging
125                        currentPage = 0;
126                        //Total pages
127                        totalPages = 1;			
128                        //Refilter
129                        showHidePages();
130                        //Show the error message
131                        messageBox.show();
132                    }
133                    else{
134                        messageBox.hide();
135                    }
136            }
137
138            //EVENTS
139            //Next and prev buttons only wired up if needed
140            if(pageAt < totalFiles){
141                    
142                    //Next click
143                    nextButton.click(function(){
144                        if($(this).hasClass('disabled')){return false;}
145                        currentPage++;                        
146                        showHidePages();
147                        return false;
148                    });
149
150                    //Prev click
151                    prevButton.click(function()
152                    {
153                        if($(this).hasClass('disabled')){return false;}
154                        currentPage--;
155                        showHidePages();
156                        return false;
157                    });
158            }
159
160            //Filtering
161            //Show filters
162            showFilterBtn.click(function(){		
163                    sortingLinksContainer.hide();		
164                    filterLinksContainer.toggle();
165                    return false;
166            });
167
168            //Hide filters
169            $('.cross',filterLinksContainer).click(function(){
170                    sortingLinksContainer.hide();
171                    filterLinksContainer.toggle();
172                    return false;
173            });
174
175            //Filter item clicked
176            filterLinks.click(function(){                    
177                //Get the type we're looking for
178                $(this).toggleClass('showing');
179                
180                //Get all types that are selected
181                var typeToShow = $('.prettyFileFilters a.showing',allFilesContainer);
182                var typesString = "";
183                var typeCount = typeToShow.length;
184
185                if(typeCount > 0){
186                    $.each(typeToShow,function(index,element){
187                        typesString += "." + $(this).data('filter-type');
188                        if (index != typeCount - 1) {
189                                typesString += ',';
190                        }
191                    });
192                        //Delete all files
193                        filteredFiles.remove();
194                        //Reclone them in
195                        filteredFiles = allFiles.filter(typesString);
196                        if(filteredFiles.length === 0){
197                                showHideMessage(FileListProParams.noSelectedTypeMessage);
198                        }
199                        else{
200                                fileContainer.append(filteredFiles);
201                                //Reset paging
202                                resetPaging();
203                                //Refilter
204                                showHidePages();
205                                //Clear any messages
206                                messageBox.hide();
207                                messageText.text("");
208                        }
209                }
210                else{
211                        showHideMessage(FileListProParams.noTypeMessage);
212                }
213                return false;
214            });	
215
216        //SEARCH
217        //Show active state
218        searchBox.focus(function(e){  
219            $(this).addClass("active"); 
220            if($(this).val() === searchBoxDefault){ 
221                    $(this).val("");
222            }
223        });  
224        //Clear active state
225        searchBox.blur(function(e){  
226            $(this).removeClass("active");  
227                if($(this).val() === "") {
228                        $(this).val(searchBoxDefault);  
229                }
230        }); 
231
232            //Fire search on enter key
233            searchBox.keydown(function (e){
234                    if(e.keyCode === 13){
235                            searchButton.click();
236                    }
237            });	
238
239            searchButton.click(function(){                
240                    //Check for a search term		
241                    if(searchBox.val() !== "" && searchBox.val() !== searchBoxDefault){	
242                            searchBox.removeClass("error");
243                            //Clear all files
244                            filteredFiles.remove();
245                            filteredFiles = allFiles.filter(':containsNC(' + searchBox.val() + ')');
246                            if(filteredFiles.length > 0){
247                                    fileContainer.append(filteredFiles);
248
249                                    resetPaging();
250                                    //Refilter
251                                    showHidePages();
252                                    //Clear any messages
253                                    showHideMessage("");
254                                    clearSearchButton.removeClass('hidden');
255                            }
256                            else{
257                               clearSearchButton.removeClass('hidden');
258                               showHideMessage(FileListProParams.noFilesFoundMessage);
259                            } 
260                    }
261                    else{
262                            searchBox.addClass("error");
263                    } 
264                    //TODO: Clear filters? Or filter results
265            });
266            
267            clearSearchButton.click(function(){                  
268                //Clear value
269                searchBox.val(searchBoxDefault);
270                //Clear all
271                resetWholeList();
272            });
273
274            //RESET ALL
275            //
276            function resetWholeList(){
277
278                //Clear all files
279                filteredFiles.remove();
280                filteredFiles = allFiles;
281                fileContainer.append(filteredFiles);
282
283                //Reset paging
284                resetPaging();
285                //Refilter
286                showHidePages();
287                //Clear any messages
288                messageBox.hide();
289                messageText.text("");  
290
291                if(hideInitially == false || searchBox.val() === searchBoxDefault){
292                    //Hide clear button
293                    clearSearchButton.addClass('hidden');                    
294                }
295            }
296
297            //SORTING
298            //Show options
299            showSortingBtn.click(function(){
300                filterLinksContainer.hide();
301                sortingLinksContainer.toggle();
302                return false;
303            });
304            //Hide option 
305            $('.cross',sortingLinksContainer).click(function(){
306                filterLinksContainer.hide();
307                sortingLinksContainer.toggle();
308                return false;
309            });
310
311            $(sortingLinks).click(function(){
312                    var clicked = $(this);
313                    //Get sort type
314                    var sortType = clicked.data("sort-type");
315                    var sortDirection = "";
316                    var sortLinks = $(sortingLinks);
317                    sortDirection = clicked.data("sort-direction");
318
319                    //Clear all direction classes
320                    sortLinks.attr('class','');
321
322                    //Get sort direction
323                    if(sortDirection === "" || sortDirection === undefined){
324                        //If no sort direction clear all
325                        sortLinks.data('sort-direction','');
326                        //Set to asc
327                        sortDirection = 'asc';
328                    }
329                    else{
330                        if(clicked.data('sort-direction') === 'asc'){
331                                sortDirection = 'dec';
332                        }
333                        else{
334                                sortDirection = 'asc';
335                        }
336                    }
337
338                    //Add the sort direction to the item
339                    clicked.data('sort-direction',sortDirection);
340                    clicked.addClass(sortDirection);
341
342                    //Clear all sort directions
343                    sortList(sortDirection,sortType);
344                    sortingLinksContainer.slideToggle();
345                    return false;
346            });
347
348            function sortList(direction,sortType){
349                filteredFiles.remove();
350
351                //pick the sort type
352                var sortAlg = direction + "_" + sortType;
353                
354                //pick the sort
355                //Do switch because eval is evil ;)
356                switch (sortAlg){
357                    case 'asc_bytype':
358                        filteredFiles = filteredFiles.sort(asc_bytype);
359                        break;
360                    case 'dec_bytype':
361                        filteredFiles = filteredFiles.sort(dec_bytype);
362                        break;
363                    case 'asc_bydate':
364                        filteredFiles = filteredFiles.sort(asc_bydate);
365                        break;
366                    case 'dec_bydate':
367                        filteredFiles = filteredFiles.sort(dec_bydate);
368                        break;      
369                    case 'asc_bytitle':
370                        filteredFiles = filteredFiles.sort(asc_bytitle);
371                        break; 
372                    case 'dec_bytitle':
373                        filteredFiles = filteredFiles.sort(dec_bytitle);
374                        break;       
375                    default:
376                        filteredFiles = filteredFiles.sort(asc_bydate);
377                        break;
378                }
379                    
380                fileContainer.append(filteredFiles);
381
382                //Reset paging
383                resetPaging();
384                //Refilter
385                showHidePages();
386                //Clear any messages
387                showHideMessage("");
388
389                //TYPE SORT
390                // accending sort
391                function asc_bytype(a, b){return (($(b).attr("class")) < ($(a).attr("class")) ? 1 : -1);}
392                // decending sort
393                function dec_bytype(a, b){return (($(b).attr("class")) > ($(a).attr("class")) ? 1 : -1);}  
394
395                //DATE SORT
396                // accending sort
397                function asc_bydate(a, b){return (($(b).data("date")) < ($(a).data("date")) ? 1 : -1);}
398                // decending sort
399                function dec_bydate(a, b){return (($(b).data("date")) > ($(a).data("date")) ? 1 : -1);}
400
401                //TITLE SORT
402                // accending sort
403                function asc_bytitle(a, b){
404                    var newA = $('.fileTitle',$(a));
405                    var newB = $('.fileTitle',$(b));
406                    return (newB.text() < newA.text() ? 1 : -1);
407                }
408                // decending sort
409                function dec_bytitle(a, b){
410                    var newA = $('.fileTitle',$(a));
411                    var newB = $('.fileTitle',$(b));
412                    return (newB.text() > newA.text() ? 1 : -1);
413                }
414            }
415
416
417            /*Show all files button*/
418            $('.btn',messageBox).click(	
419                function(){
420                   //Clear all
421                   resetWholeList();
422                   return false;
423                }		
424            );
425            
426            	
427            //MAIN
428            //Show initial page
429            showHidePages();
430            
431        });
432
433	//FUNCTIONS
434	//case-insensitive version of :contains        
435        if(jQuery.fn.jquery == '1.8.0'){
436            //jquery 1.8.0 kills the other method            
437            jQuery.expr[":"].containsNC = jQuery.expr.createPseudo(function(arg) {
438                return function( elem ) {
439                    return jQuery(elem).text().toUpperCase().indexOf(arg.toUpperCase()) >= 0;
440                };
441            });
442        }
443        else{
444            $.extend($.expr[":"], {
445                "containsNC": function(elem, i, match, array) {
446                        return (elem.textContent || elem.innerText || "").toLowerCase().indexOf((match[3] || "").toLowerCase()) >= 0;
447                }
448            });
449        }
450
451});

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.