1// Search Apps 2$(document).on("keydown", "#search-form", function (e) { 3 var id = this.id; 4 var base_url = document 5 .querySelector("meta[property='base_url']") 6 .getAttribute("content"); 7 var search_url = base_url + "/" + "json-search"; 8 9 $("#" + id).autocomplete({ 10 minLength: 0, 11 source: function (request, response) { 12 $.ajax({ 13 headers: { 14 "X-CSRF-TOKEN": $('meta[name="csrf-token"]').attr("content"), 15 }, 16 url: search_url, 17 type: "post", 18 dataType: "json", 19 data: { 20 search: request.term, 21 request: 1, 22 }, 23 success: function (data) { 24 response(data); 25 }, 26 }); 27 }, 28 select: function (event, ui) { 29 window.location.href = ui.item.url; 30 return false; 31 }, 32 open: function () { 33 $("ul.ui-menu").width($(this).innerWidth()); 34 }, 35 create: function (event, ui) { 36 $(this).data("ui-autocomplete")._renderItem = function (ul, item) { 37 var rich_html = 38 '<div class="d-flex flex-row"><div><img src=\'' + 39 item.image + 40 '\' class="rounded" /></div><div class="my-auto"><strong>' + 41 item.title + 42 "</strong>" + 43 "</span></div></div>"; 44 return $("<li></li>") 45 .data("item.autocomplete", item) 46 .append(rich_html) 47 .appendTo(ul); 48 }; 49 }, 50 }); 51}); 52 53// Social media share 54function sm_share(url, title, w, h) { 55 "use strict"; 56 57 var dualScreenLeft = 58 window.screenLeft != undefined ? window.screenLeft : screen.left; 59 var dualScreenTop = 60 window.screenTop != undefined ? window.screenTop : screen.top; 61 62 var width = window.innerWidth 63 ? window.innerWidth 64 : document.documentElement.clientWidth 65 ? document.documentElement.clientWidth 66 : screen.width; 67 var height = window.innerHeight 68 ? window.innerHeight 69 : document.documentElement.clientHeight 70 ? document.documentElement.clientHeight 71 : screen.height; 72 73 var left = width / 2 - w / 2 + dualScreenLeft; 74 var top = height / 2 - h / 2 + dualScreenTop; 75 var newWindow = window.open( 76 url, 77 title, 78 "scrollbars=yes, width=" + 79 w + 80 ", height=" + 81 h + 82 ", top=" + 83 top + 84 ", left=" + 85 left 86 ); 87 88 if (window.focus) { 89 newWindow.focus(); 90 } 91} 92 93// Infinite Scroll 94$(document).ready(function () { 95 "use strict"; 96 97 if (document.getElementById("infinite-scroll")) { 98 $("#infinite-scroll").infiniteScroll({ 99 path: ".pagination__next", 100 append: ".infinity-scroll", 101 history: false, 102 hideNav: ".pagination-next", 103 status: ".page-load-status", 104 }); 105 } 106}); 107 108// Apps star ratings 109$(function () { 110 "use strict"; 111 112 $(".ratings").rating(function (vote, event, data_vote_id) { 113 $.ajax({ 114 headers: { 115 "X-CSRF-TOKEN": $('meta[name="csrf-token"]').attr("content"), 116 }, 117 url: "/vote/" + data_vote_id + "", 118 type: "POST", 119 data: { 120 vote: vote, 121 }, 122 success: function (data) { 123 $(".voteinfo").fadeIn("slow"); 124 $(".voteinfo").html(data); 125 $(".voteinfo").delay(2000).fadeOut("slow"); 126 }, 127 }); 128 }); 129}); 130 131// Comment & Review form apps star ratings 132$(function () { 133 "use strict"; 134 135 $(".user_ratings").rating(function () {}); 136}); 137 138$(document).ready(function () { 139 "use strict"; 140 141 $("#terms a").click(function (e) { 142 var txt = $(e.target).text(); 143 $("#search-form").val(txt); 144 $("#search-form").keydown(); 145 $("#search-form").keydown(); 146 return false; 147 }); 148}); 149 150// Redirections 151$(document).ready(function () { 152 "use strict"; 153 154 if (window.location.href.indexOf("/redirect/") > -1) { 155 var id_data = document.getElementById("redirect"); 156 var app_id = id_data.getAttribute("data-app-id"); 157 var app_delay = id_data.getAttribute("data-redirection-delay"); 158 159 let time = app_delay / 1000 - 1; 160 let countdown = setInterval(update, 1000); 161 162 function update() { 163 let min = Math.floor(time); 164 let sec = time; 165 document.getElementById("countdown").innerHTML = `(${sec})`; 166 time--; 167 min == 0 && sec == 0 ? clearInterval(countdown) : countdown; 168 } 169 170 var base_url = document 171 .querySelector("meta[property='base_url']") 172 .getAttribute("content"); 173 174 window.setTimeout(function () { 175 window.location.href = base_url + "/download/" + app_id + ""; 176 }, app_delay); 177 } 178}); 179 180// Screenshot slider 181$(document).ready(function () { 182 "use strict"; 183 184 $("#right").click(function () { 185 var leftPos = $("#screenshot-main").scrollLeft(); 186 $("#screenshot-main").animate( 187 { 188 scrollLeft: leftPos + 250, 189 }, 190 600 191 ); 192 }); 193 194 $("#left").click(function () { 195 var leftPos2 = $("#screenshot-main").scrollLeft(); 196 $("#screenshot-main").animate( 197 { 198 scrollLeft: leftPos2 - 250, 199 }, 200 600 201 ); 202 }); 203 204 var ar = new Array(33, 34, 35, 36, 37, 38, 39, 40); 205 206 $(document).keydown(function (e) { 207 var key = e.which; 208 if ($.inArray(key, ar) > -1) { 209 e.preventDefault(); 210 return false;
211 } 212 return true; 213 }); 214}); 215 216// Smooth Scroll 217$(document).ready(function () { 218 "use strict"; 219 220 $(".add-comment").click(function () { 221 event.preventDefault(); 222 document.querySelector(".comment-box").style.display = "block"; 223 scrollSmoothTo("review-title"); 224 }); 225}); 226 227function scrollSmoothTo(elementId) { 228 "use strict"; 229 230 var element = document.getElementById(elementId); 231 element.scrollIntoView({ 232 block: "start", 233 behavior: "smooth", 234 }); 235} 236 237// ReadMoreJS 238/** 239 * @app ReadMoreJS 240 * @desc Breaks the content of an element to the specified number of words 241 * @version 1.1.0 242 * @license The MIT License (MIT) 243 * @author George Raptis | http://georap.gr 244 */ 245(function (win, doc, undef) { 246 "use strict"; 247 248 var RM = {}; 249 250 RM.helpers = { 251 extendObj: function () { 252 for (var i = 1, l = arguments.length; i < l; i++) { 253 for (var key in arguments[i]) { 254 if (arguments[i].hasOwnProperty(key)) { 255 if ( 256 arguments[i][key] && 257 arguments[i][key].constructor && 258 arguments[i][key].constructor === Object 259 ) { 260 arguments[0][key] = arguments[0][key] || {}; 261 this.extendObj(arguments[0][key], arguments[i][key]); 262 } else { 263 arguments[0][key] = arguments[i][key]; 264 } 265 } 266 } 267 } 268 return arguments[0]; 269 }, 270 }; 271 272 RM.countWords = function (str) { 273 return str.split(/\s+/).length; 274 }; 275 276 RM.generateTrimmed = function (str, wordsNum) { 277 return str.split(/\s+/).slice(0, wordsNum).join(" ") + "..."; 278 }; 279 280 RM.init = function (options) { 281 var defaults = { 282 target: "", 283 numOfWords: 50, 284 toggle: true, 285 moreLink: "read more...", 286 lessLink: "read less", 287 linkClass: "rm-link", 288 containerClass: false, 289 }; 290 options = RM.helpers.extendObj({}, defaults, options); 291 292 var target = doc.querySelectorAll(options.target), 293 targetLen = target.length, 294 targetContent, 295 trimmedTargetContent, 296 targetContentWords, 297 initArr = [], 298 trimmedArr = [], 299 i, 300 j, 301 l, 302 moreContainer, 303 rmLink, 304 moreLinkID, 305 index; 306 307 for (i = 0; i < targetLen; i++) { 308 targetContent = target[i].innerHTML; 309 trimmedTargetContent = RM.generateTrimmed( 310 targetContent, 311 options.numOfWords 312 ); 313 targetContentWords = RM.countWords(targetContent); 314 315 initArr.push(targetContent); 316 trimmedArr.push(trimmedTargetContent); 317 318 if (options.numOfWords < targetContentWords - 1) { 319 target[i].innerHTML = trimmedArr[i]; 320 321 moreContainer = doc.createElement("div"); 322 if (options.containerClass) { 323 moreContainer.className = options.containerClass; 324 } 325 326 moreContainer.innerHTML = 327 '<a id="rm-more_' + 328 i + 329 '"' + 330 ' class="' + 331 options.linkClass + 332 '"' + 333 ' style="cursor:pointer;" data-readmore="anchor">' + 334 options.moreLink + 335 "</a>"; 336 target[i].parentNode.insertBefore(moreContainer, target[i].nextSibling); 337 } 338 } 339 340 rmLink = doc.querySelectorAll('[data-readmore="anchor"]'); 341 342 for (j = 0, l = rmLink.length; j < l; j++) { 343 rmLink[j].onclick = function () { 344 moreLinkID = this.getAttribute("id"); 345 index = moreLinkID.split("_")[1]; 346 347 if (this.getAttribute("data-clicked") !== "true") { 348 target[index].innerHTML = initArr[index]; 349 if (options.toggle !== false) { 350 this.innerHTML = options.lessLink; 351 this.setAttribute("data-clicked", true); 352 } else { 353 this.innerHTML = ""; 354 } 355 } else { 356 target[index].innerHTML = trimmedArr[index]; 357 this.innerHTML = options.moreLink; 358 this.setAttribute("data-clicked", false); 359 } 360 }; 361 } 362 }; 363 364 window.$readMoreJS = RM; 365})(this, this.document); 366 367// Validate Email 368function validateEmail($email) { 369 "use strict"; 370 371 var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/; 372 return emailReg.test($email); 373} 374 375// Comment Form Control 376function form_control() { 377 "use strict"; 378 379 var name = $.trim($("#name").val()); 380 var email = $.trim($("#email").val()); 381 var title = $.trim($("#title").val()); 382 var comment = $.trim($("#comment").val()); 383 if (document.getElementById("rating")) { 384 var voting_data = document.getElementById("rating"); 385 var rating_id = voting_data.getAttribute("data-rating-id"); 386 var type = 1; 387 } else { 388 var type = 2; 389 } 390 var comment_data = document.getElementById("comment-section"); 391 var fill_all_fields = comment_data.getAttribute("data-fill-all-fields"); 392 393 if (validateEmail(email) && name != "" && title != "" && comment != "") { 394 comment_send(type); 395 } else { 396 $("#comment_result").html( 397 '<div class="alert alert-danger show mt-3 mb-2" role="alert">
397' + 398 fill_all_fields + 399 "" 400 ); 401 } 402} 403 404// Post Comment 405function comment_send(type) { 406 "use strict"; 407 408 $.ajax({ 409 headers: { 410 "X-CSRF-TOKEN": $('meta[name="csrf-token"]').attr("content"), 411 }, 412 type: "POST", 413 url: "/comment", 414 data: $("#comment-form").serialize(), 415 success: function (msg) { 416 $("#comment-section :input").prop("disabled", true); 417 $("#comment_result").html(msg); 418 $("#comment-form")[0].reset(); 419 }, 420 }); 421} 422 423// Submission Form Control 424function submission_form_control() { 425 "use strict"; 426 427 var name = $.trim($("#name").val()); 428 var email = $.trim($("#email").val()); 429 var title = $.trim($("#title").val()); 430 var description = $.trim($("#description").val()); 431 var category = $.trim($("#category").val()); 432 var platform = $.trim($("#platform").val()); 433 var developer = $.trim($("#developer").val()); 434 var url = $.trim($("#url").val()); 435 var license = $.trim($("#license").val()); 436 var file_size = $.trim($("#file-size").val()); 437 var version = $.trim($("#version").val()); 438 var detailed_description = $.trim($("#detailed-description").val()); 439 var image = $.trim($("#image").val()); 440 var submission_data = document.getElementById("submission-section"); 441 var fill_all_fields = submission_data.getAttribute("data-fill-all-fields"); 442 443 if ( 444 validateEmail(email) && 445 name != "" && 446 title != "" && 447 description != "" && 448 category != "" && 449 platform != "" && 450 developer != "" && 451 url != "" 452 ) { 453 submission_send(); 454 } else { 455 $("#submission-result").html( 456 '<div class="alert alert-danger show mt-2 mb-2" role="alert">' + 457 fill_all_fields + 458 "" 459 ); 460 } 461} 462 463// Post Submission 464function submission_send() { 465 "use strict"; 466 467 var frm = $("#submission-form"); 468 var formData = new FormData(frm[0]); 469 formData.append("image", $("input[type=file]")[0].files[0]); 470 471 try { 472 var recaptcha = grecaptcha.getResponse(); 473 formData.append("recaptcha", recaptcha); 474 } catch (e) {} 475 476 var submission_data = document.getElementById("submission-section"); 477 var data_error = submission_data.getAttribute("data-error"); 478 var data_recaptcha_error = submission_data.getAttribute( 479 "data-recaptcha-error" 480 ); 481 482 const recaptcha_errors = [ 483 "missing-input-secret", 484 "invalid-input-secret", 485 "missing-input-response", 486 "invalid-input-response", 487 "bad-request", 488 "timeout-or-duplicate", 489 ]; 490 491 $.ajax({ 492 headers: { 493 "X-CSRF-TOKEN": $('meta[name="csrf-token"]').attr("content"), 494 }, 495 type: "POST", 496 enctype: "multipart/form-data", 497 url: "/submission", 498 data: formData, 499 processData: false, 500 contentType: false, 501 success: function (msg) { 502 $("#submission-section :input").prop("disabled", true); 503 $("#submission-result").html(msg); 504 $("#submission-form")[0].reset(); 505 }, 506 error: function (xhr) { 507 $.each(xhr.responseJSON.errors, function (key, value) { 508 if (recaptcha_errors.indexOf(value) > -1) { 509 grecaptcha.reset(); 510 $("#submission-result").html( 511 '<div class="alert alert-danger mb-2 mt-2" role="alert"><b>' + 512 data_error + 513 ":</b> " + 514 data_recaptcha_error + 515 "</div" 516 ); 517 return false; 518 } 519 520 $("#submission-result").html( 521 '<div class="alert alert-danger mb-2 mt-2" role="alert"><b>' + 522 data_error + 523 ":</b> " + 524 value + 525 "</div" 526 ); 527 return false; 528 }); 529 }, 530 }); 531} 532 533// Change position of elements in the app page 534function moveDiv() { 535 if ($(window).width() < 990) { 536 $("#download_section").insertAfter("#app_data"); 537 $("#popular_apps").addClass("mt-3"); 538 $("#download_section").addClass("mt-3"); 539 } else { 540 $("#download_section").insertBefore("#move_item"); 541 $("#popular_apps").removeClass("mt-3"); 542 $("#download_section").removeClass("mt-3"); 543 } 544} 545$(document).ready(function () { 546 moveDiv(); 547 $(window).resize(function () { 548 moveDiv(); 549 }); 550}); 551 552// Report Submission Form Control 553function report_submission_form() { 554 "use strict"; 555 556 var email = $.trim($("#email").val()); 557 var reason = $.trim($("#reason").val()); 558 559 report_submission_send(); 560} 561 562// Report Submission 563function report_submission_send() { 564 "use strict"; 565 566 var frm = $("#report-submission-form"); 567 var formData = new FormData(frm[0]); 568 569 try { 570 var recaptcha = grecaptcha.getResponse(); 571 formData.append("recaptcha", recaptcha); 572 } catch (e) {} 573 574 var submission_data = document.getElementById("report-submission-section"); 575 var data_error = submission_data.getAttribute("data-error"); 576 var app_id = submission_data.getAttribute("data-station-id"); 577 578 formData.append("app_id", app_id); 579 580 var data_recaptcha_error = submission_data.getAttribute( 581 "data-recaptcha-error" 582 ); 583 584 const recaptcha_errors = [ 585 "missing-input-secret", 586 "invalid-input-secret", 587 "missing-input-response", 588 "invalid-input-response", 589 "bad-request", 590 "timeout-or-duplicate", 591 ]; 592 593 var base_url = document 594 .querySelector("meta[property='base_url']") 595 .getAttribute("content"); 596 var report_url = base_url + "/" + "report"; 597 598 $.ajax({ 599 headers: { 600 "X-CSRF-TOKEN": $('meta[name="csrf-token"]').attr("content"), 601 }, 602 type: "POST", 603 url: report_url, 604 data: formData, 605 processData: false, 606 contentType: false, 607 success: function (msg) { 608 $("#report-submission-form")[0].reset(); 609 $(".g-recaptcha").remove(); 610 $("#report-submission-section :input").prop("disabled", true); 611 $("#report-submission-result").html(msg); 612 }, 613 error: function (xhr) { 614 $.each(xhr.responseJSON.errors, function (key, value) { 615 if (recaptcha_errors.indexOf(value) > -1) { 616 grecaptcha.reset(); 617 $("#report-submission-result").html( 618 '<div class="alert alert-danger mt-3 show" role="alert"><b>' + 619 data_error + 620 ":</b> " + 621 data_recaptcha_error + 622 "</div" 623 ); 624 return false;
625 } 626 627 $("#report-submission-result").html( 628 '<div class="alert alert-danger mt-3 show" role="alert"><b>' + 629 data_error + 630 ":</b> " + 631 value + 632 "</div" 633 ); 634 return false; 635 }); 636 }, 637 }); 638} 639 640// Add to Favorites 641$(document).ready(function () { 642 $(".add-favorites").click(function () { 643 var check_status = $("#heart").data("checked"); 644 645 if (check_status == "1") { 646 $("#heart").css("fill", "#f4aec2"); 647 $("#heart").data("checked", "0"); 648 649 var player_data = document.getElementById("app"); 650 var player_thumbnail = player_data.getAttribute("data-thumb"); 651 var player_url = player_data.getAttribute("data-url"); 652 var player_title = player_data.getAttribute("data-title"); 653 var remove_message = player_data.getAttribute("data-remove-message"); 654 var cookie_prefix = player_data.getAttribute("data-cookie-prefix"); 655 656 var listen_history_last = Cookies.get(cookie_prefix + "_favorites"); 657 658 var listen_history = Cookies.get(cookie_prefix + "_favorites"); 659 var listen_data = 660 "|" + player_url + "," + player_thumbnail + "," + player_title; 661 var listen_historyy = listen_history_last.replace(listen_data, ""); 662 663 Cookies.set(cookie_prefix + "_favorites", listen_historyy, { 664 expires: 365, 665 }); 666 667 var notify = new notificationManager({ 668 container: $("#notificationsContainer"), 669 }); 670 671 var anim = true; 672 var auto = true; 673 674 notify.setPosition("topright"); 675 676 notify.addNotification({ 677 message: remove_message, 678 animate: anim, 679 autoRemove: auto, 680 backgroundColor: "#92c66c", 681 progressColor: "#ffffff", 682 }); 683 } 684 685 if (check_status == "0") { 686 var player_data = document.getElementById("app"); 687 var player_thumbnail = player_data.getAttribute("data-thumb"); 688 var player_url = player_data.getAttribute("data-url"); 689 var player_title = player_data.getAttribute("data-title"); 690 var add_message = player_data.getAttribute("data-add-message"); 691 var cookie_prefix = player_data.getAttribute("data-cookie-prefix"); 692 693 var favorite_history = Cookies.get(cookie_prefix + "_favorites"); 694 var favorite_data = 695 "|" + player_url + "," + player_thumbnail + "," + player_title; 696 697 if (favorite_history == undefined) { 698 Cookies.set(cookie_prefix + "_favorites", favorite_data, { 699 expires: 365, 700 }); 701 favorite_history = favorite_data; 702 } 703 704 if (favorite_history.indexOf(favorite_data) === -1) { 705 Cookies.set( 706 cookie_prefix + "_favorites", 707 favorite_history + favorite_data, 708 { 709 expires: 365, 710 } 711 ); 712 } 713 714 var favorite_history_last = Cookies.get(cookie_prefix + "_favorites"); 715 716 if (favorite_history_last.indexOf(favorite_data) != -1) { 717 var favorite_historyy = favorite_history_last.replace( 718 favorite_data, 719 "" 720 ); 721 722 Cookies.set( 723 cookie_prefix + "_favorites", 724 favorite_historyy + favorite_data, 725 { 726 expires: 365, 727 } 728 ); 729 } 730 731 $("#heart").css("fill", "#fff"); 732 $("#heart").data("checked", "1"); 733 734 var notify = new notificationManager({ 735 container: $("#notificationsContainer"), 736 }); 737 738 var anim = true; 739 var auto = true; 740 741 notify.setPosition("topright"); 742 743 notify.addNotification({ 744 message: add_message, 745 animate: anim, 746 autoRemove: auto, 747 backgroundColor: "#92c66c", 748 progressColor: "#ffffff", 749 }); 750 } 751 }); 752}); 753 754// Contact Form Control 755function contact_form() { 756 "use strict"; 757 758 var name = $.trim($("#name").val()); 759 var email = $.trim($("#email").val()); 760 var subject = $.trim($("#subject").val()); 761 var message = $.trim($("#message").val()); 762 763 contact_form_send(); 764} 765 766// Contact Form Submission 767function contact_form_send() { 768 "use strict"; 769 770 var frm = $("#contact-form"); 771 var formData = new FormData(frm[0]); 772 try { 773 var recaptcha = grecaptcha.getResponse(); 774 formData.append("recaptcha", recaptcha); 775 } catch (e) {} 776 777 var submission_data = document.getElementById("contact-form-section"); 778 var data_error = submission_data.getAttribute("data-error"); 779 var data_recaptcha_error = submission_data.getAttribute( 780 "data-recaptcha-error" 781 ); 782 783 const recaptcha_errors = [ 784 "missing-input-secret", 785 "invalid-input-secret", 786 "missing-input-response", 787 "invalid-input-response", 788 "bad-request", 789 "timeout-or-duplicate", 790 ]; 791 792 $.ajax({ 793 headers: { 794 "X-CSRF-TOKEN": $('meta[name="csrf-token"]').attr("content"), 795 }, 796 type: "POST", 797 url: "contact-form", 798 data: formData, 799 processData: false, 800 contentType: false, 801 success: function (msg) { 802 $("#contact-form")[0].reset(); 803 $(".g-recaptcha").remove(); 804 $("#contact-form-section :input").prop("disabled", true); 805 $("#contact-form-result").html(msg); 806 }, 807 error: function (xhr) { 808 $.each(xhr.responseJSON.errors, function (key, value) { 809 if (recaptcha_errors.indexOf(value) > -1) { 810 grecaptcha.reset(); 811 $("#contact-form-result").html( 812 '<div class="alert alert-danger show" role="alert"><b>' + 813 data_error + 814 ":</b> " + 815 data_recaptcha_error + 816 "</div" 817 ); 818 return false;
819 } 820 821 $("#contact-form-result").html( 822 '<div class="alert alert-danger show" role="alert"><b>' + 823 data_error + 824 ":</b> " + 825 value + 826 "</div" 827 ); 828 return false; 829 }); 830 }, 831 }); 832} 833 834// Rate the App 835$(document).ready(function () { 836 $(".rate_app").click(function () { 837 var app_id = $(this).attr("data-id"); 838 var rate_action = $(this).attr("data-action"); 839 840 var vote_data = document.getElementById("vote-data"); 841 var success_message = vote_data.getAttribute("data-vote-success"); 842 var error_message = vote_data.getAttribute("data-vote-error"); 843 844 $.ajax({ 845 headers: { 846 "X-CSRF-TOKEN": $('meta[name="csrf-token"]').attr("content"), 847 }, 848 url: "/vote", 849 type: "post", 850 dataType: "json", 851 data: { 852 app_id: app_id, 853 direction: rate_action, 854 }, 855 success: function (response) { 856 if (response.success == true) { 857 var notify = new notificationManager({ 858 container: $("#notificationsContainer"), 859 }); 860 861 var anim = true; 862 var auto = true; 863 864 notify.setPosition("topright"); 865 866 notify.addNotification({ 867 message: success_message, 868 animate: anim, 869 autoRemove: auto, 870 backgroundColor: "#92c66c", 871 progressColor: "#fff", 872 }); 873 874 ajaxCallBack(response.vote); 875 } else { 876 var notify = new notificationManager({ 877 container: $("#notificationsContainer"), 878 }); 879 880 var anim = true; 881 var auto = true; 882 883 notify.setPosition("topright"); 884 885 notify.addNotification({ 886 message: error_message, 887 animate: anim, 888 autoRemove: auto, 889 backgroundColor: "#FFC300", 890 progressColor: "#fff", 891 }); 892 } 893 }, 894 }); 895 896 function ajaxCallBack(retString) { 897 thevalue_d = retString; 898 $('[data-id="' + app_id + '"] [id="' + rate_action + '"]').text( 899 thevalue_d 900 ); 901 } 902 }); 903});
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.