1function generate_id(length = 10) { 2 let result = ''; 3 4 const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; 5 const charactersLength = characters.length; 6 7 let counter = 0; 8 while (counter < length) { 9 result += characters.charAt(Math.floor(Math.random() * charactersLength)); 10 counter += 1; 11 } 12 13 return result; 14} 15 16/* responsive tables accessibility - */ 17$("table").attr('role', 'region').attr('tabindex', 0); 18 19/* Form Validation */ 20function reset_fields() { 21 $('.has-required:visible').attr('required', true); 22 $('.has-required:not(:visible)').removeAttr('required'); 23 24 // reset checkbox groups 25 $('.checkbox-group').each(function () { 26 var number_of_checkboxes = $(this).find('[type="checkbox"].has-required').length; 27 var number_checked_boxes = $(this).find('[type="checkbox"].has-required:checked').length; 28 29 if (number_of_checkboxes > 1 && number_checked_boxes >= 1) { 30 $(this).find('[type="checkbox"].has-required').removeAttr('required'); 31 } else { 32 $(this).find('[type="checkbox"].has-required').attr('required', true); 33 } 34 35 }) 36} 37 38$(function() { 39 40 /* Basic Form Validation */ 41 42 var recaptcha_site_key = $("#core-js").attr('recaptcha-site-key'); 43 44 // append recaptcha js if needed 45 if ($('[name=recaptcha_response]').length) { 46 $("head").append('
vendor: 93 bytes, line 46
46<script src="https://www.google.com/recaptcha/api.js?render='+recaptcha_site_key+'"></script>
46'); 47 $(".show-recaptcha-message").html('<p class="mt-5">Forms on this page protected by <strong>Google reCAPTCHA</strong> • <a target="_blank" href="https://www.google.com/intl/en/policies/privacy/">Privacy<i class="fa-light fa-external-link fa-fw ml-1"></i></a> | <a target="_blank" href="https://www.google.com/intl/en/policies/terms/">Terms<i class="fa-light fa-external-link fa-fw ml-1"></i></a> </div>'); 48 } 49 50 $("form.needs-validation").each(function() { 51 52 $(this).find('[required]').each(function() { 53 $(this).addClass('has-required'); 54 55 var faux_label = $(this).parents('.checkbox-group').find('.form-label:first'); 56 var label = $(this).parents('.form-group').find('label:first'); 57 58 var label_to_use = faux_label.length > 0 ? faux_label : label; 59 if ($(label_to_use).text().indexOf('*') == -1) $(label_to_use).append('*'); 60 61 if (faux_label.length) { 62 $(this).parents('.checkbox-group').find('label').each(function() { 63 $(this).text($(this).text().replace('*', '')); 64 }) 65 } 66 }); 67 }) 68 69 70 $(".needs-validation").submit(function(e) { 71 72 // this also requires Blake's accompanying js that is generally held in site.js 73 // that activates the invalid-feedback divs 74 reset_fields(); 75 e.preventDefault(); 76 77 var submitting_form = $(this); 78 79 if (submitting_form[0].checkValidity()) { 80 grecaptcha.execute(recaptcha_site_key, { action: 'site' }).then(function (token) { 81 $(submitting_form).find('[name=recaptcha_response]').val(token); 82 if (!$(submitting_form).hasClass('alt-submit')) submitting_form.unbind('submit').submit(); 83 }); 84 } else { 85 // scroll to first error 86 $('html,body').animate({ scrollTop: $(':invalid, .is-invalid, .custom-has-error').not('fieldset').not('form').first().offset().top - 150 }, 'slow'); 87 } 88 89 }); 90 91 /* END BASIC FORM VALIDATION */ 92 93}); 94 95 96/****************************************************************************************/ 97/* File Uploading */ 98/****************************************************************************************/ 99 100/* Vendor JS for File Uploading */ 101var qq=qq||{};qq.extend=function(e,t){for(var n in t)e[n]=t[n]},qq.indexOf=function(e,t,n){if(e.indexOf)return e.indexOf(t,n);n=n||0;var o=e.length;for(n<0&&(n+=o);n<o;n++)if(n in e&&e[n]===t)return n;return-1},qq.getUniqueId=function(){var e=0;return function(){return e++}}(),qq.attach=function(e,t,n){e.addEventListener?e.addEventListener(t,n,!1):e.attachEvent&&e.attachEvent("on"+t,n)},qq.detach=function(e,t,n){e.removeEventListener?e.removeEventListener(t,n,!1):e.attachEvent&&e.detachEvent("on"+t,n)},qq.preventDefault=function(e){e.preventDefault?e.preventDefault():e.returnValue=!1},qq.insertBefore=function(e,t){t.parentNode.insertBefore(e,t)},qq.remove=function(e){e.parentNode.removeChild(e)},qq.contains=function(e,t){return e==t||(e.contains?e.contains(t):!!(8&t.compareDocumentPosition(e)))},qq.toElement=function(){var e=document.createElement("div");return function(t){e.innerHTML=t;var n=e.firstChild;return e.removeChild(n),n}}(),qq.css=function(e,t){null!=t.opacity&&"string"!=typeof e.style.opacity&&void 0!==e.filters&&(t.filter="alpha(opacity="+Math.round(100*t.opacity)+")"),qq.extend(e.style,t)},qq.hasClass=function(e,t){return new RegExp("(^| )"+t+"( |$)").test(e.className)},qq.addClass=function(e,t){qq.hasClass(e,t)||(e.className+=" "+t)},qq.removeClass=function(e,t){var n=new RegExp("(^| )"+t+"( |$)");e.className=e.className.replace(n," ").replace(/^\s+|\s+$/g,"")},qq.setText=function(e,t){e.innerText=t,e.textContent=t},qq.children=function(e){for(var t=[],n=e.firstChild;n;)1==n.nodeType&&t.push(n),n=n.nextSibling;return t},qq.getByClass=function(e,t){if(e.querySelectorAll)return e.querySelectorAll("."+t);for(var n=[],o=e.getElementsByTagName("*"),i=o.length,s=0;s<i;s++)qq.hasClass(o[s],t)&&n.push(o[s]);return n},qq.obj2url=function(e,t,n){var o=[],i="&",s=function(e,n){var i=t?/\[\]$/.test(t)?t:t+"["+n+"]":n;"undefined"!=i&&"undefined"!=n&&o.push("object"==typeof e?qq.obj2url(e,i,!0):"[object Function]"===Object.prototype.toString.call(e)?encodeURIComponent(i)+"="+encodeURIComponent(e()):encodeURIComponent(i)+"="+encodeURIComponent(e))};if(!n&&t)i=/\?/.test(t)?/\?$/.test(t)?"":"&":"?",o.push(t),o.push(qq.obj2url(e));else if("[object Array]"===Object.prototype.toString.call(e)&&void 0!==e)for(var a=0,r=e.length;a<r;++a)s(e[a],a);else if(null!=e&&"object"==typeof e)for(var a in e)s(e[a],a);else o.push(encodeURIComponent(t)+"="+encodeURIComponent(e));return o.join(i).replace(/^&/,"").replace(/%20/g,"+")};var qq=qq||{};qq.FileUploaderBasic=function(e){this._options={debug:!1,action:"/server/upload",params:{},button:null,multiple:!0,maxConnections:3,allowedExtensions:[],sizeLimit:0,minSizeLimit:0,onSubmit:function(e,t){},onProgress:function(e,t,n,o){},onComplete:function(e,t,n){},onCancel:function(e,t){},messages:{typeError:"{file}
101 has invalid extension. Only {extensions} are allowed.",sizeError:"{file} is too large, maximum file size is {sizeLimit}.",minSizeError:"{file} is too small, minimum file size is {minSizeLimit}.",emptyError:"{file} is empty, please select files again without it.",onLeave:"The files are being uploaded, if you leave now the upload will be cancelled."},showMessage:function(e){alert(e)}},qq.extend(this._options,e),this._filesInProgress=0,this._handler=this._createUploadHandler(),this._options.button&&(this._button=this._createUploadButton(this._options.button)),this._preventLeaveInProgress()},qq.FileUploaderBasic.prototype={setParams:function(e){this._options.params=e},getInProgress:function(){return this._filesInProgress},_createUploadButton:function(e){var t=this;return new qq.UploadButton({element:e,multiple:this._options.multiple&&qq.UploadHandlerXhr.isSupported(),onChange:function(e){t._onInputChange(e)}})},_createUploadHandler:function(){var e,t=this;return e=qq.UploadHandlerXhr.isSupported()?"UploadHandlerXhr":"UploadHandlerForm",new qq[e]({debug:this._options.debug,action:this._options.action,maxConnections:this._options.maxConnections,onProgress:function(e,n,o,i){t._onProgress(e,n,o,i),t._options.onProgress(e,n,o,i)},onComplete:function(e,n,o){t._onComplete(e,n,o),t._options.onComplete(e,n,o)},onCancel:function(e,n){t._onCancel(e,n),t._options.onCancel(e,n)}})},_preventLeaveInProgress:function(){var e=this;qq.attach(window,"beforeunload",function(t){if(e._filesInProgress)return(t=t||window.event).returnValue=e._options.messages.onLeave,e._options.messages.onLeave})},_onSubmit:function(e,t){this._filesInProgress++},_onProgress:function(e,t,n,o){},_onComplete:function(e,t,n){this._filesInProgress--,n.error&&this._options.showMessage(n.error)},_onCancel:function(e,t){this._filesInProgress--},_onInputChange:function(e){this._handler instanceof qq.UploadHandlerXhr?this._uploadFileList(e.files):this._validateFile(e)&&this._uploadFile(e),this._button.reset()},_uploadFileList:function(e){for(var t=0;t<e.length;t++)if(!this._validateFile(e[t]))return;for(t=0;t<e.length;t++)this._uploadFile(e[t])},_uploadFile:function(e){var t=this._handler.add(e),n=this._handler.getName(t);!1!==this._options.onSubmit(t,n)&&(this._onSubmit(t,n),this._handler.upload(t,this._options.params))},_validateFile:function(e){var t,n;return e.value?t=e.value.replace(/.*(\/|\\)/,""):(t=null!=e.fileName?e.fileName:e.name,n=null!=e.fileSize?e.fileSize:e.size),this._isAllowedExtension(t)?0===n?(this._error("emptyError",t),!1):n&&this._options.sizeLimit&&n>this._options.sizeLimit?(this._error("sizeError",t),!1):!(n&&n<this._options.minSizeLimit)||(this._error("minSizeError",t),!1):(this._error("typeError",t),!1)},_error:function(e,t){var n=this._options.messages[e];function o(e,t){n=n.replace(e,t)}o("{file}",this._formatFileName(t)),o("{extensions}",this._options.allowedExtensions.join(", ")),o("{sizeLimit}",this._formatSize(this._options.sizeLimit)),o("{minSizeLimit}",this._formatSize(this._options.minSizeLimit)),this._options.showMessage(n)},_formatFileName:function(e){return e.length>33&&(e=e.slice(0,19)+"..."+e.slice(-13)),e},_isAllowedExtension:function(e){var t=-1!==e.indexOf(".")?e.replace(/.*[.]/,"").toLowerCase():"",n=this._options.allowedExtensions;if(!n.length)return!0;for(var o=0;o<n.length;o++)if(n[o].toLowerCase()==t)return!0;return!1},_formatSize:function(e){var t=-1;do{e/=1024,t++}while(e>99);return Math.max(e,.1).toFixed(1)+["kB","MB","GB","TB","PB","EB"][t]}},qq.FileUploader=function(e){qq.FileUploaderBasic.apply(this,arguments),qq.extend(this._options,{element:null,listElement:null,uploadButtonText:"Upload PDF File",template:'<div class="qq-uploader"><div class="qq-upload-drop-area"><span>Drop files here to upload</span></div><div class="btn btn-light border qq-upload-button" style="padding: .38rem 2rem;"><i class="far fa-file-pdf fa-fw"></i> '+this._options.uploadButtonText+'</div><ul class="qq-upload-list"></ul></div>',fileTemplate:'<li><span class="qq-upload-file"></span><span class="qq-upload-spinner"></span><span class="qq-upload-size"></span><a class="qq-upload-cancel" href="#">Cancel</a><span class="qq-upload-failed-text">Failed</span></li>',classes:{button:"qq-upload-button",drop:"qq-upload-drop-area",dropActive:"qq-upload-drop-area-active",list:"qq-upload-list",file:"qq-upload-file",spinner:"qq-upload-spinner",size:"qq-upload-size",cancel:"qq-upload-cancel",success:"qq-upload-success",fail:"qq-upload-fail"}}),qq.extend(this._options,e),this._element=this._options.element,this._element.innerHTML=this._options.template,this._listElement=this._options.listElement||this._find(this._element,"list"),this._classes=this._options.classes,this._button=this._createUploadButton(this._find(this._element,"button")),this._bindCancelEvent(),this._setupDragDrop()},qq.extend(qq.FileUploader.prototype,qq.FileUploaderBasic.prototype),qq.extend(qq.FileUploader.prototype,{_find:function(e,t){var n=qq.getByClass(e,this._options.classes[t])[0];if(!n)throw new Error("element not found "+t);return n},_setupDragDrop:function(){var e=this,t=this._find(this._element,"drop"),n=new qq.UploadDropZone({element:t,onEnter:function(n){qq.addClass(t,e._classes.dropActive),n.stopPropagation()},onLeave:function(e){e.stopPropagation()},onLeaveNotDescendants:function(n){qq.removeClass(t,e._classes.dropActive)},onDrop:function(n){t.style.display="none",qq.removeClass(t,e._classes.dropActive),e._uploadFileList(n.dataTransfer.files)}});t.style.display="none",qq.attach(document,"dragenter",function(e){n._isValidFileDrag(e)&&(t.style.display="block")}),qq.attach(document,"dragleave",function(e){if(n._isValidFileDrag(e)){var o=document.elementFromPoint(e.clientX,e.clientY);o&&"HTML"!=o.nodeName||(t.style.display="none")}})},_onSubmit:function(e,t){qq.FileUploaderBasic.prototype._onSubmit.apply(this,arguments),this._addToList(e,t)},_onProgress:function(e,t,n,o){qq.FileUploaderBasic.prototype._onProgress.apply(this,arguments);var i,s=this._getItemByFileId(e),a=this._find(s,"size");a.style.display="inline",i=n!=o?Math.round(n/o*100)+"% from "+this._formatSize(o):this._formatSize(o),qq.setText(a,i)},_onComplete:function(e,t,n){qq.FileUploaderBasic.prototype._onComplete.apply(this,arguments);var o=this._getItemByFileId(e);qq.remove(this._find(o,"cancel")),qq.remove(this._find(o,"spinner")),n.success?qq.addClass(o,this._classes.success):qq.addClass(o,this._classes.fail)},_addToList:function(e,t){var n=qq.toElement(this._options.fileTemplate);n.qqFileId=e;var o=this._find(n,"file");qq.setText(o,this._formatFileName(t)),this._find(n,"size").style.display="none",this._listElement.appendChild(n)},_getItemByFileId:function(e){for(var t=this._listElement.firstChild;t;){if(t.qqFileId==e)return t;t=t.nextSibling}},_bindCancelEvent:function(){var e=this,t=this._listElement;qq.attach(t,"click",function(t){var n=(t=t||window.event).target||t.srcElement;if(qq.hasClass(n,e._classes.cancel)){qq.preventDefault(t);var o=n.parentNode;e._handler.cancel(o.qqFileId),qq.remove(o)}})}}),qq.UploadDropZone=function(e){this._options={element:null,onEnter:function(e){},onLeave:function(e){},onLeaveNotDescendants:function(e){},onDrop:function(e){}},qq.extend(this._options,e),this._element=this._options.element,this._disableDropOutside(),this._attachEvents()},qq.UploadDropZone.prototype={_disableDropOutside:function(e){qq.UploadDropZone.dropOutsideDisabled||(qq.attach(document,"dragover",function(e){e.dataTransfer&&(e.dataTransfer.dropEffect="none",e.preventDefault())}),qq.UploadDropZone.dropOutsideDisabled=!0)},_attachEvents:function(){var e=this;qq.attach(e._element,"dragover",function(t){if(e._isValidFileDrag(t)){var n=t.dataTransfer.effectAllowed;t.dataTransfer.dropEffect="move"==n||"linkMove"==n?"move":"copy",t.stopPropagation(),t.preventDefault()}}),qq.attach(e._element,"dragenter",function(t){e._isValidFileDrag(t)&&e._options.onEnter(t)}),qq.attach(e._element,"dragleave",function(t){if(e._isValidFileDrag(t)){e._options.onLeave(t);var n=document.elementFromPoint(t.clientX,t.clientY);qq.contains(this,n)||e._options.onLeaveNotDescendants(t)}}),qq.attach(e._element,"drop",function(t){e._isValidFileDrag(t)&&(t.preventDefault(),e._options.onDrop(t))})},_isValidFileDrag:function(e){var t=e.dataTransfer,n=navigator.userAgent.indexOf("AppleWebKit")>-1;
101return t&&"none"!=t.effectAllowed&&(t.files||!n&&t.types.contains&&t.types.contains("Files"))}},qq.UploadButton=function(e){this._options={element:null,multiple:!1,name:"file",onChange:function(e){},hoverClass:"qq-upload-button-hover",focusClass:"qq-upload-button-focus"},qq.extend(this._options,e),this._element=this._options.element,qq.css(this._element,{position:"relative",overflow:"hidden",direction:"ltr"}),this._input=this._createInput()},qq.UploadButton.prototype={getInput:function(){return this._input},reset:function(){this._input.parentNode&&qq.remove(this._input),qq.removeClass(this._element,this._options.focusClass),this._input=this._createInput()},_createInput:function(){var e=document.createElement("input");this._options.multiple&&e.setAttribute("multiple","multiple"),e.setAttribute("type","file"),e.setAttribute("name",this._options.name),qq.css(e,{position:"absolute",right:0,top:0,fontFamily:"Arial",fontSize:"118px",margin:0,padding:0,cursor:"pointer",opacity:0}),this._element.appendChild(e);var t=this;return qq.attach(e,"change",function(){t._options.onChange(e)}),qq.attach(e,"mouseover",function(){qq.addClass(t._element,t._options.hoverClass)}),qq.attach(e,"mouseout",function(){qq.removeClass(t._element,t._options.hoverClass)}),qq.attach(e,"focus",function(){qq.addClass(t._element,t._options.focusClass)}),qq.attach(e,"blur",function(){qq.removeClass(t._element,t._options.focusClass)}),window.attachEvent&&e.setAttribute("tabIndex","-1"),e}},qq.UploadHandlerAbstract=function(e){this._options={debug:!1,action:"/upload.php",maxConnections:999,onProgress:function(e,t,n,o){},onComplete:function(e,t,n){},onCancel:function(e,t){}},qq.extend(this._options,e),this._queue=[],this._params=[]},qq.UploadHandlerAbstract.prototype={log:function(e){this._options.debug&&window.console&&console.log("[uploader] "+e)},add:function(e){},upload:function(e,t){var n=this._queue.push(e),o={};qq.extend(o,t),this._params[e]=o,n<=this._options.maxConnections&&this._upload(e,this._params[e])},cancel:function(e){this._cancel(e),this._dequeue(e)},cancelAll:function(){for(var e=0;e<this._queue.length;e++)this._cancel(this._queue[e]);this._queue=[]},getName:function(e){},getSize:function(e){},getQueue:function(){return this._queue},_upload:function(e){},_cancel:function(e){},_dequeue:function(e){var t=qq.indexOf(this._queue,e);this._queue.splice(t,1);var n=this._options.maxConnections;if(this._queue.length>=n&&t<n){var o=this._queue[n-1];this._upload(o,this._params[o])}}},qq.UploadHandlerForm=function(e){qq.UploadHandlerAbstract.apply(this,arguments),this._inputs={}},qq.extend(qq.UploadHandlerForm.prototype,qq.UploadHandlerAbstract.prototype),qq.extend(qq.UploadHandlerForm.prototype,{add:function(e){e.setAttribute("name","qqfile");var t="qq-upload-handler-iframe"+qq.getUniqueId();return this._inputs[t]=e,e.parentNode&&qq.remove(e),t},getName:function(e){return this._inputs[e].value.replace(/.*(\/|\\)/,"")},_cancel:function(e){this._options.onCancel(e,this.getName(e)),delete this._inputs[e];var t=document.getElementById(e);t&&(t.setAttribute("src","javascript:false;"),qq.remove(t))},_upload:function(e,t){var n=this._inputs[e];if(!n)throw new Error("file with passed id was not added, or already uploaded or cancelled");var o=this.getName(e),i=this._createIframe(e),s=this._createForm(i,t);s.appendChild(n);var a=this;return this._attachLoadEvent(i,function(){a.log("iframe loaded");var t=a._getIframeContentJSON(i);a._options.onComplete(e,o,t),a._dequeue(e),delete a._inputs[e],setTimeout(function(){qq.remove(i)},1)}),s.submit(),qq.remove(s),e},_attachLoadEvent:function(e,t){qq.attach(e,"load",function(){e.parentNode&&(e.contentDocument&&e.contentDocument.body&&"false"==e.contentDocument.body.innerHTML||t())})},_getIframeContentJSON:function(iframe){var doc=iframe.contentDocument?iframe.contentDocument:iframe.contentWindow.document,response;this.log("converting iframe's innerHTML to JSON"),this.log("innerHTML = "+doc.body.innerHTML);try{response=eval("("+doc.body.innerHTML+")")}catch(e){response={}}return response},_createIframe:function(e){var t=qq.toElement('<iframe src="javascript:false;" name="'+e+'" />');return t.setAttribute("id",e),t.style.display="none",document.body.appendChild(t),t},_createForm:function(e,t){var n=qq.toElement('<form method="post" enctype="multipart/form-data"></form>'),o=qq.obj2url(t,this._options.action);return n.setAttribute("action",o),n.setAttribute("target",e.name),n.style.display="none",document.body.appendChild(n),n}}),qq.UploadHandlerXhr=function(e){qq.UploadHandlerAbstract.apply(this,arguments),this._files=[],this._xhrs=[],this._loaded=[]},qq.UploadHandlerXhr.isSupported=function(){var e=document.createElement("input");return e.type="file","multiple"in e&&"undefined"!=typeof File&&void 0!==(new XMLHttpRequest).upload},qq.extend(qq.UploadHandlerXhr.prototype,qq.UploadHandlerAbstract.prototype),qq.extend(qq.UploadHandlerXhr.prototype,{add:function(e){if(!(e instanceof File))throw new Error("Passed obj in not a File (in qq.UploadHandlerXhr)");return this._files.push(e)-1},getName:function(e){var t=this._files[e];return null!=t.fileName?t.fileName:t.name},getSize:function(e){var t=this._files[e];return null!=t.fileSize?t.fileSize:t.size}
101,getLoaded:function(e){return this._loaded[e]||0},_upload:function(e,t){var n=this._files[e],o=this.getName(e);this.getSize(e);this._loaded[e]=0;var i=this._xhrs[e]=new XMLHttpRequest,s=this;i.upload.onprogress=function(t){t.lengthComputable&&(s._loaded[e]=t.loaded,s._options.onProgress(e,o,t.loaded,t.total))},i.onreadystatechange=function(){4==i.readyState&&s._onComplete(e,i)},(t=t||{}).qqfile=o;var a=qq.obj2url(t,this._options.action);i.open("POST",a,!0),i.setRequestHeader("X-Requested-With","XMLHttpRequest"),i.setRequestHeader("X-File-Name",encodeURIComponent(o)),i.setRequestHeader("Content-Type","application/octet-stream"),i.send(n)},_onComplete:function(id,xhr){if(this._files[id]){var name=this.getName(id),size=this.getSize(id);if(this._options.onProgress(id,name,size,size),200==xhr.status){var response;this.log("xhr - server response received"),this.log("responseText = "+xhr.responseText);try{response=eval("("+xhr.responseText+")")}catch(e){response={}}this._options.onComplete(id,name,response)}else this._options.onComplete(id,name,{});this._files[id]=null,this._xhrs[id]=null,this._dequeue(id)}},_cancel:function(e){this._options.onCancel(e,this.getName(e)),this._files[e]=null,this._xhrs[e]&&(this._xhrs[e].abort(),this._xhrs[e]=null)}}); 102/* End File Uploader Vendor */ 103 104/* General File Upload Functions */ 105function remove_item(parent) { 106 if (confirm('Are you sure you want to remove this upload?')) { 107 $(parent).find('.upload-value').val(''); 108 $(parent).find('.upload-preview').html(''); 109 } 110} 111 112function add_single_file(parent, filename) { 113 114 var output_html = '\ 115 <div class="input-group" style="margin-top: 10px;">\ 116 <div style="border-radius: .25em 0px 0px .25em;" class="input-group-text"><i class="fa fa-trash text-danger" onclick="remove_item($(this).parents(\'.uploader-wrap\'));" style="cursor: pointer;"></i></div>\ 117 <div style="border-radius: 0px .25em .25em 0px;" class="form-control">You\'ve uploaded <a target="_blank" href="/cdn/'+filename+'">'+filename+' <i class="fas fa-fw fa-external-link-alt"></i></a></div>\ 118 </div>\ 119 '; 120 121 $(parent).find('.upload-preview').html(output_html); 122 $(parent).find('.upload-value').val(filename); 123} 124 125$(".uploader-wrap.single-file-uploader .uploader").each(function() { 126 var uploader_area = $(this).parents('.uploader-wrap'); 127 var uploader = new qq.FileUploader({ 128 element: $(this)[0], 129 action: '/assets/inc/cloud.php', 130 uploadButtonText: 'Choose File', 131 multiple: false, 132 onComplete: function(id, fileName, responseJSON){ 133 if (responseJSON.newfile) { 134 add_single_file($(uploader_area), responseJSON.newfile); 135 } 136 } 137 }); 138});
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.