1function initDatepicker() { 2 initDateRange('cfrom', 'cto'); 3 initDateRange('ufrom', 'uto'); 4 5 initDateRange('mod_cfrom', 'mod_cto'); 6 initDateRange('mod_ufrom', 'mod_uto'); 7 8} 9 10function initDateRange(fromId, toId) { 11 jQuery("#" + fromId).datetimepicker({ 12 format: search_date_format, 13 onShow: function (ct) { 14 this.setOptions({ 15 maxDate: jQuery("#" + toId).val() ? jQuery("#" + toId).val() : false 16 }) 17 }, 18 timepicker: false 19 }); 20 21 jQuery("#" + toId).datetimepicker({ 22 format: search_date_format, 23 onShow: function (ct) { 24 this.setOptions({ 25 minDate: jQuery("#" + fromId).val() ? jQuery("#" + fromId).val() : false 26 }) 27 }, 28 timepicker: false 29 }); 30} 31 32function initSorting() { 33 jQuery('.orderingCol').click(function (e) { 34 e.preventDefault(); 35 var ordering = jQuery(this).data('ordering'); 36 var direction = jQuery(this).data('direction'); 37 ajaxSearch(ordering, direction); 38 }); 39 40 jQuery(".list-results #limit").removeAttr("onchange"); 41 jQuery(".list-results #limit").change(function (e) { 42 e.preventDefault(); 43 ajaxSearch(); 44 return false; 45 }); 46} 47 48function initTags() { 49 var $ = jQuery; 50 if ($(".input_tags").length > 0) { 51 var taglist = $(".input_tags").val(); 52 var tagArr = taglist.split(","); 53 $('.chk_ftags').each(function () { 54 var temp = $(this).val(); 55 if (tagArr.indexOf(temp) > -1) { 56 $(this).prop('checked', true); 57 $(this).parent(".tags-item").addClass('active'); 58 } 59 }); 60 } 61 if ($("#filter_catid").length > 0) { 62 catChange("filter_catid"); 63 } 64} 65 66function catChange(filterCat) { 67 var $ = jQuery; 68 var catId = $("#" + filterCat).val(); 69 if (catId == "") { 70 $('.chk_ftags').parent().show(); 71 return; 72 } 73 if ($('.chk_ftags').length == 0) { 74 return; 75 } 76 var catChilds = getChilds(catId, window.catDatas); 77 var childTags = getChildTags(catChilds); 78 if (childTags.length > 0) { 79 80 $('.chk_ftags').each(function () { 81 var chkVal = $(this).val(); 82 if (childTags.indexOf(chkVal) == -1) { 83 $(this).prop('checked', false); 84 $(this).parent().hide(); 85 } else { 86 $(this).parent().show(); 87 } 88 }); 89 fillInputTags(); 90 } else { 91 $('.chk_ftags').prop('checked', false); 92 $(".input_tags").val(""); 93 } 94 addtoSearchbuttonbelow(); 95} 96 97function fillInputTags() { 98 var tagVal = []; 99 jQuery('.chk_ftags').each(function () { 100 if (this.checked && jQuery(this).is(":visible")) { 101 tagVal.push(jQuery(this).val()); 102 } 103 }); 104 if (tagVal.length > 0) { 105 jQuery(".input_tags").val(tagVal.join(",")); 106 } else { 107 jQuery(".input_tags").val(""); 108 } 109} 110 111function getChilds(catId, catDatas) { 112 var lft = 0; 113 var rgt = 0; 114 for (i = 0; i < catDatas.length; i++) { 115 if (catDatas[i].id == catId) { 116 lft = catDatas[i].lft; 117 rgt = catDatas[i].rgt; 118 } 119 } 120 var result = []; 121 result.push(catId); 122 for (i = 0; i < catDatas.length; i++) { 123 if (catDatas[i].lft > lft && catDatas[i].rgt < rgt) { 124 result.push(catDatas[i].id); 125 } 126 } 127 return result; 128} 129 130function getChildTags(catChilds) { 131 var result = []; 132 for (i = 0; i < catChilds.length; i++) { 133 if (catChilds[i] in window.catTags) { 134 jQuery.merge(result, window.catTags[catChilds[i]]); 135 } 136 } 137 138 return result; 139} 140 141function ajaxSearch(ordering, direction) { 142 var $ = jQuery; 143 var sform = $("#adminForm"); 144 145 // get the form data 146 var formData = { 147 'q': $(sform).find('input[name=q]').val(), 148 'catid': $(sform).find('select[name=catid]').val(), 149 'cattype': $(sform).find('.dropfiles_cat_type').val(), 150 'ftags': $(sform).find('input[name=ftags]').val(), 151 'cfrom': $(sform).find('input[name=cfrom]').val(), 152 'cto': $(sform).find('input[name=cto]').val(), 153 'ufrom': $(sform).find('input[name=ufrom]').val(), 154 'uto': $(sform).find('input[name=uto]').val(), 155 }; 156 formData = cleanObj(formData); 157 if (jQuery.isEmptyObject(formData)) { 158 $("#txtfilename").focus(); 159 return false;
160 } 161 162 if (typeof ordering != 'undefined') formData.ordering = ordering; 163 if (typeof direction != 'undefined') formData.dir = direction; 164 //pagination 165 if ($(sform).find('input[name=limitstart]').length > 0) { 166 formData.limitstart = $(sform).find('input[name=limitstart]').val(); 167 } 168 if ($(sform).find('select[name=limit]').length > 0) { 169 formData.limit = $(sform).find('select[name=limit]').val(); 170 } 171 172 if ($(sform).find('input[name=Itemid]').length > 0) { 173 formData.Itemid = $(sform).find('input[name=Itemid]').val(); 174 } 175 var filter_url = jQuery.param(formData); 176 window.history.pushState(formData, "", basejUrl + "index.php?option=com_dropfiles&view=frontsearch&" + filter_url); 177 178 formData.view = "frontsearch"; 179 formData.format = "raw"; 180 $.ajax({ 181 type: "POST", 182 url: basejUrl + 'index.php?option=com_dropfiles', 183 data: formData, 184 beforeSend: function () { 185 $("#dropfiles-results").prepend($("#loader").html()); 186 } 187 }).done(function (result) { 188 $("#dropfiles-results").html(result); 189 initSorting(); 190 dropfilesColorboxInit(); 191 showViewOption(); 192 }); 193} 194 195function openSearchfilter(evt, searchName) { 196 evt.preventDefault(); 197 198 var $ = jQuery; 199 var $this = $(evt.target); 200 201 $this.parent().find('.tablinks').removeClass('active'); 202 $this.addClass('active'); 203 204 $this.parent().parent().find('.dropfiles_tabcontainer .dropfiles_tabcontent').removeClass('active'); 205 $this.parent().parent().find('.dropfiles_tabcontainer #' + searchName).addClass('active'); 206 207 return false; 208} 209 210function selectdChecktags() { 211 var $ = jQuery; 212 jQuery('li.tags-item').on('click', function () { 213 $(this).toggleClass("active"); 214 if ($(this).hasClass("active")) { 215 $(this).children("input[type='checkbox']").prop('checked', true); 216 } else { 217 $(this).children("input[type='checkbox']").prop('checked', false); 218 } 219 var tagVal = []; 220 jQuery(".chk_ftags").each(function () { 221 if ($(this).prop("checked") == true) { 222 tagVal.push($(this).val()); 223 } 224 }); 225 if (tagVal.length > 0) { 226 jQuery(".input_tags").val(tagVal.join(",")); 227 } else { 228 jQuery(".input_tags").val(""); 229 } 230 }); 231} 232 233function dropfilescancelSelectedCate() { 234 var $, dropfileslCurrentselectedCate; 235 $ = jQuery; 236 dropfileslCurrentselectedCate = $(".categories-filtering .cate-lab"); 237 $(".cate-lab .cancel").unbind('click').on('click', function () { 238 if (dropfileslCurrentselectedCate.hasClass('display-cate')) { 239 dropfileslCurrentselectedCate.removeClass('display-cate'); 240 } 241 dropfileslCurrentselectedCate.empty(); 242 dropfileslCurrentselectedCate.append("<label id='root-cate'>" + Joomla.JText._('COM_DROPFILES_SEARCH_FILES_CATEGORY_FILTERING', 'Files category') + "</label>"); 243 $(".categories-filtering #dropfiles-listCate #filter_catid").val('').trigger('change'); 244 if($(".categories-filtering .cate-item").hasClass("checked")) { 245 $(".categories-filtering .cate-item").removeClass("checked"); 246 } else { 247 if($(".categories-filtering .cate-item").hasClass("choosed")) { 248 $(".categories-filtering .cate-item").removeClass("choosed"); 249 } 250 } 251 catChange("filter_catid"); 252 }); 253} 254 255function dropfilesShowCateReload() { 256 var $, SelectedCateReloadCase, dropfilesdisplayCateReloadCase; 257 $ = jQuery; 258 SelectedCateReloadCase = $(".categories-filtering .cate-item.choosed label").text(); 259 if ($(".mod_dropfiles_search .cate-item.choosed label").length) { 260 SelectedCateReloadCase = $(".mod_dropfiles_search .cate-item.choosed label").text(); 261 } 262 dropfilesdisplayCateReloadCase = $(".categories-filtering .cate-lab"); 263 var selectedCatecontentReloadCase = "<label>" + SelectedCateReloadCase + "</label>"; 264 if($(".cate-item.choosed").length > 0) { 265 dropfilesdisplayCateReloadCase.addClass('display-cate'); 266 dropfilesdisplayCateReloadCase.empty(); 267 dropfilesdisplayCateReloadCase.append(selectedCatecontentReloadCase); 268 if(dropfilesdisplayCateReloadCase.text() !== null ) { 269 dropfilesdisplayCateReloadCase.append('<a class="cancel"></a>'); 270 } 271 } 272 dropfilescancelSelectedCate(); 273} 274 275function parentFolderIcon() { 276 var $ = jQuery; 277 $("li.cate-item").each(function () { 278 var count = $(this).find('span.child-cate').length; 279 var prelevel = $(this).prev().attr("data-catlevel"); 280 var catelevel = $(this).attr("data-catlevel"); 281 if((count == 1 && catelevel > prelevel) || (count == 1 && prelevel == 9)) { 282 $(this).prev().addClass("parent-cate"); 283 } 284 }); 285} 286 287function showCategory() { 288 var $ = jQuery;
289 $(".categories-filtering .cateicon").unbind('click').on('click', function (e) { 290 e.preventDefault(); 291 var $this = $(this); 292 var $container = $this.parent(); 293 $('#dropfiles-listCate', $container).toggle(); 294 $('li.cate-item', $container).unbind('click').on('click', function () { 295 var selected_catid = $(this).data('catid').toString(); 296 $('li.cate-item.checked', $container).removeClass("checked"); 297 $('li.cate-item', $container).removeClass("choosed"); 298 299 $(this).addClass("checked"); 300 if ($("#filter_catid", $container).length) { 301 $("#filter_catid option", $container).removeAttr('selected'); 302 $("#filter_catid option", $container).each(function () { 303 var related_catid = $(this).val(); 304 if (related_catid === selected_catid) { 305 $(this).attr('selected', 'selected'); 306 } 307 }); 308 $("#filter_catid", $container).val(selected_catid).trigger("change"); 309 } 310 if ($("#search_catid", $container).length) { 311 $("#search_catid option", $container).removeAttr('selected'); 312 $("#search_catid option", $container).each(function () { 313 var related_catid = $(this).val(); 314 if (related_catid === selected_catid) { 315 $(this).attr('selected', 'selected'); 316 } 317 }); 318 $("#search_catid", $container).val(selected_catid).trigger("change"); 319 } 320 $('#dropfiles-listCate', $container).hide(); 321 322 // Show selected category 323 var dropfilesSelectedCatename = $(".cate-item.checked label", $container).text(); 324 var dropfilesdisplayCate = $('.cate-lab', $container); 325 if($('.showitems', $container).length > 0) { 326 $('.show-selected-cate', $container).css("display", ""); 327 } else { 328 var selectedCatecontent = "<label>" + dropfilesSelectedCatename + "</label>"; 329 $('.show-selected-cate', $container).css("display", "block"); 330 if($('.cate-item.checked', $container).length === 1) { 331 dropfilesdisplayCate.addClass('display-cate'); 332 dropfilesdisplayCate.empty(); 333 dropfilesdisplayCate.append(selectedCatecontent); 334 if(dropfilesdisplayCate.text() !== null ) { 335 dropfilesdisplayCate.append('<a class="cancel"></a>'); 336 } 337 } 338 } 339 340 dropfilescancelSelectedCate(); 341 342 catChange("filter_catid"); 343 }); 344 345 $(document).mouseup(function(e) { 346 if (!$(".categories-filtering > .ui-widget").is(e.target) // if the target of the click isn't the container... 347 && !$(".categories-filtering .cateicon").is(e.target) 348 && $(".categories-filtering > .ui-widget").has(e.target).length === 0) // ... nor a descendant of the container 349 { 350 $(".categories-filtering > .ui-widget").hide(); 351 } 352 }); 353 }); 354} 355 356//add class to search button 357function addtoSearchbuttonbelow() { 358 var $ = jQuery; 359 $("div#Tags").each(function () { 360 if ($(this).find('.tags-filtering').length) { 361 $(this).siblings('.box-btngroup-below').addClass("searchboxClass"); 362 } 363 }); 364} 365 366function dropfilesDateFilter() { 367 var $ = jQuery; 368 $('#Filter').each(function () { 369 if ($(this).find('.dropfiles-date-hidden').length) { 370 $(this).addClass('no-date'); 371 } else { 372 $(this).removeClass('no-date'); 373 } 374 }); 375 376} 377 378function noTagscase() { 379 var $ =jQuery; 380 if($("#Tags .no-tags").length > 0) { 381 $(".feature .box-btngroup-below").addClass("notags-case"); 382 } else { 383 $(".feature .box-btngroup-below").removeClass("notags-case"); 384 } 385} 386 387function initdefaultOption() { 388 var $ = jQuery; 389 var checkitem = $('.mediaTableMenu .media-item'); 390 var showList = []; 391 checkitem.each(function () { 392 if ($(this).prop("checked") === true) { 393 showList.push($(this).val()); 394 } 395 }); 396 if (showList.length > 0) { 397 jQuery("#total-media-list").val(showList.join(",")); 398 } else { 399 jQuery("#total-media-list").val(""); 400 showList = new Array('version','size','hits','date_added','download'); 401 } 402 var desc = ""; 403 var ver = ""; 404 var size = ""; 405 var hits = ""; 406 var dateadd = ""; 407 var download = ""; 408 for(var i = 0; i<showList.length;i++) { 409 if(showList[i] == "description" ) { 410 desc = "description"; 411 } 412 if(showList[i] == "version") {
413 ver = "version"; 414 } 415 if(showList[i] == "size") { 416 size = "size"; 417 } 418 if(showList[i] == "hits") { 419 hits = "hits"; 420 } 421 if(showList[i] == "date_added") { 422 dateadd = "date_added"; 423 } 424 if(showList[i] == "download") { 425 download = "download"; 426 } 427 } 428 if(desc === "description") { 429 jQuery(".file_desc").removeClass('filehidden'); 430 } else { 431 jQuery(".file_desc").addClass('filehidden'); 432 } 433 if (ver === "version") { 434 jQuery(".file_version").removeClass('filehidden'); 435 } else { 436 jQuery(".file_version").addClass('filehidden'); 437 } 438 if (size === "size") { 439 jQuery(".file_size").removeClass('filehidden'); 440 } else { 441 jQuery(".file_size").addClass('filehidden'); 442 } 443 if (hits === "hits") { 444 jQuery(".file_hits").removeClass('filehidden'); 445 } else { 446 jQuery(".file_hits").addClass('filehidden'); 447 } 448 if (dateadd === "date_added") { 449 jQuery(".file_created").removeClass('filehidden'); 450 } else { 451 jQuery(".file_created").addClass('filehidden'); 452 } 453 if (download === "download") { 454 jQuery(".file_download").removeClass('filehidden'); 455 } else { 456 jQuery(".file_download").addClass('filehidden'); 457 } 458} 459 460function showViewOption() { 461 var $ = jQuery; 462 $('.mediaTableMenu').on('click', function () { 463 $(this).addClass('showlist'); 464 $('.mediaTableMenu .media-item').on('click', function () { 465 initdefaultOption(); 466 if($(".list-results .file_desc").hasClass("filehidden") && $(".list-results .file_created").hasClass("filehidden") ) { 467 $(".list-results .file_download").addClass("file_download_inline"); 468 } else { 469 $(".list-results .file_download").removeClass("file_download_inline"); 470 } 471 var checkall = $(".list-results .table thead th"); 472 if(!checkall.hasClass("filehidden")) { 473 $(".list-results .file_title").addClass("adv_file_tt"); 474 } else { 475 $(".list-results .file_title").removeClass("adv_file_tt"); 476 } 477 }); 478 479 $(document).mouseup(e => { 480 if (!$(".mediaTableMenu").is(e.target) // if the target of the click isn't the container... 481 && $(".mediaTableMenu").has(e.target).length === 0) // ... nor a descendant of the container 482 { 483 $(".mediaTableMenu").removeClass('showlist'); 484 } 485 }); 486 }); 487} 488 489function showtbResultonMobile() { 490 if(jQuery("#dropfiles-results").width() <=420) { 491 jQuery(".file_version").css("display", "none"); 492 jQuery(".file_size").css("display", "none"); 493 jQuery(".file_hits").css("display", "none"); 494 jQuery(".file_created").css("display", "none"); 495 } 496} 497 498jQuery(document).ready(function ($) { 499 initDatepicker(); 500 initSorting(); 501 initTags(); 502 503 $(".chk_ftags").click(function () { 504 fillInputTags(); 505 }); 506 $("#filter_catid").change(function () { 507 catChange("filter_catid"); 508 var filter_cat = $(this).find(':selected').val(); 509 var filter_cattype = $(this).find('option[value="' + filter_cat + '"]').data('type'); 510 $('.dropfiles_cat_type').val(filter_cattype); 511 }); 512 $("#search_catid").change(function () { 513 catChange("search_catid"); 514 }); 515 516 var oldJoomlaSubmit; 517 if (typeof Joomla != 'undefined') { 518 oldJoomlaSubmit = Joomla.submitform; 519 Joomla.submitform = function ($task) { 520 ajaxSearch(); 521 if ($task) { 522 oldJoomlaSubmit($task); 523 } 524 }; 525 } 526 $("#adminForm.dropfiles_search").submit(function (e) { 527 e.preventDefault(); 528 529 return false; 530 }); 531 jQuery('.icon-date').click(function () { 532 var txt = jQuery(this).attr('data-id'); 533 jQuery('#' + txt).datetimepicker('show'); 534 }); 535 536 jQuery('.feature-toggle').click(function () { 537 var container = jQuery(this).parents('.by-feature'); 538 jQuery(container).find('.feature').slideToggle('slow', function () { 539 jQuery(".feature-toggle").toggleClass(function () { 540 if (jQuery(this).is(".toggle-arrow-up-alt")) { 541 return "toggle-arrow-down-alt"; 542 } else { 543 return "toggle-arrow-up-alt"; 544 } 545 }); 546 }); 547 }); 548 549 //ajax filters 550 $("#btnsearchbelow, #btnsearch").click(function (e) { 551 e.preventDefault(); 552 ajaxSearch(); 553 }); 554 555 $("#mod_btnReset").click(function (e) { 556 e.preventDefault(); 557 resetFilters(); 558 }); 559 560 $("#btnReset").click(function (e) { 561 e.preventDefault(); 562 resetFilters(); 563 $("#dropfiles-results").html(""); 564 }); 565 566 jQuery('.list-results table tr td a.file-item').click(function (e) { 567 e.preventDefault(); 568 var popupid = "#popup-" + jQuery(this).attr('id'); 569 var dd = jQuery(popupid).dialog({ 570 minHeight: 250, 571 minWidth: 250, 572 modal: true, 573 draggable: false, 574 resizable: false 575 }); 576 jQuery('.ui-widget-overlay').click(function () { 577 dd.dialog('close'); 578 }); 579 return false;
580 }); 581 582 resetFilters = function (formSelect) { 583 584 var sform = $("#adminForm"); 585 if (typeof formSelect != 'undefined') { 586 sform = $(formSelect); 587 } 588 589 var inputs = $(sform).find('input, select'); 590 $.each(inputs, function (i, el) { 591 var eType = $(el).attr('type'); 592 if (eType == 'checkbox') { 593 $(el).prop('checked', false); 594 } else { 595 if ($(el).attr('name') != 'task' && $(el).attr('name') != 'Itemid') { 596 $(el).val("").trigger('change').trigger("liszt:updated").trigger("chosen:updated"); 597 if ($(el).hasClass("tagit")) { 598 $(el).tagit("removeAll"); 599 } 600 } 601 } 602 603 }); 604 $('.tags-item').removeClass('active'); 605 if($(".cate-lab .cancel").length === 1) { 606 $('.cate-item').removeClass('checked'); 607 var dropfileslCurrentselectedCate = $(".categories-filtering .cate-lab"); 608 if (dropfileslCurrentselectedCate.hasClass('display-cate')) { 609 dropfileslCurrentselectedCate.removeClass('display-cate'); 610 } 611 dropfileslCurrentselectedCate.empty(); 612 dropfileslCurrentselectedCate.append("<label id='root-cate'>" + Joomla.JText._('COM_DROPFILES_SEARCH_FILES_CATEGORY_FILTERING', 'Files category') + "</label>"); 613 } 614 }; 615 616 populateFilters = function (filters) { 617 618 var sform = $("#adminForm"); 619 $.each(filters, function (f, v) { 620 var els = $(sform).find('input[name=' + f + '], select[name=' + f + ']'); 621 if (els.length > 0) { 622 $(els).val(v).trigger('change').trigger("liszt:updated").trigger("chosen:updated"); 623 if ($(els).hasClass("tagit")) { 624 $(els).tagit("removeAll"); 625 if (v != "") { 626 var tgs = v.split(","); 627 for (var i = 0; i < tgs.length; i++) { 628 $(els).tagit("createTag", tgs[i]); 629 } 630 } 631 632 } 633 } 634 }); 635 }; 636 637 //Remove propery with empty value 638 cleanObj = function (obj) { 639 for (var k in obj) { 640 if (obj.hasOwnProperty(k)) { 641 if (!obj[k]) delete obj[k]; 642 } 643 } 644 return obj; 645 }; 646 647 //back on browser 648 window.addEventListener('load', function () { 649 setTimeout(function () { 650 jQuery(window).on('popstate', function (event) { 651 var state = event.originalEvent.state; 652 resetFilters(); 653 if (state != null) { 654 var formData = state; 655 populateFilters(formData); 656 formData.view = "frontsearch"; 657 formData.format = "raw"; 658 $.ajax({ 659 type: "POST", 660 url: basejUrl + 'index.php?option=com_dropfiles', 661 data: formData, 662 }).done(function (result) { 663 $("#dropfiles-results").html(result); 664 }); 665 } else { 666 $("#dropfiles-results").html(""); 667 } 668 }); 669 }, 100); 670 }, false); 671 672 //get checktags 673 selectdChecktags(); 674 675 //show cate 676 showCategory(); 677 678 //display selected category when reload. 679 dropfilesShowCateReload(); 680 681 //Search category 682 $('#dropfilesCategorySearch').on('keydown keyup', function(e) { 683 if (e.keyCode === 13 || e.which === 13 || e.key === 'Enter') 684 { 685 e.preventDefault(); 686 return; 687 } 688 var scateList, filter, labl, txtValue; 689 var $this = $(this); 690 scateList = $("li.cate-item", $this.parent().parent()); 691 692 filter = $this.val().toUpperCase(); 693 scateList.each(function () { 694 labl = $(this).find("label"); 695 txtValue = labl.text().toUpperCase(); 696 if (txtValue.indexOf(filter) > -1) { 697 $(this).css("display",""); 698 } else { 699 $(this).css("display", "none"); 700 } 701 }); 702 }); 703 704 //Set icons 705 parentFolderIcon(); 706 707 //get searchbox 708 addtoSearchbuttonbelow(); 709 710 dropfilesDateFilter(); 711 712 noTagscase(); 713 714 initdefaultOption(); 715 716 showViewOption(); 717 718 showtbResultonMobile(); 719});
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.