1// not currently implemented; referenced in code-behind in RegisterWebhookCall 2function callWebHook(URL, ID, Ordinal, formName, redirectUrl, target) { 3 showLoader(); 4 try { 5 jQuery.ajax({ 6 url: URL, 7 success: async function (data, textStatus, jqXHR) { 8 try { 9 var response = jQuery(jqXHR.responseText); 10 var resFind = response.find("#formswebhook"); 11 eval(resFind.html()); 12 showLoader(); 13 var result = await formswebhook(ID, Ordinal, formName); 14 15 16 if (result.result) { 17 18 //success 19 if (redirectUrl != "") { 20 if (target == "_blank") 21 window.open(redirectUrl, '_blank'); 22 else 23 window.location.replace(redirectUrl); 24 } 25 else 26 showMessage('Success', result.message); 27 } 28 else { 29 //fail 30 //show error message 31 //stay on page 32 showMessage('Error', result.message); 33 } 34 } catch(err) { 35 showMessage("Error", "Post processing failed " + err.message); 36 } 37 }, 38 39 error: function (jqXhr, textStatus, errorMessage) { // error callback 40 showMessage('Error', errorMessage); 41 } 42 }); 43 } catch(ex){ 44 showMessage("Error", "Post processing failed: " + ex.Message); 45 } 46} 47 48var imisVersion; 49jQuery(document).ready(function () { 50 imisVersion = jQuery("[id*='imisVersion'")[0].value ?? "V10"; // look for iMIS Version; default to v10 51 52 // remove class RadInput_Default where it occurs; it is messing up the display 53 var els = document.querySelectorAll('.RadInput_Default'); 54 els.forEach(el => el.classList.remove('RadInput_Default')); 55}) 56 57// Set on button in code-behind when button is added 58function formsSetTarget(target, btnClicked) { 59 try { 60 if (typeof window.ASIRulesEngineObject.runListeners === "function") { 61 window.ASIRulesEngineObject.runListeners(); 62 } 63 else { 64 } 65 } catch(ex) { 66 } 67 68 if (target == "_self") 69 showLoader(btnClicked); 70 else if (target == "_blank") 71 document.forms[0].target = target; 72} 73 74// Only called from callWebHook, which is not used right now 75function showMessage(messageType, messageText) { 76 if (messageText != "") 77 jQuery("span.FormsMessage").text(messageText); 78 79 // gWebRoot is the Tenant.Current.WebsiteBaseUri without a trailing slash 80 var successIconPath = window.gWebRoot.concat("/Assets/images/AsiSuccess.png"); 81 var errorIconPath = window.gWebRoot.concat("/Assets/images/AsiError.png"); 82 83 switch (messageType) { 84 case "Success": 85 jQuery(".FormsMessageHidden").addClass("AsiSuccess"); 86 jQuery("img.FormsMessageIcon").prop("src", successIconPath); 87 break; 88 case "Error": 89 jQuery(".FormsMessageHidden").addClass("AsiError"); 90 jQuery("img.FormsMessageIcon").prop("src", errorIconPath); 91 break; 92 } 93 jQuery(".FormsMessageHidden").removeClass("FormsMessageHidden"); 94 hideLoader(); 95} 96 97function showLoaderPopup(btnClicked, popupContainer) { 98 if (typeof Page_ClientValidate !== "function" || typeof btnClicked === "undefined" || popupContainer === "undefined") { 99 return true; 100 } 101 102 var clickContents = jQuery(btnClicked).attr("onclick"); 103 if (clickContents) { 104 for (var i = 0; i < Page_Validators.length; i++) { 105 var validator = Page_Validators[i]; 106 var $control = jQuery('#' + validator.controltovalidate); 107 108 // Skip if control doesn't exist 109 if ($control.length === 0) continue; 110
111 // Skip if control explicitly marked as not required 112 if ($control.data("required") === false || $control.attr("data-required") === "false") { 113 ValidatorEnable(validator, false); 114 continue; 115 } 116 117 // Only consider controls inside RadWindow container 118 var radWindowWrapper = "RadWindow_" + popupContainer; 119 if ($control.closest("div[id$='" + radWindowWrapper + "']").length > 0) { 120 var visible = $control.is(':visible'); 121 ValidatorEnable(validator, visible); 122 } else { 123 ValidatorEnable(validator, false); 124 } 125 } 126 } 127 128 var radWindowValidation = "RadWindowValidation_" + popupContainer; 129 var isValid = Page_ClientValidate("" + radWindowValidation + ""); 130 if (isValid) { 131 jQuery(".loader-wrapper").fadeIn("fast"); 132 } 133 134 return isValid; 135} 136 137// Called from formsSetTarget 138function showLoader(btnClicked) { 139 var isValid = true; 140 if (typeof Page_ClientValidate === "function") { 141 if (typeof (btnClicked) != "undefined") { 142 var clickContents = jQuery(btnClicked).attr("onclick"); 143 if (clickContents.indexOf("FB_ValidationGroup") > 0) { 144 isValid = Page_ClientValidate('FB_ValidationGroup'); 145 } 146 } 147 148 } 149 150 if (isValid) 151 jQuery(".loader-wrapper").fadeIn("fast"); 152 else 153 return false; 154} 155 156// Called from showMessage and from code-behind 157function hideLoader() { 158 jQuery(".loader-wrapper").fadeOut("slow"); 159} 160 161 162// Not called explicitly; is defined on Telerik RadDateTimePicker in code-behind 163function dateTimeOnError(sender, args) { 164 var date = sender; 165 date.clear(); 166 //args.set_cancel(true) 167} 168 169// set on combobox in code-behind 170function OnClientLoadCombo(sender, args) { 171 disableAutoFill(sender); 172} 173 174function disableAutoFill(control) { 175 function focusHandler(ev) { 176 this.originalName = this.name; 177 this.name = new Date().toString(); 178 } 179 function blurHandler(ev) { 180 this.name = this.originalName; 181 } 182 183 if (Telerik.Web.UI.RadComboBox && control instanceof Telerik.Web.UI.RadComboBox) { 184 jQuery(control.get_inputDomElement()).on({ 185 focus: focusHandler, 186 blur: blurHandler 187 }); 188 } else if (Telerik.Web.UI.RadTextBox && control instanceof Telerik.Web.UI.RadTextBox) { 189 jQuery(control.get_element()).on({ 190 focus: focusHandler, 191 blur: blurHandler 192 }); 193 } 194} 195 196// set on combobox in code-behind 197function OnClientBlurHandlerComboBox(sender, eventArgs) { 198 var textInTheCombo = sender.get_text(); 199 var item = sender.findItemByText(textInTheCombo); 200 //if there is no item with that text 201 if (!item) { 202 sender.set_text(""); 203 setTimeout(function () { 204 var inputElement = sender.get_inputDomElement(); 205 inputElement.focus(); 206 }, 20); 207 } 208} 209 210function ClientValidationDate(sender, args) { 211 var controlID = sender.id.substring(0, sender.id.length - 4) + "_wrapper"; 212 var valID = sender.id; 213 214 if (jQuery("#" + controlID + " .RadInputError").is(":visible")) { 215 args.IsValid = false; 216 } 217 else { 218 args.IsValid = true; 219 } 220} 221 222function dateFieldOnBlur(sender, args) { 223 var wrapperID = sender.get_wrapperElement().id.substring(0, sender.get_wrapperElement().id.length - 18); 224 var valID = wrapperID + "_val"; 225 var val = document.getElementById(valID); 226 227 if (jQuery("#" + wrapperID + "_dateInput").val() == "") { 228 ValidatorEnable(val, false); 229 } 230 else { 231 ValidatorEnable(val, true); 232 ValidatorValidate(val); 233 234 } 235} 236function dateFieldOnDateSelected(sender, args) { 237 var wrapperID = sender.get_element().id; 238 var valID = wrapperID + "_val"; 239 var val = document.getElementById(valID); 240 ValidatorEnable(val, false); 241} 242 243function dateFieldOnError(sender, args) { 244 var valID = sender.get_wrapperElement().id.substring(0, sender.get_wrapperElement().id.length - 18) + "_val"; 245 var val = document.getElementById(valID); 246 ValidatorValidate(val); 247} 248 249 250function OnClientValidationFailed(sender, args) { 251 var fileExtention = args.get_fileName().substring(args.get_fileName().lastIndexOf('.') + 1, args.get_fileName().length); 252 if (args.get_fileName().lastIndexOf('.') != -1) {//this checks if the extension is correct 253 if (sender.get_allowedFileExtensions().indexOf(fileExtention) == -1) { 254 alert("Invalid file extension."); 255 } 256 else { 257 alert("File size exceeds limit."); 258 } 259 } 260 else { 261 alert("Invalid file extension."); 262 } 263} 264 265// no longer used; will remove in next pass 266function FireRequiredValidator(element) { 267 var notRequired = element.querySelector('[id$=_Required]') == null; 268 if (notRequired) 269 return false; 270 271 var dbFilename = ""; 272 var selFileName = ""; 273 274 var fileInDatabase = element.querySelector('[id$=lbtnDownloadDocument'); 275 if (fileInDatabase) 276 dbFilename = fileInDatabase.innerText; 277 var fileSelected = element.querySelector('.ruUploadProgress'); 278 if (fileSelected) 279 selFileName = fileSelected.innerText; 280 if (!dbFilename && !selFileName) 281 return true; 282 283 return false; 284} 285 286function ClientValidateFileUpload(source, args) { 287 var sourceID = source.id.slice(0, -9); // "_Required" is 9 characters 288 var linkbuttonID = sourceID + "_lbtnDownloadDocument"; 289 290 if (jQuery("#" + linkbuttonID).text() != "") { 291 args.IsValid = true; 292 } 293 else { 294 args.IsValid = false; 295 296 linkbuttonID = sourceID + "_AsyncUpload1row0 .ruRemove"; 297 if (jQuery("#" + linkbuttonID).text() == "Remove") { 298 args.IsValid = true; 299 } 300 301 linkbuttonID = sourceID + "_AsyncUpload1row2.ruUploadSuccess"; 302 if (jQuery("#" + linkbuttonID).length > 0) { 303 args.IsValid = true; 304 } 305 } 306 return; 307} 308 309function ClientValidateFileUploadUploading(source, args) { 310 311 // "_uploading" is 10 characters 312 var uploadID = "#" + source.id.substring(0, source.id.length - 10) + "_AsyncUpload1"; 313 314 if (jQuery(uploadID + " .ruProgressStarted").is(":visible")) { 315 args.IsValid = false; 316 return; 317 } 318 319} 320 321function ValidateCheckBoxList(sender, args) { 322 try { 323 args.IsValid = false; 324 325 var n = sender.id.replace("FB_Required_", ""); 326 327 328 if (jQuery("#" + n).is(':checked')) { 329 args.IsValid = true; 330 return; 331 } 332 333 } catch (Err) { 334 return; 335 } 336} 337 338function ValidateRequiredCheckBoxList(source, args) {
339 var validator = document.getElementById('' + source.id + ''); 340 var chkListModules = validator.previousSibling; 341 var chkListInputs = chkListModules.getElementsByTagName("input"); 342 for (var i = 0; i < chkListInputs.length; i++) { 343 if (chkListInputs[i].checked) { 344 args.IsValid = true; 345 return; 346 } 347 } 348 349 var prev = source.previousSibling; 350 if (prev && prev.getAttribute && prev.getAttribute("data-required") === "true") { 351 args.IsValid = document.getElementById(prev.id)?.checked === true; 352 if (args.IsValid) { 353 return; 354 } 355 } 356 357 if (chkListInputs.length > 0) { 358 chkListInputs[0].focus(); 359 } 360 361 args.IsValid = false; 362} 363 364function ValidateRequiredComboBox(source, args) { 365 var validator = document.getElementById('' + source.id + ''); 366 var radComboBox = validator.previousSibling; 367 var selectedText = radComboBox.control.get_text(); 368 369 if (selectedText == null || selectedText == '' || selectedText == "(None)") { 370 args.IsValid = false; 371 return; 372 } 373 374 args.IsValid = true; 375 376 377} 378 379// Added as callback by code-behind 380function textCounterDown(field, countfield, maxlimit, pEvent) { 381 382 var iLine = field.value.split(/\n/).length; 383 var vCharacters = field.value.replace(/\n/g, '').replace('\r', '').length; 384 385 if (pEvent.keyCode.toString() == "13") { 386 iLine = iLine + 1; 387 } 388 else { 389 vCharacters++; 390 } 391 392 if (iLine > 1) { 393 vCharacters = vCharacters + ((iLine - 1) * 2); 394 } 395 396 if (vCharacters > maxlimit) { 397 field.value = field.value.substring(0, maxlimit); 398 399 if (!checkSpecialKeys(pEvent)) { 400 CancelEvent(pEvent) 401 return false; 402 } 403 } 404 else { 405 if (!((typeof countfield === "string") && (typeof countfield.toString() == 'X'))) { 406 countfield.innerHTML = (maxlimit - vCharacters) + ' characters left'; 407 var test = countfield.innerHTML; 408 } 409 } 410} 411 412// Added as callback by code-behind 413function textCounter(field, countfield, maxlimit, pEvent) { 414 415 var iLine = field.value.split("\n").length; 416 var vCharacters = field.value.replace(/\n/g, '').replace('\r', '').length; 417 418 if (iLine > 1) { 419 vCharacters = vCharacters + ((iLine - 1) * 2); 420 } 421 422 if (vCharacters > maxlimit) { 423 if (iLine > 1) { 424 maxlimit = maxlimit - (iLine - 1); 425 } 426 field.value = field.value.substring(0, maxlimit); 427 return false; 428 } 429 else { 430 if (!((typeof countfield === "string") && (typeof countfield.toString() == 'X'))) { 431 countfield.innerHTML = (maxlimit - vCharacters) + ' characters left'; 432 var test = countfield.innerHTML; 433 } 434 } 435} 436 437// Not called (commented out in code-behind) 438function checkTextAreaMaxLength(textBox, e, length) { 439 440 var iLine = jQuery(textBox).val().split("\n").length; 441 var vCharacters = jQuery(textBox).val().replace('\n', '').replace('\r', '').length; 442 443 if (iLine > 1) { 444 vCharacters = vCharacters + ((iLine - 1) * 2); 445 } 446 447 var mLen = textBox["MaxLength"]; 448 if (null == mLen) 449 mLen = length; 450 451 var maxLength = parseInt(mLen); 452 453 if (!checkSpecialKeys(e)) { 454 455 if (vCharacters > maxLength) { 456 457 CancelEvent(e); 458 return false; 459 } 460 } 461} 462 463function CancelEvent(e) { 464 if (window.event)//IE 465 { 466 e.returnValue = false; 467 } 468 else//Firefox 469 e.preventDefault(); 470} 471 472// Called only by textCounterDown and checkTextAreaMaxLength; see former 473function checkSpecialKeys(e) { 474 if (e.keyCode != 8 && e.keyCode != 9 && e.keyCode != 46 && e.keyCode != 35 && e.keyCode != 36 && e.keyCode != 37 && e.keyCode != 38 && e.keyCode != 39 && e.keyCode != 40) 475 return false; 476 else 477 return true; 478} 479 480function onMultiLineLoad(sender, args) { 481 var wrapper = sender.get_wrapperElement(); 482 wrapper.classList.remove('RadInput'); 483 wrapper.classList.remove('RadInput_Default'); 484} 485
486// Called in CreateRadWindow in code-behind 487function OnClientShowWindow(sender, args, width, height) { 488 var browserWidth = jQuery(window).width(); 489 var browserHeight = jQuery(window).height(); 490 sender.setSize(Math.ceil(browserWidth * width / 100), Math.ceil(browserHeight * height / 100)); 491 sender.center(); 492} 493 494function fnClickOK(sender, e) { 495 __doPostBack(sender, e); 496} 497 498function ClientValidateRadEditorContentLength(sender, args) { 499 var maxLength = sender.getAttribute("data-maxlength"); 500 if (maxLength != null) { 501 if (args.Value != null && args.Value.length > maxLength) 502 args.IsValid = false; 503 else 504 args.IsValid = true; 505 } 506}
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.