1//custom jquery method for toggle attr 2$.fn.toggleAttr = function (attr, attr1, attr2) { 3 return this.each(function () { 4 var self = $(this); 5 if (self.attr(attr) == attr1) self.attr(attr, attr2); 6 else self.attr(attr, attr1); 7 }); 8}; 9(function ($) { 10 // USE STRICT 11 "use strict"; 12 13 AIZ.data = { 14 csrf: $('meta[name="csrf-token"]').attr("content"), 15 appUrl: $('meta[name="app-url"]').attr("content"), 16 fileBaseUrl: $('meta[name="file-base-url"]').attr("content"), 17 }; 18 AIZ.uploader = { 19 data: { 20 selectedFiles: [], 21 selectedFilesObject: [], 22 clickedForDelete: null, 23 allFiles: [], 24 multiple: false, 25 type: "all", 26 next_page_url: null, 27 prev_page_url: null, 28 }, 29 removeInputValue: function (id, array, elem) { 30 var selected = array.filter(function (item) { 31 return item !== id; 32 }); 33 if (selected.length > 0) { 34 $(elem) 35 .find(".file-amount") 36 .html(AIZ.uploader.updateFileHtml(selected)); 37 } else { 38 elem.find(".file-amount").html(AIZ.local.choose_file); 39 } 40 $(elem).find(".selected-files").val(selected); 41 }, 42 removeAttachment: function () { 43 $(document).on("click", '.remove-attachment', function () { 44 var value = $(this) 45 .closest(".file-preview-item") 46 .data("id"); 47 var selected = $(this) 48 .closest(".file-preview") 49 .prev('[data-toggle="aizuploader"]') 50 .find(".selected-files") 51 .val() 52 .split(",") 53 .map(Number); 54 55 AIZ.uploader.removeInputValue( 56 value, 57 selected, 58 $(this) 59 .closest(".file-preview") 60 .prev('[data-toggle="aizuploader"]') 61 ); 62 $(this).closest(".file-preview-item").remove(); 63 }); 64 }, 65 deleteUploaderFile: function () { 66 $(".aiz-uploader-delete").each(function () { 67 $(this).on("click", function (e) { 68 e.preventDefault(); 69 var id = $(this).data("id"); 70 AIZ.uploader.data.clickedForDelete = id; 71 $("#aizUploaderDelete").modal("show"); 72 73 $(".aiz-uploader-confirmed-delete").on("click", function ( 74 e 75 ) { 76 e.preventDefault(); 77 if (e.detail === 1) { 78 var clickedForDeleteObject = 79 AIZ.uploader.data.allFiles[ 80 AIZ.uploader.data.allFiles.findIndex( 81 (x) => 82 x.id === 83 AIZ.uploader.data.clickedForDelete 84 ) 85 ]; 86 $.ajax({ 87 url: 88 AIZ.data.appUrl + 89 "/aiz-uploader/destroy/" + 90 AIZ.uploader.data.clickedForDelete, 91 type: "DELETE", 92 dataType: "JSON", 93 data: { 94 id: AIZ.uploader.data.clickedForDelete, 95 _method: "DELETE", 96 _token: AIZ.data.csrf, 97 }, 98 success: function () { 99 AIZ.uploader.data.selectedFiles = AIZ.uploader.data.selectedFiles.filter( 100 function (item) { 101 return ( 102 item !== 103 AIZ.uploader.data 104 .clickedForDelete 105 ); 106 } 107 ); 108 AIZ.uploader.data.selectedFilesObject = AIZ.uploader.data.selectedFilesObject.filter( 109 function (item) { 110 return ( 111 item !== clickedForDeleteObject 112 ); 113 } 114 ); 115 AIZ.uploader.updateUploaderSelected(); 116 AIZ.uploader.getAllUploads( 117 AIZ.data.appUrl + 118 "/aiz-uploader/get_uploaded_files" 119 ); 120 AIZ.uploader.data.clickedForDelete = null; 121 $("#aizUploaderDelete").modal("hide"); 122 }, 123 }); 124 } 125 }); 126 }); 127 }); 128 }, 129 uploadSelect: function () { 130 $(".aiz-uploader-select").each(function () { 131 var elem = $(this); 132 elem.on("click", function (e) { 133 var value = $(this).data("value"); 134 var valueObject = 135 AIZ.uploader.data.allFiles[ 136 AIZ.uploader.data.allFiles.findIndex( 137 (x) => x.id === value 138 ) 139 ]; 140 // console.log(valueObject); 141 142 elem.closest(".aiz-file-box-wrap").toggleAttr( 143 "data-selected", 144 "true", 145 "false" 146 ); 147 if (!AIZ.uploader.data.multiple) { 148 elem.closest(".aiz-file-box-wrap") 149 .siblings() 150 .attr("data-selected", "false"); 151 } 152 if (!AIZ.uploader.data.selectedFiles.includes(value)) { 153 if (!AIZ.uploader.data.multiple) { 154 AIZ.uploader.data.selectedFiles = []; 155 AIZ.uploader.data.selectedFilesObject = []; 156 } 157 AIZ.uploader.data.selectedFiles.push(value); 158 AIZ.uploader.data.selectedFilesObject.push(valueObject); 159 } else { 160 AIZ.uploader.data.selectedFiles = AIZ.uploader.data.selectedFiles.filter( 161 function (item) { 162 return item !== value; 163 } 164 ); 165 AIZ.uploader.data.selectedFilesObject = AIZ.uploader.data.selectedFilesObject.filter( 166 function (item) { 167 return item !== valueObject; 168 } 169 ); 170 } 171 AIZ.uploader.addSelectedValue(); 172 AIZ.uploader.updateUploaderSelected(); 173 }); 174 }); 175 }, 176 updateFileHtml: function (array) { 177 var fileText = ""; 178 if (array.length > 1) { 179 var fileText = AIZ.local.files_selected; 180 } else { 181 var fileText = AIZ.local.file_selected; 182 } 183 return array.length + " " + fileText; 184 }, 185 updateUploaderSelected: function () { 186 $(".aiz-uploader-selected").html( 187 AIZ.uploader.updateFileHtml(AIZ.uploader.data.selectedFiles) 188 ); 189 }, 190 clearUploaderSelected: function () { 191 $(".aiz-uploader-selected-clear").on("click", function () { 192 AIZ.uploader.data.selectedFiles = []; 193 AIZ.uploader.addSelectedValue(); 194 AIZ.uploader.addHiddenValue(); 195 AIZ.uploader.resetFilter(); 196 AIZ.uploader.updateUploaderSelected(); 197 AIZ.uploader.updateUploaderFiles(); 198 }); 199 }, 200 resetFilter: function () { 201 $('[name="aiz-uploader-search"]').val(""); 202 $('[name="aiz-show-selected"]').prop("checked", false); 203 $('[name="aiz-uploader-sort"] option[value=newest]').prop( 204 "selected", 205 true 206 ); 207 }, 208 getAllUploads: function (url, search_key = null, sort_key = null) { 209 $(".aiz-uploader-all").html( 210 '<div class="align-items-center d-flex h-100 justify-content-center w-100"><div class="spinner-border" role="status"></div></div>' 211 ); 212 var params = {}; 213 if (search_key != null && search_key.length > 0) { 214 params["search"] = search_key; 215 } 216 if (sort_key != null && sort_key.length > 0) { 217 params["sort"] = sort_key; 218 } 219 else { 220 params["sort"] = 'newest'; 221 } 222 $.get(url, params, function (data, status) { 223 //console.log(data); 224 if (typeof data == 'string') { 225 data = JSON.parse(data); 226 } 227 AIZ.uploader.data.allFiles = data.data; 228 AIZ.uploader.allowedFileType(); 229 AIZ.uploader.addSelectedValue(); 230 AIZ.uploader.addHiddenValue(); 231 //AIZ.uploader.resetFilter(); 232 AIZ.uploader.updateUploaderFiles(); 233 if (data.next_page_url != null) { 234 AIZ.uploader.data.next_page_url = data.next_page_url; 235 $("#uploader_next_btn").removeAttr("disabled"); 236 } else { 237 $("#uploader_next_btn").attr("disabled", true); 238 } 239 if (data.prev_page_url != null) { 240 AIZ.uploader.data.prev_page_url = data.prev_page_url; 241 $("#uploader_prev_btn").removeAttr("disabled"); 242 } else { 243 $("#uploader_prev_btn").attr("disabled", true); 244 } 245 }); 246 }, 247 showSelectedFiles: function () { 248 $('[name="aiz-show-selected"]').on("change", function () { 249 if ($(this).is(":checked")) { 250 // for ( 251 // var i = 0; 252 // i < AIZ.uploader.data.allFiles.length; 253 // i++ 254 // ) { 255 // if (AIZ.uploader.data.allFiles[i].selected) { 256 // AIZ.uploader.data.allFiles[ 257 // i 258 // ].aria_hidden = false;
259 // } else { 260 // AIZ.uploader.data.allFiles[ 261 // i 262 // ].aria_hidden = true; 263 // } 264 // } 265 AIZ.uploader.data.allFiles = 266 AIZ.uploader.data.selectedFilesObject; 267 } else { 268 // for ( 269 // var i = 0; 270 // i < AIZ.uploader.data.allFiles.length; 271 // i++ 272 // ) { 273 // AIZ.uploader.data.allFiles[ 274 // i 275 // ].aria_hidden = false; 276 // } 277 AIZ.uploader.getAllUploads( 278 AIZ.data.appUrl + "/aiz-uploader/get_uploaded_files" 279 ); 280 } 281 AIZ.uploader.updateUploaderFiles(); 282 }); 283 }, 284 searchUploaderFiles: function () { 285 $('[name="aiz-uploader-search"]').on("keyup", function () { 286 var value = $(this).val(); 287 AIZ.uploader.getAllUploads( 288 AIZ.data.appUrl + "/aiz-uploader/get_uploaded_files", 289 value, 290 $('[name="aiz-uploader-sort"]').val() 291 ); 292 // if (AIZ.uploader.data.allFiles.length > 0) { 293 // for ( 294 // var i = 0; 295 // i < AIZ.uploader.data.allFiles.length; 296 // i++ 297 // ) { 298 // if ( 299 // AIZ.uploader.data.allFiles[ 300 // i 301 // ].file_original_name 302 // .toUpperCase() 303 // .indexOf(value) > -1 304 // ) { 305 // AIZ.uploader.data.allFiles[ 306 // i 307 // ].aria_hidden = false; 308 // } else { 309 // AIZ.uploader.data.allFiles[ 310 // i 311 // ].aria_hidden = true; 312 // } 313 // } 314 // } 315 //AIZ.uploader.updateUploaderFiles(); 316 }); 317 }, 318 sortUploaderFiles: function () { 319 $('[name="aiz-uploader-sort"]').on("change", function () { 320 var value = $(this).val(); 321 AIZ.uploader.getAllUploads( 322 AIZ.data.appUrl + "/aiz-uploader/get_uploaded_files", 323 $('[name="aiz-uploader-search"]').val(), 324 value 325 ); 326 327 // if (value === "oldest") { 328 // AIZ.uploader.data.allFiles = AIZ.uploader.data.allFiles.sort( 329 // function(a, b) { 330 // return ( 331 // new Date(a.created_at) - new Date(b.created_at) 332 // ); 333 // } 334 // ); 335 // } else if (value === "smallest") { 336 // AIZ.uploader.data.allFiles = AIZ.uploader.data.allFiles.sort( 337 // function(a, b) { 338 // return a.file_size - b.file_size; 339 // } 340 // ); 341 // } else if (value === "largest") { 342 // AIZ.uploader.data.allFiles = AIZ.uploader.data.allFiles.sort( 343 // function(a, b) { 344 // return b.file_size - a.file_size; 345 // } 346 // ); 347 // } else { 348 // AIZ.uploader.data.allFiles = AIZ.uploader.data.allFiles.sort( 349 // function(a, b) { 350 // a = new Date(a.created_at); 351 // b = new Date(b.created_at); 352 // return a > b ? -1 : a < b ? 1 : 0; 353 // } 354 // ); 355 // } 356 //AIZ.uploader.updateUploaderFiles(); 357 }); 358 }, 359 addSelectedValue: function () { 360 for (var i = 0; i < AIZ.uploader.data.allFiles.length; i++) { 361 if ( 362 !AIZ.uploader.data.selectedFiles.includes( 363 AIZ.uploader.data.allFiles[i].id 364 ) 365 ) { 366 AIZ.uploader.data.allFiles[i].selected = false;
367 } else { 368 AIZ.uploader.data.allFiles[i].selected = true; 369 } 370 } 371 }, 372 addHiddenValue: function () { 373 for (var i = 0; i < AIZ.uploader.data.allFiles.length; i++) { 374 AIZ.uploader.data.allFiles[i].aria_hidden = false; 375 } 376 }, 377 allowedFileType: function () { 378 if (AIZ.uploader.data.type !== "all") { 379 let type = AIZ.uploader.data.type.split(',') 380 AIZ.uploader.data.allFiles = AIZ.uploader.data.allFiles.filter( 381 function (item) { 382 return type.includes(item.type); 383 } 384 ); 385 } 386 }, 387 updateUploaderFiles: function () { 388 $(".aiz-uploader-all").html( 389 '<div class="align-items-center d-flex h-100 justify-content-center w-100"><div class="spinner-border" role="status"></div></div>' 390 ); 391 392 var data = AIZ.uploader.data.allFiles; 393 394 setTimeout(function () { 395 $(".aiz-uploader-all").html(null); 396 397 if (data.length > 0) { 398 for (var i = 0; i < data.length; i++) { 399 var thumb = ""; 400 var hidden = ""; 401 if (data[i].type === "image") { 402 thumb = 403 '<img src="' + 404 AIZ.data.fileBaseUrl + 405 data[i].file_name + 406 '" class="img-fit">'; 407 } else { 408 thumb = '<i class="la la-file-text"></i>'; 409 } 410 var html = 411 '<div class="aiz-file-box-wrap" aria-hidden="' + 412 data[i].aria_hidden + 413 '" data-selected="' + 414 data[i].selected + 415 '">' + 416 '<div class="aiz-file-box">' + 417 // '<div class="dropdown-file">' + 418 // '<a class="dropdown-link" data-toggle="dropdown">' + 419 // '<i class="la la-ellipsis-v"></i>' + 420 // "</a>" + 421 // '<div class="dropdown-menu dropdown-menu-right">' + 422 // '<a href="' + 423 // AIZ.data.fileBaseUrl + 424 // data[i].file_name + 425 // '" target="_blank" download="' + 426 // data[i].file_original_name + 427 // "." + 428 // data[i].extension + 429 // '" class="dropdown-item"><i class="la la-download mr-2"></i>Download</a>' + 430 // '<a href="#" class="dropdown-item aiz-uploader-delete" data-id="' + 431 // data[i].id + 432 // '"><i class="la la-trash mr-2"></i>Delete</a>' + 433 // "</div>" + 434 // "</div>" + 435 '<div class="card card-file aiz-uploader-select" title="' + 436 data[i].file_original_name + 437 "." + 438 data[i].extension + 439 '" data-value="' + 440 data[i].id + 441 '">' + 442 '<div class="card-file-thumb">' + 443 thumb + 444 "</div>" + 445 '<div class="card-body">' + 446 '<h6 class="d-flex">' + 447 '<span class="text-truncate title">' + 448 data[i].file_original_name + 449 "</span>" + 450 '<span class="ext flex-shrink-0">.' + 451 data[i].extension + 452 "</span>" + 453 "</h6>" + 454 "<p>" + 455 AIZ.extra.bytesToSize(data[i].file_size) + 456 "</p>" + 457 "</div>" + 458 "</div>" + 459 "</div>" + 460 "</div>"; 461 462 $(".aiz-uploader-all").append(html); 463 } 464 } else { 465 $(".aiz-uploader-all").html( 466 '<div class="align-items-center d-flex h-100 justify-content-center w-100 nav-tabs"><div class="text-center"><h3>No files found</h3></div></div>' 467 ); 468 } 469 AIZ.uploader.uploadSelect(); 470 AIZ.uploader.deleteUploaderFile(); 471 }, 300); 472 }, 473 inputSelectPreviewGenerate: function (elem) { 474 elem.find(".selected-files").val(AIZ.uploader.data.selectedFiles); 475 elem.next(".file-preview").html(null); 476 477 if (AIZ.uploader.data.selectedFiles.length > 0) { 478 479 $.post( 480 AIZ.data.appUrl + "/aiz-uploader/get_file_by_ids", 481 { _token: AIZ.data.csrf, ids: AIZ.uploader.data.selectedFiles.toString() }, 482 function (data) { 483 484 elem.next(".file-preview").html(null); 485 486 if (data.length > 0) { 487 elem.find(".file-amount").html( 488 AIZ.uploader.updateFileHtml(data) 489 ); 490 for ( 491 var i = 0; 492 i < data.length; 493 i++ 494 ) { 495 var thumb = ""; 496 if (data[i].type === "image") { 497 thumb = 498 '<img src="' + 499 data[i].file_name + 500 '" class="img-fit">'; 501 } else { 502 thumb = '<i class="la la-file-text"></i>'; 503 } 504 var html = 505 '<div class="d-flex justify-content-between align-items-center mt-2 file-preview-item" data-id="' + 506 data[i].id + 507 '" title="' + 508 data[i].file_original_name + 509 "." + 510 data[i].extension + 511 '">' + 512 '<div class="align-items-center align-self-stretch d-flex justify-content-center thumb">' + 513 thumb + 514 "</div>" + 515 '<div class="col body">' + 516 '<h6 class="d-flex">' + 517 '<span class="text-truncate title">' + 518 data[i].file_original_name + 519 "</span>" + 520 '<span class="flex-shrink-0 ext">.' + 521 data[i].extension + 522 "</span>" + 523 "</h6>" + 524 "<p>" + 525 AIZ.extra.bytesToSize( 526 data[i].file_size 527 ) + 528 "</p>" + 529 "</div>" + 530 '<div class="remove">' + 531 '<button class="btn btn-sm btn-link remove-attachment" type="button">' + 532 '<i class="la la-close"></i>' + 533 "</button>" + 534 "</div>" + 535 "</div>"; 536 537 elem.next(".file-preview").append(html); 538 } 539 } else { 540 elem.find(".file-amount").html(AIZ.local.choose_file); 541 } 542 }); 543 } else { 544 elem.find(".file-amount").html(AIZ.local.choose_file); 545 } 546 547 // if (AIZ.uploader.data.selectedFiles.length > 0) { 548 // elem.find(".file-amount").html( 549 // AIZ.uploader.updateFileHtml(AIZ.uploader.data.selectedFiles) 550 // ); 551 // for ( 552 // var i = 0; 553 // i < AIZ.uploader.data.selectedFiles.length; 554 // i++ 555 // ) { 556 // var index = AIZ.uploader.data.allFiles.findIndex( 557 // (x) => x.id === AIZ.uploader.data.selectedFiles[i] 558 // ); 559 // var thumb = ""; 560 // if (AIZ.uploader.data.allFiles[index].type == "image") { 561 // thumb = 562 // '<img src="' + 563 // AIZ.data.appUrl + 564 // "/public/" + 565 // AIZ.uploader.data.allFiles[index].file_name + 566 // '" class="img-fit">'; 567 // } else { 568 // thumb = '<i class="la la-file-text"></i>'; 569 // } 570 // var html = 571 // '<div class="d-flex justify-content-between align-items-center mt-2 file-preview-item" data-id="' + 572 // AIZ.uploader.data.allFiles[index].id + 573 // '" title="' + 574 // AIZ.uploader.data.allFiles[index].file_original_name + 575 // "." + 576 // AIZ.uploader.data.allFiles[index].extension + 577 // '">' + 578 // '<div class="align-items-center align-self-stretch d-flex justify-content-center thumb">' + 579 // thumb + 580 // "</div>" + 581 // '<div class="col body">' + 582 // '<h6 class="d-flex">' + 583 // '<span class="text-truncate title">' + 584 // AIZ.uploader.data.allFiles[index].file_original_name + 585 // "</span>" + 586 // '<span class="ext">.' + 587 // AIZ.uploader.data.allFiles[index].extension + 588 // "</span>" + 589 // "</h6>" + 590 // "<p>" + 591 // AIZ.extra.bytesToSize( 592 // AIZ.uploader.data.allFiles[index].file_size 593 // ) + 594 // "</p>" + 595 // "</div>" + 596 // '<div class="remove">' + 597 // '<button class="btn btn-sm btn-link remove-attachment" type="button">' + 598 // '<i class="la la-close"></i>' + 599 // "</button>" + 600 // "</div>" + 601 // "</div>"; 602 603 // elem.next(".file-preview").append(html); 604 // } 605 // } else { 606 // elem.find(".file-amount").html("Choose File"); 607 // } 608 }, 609 editorImageGenerate: function (elem) { 610 if (AIZ.uploader.data.selectedFiles.length > 0) { 611 for ( 612 var i = 0; 613 i < AIZ.uploader.data.selectedFiles.length; 614 i++ 615 ) { 616 var index = AIZ.uploader.data.allFiles.findIndex( 617 (x) => x.id === AIZ.uploader.data.selectedFiles[i] 618 ); 619 var thumb = ""; 620 if (AIZ.uploader.data.allFiles[index].type === "image") { 621 thumb = 622 '<img src="' + 623 AIZ.data.fileBaseUrl + 624 AIZ.uploader.data.allFiles[index].file_name + 625 '">'; 626 elem[0].insertHTML(thumb); 627 // console.log(elem); 628 } 629 } 630 } 631 },
632 dismissUploader: function () { 633 $("#aizUploaderModal").on("hidden.bs.modal", function () { 634 $(".aiz-uploader-backdrop").remove(); 635 $("#aizUploaderModal").remove(); 636 }); 637 }, 638 trigger: function ( 639 elem = null, 640 from = "", 641 type = "all", 642 selectd = "", 643 multiple = false, 644 callback = null 645 ) { 646 // $("body").append('<div class="aiz-uploader-backdrop"></div>'); 647 648 var elem = $(elem); 649 var multiple = multiple; 650 var type = type; 651 var oldSelectedFiles = selectd; 652 if (oldSelectedFiles !== "") { 653 AIZ.uploader.data.selectedFiles = oldSelectedFiles 654 .split(",") 655 .map(Number); 656 } else { 657 AIZ.uploader.data.selectedFiles = []; 658 } 659 if ("undefined" !== typeof type && type.length > 0) { 660 AIZ.uploader.data.type = type; 661 } 662 663 if (multiple) { 664 AIZ.uploader.data.multiple = true; 665 } else { 666 AIZ.uploader.data.multiple = false; 667 } 668 669 // setTimeout(function() { 670 $.post( 671 AIZ.data.appUrl + "/aiz-uploader", 672 { _token: AIZ.data.csrf }, 673 function (data) { 674 $("body").append(data); 675 $("#aizUploaderModal").modal("show"); 676 AIZ.plugins.aizUppy(); 677 AIZ.uploader.getAllUploads( 678 AIZ.data.appUrl + "/aiz-uploader/get_uploaded_files", 679 null, 680 $('[name="aiz-uploader-sort"]').val() 681 ); 682 AIZ.uploader.updateUploaderSelected(); 683 AIZ.uploader.clearUploaderSelected(); 684 AIZ.uploader.sortUploaderFiles(); 685 AIZ.uploader.searchUploaderFiles(); 686 AIZ.uploader.showSelectedFiles(); 687 AIZ.uploader.dismissUploader(); 688 689 $("#uploader_next_btn").on("click", function () { 690 if (AIZ.uploader.data.next_page_url != null) { 691 $('[name="aiz-show-selected"]').prop( 692 "checked", 693 false 694 ); 695 AIZ.uploader.getAllUploads( 696 AIZ.uploader.data.next_page_url 697 ); 698 } 699 }); 700 701 $("#uploader_prev_btn").on("click", function () { 702 if (AIZ.uploader.data.prev_page_url != null) { 703 $('[name="aiz-show-selected"]').prop( 704 "checked", 705 false 706 ); 707 AIZ.uploader.getAllUploads( 708 AIZ.uploader.data.prev_page_url 709 ); 710 } 711 }); 712 713 $(".aiz-uploader-search i").on("click", function () { 714 $(this).parent().toggleClass("open"); 715 }); 716 717 $('[data-toggle="aizUploaderAddSelected"]').on( 718 "click", 719 function () { 720 if (from === "input") { 721 AIZ.uploader.inputSelectPreviewGenerate(elem); 722 } else if (from === "direct") { 723 callback(AIZ.uploader.data.selectedFiles); 724 } 725 $("#aizUploaderModal").modal("hide"); 726 } 727 ); 728 } 729 ); 730 // }, 50); 731 }, 732 initForInput: function () { 733 $(document).on("click", '[data-toggle="aizuploader"]', function (e) { 734 if (e.detail === 1) { 735 var elem = $(this); 736 var multiple = elem.data("multiple"); 737 var type = elem.data("type"); 738 var oldSelectedFiles = elem.find(".selected-files").val(); 739 740 multiple = !multiple ? "" : multiple; 741 type = !type ? "" : type; 742 oldSelectedFiles = !oldSelectedFiles 743 ? "" 744 : oldSelectedFiles; 745 746 AIZ.uploader.trigger( 747 this, 748 "input", 749 type, 750 oldSelectedFiles, 751 multiple 752 ); 753 } 754 }); 755 }, 756 previewGenerate: function () { 757 $('[data-toggle="aizuploader"]').each(function () { 758 var $this = $(this); 759 var files = $this.find(".selected-files").val(); 760 if (files != "") { 761 $.post( 762 AIZ.data.appUrl + "/aiz-uploader/get_file_by_ids", 763 { _token: AIZ.data.csrf, ids: files }, 764 function (data) { 765 $this.next(".file-preview").html(null); 766 767 if (data.length > 0) { 768 $this.find(".file-amount").html( 769 AIZ.uploader.updateFileHtml(data) 770 ); 771 for ( 772 var i = 0; 773 i < data.length; 774 i++ 775 ) { 776 var thumb = ""; 777 if (data[i].type === "image") { 778 thumb = 779 '<img src="' + 780 data[i].file_name + 781 '" class="img-fit">'; 782 } else { 783 thumb = '<i class="la la-file-text"></i>'; 784 } 785 var html = 786 '<div class="d-flex justify-content-between align-items-center mt-2 file-preview-item" data-id="' + 787 data[i].id + 788 '" title="' + 789 data[i].file_original_name + 790 "." + 791 data[i].extension + 792 '">' + 793 '<div class="align-items-center align-self-stretch d-flex justify-content-center thumb">' + 794 thumb + 795 "</div>" + 796 '<div class="col body">' + 797 '<h6 class="d-flex">' + 798 '<span class="text-truncate title">' + 799 data[i].file_original_name + 800 "</span>" + 801 '<span class="ext flex-shrink-0">.' + 802 data[i].extension + 803 "</span>" + 804 "</h6>" + 805 "<p>" + 806 AIZ.extra.bytesToSize( 807 data[i].file_size 808 ) + 809 "</p>" + 810 "</div>" + 811 '<div class="remove">' + 812 '<button class="btn btn-sm btn-link remove-attachment" type="button">' + 813 '<i class="la la-close"></i>' + 814 "</button>" + 815 "</div>" + 816 "</div>"; 817 818 $this.next(".file-preview").append(html); 819 } 820 } else { 821 $this.find(".file-amount").html(AIZ.local.choose_file); 822 } 823 }); 824 } 825 }); 826 } 827 }; 828 AIZ.plugins = { 829 metismenu: function () { 830 $('[data-toggle="aiz-side-menu"]').metisMenu(); 831 }, 832 bootstrapSelect: function (refresh = "") { 833 $(".aiz-selectpicker").each(function (el) { 834 var $this = $(this); 835 if (!$this.parent().hasClass('bootstrap-select')) { 836 var selected = $this.data('selected'); 837 if (typeof selected !== 'undefined') { 838 $this.val(selected); 839 } 840 $this.selectpicker({ 841 size: 5, 842 noneSelectedText: AIZ.local.nothing_selected, 843 virtualScroll: false 844 }); 845 } 846 if (refresh === "refresh") { 847 $this.selectpicker("refresh"); 848 } 849 if (refresh === "destroy") { 850 $this.selectpicker("destroy"); 851 } 852 }); 853 }, 854 tagify: function () { 855 $(".aiz-tag-input").not(".tagify").each(function () { 856 var $this = $(this); 857 858 var maxTags = $this.data("max-tags"); 859 var whitelist = $this.data("whitelist"); 860 var onchange = $this.data("on-change"); 861 862 maxTags = !maxTags ? Infinity : maxTags; 863 whitelist = !whitelist ? [] : whitelist; 864 865 $this.tagify({ 866 maxTags: maxTags, 867 whitelist: whitelist, 868 dropdown: { 869 enabled: 1, 870 }, 871 }); 872 try { 873 callback = eval(onchange); 874 } catch (e) { 875 var callback = ''; 876 } 877 if (typeof callback == 'function') { 878 $this.on('removeTag', function () { 879 callback(); 880 }); 881 $this.on('add', function () { 882 callback(); 883 }); 884 } 885 }); 886 }, 887 textEditor: function () { 888 $(".aiz-text-editor").each(function (el) { 889 var $this = $(this); 890 var buttons = $this.data("buttons"); 891 var minHeight = $this.data("min-height"); 892 var placeholder = $this.attr("placeholder"); 893 var format = $this.data("format"); 894 895 buttons = !buttons 896 ? [ 897 ["font", ["bold", "underline", "italic", "clear"]], 898 ["para", ["ul", "ol", "paragraph"]], 899 ["style", ["style"]], 900 ["color", ["color"]], 901 ["table", ["table"]], 902 ["insert", ["link", "picture", "video"]], 903 ["view", ["fullscreen", "undo", "redo"]], 904 ] 905 : buttons; 906 placeholder = !placeholder ? "" : placeholder; 907 minHeight = !minHeight ? 200 : minHeight; 908 format = (typeof format == 'undefined') ? false : format; 909 910 $this.summernote({ 911 toolbar: buttons, 912 placeholder: placeholder, 913 height: minHeight, 914 callbacks: { 915 onImageUpload: function (data) { 916 data.pop(); 917 }, 918 onPaste: function (e) { 919 if (format) { 920 var bufferText = ((e.originalEvent || e).clipboardData || window.clipboardData).getData('Text'); 921 e.preventDefault(); 922 document.execCommand('insertText', false, bufferText); 923 } 924 } 925 } 926 }); 927 928 var nativeHtmlBuilderFunc = $this.summernote('module', 'videoDialog').createVideoNode; 929 930 $this.summernote('module', 'videoDialog').createVideoNode = function (url) { 931 var wrap = $('<div class="embed-responsive embed-responsive-16by9"></div>'); 932 var html = nativeHtmlBuilderFunc(url); 933 html = $(html).addClass('embed-responsive-item'); 934 return wrap.append(html)[0]; 935 }; 936 }); 937 }, 938 dateRange: function () { 939 $(".aiz-date-range").each(function () { 940 var $this = $(this); 941 var today = moment().startOf("day"); 942 var value = $this.val(); 943 var startDate = false;
944 var minDate = false; 945 var maxDate = false; 946 var advncdRange = false; 947 var ranges = { 948 Today: [moment(), moment()], 949 Yesterday: [ 950 moment().subtract(1, "days"), 951 moment().subtract(1, "days"), 952 ], 953 "Last 7 Days": [moment().subtract(6, "days"), moment()], 954 "Last 30 Days": [moment().subtract(29, "days"), moment()], 955 "This Month": [ 956 moment().startOf("month"), 957 moment().endOf("month"), 958 ], 959 "Last Month": [ 960 moment().subtract(1, "month").startOf("month"), 961 moment().subtract(1, "month").endOf("month"), 962 ], 963 }; 964 965 var single = $this.data("single"); 966 var monthYearDrop = $this.data("show-dropdown"); 967 var format = $this.data("format"); 968 var separator = $this.data("separator"); 969 var pastDisable = $this.data("past-disable"); 970 var futureDisable = $this.data("future-disable"); 971 var timePicker = $this.data("time-picker"); 972 var timePickerIncrement = $this.data("time-gap"); 973 var advncdRange = $this.data("advanced-range"); 974 975 single = !single ? false : single; 976 monthYearDrop = !monthYearDrop ? false : monthYearDrop; 977 format = !format ? "YYYY-MM-DD" : format; 978 separator = !separator ? " / " : separator; 979 minDate = !pastDisable ? minDate : today; 980 maxDate = !futureDisable ? maxDate : today; 981 timePicker = !timePicker ? false : timePicker; 982 timePickerIncrement = !timePickerIncrement ? 1 : timePickerIncrement; 983 ranges = !advncdRange ? "" : ranges; 984 985 $this.daterangepicker({ 986 singleDatePicker: single, 987 showDropdowns: monthYearDrop, 988 minDate: minDate, 989 maxDate: maxDate, 990 timePickerIncrement: timePickerIncrement, 991 autoUpdateInput: false, 992 ranges: ranges, 993 locale: { 994 format: format, 995 separator: separator, 996 applyLabel: "Select", 997 cancelLabel: "Clear", 998 }, 999 }); 1000 if (single) { 1001 $this.on("apply.daterangepicker", function (ev, picker) { 1002 $this.val(picker.startDate.format(format)); 1003 }); 1004 } else { 1005 $this.on("apply.daterangepicker", function (ev, picker) { 1006 $this.val( 1007 picker.startDate.format(format) + 1008 separator + 1009 picker.endDate.format(format) 1010 ); 1011 }); 1012 } 1013 1014 $this.on("cancel.daterangepicker", function (ev, picker) { 1015 $this.val(""); 1016 }); 1017 }); 1018 }, 1019 timePicker: function () { 1020 $(".aiz-time-picker").each(function () { 1021 var $this = $(this); 1022 1023 var minuteStep = $this.data("minute-step"); 1024 var defaultTime = $this.data("default"); 1025 1026 minuteStep = !minuteStep ? 10 : minuteStep; 1027 defaultTime = !defaultTime ? "00:00" : defaultTime; 1028 1029 $this.timepicker({ 1030 template: "dropdown", 1031 minuteStep: minuteStep, 1032 defaultTime: defaultTime, 1033 icons: { 1034 up: "las la-angle-up", 1035 down: "las la-angle-down", 1036 }, 1037 showInputs: false, 1038 }); 1039 }); 1040 }, 1041 fooTable: function (branch = null) { 1042 var table = '' 1043 if (branch) { 1044 table = ".aiz-table" + '-' + branch 1045 } else { 1046 table = ".aiz-table" 1047 } 1048 $(table).each(function () { 1049 var $this = $(this); 1050 1051 var empty = $this.data("empty"); 1052 empty = !empty ? AIZ.local.nothing_found : empty; 1053 1054 $this.footable({ 1055 breakpoints: { 1056 xs: 576, 1057 sm: 768, 1058 md: 992, 1059 lg: 1200, 1060 xl: 1400, 1061 }, 1062 cascade: true, 1063 on: { 1064 "ready.ft.table": function (e, ft) { 1065 AIZ.extra.deleteConfirm(); 1066 AIZ.plugins.bootstrapSelect("refresh"); 1067 }, 1068 }, 1069 empty: empty, 1070 }); 1071 }); 1072 }, 1073 notify: function (type = "dark", message = "") { 1074 $.notify( 1075 { 1076 // options 1077 message: message, 1078 }, 1079 { 1080 // settings 1081 showProgressbar: true, 1082 delay: 2500, 1083 mouse_over: "pause", 1084 placement: { 1085 from: "bottom", 1086 align: "left", 1087 }, 1088 animate: { 1089 enter: "animated fadeInUp", 1090 exit: "animated fadeOutDown", 1091 }, 1092 type: type, 1093 template: 1094 '<div data-notify="container" class="aiz-notify alert alert-{0}" role="alert">
1094' + 1095 '<button type="button" aria-hidden="true" data-notify="dismiss" class="close"><i class="las la-times"></i></button>' + 1096 '<span data-notify="message">{2}</span>' + 1097 '<div class="progress" data-notify="progressbar">' + 1098 '<div class="progress-bar" role="progressbar" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100" style="width: 0%;"></div>' + 1099 "</div>" + 1100 "</div>", 1101 } 1102 ); 1103 }, 1104 aizUppy: function () { 1105 if ($("#aiz-upload-files").length > 0) { 1106 var uppy = Uppy.Core({ 1107 autoProceed: true, 1108 }); 1109 uppy.use(Uppy.Dashboard, { 1110 target: "#aiz-upload-files", 1111 inline: true, 1112 showLinkToFileUploadResult: false, 1113 showProgressDetails: true, 1114 hideCancelButton: true, 1115 hidePauseResumeButton: true, 1116 hideUploadButton: true, 1117 proudlyDisplayPoweredByUppy: false, 1118 locale: { 1119 strings: { 1120 addMoreFiles: AIZ.local.add_more_files, 1121 addingMoreFiles: AIZ.local.adding_more_files, 1122 dropPaste: AIZ.local.drop_files_here_paste_or + ' %{browse}', 1123 browse: AIZ.local.browse, 1124 uploadComplete: AIZ.local.upload_complete, 1125 uploadPaused: AIZ.local.upload_paused, 1126 resumeUpload: AIZ.local.resume_upload, 1127 pauseUpload: AIZ.local.pause_upload, 1128 retryUpload: AIZ.local.retry_upload, 1129 cancelUpload: AIZ.local.cancel_upload, 1130 xFilesSelected: { 1131 0: '%{smart_count} ' + AIZ.local.file_selected, 1132 1: '%{smart_count} ' + AIZ.local.files_selected 1133 }, 1134 uploadingXFiles: { 1135 0: AIZ.local.uploading + ' %{smart_count} ' + AIZ.local.file, 1136 1: AIZ.local.uploading + ' %{smart_count} ' + AIZ.local.files 1137 }, 1138 processingXFiles: { 1139 0: AIZ.local.processing + ' %{smart_count} ' + AIZ.local.file, 1140 1: AIZ.local.processing + ' %{smart_count} ' + AIZ.local.files 1141 }, 1142 uploading: AIZ.local.uploading, 1143 complete: AIZ.local.complete, 1144 } 1145 } 1146 }); 1147 uppy.use(Uppy.XHRUpload, { 1148 endpoint: AIZ.data.appUrl + "/aiz-uploader/upload", 1149 fieldName: "aiz_file", 1150 formData: true, 1151 headers: { 1152 'X-CSRF-TOKEN': AIZ.data.csrf, 1153 }, 1154 }); 1155 uppy.on("upload-success", function () { 1156 AIZ.uploader.getAllUploads( 1157 AIZ.data.appUrl + "/aiz-uploader/get_uploaded_files" 1158 ); 1159 }); 1160 } 1161 }, 1162 tooltip: function () { 1163 $('body').tooltip({ selector: '[data-toggle="tooltip"]' }).click(function () { 1164 $('[data-toggle="tooltip"]').tooltip("hide"); 1165 }); 1166 }, 1167 countDown: function () { 1168 if ($(".aiz-count-down").length > 0) { 1169 $(".aiz-count-down").each(function () { 1170 1171 var $this = $(this); 1172 var date = $this.data("date"); 1173 // console.log(date) 1174 1175 $this.countdown(date).on("update.countdown", function (event) { 1176 var $this = $(this).html( 1177 event.strftime( 1178 "" + 1179 '<div class="countdown-item"><span class="countdown-digit">%-D</span></div><span class="countdown-separator">:</span>' + 1180 '<div class="countdown-item"><span class="countdown-digit">%H</span></div><span class="countdown-separator">:</span>' + 1181 '<div class="countdown-item"><span class="countdown-digit">%M</span></div><span class="countdown-separator">:</span>' + 1182 '<div class="countdown-item"><span class="countdown-digit">%S</span></div>' 1183 ) 1184 ); 1185 }); 1186 1187 }); 1188 } 1189 }, 1190 countDownCircle: function () { 1191 let html = '<div id="time"><div class="circle"><svg><circle cx="30" cy="30" r="30"></circle><circle cx="30" cy="30" r="30" id="dd"></circle></svg><div id="days">00 <br><span>Days</span></div></div>' + 1192 '<div class="circle"><svg><circle cx="30" cy="30" r="30"></circle><circle cx="30" cy="30" r="30" id="hh"></circle></svg><div id="hours">00 <br><span>Hrs</span></div></div>' + 1193 '<div class="circle"><svg><circle cx="30" cy="30" r="30"></circle><circle cx="30" cy="30" r="30" id="mm"></circle></svg><div id="minutes">00 <br><span>Min</span></div></div>' + 1194 '<div class="circle"><svg><circle cx="30" cy="30" r="30"></circle><circle cx="30" cy="30" r="30" id="ss"></circle></svg><div id="seconds">00 <br><span>Sec</span></div></div></div>'; 1195 1196 if ($(".aiz-count-down-circle").length > 0) { 1197 $('.aiz-count-down-circle').each(function () { 1198 var $this = $(this); 1199 $this.html(html); 1200 1201 let days = $this.find("#days"); 1202 let hours = $this.find("#hours"); 1203 let minutes = $this.find("#minutes"); 1204 let seconds = $this.find("#seconds"); 1205 1206 let dd = $this.find("#dd"); 1207 let hh = $this.find("#hh"); 1208 let mm = $this.find("#mm"); 1209 let ss = $this.find("#ss"); 1210 1211 // Date Format mm/dd/yyyy 1212 var endDate = $this.attr("end-date"); 1213 let now = new Date(endDate).getTime(); 1214 let x = setInterval(function () { 1215 let CountDown = new Date().getTime(); 1216 let distance = now - CountDown; 1217 if (distance > 0) { 1218 1219 // Time calculation for days, hours, minutes & seconds 1220 let d = Math.floor(distance / (1000 * 60 * 60 * 24)); 1221 let h = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60)); 1222 let m = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60)); 1223 let s = Math.floor((distance % (1000 * 60)) / (1000)); 1224 1225 // Output the results in elements with id 1226 days.html(d + '<br><span>Days</span>'); 1227 hours.html(h + '<br><span>Hrs</span>'); 1228 minutes.html(m + '<br><span>Min</span>'); 1229 seconds.html(s + '<br><span>Sec</span>'); 1230 1231 // Animate stroke 1232 dd.css('strokeDashoffset', (190 - (190 * d) / 365)); // 365 days in a year 1233 hh.css('strokeDashoffset', (190 - (190 * h) / 24)); // 24 hours in a day 1234 mm.css('strokeDashoffset', (190 - (190 * m) / 60)); // 60 minutes in an hour 1235 ss.css('strokeDashoffset', (190 - (190 * s) / 60));
1235 // 60 seconds in a minute 1236 } else { 1237 // If Countdown is over 1238 clearInterval(x); 1239 } 1240 }); 1241 }); 1242 } 1243 }, 1244 slickCarousel: function () { 1245 $(".aiz-carousel").not(".slick-initialized").each(function () { 1246 var $this = $(this); 1247 1248 1249 var slidesPerViewXs = $this.data("xs-items"); 1250 var slidesPerViewSm = $this.data("sm-items"); 1251 var slidesPerViewMd = $this.data("md-items"); 1252 var slidesPerViewLg = $this.data("lg-items"); 1253 var slidesPerViewXl = $this.data("xl-items"); 1254 var slidesPerView = $this.data("items"); 1255 1256 var slidesCenterMode = $this.data("center"); 1257 var slidesArrows = $this.data("arrows"); 1258 var slidesDots = $this.data("dots"); 1259 var slidesRows = $this.data("rows"); 1260 var slidesAutoplay = $this.data("autoplay"); 1261 var slidesFade = $this.data("fade"); 1262 var asNavFor = $this.data("nav-for"); 1263 var infinite = $this.data("infinite"); 1264 var focusOnSelect = $this.data("focus-select"); 1265 var adaptiveHeight = $this.data("auto-height"); 1266 1267 1268 var vertical = $this.data("vertical"); 1269 var verticalXs = $this.data("vertical-xs"); 1270 var verticalSm = $this.data("vertical-sm"); 1271 var verticalMd = $this.data("vertical-md"); 1272 var verticalLg = $this.data("vertical-lg"); 1273 var verticalXl = $this.data("vertical-xl"); 1274 1275 slidesPerView = !slidesPerView ? 1 : slidesPerView; 1276 slidesPerViewXl = !slidesPerViewXl ? slidesPerView : slidesPerViewXl; 1277 slidesPerViewLg = !slidesPerViewLg ? slidesPerViewXl : slidesPerViewLg; 1278 slidesPerViewMd = !slidesPerViewMd ? slidesPerViewLg : slidesPerViewMd; 1279 slidesPerViewSm = !slidesPerViewSm ? slidesPerViewMd : slidesPerViewSm; 1280 slidesPerViewXs = !slidesPerViewXs ? slidesPerViewSm : slidesPerViewXs; 1281 1282 1283 vertical = !vertical ? false : vertical; 1284 verticalXl = (typeof verticalXl == 'undefined') ? vertical : verticalXl; 1285 verticalLg = (typeof verticalLg == 'undefined') ? verticalXl : verticalLg; 1286 verticalMd = (typeof verticalMd == 'undefined') ? verticalLg : verticalMd; 1287 verticalSm = (typeof verticalSm == 'undefined') ? verticalMd : verticalSm; 1288 verticalXs = (typeof verticalXs == 'undefined') ? verticalSm : verticalXs; 1289 1290 1291 slidesCenterMode = !slidesCenterMode ? false : slidesCenterMode; 1292 slidesArrows = !slidesArrows ? false : slidesArrows; 1293 slidesDots = !slidesDots ? false : slidesDots; 1294 slidesRows = !slidesRows ? 1 : slidesRows; 1295 slidesAutoplay = !slidesAutoplay ? false : slidesAutoplay; 1296 slidesFade = !slidesFade ? false : slidesFade; 1297 asNavFor = !asNavFor ? null : asNavFor; 1298 infinite = !infinite ? false : infinite; 1299 focusOnSelect = !focusOnSelect ? false : focusOnSelect; 1300 adaptiveHeight = !adaptiveHeight ? false : adaptiveHeight; 1301 1302 1303 var slidesRtl = ($("html").attr("dir") === "rtl" && !vertical) ? true : false; 1304 var slidesRtlXL = ($("html").attr("dir") === "rtl" && !verticalXl) ? true : false; 1305 var slidesRtlLg = ($("html").attr("dir") === "rtl" && !verticalLg) ? true : false; 1306 var slidesRtlMd = ($("html").attr("dir") === "rtl" && !verticalMd) ? true : false; 1307 var slidesRtlSm = ($("html").attr("dir") === "rtl" && !verticalSm) ? true : false; 1308 var slidesRtlXs = ($("html").attr("dir") === "rtl" && !verticalXs) ? true : false; 1309 1310 $this.slick({ 1311 slidesToShow: slidesPerView, 1312 autoplay: slidesAutoplay, 1313 dots: slidesDots, 1314 arrows: slidesArrows, 1315 infinite: infinite, 1316 vertical: vertical, 1317 rtl: slidesRtl, 1318 rows: slidesRows, 1319 centerPadding: "0px", 1320 centerMode: slidesCenterMode, 1321 fade: slidesFade, 1322 asNavFor: asNavFor, 1323 focusOnSelect: focusOnSelect, 1324 adaptiveHeight: adaptiveHeight, 1325 slidesToScroll: 1, 1326 prevArrow: 1327 '<button type="button" class="slick-prev"><i class="las la-angle-left"></i></button>', 1328 nextArrow: 1329 '<button type="button" class="slick-next"><i class="las la-angle-right"></i></button>', 1330 responsive: [ 1331 { 1332 breakpoint: 1500, 1333 settings: { 1334 slidesToShow: slidesPerViewXl, 1335 vertical: verticalXl, 1336 rtl: slidesRtlXL, 1337 }, 1338 }, 1339 { 1340 breakpoint: 1200, 1341 settings: { 1342 slidesToShow: slidesPerViewLg, 1343 vertical: verticalLg, 1344 rtl: slidesRtlLg, 1345 }, 1346 }, 1347 { 1348 breakpoint: 992, 1349 settings: { 1350 slidesToShow: slidesPerViewMd, 1351 vertical: verticalMd, 1352 rtl: slidesRtlMd, 1353 }, 1354 }, 1355 { 1356 breakpoint: 768, 1357 settings: { 1358 slidesToShow: slidesPerViewSm, 1359 vertical: verticalSm, 1360 rtl: slidesRtlSm, 1361 }, 1362 }, 1363 { 1364 breakpoint: 576, 1365 settings: { 1366 slidesToShow: slidesPerViewXs, 1367 vertical: verticalXs, 1368 rtl: slidesRtlXs, 1369 }, 1370 }, 1371 ], 1372 }); 1373 }); 1374 }, 1375 chart: function (selector, config) { 1376 if (!$(selector).length) return; 1377 1378 $(selector).each(function () { 1379 var $this = $(this); 1380 1381 var aizChart = new Chart($this, config); 1382 }); 1383 }, 1384 noUiSlider: function () { 1385 if ($(".aiz-range-slider")[0]) { 1386 $(".aiz-range-slider").each(function () { 1387 var c = document.getElementById("input-slider-range"), 1388 d = document.getElementById("input-slider-range-value-low"), 1389 e = document.getElementById("input-slider-range-value-high"), 1390 f = [d, e]; 1391 1392 noUiSlider.create(c, { 1393 start: [ 1394 parseInt(d.getAttribute("data-range-value-low")), 1395 parseInt(e.getAttribute("data-range-value-high")), 1396 ], 1397 connect: !0, 1398 range: { 1399 min: parseInt(c.getAttribute("data-range-value-min")), 1400 max: parseInt(c.getAttribute("data-range-value-max")), 1401 }, 1402 }), 1403 1404 c.noUiSlider.on("update", function (a, b) { 1405 f[b].textContent = a[b]; 1406 }), 1407 c.noUiSlider.on("change", function (a, b) { 1408 rangefilter(a); 1409 }); 1410 }); 1411 } 1412 }, 1413 zoom: function () { 1414 if ($('.img-zoom')[0]) { 1415 $('.img-zoom').zoom({ 1416 magnify: 1.5 1417 }); 1418 if ((('ontouchstart' in window) || (navigator.maxTouchPoints > 0) || (navigator.msMaxTouchPoints > 0))) { 1419 $('.img-zoom').trigger('zoom.destroy'); 1420 } 1421 } 1422 }, 1423 jsSocials: function () { 1424 if ($('.aiz-share')[0]) { 1425 $('.aiz-share').jsSocials({ 1426 showLabel: false, 1427 showCount: false, 1428 shares: [ 1429 // { 1430 // share: "email",
1431 // logo: "lar la-envelope" 1432 // }, 1433 { 1434 share: "twitter", 1435 logo: "lab la-twitter" 1436 }, 1437 { 1438 share: "facebook", 1439 logo: "lab la-facebook-f" 1440 }, 1441 // { 1442 // share: "linkedin", 1443 // logo: "lab la-linkedin-in" 1444 // }, 1445 { 1446 share: "whatsapp", 1447 logo: "lab la-whatsapp" 1448 } 1449 ] 1450 }); 1451 } 1452 }, 1453 particles: function () { 1454 particlesJS('particles-js', 1455 1456 { 1457 "particles": { 1458 "number": { 1459 "value": 80, 1460 "density": { 1461 "enable": true, 1462 "value_area": 800 1463 } 1464 }, 1465 "color": { 1466 "value": "#dfdfe6" 1467 }, 1468 "shape": { 1469 "type": "circle", 1470 "stroke": { 1471 "width": 0, 1472 "color": "#000000" 1473 }, 1474 "polygon": { 1475 "nb_sides": 5 1476 }, 1477 "image": { 1478 "src": "img/github.svg", 1479 "width": 100, 1480 "height": 100 1481 } 1482 }, 1483 "opacity": { 1484 "value": 0.5, 1485 "random": false, 1486 "anim": { 1487 "enable": false, 1488 "speed": 1, 1489 "opacity_min": 0.1, 1490 "sync": false 1491 } 1492 }, 1493 "size": { 1494 "value": 5, 1495 "random": true, 1496 "anim": { 1497 "enable": false, 1498 "speed": 40, 1499 "size_min": 0.1, 1500 "sync": false 1501 } 1502 }, 1503 "line_linked": { 1504 "enable": true, 1505 "distance": 150, 1506 "color": "#dfdfe6", 1507 "opacity": 0.4, 1508 "width": 1 1509 }, 1510 "move": { 1511 "enable": true, 1512 "speed": 6, 1513 "direction": "none", 1514 "random": false, 1515 "straight": false, 1516 "out_mode": "out", 1517 "attract": { 1518 "enable": false, 1519 "rotateX": 600, 1520 "rotateY": 1200 1521 } 1522 } 1523 }, 1524 "interactivity": { 1525 "detect_on": "canvas", 1526 "events": { 1527 "onhover": { 1528 "enable": true, 1529 "mode": "repulse" 1530 }, 1531 "onclick": { 1532 "enable": true, 1533 "mode": "push" 1534 }, 1535 "resize": true 1536 }, 1537 "modes": { 1538 "grab": { 1539 "distance": 400, 1540 "line_linked": { 1541 "opacity": 1 1542 } 1543 }, 1544 "bubble": { 1545 "distance": 400, 1546 "size": 40, 1547 "duration": 2, 1548 "opacity": 8, 1549 "speed": 3 1550 }, 1551 "repulse": { 1552 "distance": 200 1553 }, 1554 "push": { 1555 "particles_nb": 4 1556 }, 1557 "remove": { 1558 "particles_nb": 2 1559 } 1560 } 1561 }, 1562 "retina_detect": true, 1563 "config_demo": { 1564 "hide_card": false, 1565 "background_color": "#b61924", 1566 "background_image": "", 1567 "background_position": "50% 50%", 1568 "background_repeat": "no-repeat", 1569 "background_size": "cover" 1570 } 1571 }); 1572 } 1573 }; 1574 AIZ.extra = { 1575 refreshToken: function () { 1576 $.get(AIZ.data.appUrl + '/refresh-csrf').done(function (data) { 1577 AIZ.data.csrf = data; 1578 }); 1579 // console.log(AIZ.data.csrf); 1580 }, 1581 mobileNavToggle: function () { 1582 if (window.matchMedia('(max-width: 1200px)').matches) { 1583 $('body').addClass('side-menu-closed') 1584 } 1585 $('[data-toggle="aiz-mobile-nav"]').on("click", function () { 1586 if ($("body").hasClass("side-menu-open")) { 1587 $("body").addClass("side-menu-closed").removeClass("side-menu-open"); 1588 } else if ($("body").hasClass("side-menu-closed")) { 1589 $("body").removeClass("side-menu-closed").addClass("side-menu-open"); 1590 } else { 1591 $("body").removeClass("side-menu-open").addClass("side-menu-closed"); 1592 } 1593 }); 1594 $(".aiz-sidebar-overlay").on("click", function () { 1595 $("body").removeClass("side-menu-open").addClass('side-menu-closed'); 1596 }); 1597 }, 1598 initActiveMenu: function () { 1599 $('[data-toggle="aiz-side-menu"] a').each(function () { 1600 var pageUrl = window.location.href.split(/[?#]/)[0]; 1601 if (this.href == pageUrl || $(this).hasClass("active")) { 1602 $(this).addClass("active"); 1603 $(this).closest(".aiz-side-nav-item").addClass("mm-active"); 1604 $(this) 1605 .closest(".level-2") 1606 .siblings("a") 1607 .addClass("level-2-active"); 1608 $(this) 1609 .closest(".level-3") 1610 .siblings("a") 1611 .addClass("level-3-active"); 1612 } 1613 }); 1614 }, 1615 deleteConfirm: function () { 1616 $(".confirm-delete").click(function (e) { 1617 1618 e.preventDefault(); 1619 var url = $(this).data("href"); 1620 if($(this).data("message")){ 1621 var msg = $(this).data("message"); 1622 var btn_title = $(this).data("btntitle"); 1623 $(document).find('.title-for-del').html(msg); 1624 $(document).find('.btn-for-submit').html(btn_title); 1625 $(document).find('#cancel-reason').attr("required", 'required').show(); 1626 }else{ 1627 $(document).find('#cancel-reason').removeAttr("required").hide(); 1628 } 1629 1630 $("#delete-modal").modal("show"); 1631 $("#delete-link").attr("href", url); 1632 }); 1633 1634 $(".confirm-cancel").click(function (e) { 1635 e.preventDefault(); 1636 var url = $(this).data("href"); 1637 $("#cancel-modal").modal("show"); 1638 $("#cancel-link").attr("href", url); 1639 }); 1640 1641 $(".confirm-complete").click(function (e) { 1642 e.preventDefault(); 1643 var url = $(this).data("href"); 1644 $("#complete-modal").modal("show"); 1645 $("#comfirm-link").attr("href", url); 1646 }); 1647 1648 $(".confirm-alert").click(function (e) { 1649 e.preventDefault(); 1650 var url = $(this).data("href"); 1651 var target = $(this).data("target"); 1652 $(target).modal("show"); 1653 $(target).find(".comfirm-link").attr("href", url); 1654 $("#comfirm-link").attr("href", url); 1655 }); 1656 }, 1657 bytesToSize: function (bytes) { 1658 var sizes = ["Bytes", "KB", "MB", "GB", "TB"]; 1659 if (bytes == 0) return "0 Byte"; 1660 var i = parseInt(Math.floor(Math.log(bytes) / Math.log(1024))); 1661 return Math.round(bytes / Math.pow(1024, i), 2) + " " + sizes[i]; 1662 }, 1663 multiModal: function () { 1664 $(document).on("show.bs.modal", ".modal", function (event) { 1665 var zIndex = 1040 + 10 * $(".modal:visible").length; 1666 $(this).css("z-index", zIndex); 1667 setTimeout(function () { 1668 $(".modal-backdrop") 1669 .not(".modal-stack") 1670 .css("z-index", zIndex - 1) 1671 .addClass("modal-stack"); 1672 }, 0); 1673 }); 1674 $(document).on('hidden.bs.modal', function () { 1675 if ($('.modal.show').length > 0) { 1676 $('body').addClass('modal-open'); 1677 } 1678 }); 1679 }, 1680 bsCustomFile: function () { 1681 $(".custom-file input").change(function (e) { 1682 var files = []; 1683 for (var i = 0; i < $(this)[0].files.length; i++) { 1684 files.push($(this)[0].files[i].name); 1685 } 1686 if (files.length === 1) { 1687 $(this).next(".custom-file-name").html(files[0]); 1688 } else if (files.length > 1) { 1689 $(this) 1690 .next(".custom-file-name") 1691 .html(files.length + " " + AIZ.local.files_selected); 1692 } else { 1693 $(this).next(".custom-file-name").html(AIZ.local.choose_file); 1694 } 1695 }); 1696 }, 1697 stopPropagation: function () { 1698 $(document).on('click', '.stop-propagation', function (e) { 1699 e.stopPropagation(); 1700 }); 1701 }, 1702 outsideClickHide: function () { 1703 $(document).on('click', function (e) { 1704 $('.document-click-d-none').addClass('d-none'); 1705 }); 1706 }, 1707 inputRating: function () { 1708 $(".rating-input").each(function () { 1709 $(this) 1710 .find("label") 1711 .on({ 1712 mouseover: function (event) { 1713 $(this).find("i").addClass("hover"); 1714 $(this).prevAll().find("i").addClass("hover"); 1715 }, 1716 mouseleave: function (event) { 1717 $(this).find("i").removeClass("hover"); 1718 $(this).prevAll().find("i").removeClass("hover"); 1719 }, 1720 click: function (event) { 1721 $(this).siblings().find("i").removeClass("active"); 1722 $(this).find("i").addClass("active"); 1723 $(this).prevAll().find("i").addClass("active"); 1724 }, 1725 }); 1726 if ($(this).find("input").is(":checked")) { 1727 $(this) 1728 .find("label") 1729 .siblings() 1730 .find("i") 1731 .removeClass("active"); 1732 $(this) 1733 .find("input:checked") 1734 .closest("label") 1735 .find("i") 1736 .addClass("active"); 1737 $(this) 1738 .find("input:checked") 1739 .closest("label") 1740 .prevAll() 1741 .find("i") 1742 .addClass("active"); 1743 } 1744 }); 1745 }, 1746 scrollToBottom: function () { 1747 $(".scroll-to-btm").each(function (i, el) { 1748 el.scrollTop = el.scrollHeight; 1749 }); 1750 }, 1751 classToggle: function () { 1752 $(document).on('click', '[data-toggle="class-toggle"]', function () { 1753 var $this = $(this); 1754 var target = $this.data("target"); 1755 var sameTriggers = $this.data("same"); 1756 var backdrop = $(this).data("backdrop"); 1757 1758 if ($(target).hasClass("active")) { 1759 $(target).removeClass("active"); 1760 $(sameTriggers).removeClass("active"); 1761 $this.removeClass("active"); 1762 $('body').removeClass("overflow-hidden"); 1763 } else { 1764 $(target).addClass("active"); 1765 $this.addClass("active"); 1766 if (backdrop == 'static') { 1767 $('body').addClass("overflow-hidden"); 1768 } 1769 } 1770 }); 1771 }, 1772 collapseSidebar: function () { 1773 $(document).on('click', '[data-toggle="collapse-sidebar"]', function (i, el) { 1774 var $this = $(this); 1775 var target = $(this).data("target"); 1776 var sameTriggers = $(this).data("siblings"); 1777 1778 // var showOverlay = $this.data('overlay'); 1779 // var overlayMarkup = '<div class="overlay overlay-fixed dark c-pointer" data-toggle="collapse-sidebar" data-target="'+target+'"></div>'; 1780 1781 // showOverlay = !showOverlay ? true : showOverlay; 1782 1783 // if (showOverlay && $(target).siblings('.overlay').length !== 1) { 1784 // $(target).after(overlayMarkup); 1785 // } 1786 1787 e.preventDefault(); 1788 if ($(target).hasClass("opened")) { 1789 $(target).removeClass("opened"); 1790 $(sameTriggers).removeClass("opened"); 1791 $($this).removeClass("opened"); 1792 } else { 1793 $(target).addClass("opened"); 1794 $($this).addClass("opened"); 1795 } 1796 }); 1797 }, 1798 autoScroll: function () { 1799 if ($(".aiz-auto-scroll").length > 0) { 1800 $(".aiz-auto-scroll").each(function () { 1801 var options = $(this).data("options"); 1802 1803 options = !options 1804 ? '{"delay" : 2000 ,"amount" : 70 }' 1805 : options; 1806 1807 options = JSON.parse(options); 1808 1809 this.delay = parseInt(options["delay"]) || 2000; 1810 this.amount = parseInt(options["amount"]) || 70; 1811 this.autoScroll = $(this); 1812 this.iScrollHeight = this.autoScroll.prop("scrollHeight"); 1813 this.iScrollTop = this.autoScroll.prop("scrollTop"); 1814 this.iHeight = this.autoScroll.height(); 1815 1816 var self = this; 1817 this.timerId = setInterval(function () { 1818 if ( 1819 self.iScrollTop + self.iHeight < 1820 self.iScrollHeight 1821 ) { 1822 self.iScrollTop = self.autoScroll.prop("scrollTop"); 1823 self.iScrollTop += self.amount; 1824 self.autoScroll.animate( 1825
1825 { scrollTop: self.iScrollTop }, 1826 "slow", 1827 "linear" 1828 ); 1829 } else { 1830 self.iScrollTop -= self.iScrollTop; 1831 self.autoScroll.animate( 1832 { scrollTop: "0px" }, 1833 "fast", 1834 "swing" 1835 ); 1836 } 1837 }, self.delay); 1838 }); 1839 } 1840 }, 1841 addMore: function () { 1842 $('[data-toggle="add-more"]').each(function () { 1843 var $this = $(this); 1844 var content = $this.data("content"); 1845 var target = $this.data("target"); 1846 1847 $this.on("click", function (e) { 1848 e.preventDefault(); 1849 $(target).append(content); 1850 AIZ.plugins.bootstrapSelect(); 1851 }); 1852 }); 1853 }, 1854 removeParent: function () { 1855 $(document).on( 1856 "click", 1857 '[data-toggle="remove-parent"]', 1858 function () { 1859 var $this = $(this); 1860 var parent = $this.data("parent"); 1861 $this.closest(parent).remove(); 1862 } 1863 ); 1864 }, 1865 selectHideShow: function () { 1866 $('[data-show="selectShow"]').each(function () { 1867 var target = $(this).data("target"); 1868 $(this).on("change", function () { 1869 var value = $(this).val(); 1870 // console.log(value); 1871 $(target) 1872 .children() 1873 .not("." + value) 1874 .addClass("d-none"); 1875 $(target) 1876 .find("." + value) 1877 .removeClass("d-none"); 1878 }); 1879 }); 1880 }, 1881 plusMinus: function () { 1882 $('.aiz-plus-minus input').each(function () { 1883 var $this = $(this); 1884 var min = parseInt($(this).attr("min")); 1885 var max = parseInt($(this).attr("max")); 1886 var value = parseInt($(this).val()); 1887 if (value <= min) { 1888 $this.siblings('[data-type="minus"]').attr('disabled', true) 1889 } else if ($this.siblings('[data-type="minus"]').attr('disabled')) { 1890 $this.siblings('[data-type="minus"]').removeAttr('disabled') 1891 } 1892 if (value >= max) { 1893 $this.siblings('[data-type="plus"]').attr('disabled', true) 1894 } else if ($this.siblings('[data-type="plus"]').attr('disabled')) { 1895 $this.siblings('[data-type="plus"]').removeAttr('disabled') 1896 } 1897 }); 1898 $('.aiz-plus-minus button').off('click').on('click', function (e) { 1899 e.preventDefault(); 1900 1901 var fieldName = $(this).attr("data-field"); 1902 var type = $(this).attr("data-type"); 1903 var input = $("input[name='" + fieldName + "']"); 1904 var currentVal = parseInt(input.val()); 1905 1906 if (!isNaN(currentVal)) { 1907 if (type == "minus") { 1908 if (currentVal > input.attr("min")) { 1909 input.val(currentVal - 1).change(); 1910 } 1911 if (parseInt(input.val()) == input.attr("min")) { 1912 $(this).attr("disabled", true); 1913 } 1914 } else if (type == "plus") { 1915 if (currentVal < input.attr("max")) { 1916 input.val(currentVal + 1).change(); 1917 } 1918 if (parseInt(input.val()) == input.attr("max")) { 1919 $(this).attr("disabled", true); 1920 } 1921 } 1922 1923 } else { 1924 input.val(0); 1925 } 1926 }); 1927 $('.aiz-plus-minus input').off('change').on('change', function () { 1928 var minValue = parseInt($(this).attr("min")); 1929 var maxValue = parseInt($(this).attr("max")); 1930 var valueCurrent = parseInt($(this).val()); 1931 1932 name = $(this).attr("name");
1933 if (valueCurrent >= minValue) { 1934 $(this).siblings("[data-type='minus']").removeAttr("disabled"); 1935 } else { 1936 alert("Sorry, the minimum limit has been reached"); 1937 $(this).val(minValue); 1938 } 1939 if (valueCurrent <= maxValue) { 1940 $(this).siblings("[data-type='plus']").removeAttr("disabled"); 1941 } else { 1942 alert("Sorry, the maximum limit has been reached"); 1943 $(this).val(maxValue); 1944 } 1945 1946 if (typeof getVariantPrice === "function") { 1947 getVariantPrice(); 1948 } 1949 1950 }); 1951 }, 1952 hovCategoryMenu: function () { 1953 $("#category-menu-icon, #category-sidebar") 1954 .on("mouseover", function (event) { 1955 $("#hover-category-menu").addClass('active').removeClass('d-none'); 1956 }) 1957 .on("mouseout", function (event) { 1958 $("#hover-category-menu").addClass('d-none').removeClass('active'); 1959 }); 1960 }, 1961 clickCategoryMenu: function () { 1962 var menu = $("#click-category-menu"); 1963 menu.hide(); 1964 menu.removeClass('d-none'); 1965 $("#category-menu-bar") 1966 .on("click", function (event) { 1967 menu.slideToggle(500); 1968 if ($("#category-menu-bar-icon").hasClass('show')) { 1969 $("#category-menu-bar-icon").removeClass('show'); 1970 } else { 1971 $("#category-menu-bar-icon").addClass('show'); 1972 } 1973 }); 1974 }, 1975 hovUserTopMenu: function () { 1976 $("#nav-user-info") 1977 // .on("click", function (event) { 1978 // $(".hover-user-top-menu").addClass('active'); 1979 // }) 1980 .on("mouseout", function (event) { 1981 // $(".hover-user-top-menu").removeClass('active'); 1982 // $('body').trigger('click'); 1983 }); 1984 }, 1985 trimAppUrl: function () { 1986 if (AIZ.data.appUrl.slice(-1) == '/') { 1987 AIZ.data.appUrl = AIZ.data.appUrl.slice(0, AIZ.data.appUrl.length - 1); 1988 // console.log(AIZ.data.appUrl); 1989 } 1990 }, 1991 setCookie: function (cname, cvalue, exdays) { 1992 var d = new Date(); 1993 d.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000)); 1994 var expires = "expires=" + d.toUTCString(); 1995 document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/"; 1996 }, 1997 getCookie: function (cname) { 1998 var name = cname + "="; 1999 var decodedCookie = decodeURIComponent(document.cookie); 2000 var ca = decodedCookie.split(';'); 2001 for (var i = 0; i < ca.length; i++) { 2002 var c = ca[i]; 2003 while (c.charAt(0) === ' ') { 2004 c = c.substring(1); 2005 } 2006 if (c.indexOf(name) === 0) { 2007 return c.substring(name.length, c.length); 2008 } 2009 } 2010 return ""; 2011 }, 2012 acceptCookie: function () { 2013 if (!AIZ.extra.getCookie("acceptCookies")) { 2014 $(".aiz-cookie-alert").addClass("show"); 2015 } 2016 $(".aiz-cookie-accept").on("click", function () { 2017 AIZ.extra.setCookie("acceptCookies", true, 60); 2018 $(".aiz-cookie-alert").removeClass("show"); 2019 }); 2020 }, 2021 setSession: function () { 2022 $('.set-session').each(function () { 2023 var $this = $(this); 2024 var key = $this.data('key'); 2025 var value = $this.data('value'); 2026 2027 const now = new Date(); 2028 const item = { 2029 value: value, 2030 expiry: now.getTime() + 3600000, 2031 }; 2032 2033 $this.on('click', function () { 2034 localStorage.setItem(key, JSON.stringify(item)); 2035 }); 2036 }); 2037 }, 2038 showSessionPopup: function () { 2039 $('.removable-session').each(function () { 2040 var $this = $(this); 2041 var key = $this.data('key'); 2042 var value = $this.data('value'); 2043 var item = {}; 2044 if (localStorage.getItem(key)) { 2045 item = localStorage.getItem(key); 2046 item = JSON.parse(item); 2047 } 2048 const now = new Date() 2049 if (typeof item.expiry == 'undefined' || now.getTime() > item.expiry) { 2050 $this.removeClass('d-none'); 2051 } 2052 }); 2053 } 2054 }; 2055 2056 setInterval(function () { 2057 AIZ.extra.refreshToken(); 2058 }, 3600000); 2059 2060 // init aiz plugins, extra options 2061 AIZ.extra.initActiveMenu(); 2062 AIZ.extra.mobileNavToggle(); 2063 AIZ.extra.deleteConfirm(); 2064 AIZ.extra.multiModal(); 2065 AIZ.extra.inputRating(); 2066 AIZ.extra.bsCustomFile(); 2067 AIZ.extra.stopPropagation(); 2068 AIZ.extra.outsideClickHide(); 2069 AIZ.extra.scrollToBottom();
2070 AIZ.extra.classToggle(); 2071 AIZ.extra.collapseSidebar(); 2072 AIZ.extra.autoScroll(); 2073 AIZ.extra.addMore(); 2074 AIZ.extra.removeParent(); 2075 AIZ.extra.selectHideShow(); 2076 AIZ.extra.plusMinus(); 2077 AIZ.extra.hovCategoryMenu(); 2078 AIZ.extra.clickCategoryMenu(); 2079 AIZ.extra.hovUserTopMenu(); 2080 AIZ.extra.trimAppUrl(); 2081 AIZ.extra.acceptCookie(); 2082 AIZ.extra.setSession(); 2083 AIZ.extra.showSessionPopup() 2084 2085 AIZ.plugins.metismenu(); 2086 AIZ.plugins.bootstrapSelect(); 2087 AIZ.plugins.tagify(); 2088 AIZ.plugins.textEditor(); 2089 AIZ.plugins.tooltip(); 2090 AIZ.plugins.countDown(); 2091 AIZ.plugins.countDownCircle(); 2092 AIZ.plugins.dateRange(); 2093 AIZ.plugins.timePicker(); 2094 AIZ.plugins.fooTable(); 2095 AIZ.plugins.slickCarousel(); 2096 AIZ.plugins.noUiSlider(); 2097 AIZ.plugins.zoom(); 2098 AIZ.plugins.jsSocials(); 2099 2100 // initialization of aiz uploader 2101 AIZ.uploader.initForInput(); 2102 AIZ.uploader.removeAttachment(); 2103 AIZ.uploader.previewGenerate(); 2104 2105 // $(document).ajaxComplete(function(){ 2106 // AIZ.plugins.bootstrapSelect('refresh'); 2107 // }); 2108 2109})(jQuery); 2110 2111function showLoader(el) { 2112 el.append(`<div class="text-center"><img src="/public/assets/img/loader-apple.gif" class="w-25" /></div>`); 2113}
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.