{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./legacy/js/pages/edit/Util.js","webpack:///./legacy/js/pages/edit/edit.js","webpack:///./legacy/js/pages/edit/errorPanel.js"],"names":["getStickyValue","FieldId","sessionStorage","getItem","setStickyValue","value","setItem","VR","window","Edit","self","Validating","Alerts","ApplicationValues","ErrorFields","EventYear","Fields","editModel","editField","load","ImageDataSource","kendo","data","DataSource","pageSize","ImageListWindow","State","TabCount","CurrentSignatureField","Ex","Meta","GridDocsRefreshCreated","LastFocusedField","$","document","on","e","which","target","is","preventDefault","activeElement","body","model","FocusNextField","shiftKey","AddErrorField","index","indexOf","push","Common","IsMobile","field","css","html","GetFieldErrorCount","AddNewRecord","button","id","attr","length","substring","input","message","Script","ExecuteScript","GridScript","Kind","EditNumber","ShowError","gridinfo","ispreload","eventid","EventId","Preloads","href","GetRootURL","selection","EventName","encodeURIComponent","CanOpen","open","location","GetPreloadData","SecurePost","result","Code","HandleInvalidResult","preloadId","PreloadId","CanLeavePage","onsuccess","parameter","IsDisplayOnly","CanSaveWithEdits","CanSaveWithoutEdits","CanSave","CanLeave","canClose","each","HasChange","handler","CanLeaveValidated","ShowMessageBox","CapitalizeEachWord","capitalizeNextLetterCodes","specialUpToLow","specialLowToUp","valueArr","split","outputWords","i","singleWord","charArr","j","charCode0","charCodeAt","String","fromCharCode","charCode","includes","nextCharCode","join","CheckIsComboBoxValueAllowed","elem","elemModel","type","name","returnValue","FieldValue","GetInputValue","comboBox","FieldType","multispaces","RegExp","test","replace","MoveLit","FieldName","AllowOther","OriginalValue","select","DefaultValue","nx","IsInList","SetFieldStatus","ValidationDropdownItems","found","k","curItem","toString","toLowerCase","ValueInt","ValueString","cbDataList","dataSource","CreateFieldValidator","IsEnabled","error","PatternError","InputPattern","HtmlEscape","InputMax","InputMin","InputStep","combobox","previousvalue","DoFieldValueChanged","PreviousValue","hasClass","console","log","prevStr","curStr","prevVal","curVal","status","FieldStatus","LastFocus","DoFilterFields","initEnabled","getKendoValidator","validate","kendoValidator","validateOnBlur","messages","errorTemplate","rules","required","isValid","state","invalidMessage","requirements","RequiredForTransmit","RequiredForRegister","val","validValue","FieldDataType","filter","c","ValidateField","valOtherLiteral","customRule","checkRequired","IsRequired","RequiredFlag","dontValidate","a","HasSaveError","validationSteps","valid","ErrorPanel","setError","isHardEdit","errorType","TakeActionOnField","dropdownBox","filterInput","Model","trigger","Event","keyCode","CreateImageViewer","image","FileType","Images","source","key","GetFieldValue","url","ImageSource","style","CreateImageWindow","windowHost","height","ToFloat","top","width","left","IsNavBurger","idstring","kendoWindow","animation","position","title","actions","close","setTimeout","iframe","find","elemenet","parents","parentWindow","isImage","Annotation","Annotations","AnnotationWidth","AnnotateWidth","AnnotationHeight","AnnotateHeight","canvas","Image","InitTiffImage","InitImage","visible","handle","description","HtmlString","Description","ImageSecurity","CanSetSecurity","CanInactivate","security","ApplicationFunction","checkid","checked","IsActive","CanPrintInactive","CanUpdateImage","CanSaveImage","CanToggleAnnote","kendoAutoComplete","transport","read","options","list","text","List","item","success","undefined","serverFiltering","kendoDropDownList","autoBind","dataTextField","dataValueField","change","editor","changed","dropdownlist","add","parent","inputs","CreateInputField","panelHtml","FieldLabel","InputType","ToFormattedValue","Case","testVal","ToDate","CreateNotesEditor","tools","IsNotesAdmin","CanSaveNotes","kendoEditor","event","CanNewNotes","notes","GetFieldModel","Note","dropdownList","modal","dialog","table","winheight","off","focus","CreateNotesList","secfunc","dropDownList","eventId","fieldId","fieldName","isActive","Post","response","parseJSON","Json","Notes","NotesCount","splice","Message","hide","note","ShortNotes","ModifyUserName","NotesId","CanDeleteNotes","create","CreateDate","modified","ModifyDate","ModifyUserId","noteslist","HtmlUnescape","selected","NotesIndex","DeleteNotes","DeleteImage","ImageId","parseInt","isNaN","images","imageWindow","destroy","refresh","kendoList","ShowImageWindow","ImageCount","DeleteRecord","removeClass","addClass","DisableByPassVariable","bypass","ByPassValue","AllowUnknown","DisplayEvent","CanClose","DisplayGridEvent","grid","row","GridEvent","dataItem","GridKey","nxLoading","start","getCookie","cname","decodedCookie","decodeURIComponent","cookie","ca","charAt","DoAfterSave","isNoEdits","ChangedValues","allValues","values","substr","Values","format","InputFormat","moment","toUpperCase","isRetained","editPageData","CRUDType","src","prop","Ajax","dataType","async","ForceSetFieldValue","errorData","Errors","ErrorMessage","Location","IsHardEdit","InitFields","alert","SyncEventAlertsCount","alerts","setDataSource","SaveCount","CreateAmendmentsMenu","CreateDocumentsMenu","SetupNotes","fieldVal","origVal","scenario","setFieldStatus","Array","isArray","map","x","cBox","ResetField","HasChangeOvrd","GetInputFields","SetFieldValue","DoRelatedFields","performLookup","valfiltertype","voidVal","webfiltertype","eventYear","responseFunction","request","Value","Filter","ValFilterType","VoidValue","WebFilterType","trim","lookup","DoFilterField","FilterValue","filterValues","GetFilterValues","VoidField","DropdownOptions","option","curValue","Label","FilterDependents","RelatedFields","DoSkipFields","autocomplete","Key","HasRelatedValue","Data","related","relatedModel","ExecuteOnDisplay","ShouldRunEdits","edit","Edits","EditType","f","Validate","script","OnDisplay","ExecuteOnSave","QueueManager","DequeueAll","OnSave","isInit","DependentFields","dependentId","dependentfield","IsEditable","SkipFields","skipField","skipvalues","SkipValues","isSkip","skipval","ind","SetReadOnly","ParamBypassed","FieldKeyDown","ctrlKey","altKey","metaKey","stopPropagation","errorFields","errorExists","ReplaceDiacricals","fields","ShowPopupMenu","dataSet","DropDownList","sender","element","FieldKeyUp","input2","MaxLength","GetFieldRawValue","SkipOnEndField","isPrev","count","next","Prev","Next","FocusField","applyall","EditImage","headers","size","SetImageEditorSize","imagedit","cropper","minCanvasWidth","minCanvasHeight","minContainerHeight","minContainerWidth","zoomOnWheel","SlideBars","Setup","EditTiffImage","modalsize","editorid","canvases","section","imageedit","crop","TiffModalHeight","annote","annotes","dispose","wrapperEl","remove","SetupTiff","GetApplicationValue","date","Date","getFullYear","getMonth","getDate","DocPrinter","Document","DocParameter","DocTrackId","DocumentId","NumCopies","FaxReqId","FaxSigCode","FaxVersion","FirstDocNum","LastDocNum","GuiRole","GetChangedFields","GetCurrentTiffEditor","page","tiffpage","GetCurrentTiffEditorPage","GetEventYear","GetFieldData","indx","Mask","ToDateString","GetShippingTabData","Tab","GetShipCarrierAndTrackingNumber","slice","GetFieldErrors","qloc","ele","QueryLocation","prefix","GetFieldOverrides","GetOtherLiteralFields","returnNull","isFormatted","comboBoxReturnDisplayValue","Isactive","FilterFields","comboBoxOverloadFieldValue","selectedIndex","buttons","radio","maskedtextbox","raw","multiselect","GetIsActive","GetStateFileNumber","InactivateImage","children","child","checkbox","CreateFunction","Function","dynscript","year","eventGroup","roleCode","userName","kind","fileName","SecurityEventYear","SecurityRoleCode","SecurityUserName","SecurityEventGroup","ex","_message","CanViewScriptEditor","jsEditorAnchor","nibble","Tabs","SetFieldStatusColor","FirstField","InitScanImage","Dynamsoft","DWT","RegisterEvent","DWObject","GetWebTwain","HowManyImagesInBuffer","CurrentImageIndexInBuffer","SourceCount","GetSourceNameItems","Load","tooltip","container","Initialize","Referrer","referrer","dataValue","SpecialEventId","ModTypeId","RegTypeCode","RegTypeDescription","MissingValues","EditSecurity","CanDeleteWithSFN","CanNumberOverride","IsCasEvent","IsCasEnabled","IsDataCached","IsKeyCached","SetupBackButton","SecurityUsername","SourceEvent","SourceEventId","MaxImageUpload","errorPanel","SetupFields","SetupNextButtons","SetupSave","SetupErrorCount","SetupLinking","SetupActionMenus","SetupWindowKeyDown","SetupOnBeforeUnload","SetupOnUnload","SetupViewFieldDefs","OnResize","ResizeWindow","SetupAllControls","ValidateOnLoad","PageTitle","dcnt","curTabList","curField","lastedit","edittype","errorat","jqueryField","tempModel","fetch","then","newData","updatedValue","curOption","hasIssue","end","pageTitle","IsSaving","LoadImageFile","extensionOverwrite","appfunc","fileType","extension","lastIndexOf","imageextension","fileextension","content","dropdown","LoadTiffFile","PerformNextParagraph","first","Section","PopulateNotes","QueryField","SetStatus","RemoveErrorField","resetError","keepState","display","nav","NavHeight","RowChanged","timeout","Initialized","GetRowValue","SetVar","Save","hasEdits","isTwinSave","isScript","isAsync","byPassUpdateSecurity","currentSave","hasError","validator","curval","wasNotEditable","wasprotected","_isValidated","EnableField","Clear","SetFieldHeight","y","popover","requiredFields","requiredFlags","fld","err","regCode","modTypeid","overrides","errors","otherLits","ShowSaveError","KeyFieldId","KeyFieldValue","third","opener","param","Alert","capitalizeFirstLetters","history","pushState","PrintShippingLabel","userLocationCode","mailFirstName","mailLastname","mailAddress1","mailCity","mailState","mailZip","tracking_number","amount","error_messages","print_label_format","ProcessTrackingNumber","isNormal","SetAlertStatus","alertcountfield","enable","addNewAlert","alertMessage","AlertId","alertsDropdown","isDark","runComboBoxFetch","cbDataSource","SetupMaskedEdit","numbertextbox","tp","SetFieldValues","windowwidth","windowheight","headerheight","Math","round","max","isReadOnly","intInputId","startsWith","removeAttr","kendoMaskedTextBox","mask","unmaskOnPost","readonly","textBox","span","datepicker","numeric","inputAttr","errorSection","SetTiffEditorPage","cropped","mode","SetupControls","SetupScanImage","SetupFileLoad","SetupImageEdit","SetupViewImage","SetupReviewError","SetupNumberRecord","SetupEventActivation","SetupDocTracking","SetupTypeFromImage","Views","SetupAutoComplete","Keys","delay","SpellCheck","search","TypeFromImage","SetField","SetupButton","SetupCheckBox","isCreating","ValueOf","SetupDataSourceForComboBox","textProperty","valueProperty","fieldValue","DropDownValues","GetFieldIdFromFieldName","SetupDataSourceForDropDownList","ComboBoxTimeout","SetupComboBox","shouldUpdateFieldValue","curDropdownOption","groupdiv","combospan","kendoComboBox","suggest","dropDown","grep","selectedItem","d","errorMessage","panelId","panel","init","SetupDatePicker","SetupDateTimePicker","SetupGrid","SetupImage","SetupLabel","SetupMemoBox","SetupMultiSelect","SetupNumericTextBox","SetupRadioButton","SetupSignatureButton","SetupTextBox","SetupTimePicker","past","SpecialEdit","kendoDatePicker","depth","datePicker","setHours","dateString","newDate","setDate","kendoDateTimePicker","CanEdit","str","letter","BindDropDown","clonedData","changeRecordActiveStatus","deleteRecord","isactive","params","ShowDeleteRecordMessageBox","deleteEventRecord","active","ShowInfo","always","last","tab","Sections","Name","tempStickyVal","scrollTop","SetupLoadFile","removeData","columns","Columns","Format","Title","Width","Result","column","Type","dataFields","dataModel","kendoGrid","schema","mobile","sortable","reorderable","scrollable","resizable","toolbar","Object","keys","pageable","selectable","bottom","fieldid","CanAdd","ShowDocumentButton","header","gridfield","docSelection","resultDocs","Documents","tableHtml","IsFax","Id","gridDocBody","windowValue","canPrintSelection","Doc","SendPrintDocumentRequest","located","KeyValue","SelectRow","tbody","reload","inputFiles","files","inputFile","reader","FileReader","onload","onerror","readAsDataURL","fileload","annotation","InitEditorImage","SetupImageEditButtons","SetupImageEditAccept","SetupImageSaveButtons","InitTiffEditorImage","SetupTiffEditorButtons","SetupTiffEditAccept","SetupTiffSaveButtons","RecreateAnnote","CopyObjects","json","toJSON","JSON","stringify","getWidth","getHeight","HideAnnotation","cropannote","cropbox","CreateCroppedImage","Reset","IsHidden","ShowAnnotation","ShowAnnotationEditor","ShowCroppedAnnoteEditor","number","newext","JsonString","EventGroup","filename","imageLoad","pager","errorBtn","show","toggle","startHtml","replaceAll","openNew","LinkingSetupId","uploadLength","maskedEdit","MemoBoxRows","disabled","kendoMultiSelect","deley","multiSelect","isNumberReady","Number","ChangedFields","settings","decimals","parseFloat","min","step","kendoNumericTextBox","dataVal","CanNotes","menu","recordid","ShowNotes","notesBtn","unloading","footer","ShowErrorMessage","windowId","SetupPopupMenu","IsIOS","originalEvent","touches","pageX","touchobj","pageY","startx","starty","PopupTimeout","clearTimeout","action","PopupTarget","ShowWebSiteInfo","ShowFieldInfo","ShowFieldJEditor","UndoPopupMenu","casing","HandlePopupMenu","click","link","offset","scrollTo","CanSaveTwinWithSFN","stateFileNumber","KeyFields","RemoveAllImages","IfDisableSourceAfterAcquire","SelectSourceByIndex","OpenSource","AcquireImage","uuidv4","r","random","v","SelectedImagesCount","imagesize","GetSelectedImagesSize","EnumDWT_ImageType","IT_PNG","imagedata","SaveSelectedImagesToBase64Binary","SetSelectedImageIndex","TopazNumberOfTabletPoints","NumberOfTabletPoints","SignaturePad","minWidth","maxWidth","penColor","backgroundColor","SetSignatureButtonColor","Cleared","ClearTopazDisplay","clear","StopTopazInput","emptyPad","isEmpty","toDataURL","SigId","ToggleSignatureFocus","ShowSignature","signed","croped","targets","canvasid","RecreateTiffAnnote","Copy","jsons","object","canvassection","ResetTiff","GetCurrentEditorPage","SetupTiffViewerButtons","placement","pagenum","num","TiffJsonString","widths","heights","kendoTimePicker","eventHandler","listWindow","listview","CanDelete","kendoPager","kendoListView","template","ShowImageList","imagesBtn","onhelp","ShowFieldHelp","ShowImage","Extension","appendTo","Print","PrintDialog","args","isCancelled","Generate","ImagePrint","ToggleAnnotation","backup","UpdateImage","info","frame","fail","responseText","StackInfo","selectedid","CanDisplayInactive","pageInfo","isField","isDataField","isSign","canNote","hasValue","className","finish","noescape","StartTopazInput","context","retmod","TopazTmr","SetTabletState","TabletModelNumber","SetLCDCaptureMode","LcdRefresh","LCDSetWindow","SetJustifyMode","KeyPadClearHotSpotList","ClearSigWindow","SetDisplayXSize","SetDisplayYSize","SetImageXSize","SetImageYSize","SetSigWindow","isDisplay","fromDataURL","Signature","_ctx","host","ValidDate","valDate","isLeapYear","dateParts","month","day","isDate","daysInMonth","theState","EditOnSaveOnly","isHard","msgID","PutFocusOnFirstWritableField","topMostControls","tabs","toArray","gadget","tabId","closest","editOnLoad","FieldPopup","ValidateSession","CreateWorkQueueHandler","ShowWorkQueues","SetupWorkQueueCounts","CreateMainMenus","CreatePopOverToolTop","SetupLogin","SetupTwoFactor","SetupLogout","SetupQuickSearch","SetupMessageRead","SetupOnResize","SetupConnection","CreateAmendments","CreateDocuments","FocusOnDisplay","Focus","panelData","actionKeys","o","q","getData","setState","React","Render","getElementById","Components","ValidationPanel","showActionKey","isValidationErr","CanOverride","showBypassKey","bypassButtons","txt","b","extend","actionButtons","timeAdded","breadCrumbs","onclick","events","onkeydown","onkeypress","btn","missingValues","HasMissingVariable","defaultValue","onChange"],"mappings":"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","file":"js/pages/edit.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"./legacy/js/pages/edit/edit.js\");\n","export function getStickyValue(FieldId) {\r\n return sessionStorage.getItem(`sticky_${FieldId}`) || \"\";\r\n}\r\nexport function setStickyValue(FieldId, value) {\r\n sessionStorage.setItem(`sticky_${FieldId}`, value);\r\n}\r\n","import { errorPanel } from \"./errorPanel\";\r\nimport { getStickyValue, setStickyValue } from \"./Util\";\r\n\r\nvar VR = typeof window.VR !== \"undefined\" ? window.VR : {};\r\n\r\nVR.Edit = (function () {\r\n var self = {};\r\n self.Validating = false;\r\n /*// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\r\n // Member Fields */\r\n self.Alerts = [];\r\n self.ApplicationValues = null;\r\n self.ErrorFields = [];\r\n self.EventYear = 0;\r\n self.Fields = [];\r\n self.editModel = null;\r\n self.editField = null;\r\n self.load = false;\r\n self.ImageDataSource = new kendo.data.DataSource({\r\n pageSize: 16\r\n });\r\n self.ImageListWindow = null;\r\n self.State = 0;\r\n self.TabCount = 0;\r\n self.CurrentSignatureField = null;\r\n self.Ex = {};\r\n self.Meta = {};\r\n self.GridDocsRefreshCreated = false;\r\n self.LastFocusedField = null;\r\n //Prevent the default browser action for the backspace key so that the browser doesn't try using the back button\r\n $(document).on(\"keydown\", function (e) {\r\n if (\r\n e.which === 8 &&\r\n !$(e.target).is(\r\n \"input:not([readonly]):not([type=radio]):not([type=checkbox]), textarea, [contentEditable], [contentEditable=true]\"\r\n )\r\n ) {\r\n e.preventDefault();\r\n }\r\n else if (e.which === 9) {\r\n if (self.LastFocusedField !== null && document.activeElement === document.body) {\r\n e.preventDefault();\r\n let model = $(\"#f\" + self.LastFocusedField).data(\"field\");\r\n self.FocusNextField(model, e.shiftKey);\r\n self.LastFocusedField = null;\r\n }\r\n }\r\n });\r\n\r\n /*// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= \r\n /// \r\n /// Adds error field to the error field list.\r\n /// \r\n /// The field model.\r\n /// */\r\n self.AddErrorField = function (model) {\r\n if (model == null) {\r\n return;\r\n }\r\n\r\n var index = self.ErrorFields.indexOf(model);\r\n if (index == -1) {\r\n self.ErrorFields.push(model);\r\n if (VR.Common.IsMobile()) {\r\n var field = $(\"#f\" + model.FieldId);\r\n field.css(\"border\", \"1px solid red\");\r\n $(\"#mobileErrorsBtnText\").html(`${self.GetFieldErrorCount()}`);\r\n }\r\n }\r\n }; //AddErrorField\r\n\r\n /*// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= \r\n /// \r\n /// Adds a new event record for grid.\r\n /// \r\n /// The field model.\r\n /// */\r\n self.AddNewRecord = function (button) {\r\n if (!button) {\r\n return;\r\n }\r\n\r\n var id = $(button).attr(\"id\");\r\n if (id && id.length > 0) {\r\n id = id.substring(1);\r\n }\r\n\r\n var input = $(\"#f\" + id);\r\n var model = input.data(\"field\");\r\n if (!model) {\r\n return;\r\n }\r\n\r\n var message = VR.Script.ExecuteScript(input, model, {\r\n Script: model.GridScript,\r\n Kind: \"grid\",\r\n EditNumber: 0\r\n });\r\n\r\n if (message && message != \"OK\") {\r\n VR.Common.ShowError(message);\r\n return;\r\n }\r\n\r\n var gridinfo = input.data(\"grid\");\r\n if (!gridinfo) {\r\n return;\r\n }\r\n\r\n var ispreload = false;\r\n var eventid = gridinfo.EventId;\r\n if (self.Preloads && self.Preloads.length > 0) {\r\n ispreload = self.Preloads.indexOf(eventid) > -1;\r\n }\r\n\r\n if (!ispreload) {\r\n var href = VR.Common.GetRootURL();\r\n var selection =\r\n \"new-\" +\r\n gridinfo.EventId +\r\n \"|preload=|source=\" +\r\n self.EventName +\r\n \"|id=\" +\r\n self.EventId;\r\n selection = \"eventedit=\" + encodeURIComponent(selection);\r\n href +=\r\n \"event/edit?selection=\" +\r\n encodeURIComponent(selection);\r\n if (VR.Common.CanOpen) {\r\n window.open(href);\r\n } else {\r\n window.location.href = href;\r\n }\r\n } else {\r\n var selection = self.GetPreloadData();\r\n VR.Common.SecurePost(\r\n \"data/preload\",\r\n selection,\r\n function (result) {\r\n if (result.Code != 0) {\r\n VR.Common.HandleInvalidResult(result, \"Preload\", false);\r\n } else {\r\n var preloadId = result.PreloadId;\r\n var href = VR.Common.GetRootURL();\r\n var selection =\r\n \"new-\" +\r\n gridinfo.EventId +\r\n \"-preload=\" +\r\n preloadId +\r\n \"|source=\" +\r\n self.EventName +\r\n \"|id=\" +\r\n self.EventId;\r\n selection = \"eventedit=\" + encodeURIComponent(selection);\r\n href +=\r\n \"event/edit?selection=\" +\r\n encodeURIComponent(selection);\r\n window.location.href = href;\r\n }\r\n },\r\n false,\r\n \"data=\",\r\n false,\r\n true\r\n );\r\n }\r\n }; //AddNewRecord\r\n /*// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= \r\n /// \r\n /// Checks to see if the user can leave the page.\r\n /// \r\n /// The onsucess handler.\r\n /// The field model.\r\n /// */\r\n self.CanLeavePage = function (onsuccess, parameter) {\r\n if (\r\n self.IsDisplayOnly ||\r\n (!self.CanSaveWithEdits && !self.CanSaveWithoutEdits) ||\r\n !self.CanSave ||\r\n self.CanLeave\r\n ) {\r\n if (onsuccess) {\r\n onsuccess(parameter);\r\n }\r\n } else {\r\n var canClose = true;\r\n var model = null;\r\n $.each(self.Fields, function (index, field) {\r\n if (field.HasChange) {\r\n canClose = false;\r\n model = field;\r\n return false;\r\n }\r\n });\r\n\r\n if (canClose) {\r\n if (onsuccess) {\r\n onsuccess(parameter);\r\n }\r\n } else {\r\n var handler = function (parameter) {\r\n self.CanLeaveValidated = true;\r\n if (onsuccess) {\r\n onsuccess(parameter);\r\n }\r\n };\r\n\r\n var message =\r\n \"You have unsaved changes. Do you want to leave this page?\";\r\n VR.Common.ShowMessageBox(message, handler, true, parameter);\r\n }\r\n }\r\n };\r\n\r\n /*// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\r\n /// \r\n /// Capitizes the first letter in each word of the string, then sets all other characters to lowercase\r\n /// \r\n /// Input string.\r\n /// Capitalized string.*/\r\n self.CapitalizeEachWord = function (value) {\r\n let capitalizeNextLetterCodes = [45, 39];\r\n // [-, ']\r\n //00df is small sharp s and is allowed, don't have capital sharp s 1e9e\r\n let specialUpToLow = {\r\n 200: 232, 209: 241, 192: 224, 193: 225, 194: 226, 195: 227, 196: 228, 197: 229, 198: 230, 210: 242, 211: 243, 212: 244, 213: 245, 214: 246,\r\n 216: 248, 199: 231, 200: 232, 201: 233, 202: 234, 203: 235, 217: 249, 218: 250, 219: 251, 220: 252, 204: 236, 205: 237, 206: 238, 207: 239,\r\n 221: 253, 208: 240, 222: 254, 376: 255,\r\n //7838: 223 //do not change sharp s capitalization for now\r\n };\r\n let specialLowToUp = {\r\n 232: 200, 241: 209, 224: 192, 225: 193, 226: 194, 227: 195, 228: 196, 229: 197, 230: 198, 242: 210, 243: 211, 244: 212, 245: 213, 246: 214,\r\n 248: 216, 231: 199, 232: 200, 233: 201, 234: 202, 235: 203, 249: 217, 250: 218, 251: 219, 252: 220, 236: 204, 237: 205, 238: 206, 239: 207,\r\n 253: 221, 240: 208, 254: 222, 255: 376,\r\n //223: 7838\r\n };\r\n \r\n let valueArr = value.split(\" \");\r\n let outputWords = [];\r\n for (let i = 0; i < valueArr.length; i++) {\r\n let singleWord = valueArr[i];\r\n let charArr = singleWord.split(\"\");\r\n for (let j = 0; j < charArr.length; j++) {\r\n if (j === 0) {\r\n let charCode0 = charArr[j].charCodeAt();\r\n if (charCode0 >= 97 && charCode0 <= 122) {\r\n //currently lowercase, make uppercase\r\n charArr[j] = String.fromCharCode(charCode0 - 32);\r\n }\r\n else if (typeof specialLowToUp[charCode0] === \"number\") {\r\n charArr[j] = String.fromCharCode(specialLowToUp[charCode0]);\r\n }\r\n }\r\n else {\r\n let charCode = charArr[j].charCodeAt();\r\n if (charCode >= 65 && charCode <= 90) {\r\n //currently uppercase, make lowercase\r\n charArr[j] = String.fromCharCode(charCode + 32);\r\n }\r\n else if (typeof specialUpToLow[charCode] === \"number\") {\r\n charArr[j] = String.fromCharCode(specialUpToLow[charCode]);\r\n }\r\n else if (capitalizeNextLetterCodes.includes(charCode) && j + 1 < charArr.length) {\r\n let nextCharCode = charArr[j + 1].charCodeAt();\r\n if (nextCharCode >= 97 && nextCharCode <= 122) {\r\n //currently lowercase, make uppercase\r\n charArr[j + 1] = String.fromCharCode(nextCharCode - 32);\r\n }\r\n else if (typeof specialLowToUp[nextCharCode] === \"number\") {\r\n charArr[j + 1] = String.fromCharCode(specialLowToUp[nextCharCode]);\r\n }\r\n if (!capitalizeNextLetterCodes.includes(nextCharCode)) {\r\n j++;\r\n }\r\n }\r\n }\r\n }\r\n outputWords.push(charArr.join(\"\"));\r\n }\r\n return outputWords.join(\" \");\r\n };\r\n\r\n self.CheckIsComboBoxValueAllowed = function (input) {\r\n var elem = $(input);\r\n var elemModel = (elem[0].type === \"radio\"\r\n ? $(`#${elem[0].name}`)\r\n : elem\r\n ).data(\"field\");\r\n var returnValue = true;\r\n var value = !!elemModel.FieldValue\r\n ? elemModel.FieldValue\r\n : self.GetInputValue(elem, true);\r\n var comboBox = elem.data(\"kendoComboBox\");\r\n\r\n if (elemModel.FieldType == \"ComboBox\") {\r\n var multispaces = RegExp(/\\s\\s+/g);\r\n if (multispaces.test(value)) {\r\n value = value.replace(/\\s\\s+/g, \" \");\r\n VR.Script.MoveLit(value, elemModel.FieldName);\r\n }\r\n if (value) {\r\n if (elemModel.AllowOther == true) {\r\n if (value != elemModel.OriginalValue\r\n && comboBox.select() === -1\r\n && value != elemModel.DefaultValue\r\n && !nx.IsInList(elemModel.FieldId)) {\r\n self.SetFieldStatus(comboBox.input, elemModel, \"literal\", null, null);\r\n }\r\n } else {\r\n if (comboBox.value() && comboBox.select() === -1 && !nx.IsInList(elemModel.FieldId)) {\r\n returnValue = false;\r\n }\r\n else if (elemModel.ValidationDropdownItems !== null) {\r\n let found = false;\r\n for (let k = 0; k < elemModel.ValidationDropdownItems.length && found === false; k++) {\r\n let curItem = elemModel.ValidationDropdownItems[k];\r\n found = value.toString().toLowerCase() === (curItem.ValueInt === null ? curItem.ValueString.toLowerCase() : curItem.ValueInt.toString());\r\n }\r\n if (found === false && elemModel.ValidationDropdownItems.length <= 1) {\r\n let cbDataList = comboBox.dataSource.data();\r\n for (let i = 0; i < cbDataList.length && found === false; i++) {\r\n let curItem = cbDataList[i];\r\n if (value.toString().toLowerCase() === curItem.value.toString().toLowerCase()) {\r\n found = true;\r\n }\r\n }\r\n }\r\n returnValue = found;\r\n }\r\n }\r\n }\r\n }\r\n return returnValue;\r\n }\r\n\r\n /*// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\r\n /// \r\n /// Creates a field validator.\r\n /// \r\n /// The field model.\r\n /// */\r\n self.CreateFieldValidator = function (model) {\r\n if (\r\n model.FieldType &&\r\n model.FieldType != \"Button\" &&\r\n model.FieldType != \"Grid\" &&\r\n model.FieldType != \"Image\" &&\r\n model.FieldType != \"Label\" &&\r\n model.FieldType != \"CheckBox\"\r\n ) {\r\n var field = $(\"#f\" + model.FieldId);\r\n field.data(\"initEnabled\", field.data(\"field\").IsEnabled ?? false);\r\n\r\n var error = model.PatternError;\r\n if (model.InputPattern && model.InputPattern.length > 0) {\r\n if (!error || error.length == 0) {\r\n error = \"Invalid format.\";\r\n }\r\n $(field).attr(\"pattern\", VR.Common.HtmlEscape(model.InputPattern));\r\n $(field).attr(\"data-pattern-msg\", VR.Common.HtmlEscape(error));\r\n }\r\n\r\n if (model.InputMax) {\r\n $(field).attr(\"max\", VR.Common.HtmlEscape(model.InputMax));\r\n $(field).attr(\"data-max-msg\", \"The number exceeds maximum.\");\r\n }\r\n\r\n if (model.InputMin) {\r\n $(field).attr(\"min\", VR.Common.HtmlEscape(model.InputMin));\r\n $(field).attr(\"data-max-msg\", \"The number is below minimum.\");\r\n }\r\n\r\n if (model.InputStep) {\r\n $(field).attr(\"step\", VR.Common.HtmlEscape(model.InputStep));\r\n }\r\n\r\n if (model.FieldType != \"AutoComplete\" && model.FieldType != \"TextBox\") {\r\n //Delay OnChange for AutoComplete so that it won't fired many time unnecessarily.\r\n field.on(\"change\", function (e) {\r\n if (model.FieldType == \"ComboBox\") {\r\n var combobox = $(this).data(\"kendoComboBox\");\r\n var previousvalue = $(this).data(\"prevValue\");\r\n if (combobox.value() == previousvalue) {\r\n return;\r\n } else {\r\n $(this).data(\"prevValue\", combobox.value());\r\n }\r\n }\r\n\r\n self.DoFieldValueChanged(this);\r\n if (combobox) {\r\n model.PreviousValue = combobox.value();\r\n } else {\r\n model.PreviousValue = self.GetInputValue(this);\r\n }\r\n });\r\n }\r\n\r\n field.on(\"keydown\", function (e) {\r\n if (\r\n $(this).hasClass(\"readonly-text\") &&\r\n $(this).is(\":not([role='listbox'])\")\r\n ) {\r\n if (e.which != 9) {\r\n e.preventDefault();\r\n }\r\n }\r\n });\r\n\r\n field.on(\"blur\", function (e) {\r\n var field = $(this).data(\"field-name\");\r\n console.log(\"onblur field=\" + field);\r\n var model = $(this).data(\"field\");\r\n if ($(this).hasClass(\"readonly-text\") || !model || !model.IsEnabled) {\r\n return;\r\n }\r\n var prevStr;\r\n var curStr;\r\n var prevVal;\r\n var curVal;\r\n if (model.FieldType == \"TextBox\") {\r\n if (!model.PreviousValue) {\r\n if (model.OriginalValue != null) {\r\n model.PreviousValue = model.OriginalValue;\r\n }\r\n else {\r\n model.PreviousValue = \"\";\r\n }\r\n }\r\n prevStr = model.PreviousValue;\r\n curStr = self.GetInputValue(this); //do we want to pass in a false here for procesing before the DoFieldValueChanged?\r\n }\r\n else {\r\n prevVal = ~~(model.OriginalValue && model.OriginalValue != \"\"); // this can't be right, only looks at the original value\r\n curVal = ~~(self.GetInputValue(this) && self.GetInputValue != \"\"); // the second step is to check if the function exists?\r\n }\r\n\r\n var status = ~~(\r\n model.FieldStatus &&\r\n (model.FieldStatus == \"skipped\" || model.FieldStatus == \"override\")\r\n );\r\n\r\n\r\n if (\r\n (model.FieldType == \"AutoComplete\" && model.HasChange) ||\r\n (curVal != prevVal && status == 1) || // does this do anything?\r\n (model.FieldType == \"TextBox\" && curStr != prevStr) //for text box do I need an equivalent status check or is the doField's check sufficient?\r\n ) {\r\n //Do not process OnChange for AutoComplete so that it won't fire many times unnecessarily.\r\n //Note that TextBox does not process for on change\r\n //note that DoFieldValueChanged is called in onchange for some controls and here for others or sometimes both\r\n self.DoFieldValueChanged(this); //skipped is handled inside of DoFieldValueChanged\r\n }\r\n\r\n // after we are done, the fieldvalue will\r\n // become the previousvalue for the next time through\r\n if (model.FieldType == \"TextBox\") {\r\n model.PreviousValue = self.GetInputValue(this);\r\n }\r\n VR.Script.LastFocus = { model: model, field: this };\r\n self.DoFilterFields(this);\r\n //VR.Diagnostic.AddEvent(new VR.Diagnostic.Event(\"Field Blur\", e));\r\n let initEnabled = $(e.target).data(\"initEnabled\");\r\n if (!initEnabled && $(e.target).getKendoValidator()) {\r\n $(e.target).getKendoValidator().validate();\r\n }\r\n\r\n });\r\n\r\n\r\n //the kendo validator functionality has been replaced with the ErrorPanel component.\r\n // the next part of removing the kendoValidator would possibly be placing the isValid function\r\n // into the field.onBlur event in place of validator.validate().\r\n field.kendoValidator({\r\n validateOnBlur: true,\r\n messages: {},\r\n errorTemplate:\r\n \"

#=message#

\",\r\n rules: {\r\n required: function (e) {\r\n return true; //bypass standard functionality by always returning true. isRequired checked in the isValid function.\r\n },\r\n isValid: function (e) {\r\n self.Validating = true;\r\n var elem = $(e);\r\n var state = elem.data(\"state\") || self.State;\r\n var elemModel = (elem[0].type === \"radio\"\r\n ? $(`#${elem[0].name}`)\r\n : elem\r\n ).data(\"field\");\r\n var invalidMessage = \"\";\r\n\r\n function requirements() {\r\n invalidMessage = \"Required.\";\r\n return (\r\n (!elemModel.RequiredForTransmit &&\r\n !elemModel.RequiredForRegister) ||\r\n (elemModel.RequiredForTransmit &&\r\n elemModel.FieldType === \"Hidden\") ||\r\n elem.val()\r\n );\r\n }\r\n function validValue() {\r\n invalidMessage = \"Invalid integer value.\";\r\n var returnValue = false;\r\n var val = self.GetInputValue(elem, true);\r\n\r\n if (\r\n val &&\r\n self.State === 0 &&\r\n elemModel.FieldDataType === \"integer\"\r\n ) {\r\n returnValue =\r\n val.split(\"\").filter(function (c) {\r\n return \"0123456789\".indexOf(c) == -1;\r\n }).length === 0;\r\n } else {\r\n returnValue = true;\r\n }\r\n return returnValue;\r\n }\r\n var val = self.GetInputValue(elem, true);\r\n if (val.length && elemModel.FieldType == \"DatePicker\") {\r\n return self.ValidateField(e);\r\n }\r\n function valOtherLiteral() {\r\n invalidMessage = \"Entry doesn't exist.\";\r\n return self.CheckIsComboBoxValueAllowed(elem);\r\n }\r\n function customRule() {\r\n invalidMessage = \"Custom validation error.\";\r\n return self.ValidateField(e);\r\n }\r\n function checkRequired() {\r\n invalidMessage = \"Required.\";\r\n if (elemModel.IsRequired && !elem.val()) {\r\n elemModel.RequiredFlag = true;\r\n }\r\n return elemModel.IsRequired ? elem.val() : true;\r\n }\r\n function dontValidate() {\r\n var a =\r\n !elemModel ||\r\n field.hasClass(\"readonly-text\") ||\r\n elemModel.HasSaveError;\r\n return a;\r\n }\r\n function validationSteps() {\r\n return (\r\n requirements() &&\r\n validValue() &&\r\n valOtherLiteral() &&\r\n customRule()\r\n );\r\n }\r\n\r\n var valid = checkRequired() && validationSteps();\r\n\r\n if (!valid) {\r\n self.ErrorPanel.setError({\r\n field: field,\r\n model: model,\r\n message: invalidMessage,\r\n location: null,\r\n isHardEdit: model.isHardEdit,\r\n errorType: \"validation\"\r\n });\r\n self.TakeActionOnField(\"skipped\", invalidMessage, null, field, model);\r\n self.AddErrorField(model);\r\n }\r\n self.Validating = false;\r\n return valid;\r\n }\r\n }\r\n });\r\n var data = field.data(\"field\");\r\n if (!data) {\r\n field.data(\"field\", model);\r\n }\r\n var dropdownBox = field.data(\"kendoDropDownList\");\r\n if (dropdownBox) {\r\n //now dropdowns may not have a filter we'll need to check to see if the input exists.\r\n if (dropdownBox.filterInput) {\r\n dropdownBox.filterInput.on(\"focus\", function () {\r\n var model = $(this).data(\"field\");\r\n if (model) {\r\n nx.Model = model;\r\n //model.Validated = false;\r\n console.log(\"onfocus model.FieldName=\" + model.FieldName);\r\n } else {\r\n nx.Model = null;\r\n console.log(\"onfocus nodata\");\r\n }\r\n if ($(this).val() == \"\")\r\n $(this).trigger($.Event(\"keydown\", { keyCode: 8 }));\r\n });\r\n }\r\n } else {\r\n field.on(\"focus\", function (e) {\r\n console.log(\"onfocus this=\" + $(this).attr(\"id\"));\r\n var model = $(this).data(\"field\");\r\n if (model) {\r\n nx.Model = model;\r\n //model.Validated = false;\r\n console.log(\"onfocus model.FieldName=\" + model.FieldName);\r\n } else {\r\n nx.Model = null;\r\n console.log(\"onfocus nodata\");\r\n }\r\n });\r\n }\r\n }\r\n }; //CreateFieldValidator\r\n\r\n /*// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= \r\n /// \r\n /// Creates the HTML string for the image viewer.\r\n /// \r\n /// The image reqest ressponse model.\r\n /// The image model.\r\n /// The HTML string for the image editor.*/\r\n self.CreateImageViewer = function (result, image) {\r\n var type = result.FileType;\r\n if (type) {\r\n type = type.toLowerCase();\r\n }\r\n var html = \"\";\r\n if (!result || !result.Images || result.Images.length < 1) {\r\n return html;\r\n }\r\n\r\n if (result.Images.length == 1) {\r\n var source = result.Images[0];\r\n switch (type) {\r\n case \"bmp\":\r\n case \"gif\":\r\n case \"tiff\":\r\n case \"jpeg\":\r\n case \"png\":\r\n if (type == \"tiff\") {\r\n type = \"jpeg\";\r\n }\r\n html +=\r\n \"\";\r\n break;\r\n case \"pdf\":\r\n //var key = \"key=\" + source + \"|print=true|save=true|name=AttachedFile|dialog=true|copy=true|image=true\";\r\n var key =\r\n \"key=\" +\r\n source +\r\n \"|email=\" +\r\n true +\r\n \"|print=\" +\r\n true +\r\n \"|save=\" +\r\n true +\r\n \"|event=\" +\r\n self.EventName +\r\n \"|eventid=\" +\r\n self.EventId +\r\n \"|name=AttachedFile\" +\r\n \"|local=\" +\r\n self.GetFieldValue(\"LOCAL_FILE_NUMBER\") +\r\n \"|dialog=\" +\r\n true +\r\n \"|copy=\" +\r\n 1 +\r\n \"|printer=\" +\r\n \"|open=\" +\r\n false;\r\n var selection = \"selection=\" + encodeURIComponent(key);\r\n var url =\r\n VR.Common.GetRootURL() +\r\n \"report/report?selection=\" +\r\n encodeURIComponent(selection);\r\n html += \"\";\r\n break;\r\n default:\r\n html +=\r\n \"
\" +\r\n \"
\";\r\n break;\r\n }\r\n } else {\r\n html +=\r\n \"
\";\r\n html +=\r\n \"
Page 1 of \" +\r\n result.Images.length +\r\n \"
\";\r\n html += \"
\";\r\n html +=\r\n \"
\";\r\n $.each(result.Images, function (index, source) {\r\n var style = \"\";\r\n if (index > 0) {\r\n style = \"style=' display: none; '\";\r\n }\r\n html +=\r\n \"\";\r\n });\r\n html += \"
\";\r\n }\r\n\r\n return html;\r\n }; //CreateImageViewer\r\n\r\n /*// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= \r\n /// \r\n /// Creates the image editor window.\r\n /// \r\n /// The element Id.\r\n /// The image reqest ressponse model.\r\n /// */\r\n self.CreateImageWindow = function (id, result) {\r\n var windowHost = $(\"#\" + id + \"-window\");\r\n windowHost.data(\"Image\", result);\r\n var height = $(\"nav\").height();\r\n height = VR.Common.ToFloat(height) + 20;\r\n var top = height + \"px\";\r\n var width = \"60%\";\r\n height = \"80%\";\r\n var left = \"20%\";\r\n if (VR.Common.IsMobile()) {\r\n if (VR.Common.IsNavBurger()) {\r\n width = \"98%\";\r\n left = \"1%\";\r\n } else {\r\n width = \"90%\";\r\n left = \"5%\";\r\n }\r\n }\r\n\r\n var idstring = VR.Common.HtmlEscape(id);\r\n\r\n windowHost.kendoWindow({\r\n animation: false,\r\n position: {\r\n top: top,\r\n left: left\r\n },\r\n height: height,\r\n width: width,\r\n title: \"Image Viewer\",\r\n actions: [\"Pin\", \"Close\"],\r\n close: function (e) {\r\n setTimeout(function () {\r\n $(\".k-window\").css(\"z-index\", \"1000\");\r\n }, 1000);\r\n },\r\n open: function (e) {\r\n var iframe = windowHost.find(\".edit-iframe\");\r\n $(iframe).css(\"display\", \"none\");\r\n var elemenet = windowHost.parents(\".k-window\");\r\n elemenet.css(\"z-index\", \"1000\");\r\n var parentWindow = windowHost.data(\"kendoWindow\");\r\n var result = windowHost.data(\"Image\");\r\n var type = result.FileType;\r\n if (type) {\r\n type = type.toLowerCase();\r\n }\r\n var isImage = false;\r\n switch (type) {\r\n case \"bmp\":\r\n case \"gif\":\r\n case \"tiff\":\r\n case \"jpeg\":\r\n case \"png\":\r\n isImage = true;\r\n break;\r\n }\r\n if (isImage) {\r\n parentWindow.Annotation = result.Annotations;\r\n parentWindow.AnnotationWidth = result.AnnotateWidth;\r\n parentWindow.AnnotationHeight = result.AnnotateHeight;\r\n if (result.Images.length > 1) {\r\n setTimeout(function (e) {\r\n var canvas = idstring + \"-canvas\";\r\n var image = idstring + \"-editor\";\r\n VR.Image.Annotation.InitTiffImage(canvas, image, parentWindow);\r\n }, 300);\r\n } else {\r\n setTimeout(function (e) {\r\n var canvas = idstring + \"-canvas\";\r\n var image = idstring + \"-editor\";\r\n VR.Image.Annotation.InitImage(canvas, image, parentWindow);\r\n }, 300);\r\n }\r\n }\r\n },\r\n visible: false\r\n });\r\n\r\n windowHost.css(\"z-index\", \"1000\");\r\n if (VR.Common.IsMobile()) {\r\n var parents = windowHost.parents(\".k-window\");\r\n var handle = parents.find(\".k-resize-se\");\r\n handle.css(\"opacity\", \"1\");\r\n handle.css(\"background-color\", \"#66f\");\r\n handle.css(\"z-index\", \"1010\");\r\n handle.css(\"width\", \"32px\");\r\n handle.css(\"height\", \"32px\");\r\n }\r\n\r\n var description = VR.Common.HtmlString(result.Description);\r\n var html = \"
\";\r\n if (\r\n self.ImageSecurity &&\r\n (self.ImageSecurity.CanSetSecurity || self.ImageSecurity.CanInactivate)\r\n ) {\r\n html += \"

\";\r\n if (self.ImageSecurity.CanSetSecurity) {\r\n var security = VR.Common.HtmlString(result.ApplicationFunction);\r\n html +=\r\n \"Application Function: \";\r\n }\r\n\r\n if (self.ImageSecurity.CanInactivate) {\r\n var checkid = VR.Common.HtmlEscape(id) + \"-check\";\r\n var checked = \"\";\r\n if (result.IsActive) {\r\n checked = \"checked='checked'\";\r\n }\r\n html +=\r\n \"\" +\r\n \"\";\r\n }\r\n html += \"

\";\r\n }\r\n\r\n html +=\r\n \"

Description: \";\r\n var type = result.FileType;\r\n if (type) {\r\n type = type.toLowerCase();\r\n }\r\n var isImage = false;\r\n switch (type) {\r\n case \"bmp\":\r\n case \"gif\":\r\n case \"tiff\":\r\n case \"jpeg\":\r\n case \"png\":\r\n isImage = true;\r\n break;\r\n }\r\n if (\r\n isImage &&\r\n (result.IsActive ||\r\n (self.ImageSecurity && self.ImageSecurity.CanPrintInactive))\r\n ) {\r\n html += \"\";\r\n }\r\n\r\n if (self.ImageSecurity && self.ImageSecurity.CanUpdateImage) {\r\n html += \"\";\r\n }\r\n if (result && result.CanSaveImage) {\r\n html += \"\";\r\n }\r\n\r\n html +=\r\n \"\";\r\n if (isImage && self.ImageSecurity && self.ImageSecurity.CanToggleAnnote) {\r\n html +=\r\n \"\";\r\n }\r\n html += \"

\";\r\n\r\n html +=\r\n \"
\" +\r\n \"
\" +\r\n \"
\" +\r\n \"
\";\r\n\r\n windowHost.html(html);\r\n\r\n windowHost.find(\"input[type='text']\").kendoAutoComplete({});\r\n var dataSource = new kendo.data.DataSource({\r\n transport: {\r\n read: function (options) {\r\n var list = $(\"#\" + id + \"-imagewindow-appfunction-list\");\r\n var text = list.find(\".k-textbox\");\r\n var val = text.val();\r\n var url = VR.Common.GetRootURL(\"event/edit\");\r\n VR.Common.SecurePost(\r\n url + \"data/secfile\",\r\n val,\r\n function (result) {\r\n if (result.Code == 0) {\r\n var data = [];\r\n data.push({ text: \" \", value: \"\" });\r\n $.each(result.List, function (index, item) {\r\n data.push({ text: item, value: item, key: item });\r\n });\r\n if (!!options) options.success(data);\r\n return data;\r\n } else {\r\n options.error(result);\r\n VR.Common.HandleInvalidResult(result, \"Image\", true);\r\n return [];\r\n }\r\n },\r\n true,\r\n undefined,\r\n false,\r\n false\r\n );\r\n }\r\n },\r\n serverFiltering: true\r\n });\r\n\r\n var input = windowHost.find(\"input[type='search']\");\r\n input.kendoDropDownList({\r\n autoBind: false,\r\n dataTextField: \"text\",\r\n dataValueField: \"value\",\r\n dataSource: dataSource,\r\n filter: \"contains\",\r\n change: function (e) {\r\n var editor = $(\"#\" + id + \"-editor\");\r\n var changed = editor.attr(\"data-changed\");\r\n if (!changed) {\r\n changed = \"\";\r\n }\r\n\r\n if (changed.indexOf(\"sec\") == -1) {\r\n changed += \"|sec\";\r\n }\r\n editor.attr(\"data-changed\", changed);\r\n },\r\n open: function (e) {\r\n //var dropDown = $(e.target)\r\n //if (!dropDown.is(\":not([readonly])\")) {\r\n // e.preventDefault();\r\n //}\r\n },\r\n height: 160\r\n });\r\n\r\n var dropdownlist = $(input).data(\"kendoDropDownList\");\r\n if (dropdownlist) {\r\n dropdownlist.dataSource.add({\r\n text: result.ApplicationFunction,\r\n value: result.ApplicationFunction\r\n });\r\n dropdownlist.select(0);\r\n }\r\n\r\n var parent = $(input).parents(\".k-dropdown\");\r\n $(parent).on(\"keypress\", function (e) {\r\n if (e.key == \"-\") {\r\n var dropdownlist = $(input).data(\"kendoDropDownList\");\r\n if (dropdownlist) {\r\n dropdownlist.open();\r\n $(input).select();\r\n }\r\n }\r\n });\r\n\r\n var inputs = windowHost.find(\".imagedit-input\");\r\n inputs.on(\"change\", function (e) {\r\n var type = $(this).attr(\"type\");\r\n switch (type) {\r\n case \"checkbox\":\r\n type = \"isactive\";\r\n break;\r\n default:\r\n type = \"desc\";\r\n break;\r\n }\r\n var editor = $(\"#\" + id + \"-editor\");\r\n var changed = editor.attr(\"data-changed\");\r\n if (!changed) {\r\n changed = \"\";\r\n }\r\n\r\n if (changed.indexOf(type) == -1) {\r\n changed += \"|\" + type;\r\n }\r\n editor.attr(\"data-changed\", changed);\r\n });\r\n\r\n var parent = windowHost.parents(\".k-window\");\r\n parent.css(\"z-index\", \"1000\");\r\n\r\n return windowHost;\r\n }; //CreateImageWindow\r\n\r\n /*// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= \r\n /// \r\n /// Returns a HTML string for one input field.\r\n /// \r\n /// The field model.\r\n /// The HTML string for one input field*/\r\n self.CreateInputField = function (model) {\r\n var panelHtml =\r\n \"
\" + VR.Common.HtmlEscape(model.FieldLabel) + \"\";\r\n panelHtml +=\r\n \"

\" +\r\n \"
\";\r\n model.FieldValue = VR.Common.ToDate(model.FieldValue);\r\n\r\n return panelHtml;\r\n }; //CreateInputField\r\n\r\n /*// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= \r\n /// \r\n /// Creates notes editor.\r\n /// \r\n /// The grid.\r\n /// The grid row.\r\n /// */\r\n self.CreateNotesEditor = function () {\r\n var editor = $(\"#notes-editor\").data(\"kendoEditor\");\r\n if (!editor) {\r\n var tools = false;\r\n if (self.IsNotesAdmin || self.CanSaveNotes) {\r\n tools = [\r\n \"bold\",\r\n \"italic\",\r\n \"underline\",\r\n \"strikethrough\",\r\n \"justifyLeft\",\r\n \"justifyCenter\",\r\n \"justifyRight\",\r\n \"justifyFull\",\r\n \"insertUnorderedList\",\r\n \"insertOrderedList\",\r\n \"indent\",\r\n \"outdent\",\r\n \"unlink\",\r\n \"subscript\",\r\n \"superscript\",\r\n \"createTable\",\r\n \"addRowAbove\",\r\n \"addRowBelow\",\r\n \"addColumnLeft\",\r\n \"addColumnRight\",\r\n \"deleteRow\",\r\n \"deleteColumn\",\r\n \"formatting\",\r\n \"cleanFormatting\",\r\n \"fontName\",\r\n \"fontSize\",\r\n \"foreColor\",\r\n \"backColor\",\r\n \"print\",\r\n \"pdf\"\r\n ];\r\n }\r\n\r\n $(\"#notes-editor\").kendoEditor({\r\n tools: tools\r\n });\r\n\r\n var dataSource = new kendo.data.DataSource({\r\n transport: {\r\n read: function (options) {\r\n var list = $(\"#note-secfunction-list\");\r\n var text = list.find(\".k-textbox\");\r\n var val = text.val();\r\n var url = VR.Common.GetRootURL(\"event/edit\");\r\n VR.Common.SecurePost(\r\n url + \"data/secfile\",\r\n val,\r\n function (result) {\r\n if (result.Code == 0) {\r\n var data = [];\r\n data.push({ text: \" \", value: \"\" });\r\n $.each(result.List, function (index, item) {\r\n data.push({ text: item, value: item, key: item });\r\n });\r\n if (!!options) options.success(data);\r\n return data;\r\n } else {\r\n options.error(result);\r\n VR.Common.HandleInvalidResult(result, \"Notes\", true);\r\n return [];\r\n }\r\n },\r\n true,\r\n undefined,\r\n false,\r\n false\r\n );\r\n }\r\n },\r\n serverFiltering: true\r\n });\r\n\r\n var input = $(\"#note-secfunction\");\r\n input.kendoDropDownList({\r\n autoBind: false,\r\n filter: \"contains\",\r\n height: 180,\r\n dataTextField: \"text\",\r\n dataValueField: \"value\",\r\n dataSource: dataSource,\r\n open: function (e) {\r\n //var dropDown = $(e.target)\r\n //if (!dropDown.is(\":not([readonly])\")) {\r\n // e.preventDefault();\r\n //}\r\n }\r\n });\r\n\r\n var parent = input.parents(\".k-dropdown\");\r\n $(parent).on(\"keypress\", function (e) {\r\n if (e.key == \"-\") {\r\n var dropdownlist = $(input).data(\"kendoDropDownList\");\r\n if (dropdownlist) {\r\n dropdownlist.open();\r\n $(input).select();\r\n }\r\n }\r\n });\r\n\r\n editor = $(\"#notes-editor\").data(\"kendoEditor\");\r\n\r\n var body = editor.body;\r\n $(body).on(\"contextmenu\", function (event) {\r\n event.preventDefault();\r\n });\r\n\r\n if (!self.IsNotesAdmin && !self.CanNewNotes) {\r\n $(\"#notes-new\").css(\"diaplay\", \"none\");\r\n } else {\r\n $(\"#notes-new\").on(\"click\", function (e) {\r\n var editor = $(\"#notes-editor\").data(\"kendoEditor\");\r\n if (!editor) {\r\n return;\r\n }\r\n\r\n editor.value(\"\");\r\n var notes = {};\r\n var model = {};\r\n var id = $(\"#notes-list-body\").attr(\"data-field-id\");\r\n if (id == \"0\") {\r\n notes.FieldName = \"--Record--\";\r\n model.FieldLabel = \"--Record--\";\r\n } else {\r\n model = self.GetFieldModel(id);\r\n if (model == null) {\r\n notes.FieldName = \"\";\r\n model = { FieldLabel: \"\" };\r\n } else {\r\n notes.FieldName = model.FieldName;\r\n }\r\n }\r\n notes.IsActive = true;\r\n\r\n self.Note = notes;\r\n $(\"#note-field-name\").html(VR.Common.HtmlEscape(notes.FieldName));\r\n $(\"#note-field-label\").html(VR.Common.HtmlEscape(model.FieldLabel));\r\n $(\"#note-isactive\").attr(\"checked\", notes.IsActive);\r\n\r\n var dropdownList = $(\"#note-secfunction\").data(\"kendoDropDownList\");\r\n if (dropdownList != null) {\r\n dropdownList.select(-1);\r\n }\r\n\r\n $(\"#notes-body\").attr(\"data-notes-id\", \"0\");\r\n $(\"#notes-modal\").modal(\"show\");\r\n });\r\n }\r\n\r\n $(\"#noteslist-modal\").on(\"shown.bs.modal\", function (e) {\r\n var dialog = $(\"#noteslist-modal .modal-content\");\r\n var table = $(\"#notes-table\");\r\n var height = $(dialog).height();\r\n var winheight = $(window).height();\r\n\r\n if (height > winheight - 250) {\r\n height = winheight - 250;\r\n $(table).css(\"max-height\", height + \"px\");\r\n }\r\n });\r\n\r\n $(\"#notes-modal\").on(\"shown.bs.modal\", function (e) {\r\n $(document).off(\"focusin.modal\"); //Fix for KendoDropDownList closes immediately when the dopdown is opened. http://stackoverflow.com/questions/14795035/twitter-bootstrap-modal-blocks-text-input-field\r\n var editor = $(\"#notes-editor\").data(\"kendoEditor\");\r\n if (editor) {\r\n editor.focus();\r\n }\r\n });\r\n\r\n $(\"#notes-modal\").on(\"hide.bs.modal\", function (e) {\r\n self.CreateNotesList();\r\n });\r\n\r\n if (!self.IsNotesAdmin && !self.CanSaveNotes) {\r\n $(\"#notes-save\").css(\"display\", \"none\");\r\n } else {\r\n $(\"#notes-save\").on(\"click\", function (e) {\r\n var editor = $(\"#notes-editor\").data(\"kendoEditor\");\r\n if (editor == null) {\r\n return;\r\n }\r\n\r\n var value = editor.value();\r\n value = VR.Common.HtmlEscape(value);\r\n\r\n var secfunc = \"\";\r\n var dropDownList = $(\"#note-secfunction\").data(\"kendoDropDownList\");\r\n if (dropDownList != null) {\r\n secfunc = dropDownList.value();\r\n }\r\n\r\n var event = self.EventName;\r\n var eventId = self.EventId;\r\n var fieldId = $(\"#notes-list-body\").attr(\"data-field-id\");\r\n var fieldName = $(\"#note-field-name\").html();\r\n var id = $(\"#notes-body\").attr(\"data-notes-id\");\r\n var isActive = $(\"#note-isactive\").attr(\"checked\") == \"checked\";\r\n\r\n var selection =\r\n \"event=\" +\r\n event +\r\n \"|eventId=\" +\r\n eventId +\r\n \"|fieldId=\" +\r\n fieldId +\r\n \"|fieldName=\" +\r\n fieldName +\r\n \"|notesId=\" +\r\n id +\r\n \"|secfunc=\" +\r\n secfunc +\r\n \"|isActive=\" +\r\n isActive +\r\n \"|value=\" +\r\n value;\r\n\r\n selection = encodeURIComponent(selection);\r\n var url = VR.Common.GetRootURL(\"event/edit\") + \"data/notesupdate\";\r\n VR.Common.Post(\r\n url,\r\n { selection: selection, value: value },\r\n function (response) {\r\n //var json = VR.Common.DecryptData();\r\n var result = $.parseJSON(response.Json);\r\n\r\n if (result.Code == 0) {\r\n var id = $(\"#notes-body\").attr(\"data-notes-id\");\r\n if (id == \"0\") {\r\n self.Notes.push(result.Note);\r\n self.NotesCount++;\r\n if (VR.Common.IsMobile()) {\r\n $(\"#mobileNotesBtnText\").html(VR.Common.HtmlEscape(self.NotesCount));\r\n } else {\r\n $(\"#notes-count\").html(\"Notes count: \" + VR.Common.HtmlEscape(self.NotesCount));\r\n }\r\n } else {\r\n var index = self.Notes.indexOf(self.Note);\r\n if (index > -1) {\r\n self.Notes.splice(index, 1);\r\n if (index >= self.Notes.length) {\r\n self.Notes.push(result.Note);\r\n } else {\r\n self.Notes.splice(index, 0, result.Note);\r\n }\r\n }\r\n }\r\n $(\"#notes-modal\").modal(\"hide\");\r\n } else {\r\n $(\"#notes-error\").html(VR.Common.HtmlEscape(result.Message));\r\n VR.Common.HandleInvalidResult(result, \"Save Notes\", false);\r\n }\r\n }\r\n );\r\n });\r\n }\r\n }\r\n }; //CreateNotesEditor\r\n\r\n /*// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= \r\n /// \r\n /// Creates notes list.\r\n /// \r\n /// */\r\n self.CreateNotesList = function () {\r\n var id = $(\"#notes-list-body\").attr(\"data-field-id\");\r\n var model = null;\r\n if (id != \"0\") {\r\n model = $(\"#f\" + id).data(\"field\");\r\n }\r\n var html = \"\";\r\n if (self.Notes && self.Notes.length !== 0) {\r\n if (VR.Common.IsMobile()) {\r\n $(\"#notes-col-hdr-id\").hide();\r\n $(\"#notes-col-hdr-field\").hide();\r\n $(\"#notes-col-hdr-createdate\").hide();\r\n $(\"#notes-col-hdr-modusrid\").hide();\r\n $(\"#notes-col-hdr-moddate\").hide();\r\n $(\"#notes-col-hdr-active\").hide();\r\n $(\"#notes-col-hdr-appfunct\").hide();\r\n $.each(self.Notes, function (index, note) {\r\n if (model === null || model.FieldName === note.FieldName) {\r\n html += `${VR.Common.HtmlEscape(note.ShortNotes)}${VR.Common.HtmlEscape(note.ModifyUserName)}\r\n `;\r\n html += self.IsNotesAdmin || self.CanDeleteNotes\r\n ? \"\"\r\n : \"\";\r\n html += \"\";\r\n }\r\n });\r\n }\r\n else {\r\n $.each(self.Notes, function (index, note) {\r\n if (model == null || model.FieldName == note.FieldName) {\r\n var create = VR.Common.ToFormattedValue(note.CreateDate);\r\n var modified = VR.Common.ToFormattedValue(note.ModifyDate);\r\n html +=\r\n \"\" +\r\n \"\" +\r\n VR.Common.HtmlEscape(note.NotesId) +\r\n \"\" +\r\n \"\" +\r\n VR.Common.HtmlEscape(note.FieldName) +\r\n \"\" +\r\n \"\" +\r\n VR.Common.HtmlEscape(note.ShortNotes) +\r\n \"\" +\r\n \"\" +\r\n VR.Common.HtmlEscape(create) +\r\n \"\" +\r\n \"\" +\r\n VR.Common.HtmlEscape(note.ModifyUserId) +\r\n \"\" +\r\n \"\" +\r\n VR.Common.HtmlEscape(note.ModifyUserName) +\r\n \"\" +\r\n \"\" +\r\n VR.Common.HtmlEscape(modified) +\r\n \"\";\r\n html +=\r\n self.IsNotesAdmin || self.CanDeleteNotes\r\n ? \"\" + VR.Common.HtmlEscape(note.IsActive) + \"\"\r\n : \"\";\r\n html +=\r\n \"\" +\r\n VR.Common.HtmlEscape(note.ApplicationFunction) +\r\n \"\" +\r\n \"\";\r\n html +=\r\n self.IsNotesAdmin || self.CanDeleteNotes\r\n ? \"\"\r\n : \"\";\r\n html += \"\";\r\n }\r\n });\r\n }\r\n }\r\n\r\n var noteslist = $(\"#notes-list\");\r\n if (html.length == 0) {\r\n html = \"

No notes to show.

\";\r\n }\r\n\r\n noteslist.html(html);\r\n\r\n noteslist.find(\".notes-btn\").on(\"click\", function (e) {\r\n var id = $(this).attr(\"id\");\r\n if (id && id.length > 6) {\r\n id = id.substring(6);\r\n }\r\n\r\n if (!self.Notes) {\r\n return;\r\n } else {\r\n var notes = null;\r\n $.each(self.Notes, function (index, note) {\r\n if (note.NotesId == id) {\r\n notes = note;\r\n return false;\r\n }\r\n });\r\n\r\n if (notes != null) {\r\n var editor = $(\"#notes-editor\").data(\"kendoEditor\");\r\n if (!editor) {\r\n return;\r\n }\r\n\r\n var value = notes.Notes;\r\n value = VR.Common.HtmlUnescape(value);\r\n editor.value(value);\r\n self.Note = notes;\r\n var model = self.GetFieldModel(notes.FieldName);\r\n $(\"#note-field-name\").html(VR.Common.HtmlEscape(notes.FieldName));\r\n if (model) {\r\n $(\"#note-field-label\").html(VR.Common.HtmlEscape(model.FieldLabel));\r\n } else {\r\n $(\"#note-field-label\").html(VR.Common.HtmlEscape(notes.FieldName));\r\n }\r\n $(\"#note-isactive\").attr(\"checked\", notes.IsActive);\r\n var dropdownlist = $(\"#note-secfunction\").data(\"kendoDropDownList\");\r\n if (dropdownlist != null) {\r\n if (!notes.ApplicationFunction) {\r\n dropdownlist.select(-1);\r\n } else {\r\n dropdownlist.select(function (item) {\r\n return item.value == notes.ApplicationFunction;\r\n });\r\n var selected = dropdownlist.select();\r\n if (selected == -1) {\r\n var data = {\r\n text: notes.ApplicationFunction,\r\n value: notes.ApplicationFunction\r\n };\r\n dropdownlist.dataSource.add(data);\r\n dropdownlist.select(function (item) {\r\n return item.value == notes.ApplicationFunction;\r\n });\r\n selected = dropdownlist.select();\r\n }\r\n }\r\n }\r\n\r\n $(\"#notes-body\").attr(\"data-notes-id\", id);\r\n $(\"#notes-modal\").modal(\"show\");\r\n }\r\n }\r\n });\r\n\r\n if (self.IsNotesAdmin || self.CanDeleteNotes) {\r\n noteslist.find(\".notesd-btn\").on(\"click\", function (e) {\r\n var id = $(this).attr(\"id\");\r\n if (id && id.length > 7) {\r\n id = id.substring(7);\r\n }\r\n\r\n if (!self.Notes) {\r\n return;\r\n } else {\r\n var index = -1;\r\n $.each(self.Notes, function (i, note) {\r\n if (note.NotesId == id) {\r\n index = i;\r\n return false;\r\n }\r\n });\r\n\r\n if (index > -1) {\r\n self.NotesId = id;\r\n self.NotesIndex = index;\r\n VR.Common.ShowMessageBox(\r\n \"Do you want to delete this note?\",\r\n self.DeleteNotes,\r\n true\r\n );\r\n }\r\n }\r\n });\r\n }\r\n }; //CreateNotesList\r\n\r\n /*// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= \r\n /// \r\n /// Deletes image.\r\n /// \r\n /// The image Id.\r\n /// */\r\n self.DeleteImage = function () {\r\n var id = self.ImageId;\r\n if (id && id.indexOf(\"image-\") > -1) {\r\n id = id.substring(\"image-\".length);\r\n }\r\n\r\n id = parseInt(id);\r\n if (isNaN(id)) {\r\n return;\r\n }\r\n\r\n var selected = null;\r\n $.each(self.ImageDataSource.data(), function (index, model) {\r\n if (model.ImageId == id) {\r\n selected = model;\r\n return false;\r\n }\r\n });\r\n\r\n if (!selected) {\r\n return;\r\n }\r\n\r\n VR.Common.SecurePost(\"data/imagedelete\", \"image=\" + id, function (result) {\r\n if (result.Code != 0) {\r\n VR.Common.HandleInvalidResult(result, \"Image\", true);\r\n } else {\r\n var list = $(\"#image-list\");\r\n list.find(\".image\").off(\"dblclick\");\r\n var images = self.ImageDataSource.data();\r\n var index = images.indexOf(selected);\r\n if (index == -1) {\r\n return;\r\n }\r\n var image = images[index];\r\n var windowHost = $(\"#\" + image.ImageId + \"-window\");\r\n var imageWindow = windowHost.data(\"kendoWindow\");\r\n if (imageWindow) {\r\n imageWindow.destroy();\r\n }\r\n\r\n images.splice(index, 1);\r\n self.ImageDataSource.data(images);\r\n\r\n $(\"#image-pager\")\r\n .data(\"kendoPager\")\r\n .refresh();\r\n var kendoList = list.data(\"kendoListView\");\r\n kendoList.refresh();\r\n\r\n list.find(\".image\").on(\"dblclick\", function (e) {\r\n self.ShowImageWindow(this.id);\r\n });\r\n\r\n self.ImageCount--;\r\n if (VR.Common.IsMobile()) {\r\n $(\"#mobileImagesBtnText\").html(VR.Common.HtmlEscape(self.ImageCount));\r\n }\r\n else {\r\n $(\"#images-count\").html(\"Image count: \" + VR.Common.HtmlEscape(self.ImageCount));\r\n }\r\n }\r\n });\r\n }; //DeleteImage\r\n\r\n /*// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= \r\n /// \r\n /// Deletes notes.\r\n /// \r\n /// */\r\n self.DeleteNotes = function () {\r\n var url = VR.Common.GetRootURL(\"event/edit\") + \"data/notesdelete\";\r\n VR.Common.SecurePost(\r\n url,\r\n self.NotesId,\r\n function (result) {\r\n if (result.Code != 0) {\r\n VR.Common.HandleInvalidResult(result, \"Delete Notes\", false);\r\n } else {\r\n var index = self.NotesIndex;\r\n\r\n self.Notes.splice(index, 1);\r\n self.CreateNotesList();\r\n self.NotesCount--;\r\n if (VR.Common.IsMobile()) {\r\n $(\"#mobileNotesBtnText\").html(VR.Common.HtmlEscape(self.NotesCount));\r\n } else {\r\n $(\"#notes-count\").html(\"Notes count: \" + VR.Common.HtmlEscape(self.NotesCount));\r\n }\r\n \r\n }\r\n },\r\n true,\r\n \"notesid=\",\r\n false,\r\n false\r\n );\r\n }; //DeleteNotes\r\n\r\n /*// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= \r\n /// \r\n /// Deletes the current event record.\r\n /// \r\n /// */\r\n self.DeleteRecord = function () {\r\n var event = self.EventName;\r\n var eventid = self.EventId;\r\n var selection = \"name=\" + event + \"|id=\" + eventid;\r\n VR.Common.SecurePost(\"event/delete\", selection, function (result) {\r\n if (result.Code != 0) {\r\n if (result.Code == 1370) {\r\n VR.Common.ShowError(result.Message);\r\n } else {\r\n VR.Common.HandleInvalidResult(result, \"Delete Record\", false);\r\n }\r\n } else {\r\n $(\"#messagebox-title\").html(\"Event Record Deleted\");\r\n $(\"#messagebox-text\").html(\"This event record was deleted..\");\r\n $(\"#messagebox-codebox\").css(\"display\", \"none\");\r\n $(\"#messagebox-body\").css(\"display\", \"none\");\r\n $(\"#messagebox-text\").css(\"overflow\", \"hidden\");\r\n\r\n var message;\r\n if (VR.Common.CanOpen) {\r\n message = \"This window will close.\";\r\n } else {\r\n message = \"This window will be redirected to the dashboard.\";\r\n }\r\n\r\n $(\"#messagebox-footer\").html(message);\r\n $(\"#messagebox-header\").css(\"background-color\", \"#6495ed\");\r\n $(\"#messagebox-closebutton\").removeClass(\"btn-danger\");\r\n $(\"#messagebox-closebutton\").addClass(\"btn-primary\");\r\n\r\n $(\"#messagebox-modal\").modal(\"show\");\r\n\r\n self.CanLeaveValidated = true;\r\n\r\n $(\"#messagebox-modal\")\r\n .off(\"hidden.bs.modal\")\r\n .on(\"hidden.bs.modal\", function (e) {\r\n if (VR.Common.CanOpen) {\r\n window.close();\r\n } else {\r\n $(\"#dashboard-menu\").trigger(\"click\");\r\n }\r\n });\r\n }\r\n });\r\n }; //DeleteRecord\r\n\r\n self.DisableByPassVariable = function (bypass, model, isHardEdit) {\r\n if (!model) {\r\n return \"\";\r\n }\r\n // Show enabled bypass buttons only if the edit is soft (not a hard edit)\r\n if (model && !isHardEdit && model.ByPassValue && !model.AllowUnknown) {\r\n if (model.ByPassValue.indexOf(bypass.toString()) > -1) {\r\n return \"\";\r\n } else {\r\n return \"disabled\";\r\n }\r\n } else {\r\n return \"disabled\";\r\n }\r\n }; //DisableByPassVariable\r\n\r\n /*// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= \r\n /// \r\n /// Displays the current grid event record.\r\n /// \r\n /// The grid event parameter.\r\n /// */\r\n self.DisplayEvent = function (parameter) {\r\n if (!parameter) {\r\n return;\r\n }\r\n\r\n if (\r\n (!self.CanSaveWithEdits && !self.CanSaveWithoutEdits) ||\r\n !self.CanSave ||\r\n self.CanClose\r\n ) {\r\n self.DisplayGridEvent(parameter);\r\n } else {\r\n var canClose = true;\r\n $.each(self.Fields, function (index, model) {\r\n if (model.HasChange) {\r\n canClose = false;\r\n return false;\r\n }\r\n });\r\n\r\n if (canClose) {\r\n self.DisplayGridEvent(parameter);\r\n } else {\r\n var handler = function (parameter) {\r\n self.CanLeaveValidated = true;\r\n self.DisplayGridEvent(parameter);\r\n };\r\n VR.Common.ShowMessageBox(\r\n \"You have unsaved changes. Do you want to leave this page?\",\r\n handler,\r\n true,\r\n parameter\r\n );\r\n }\r\n }\r\n }; //DisplayEvent\r\n\r\n /*// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= \r\n /// \r\n /// Displays the current grid event record.\r\n /// \r\n /// The grid event parameter.\r\n /// */\r\n self.DisplayGridEvent = function (parameter) {\r\n var grid = parameter.grid;\r\n var row = parameter.selected;\r\n if (!grid || !row) {\r\n return;\r\n }\r\n\r\n var event = grid.GridEvent;\r\n var item = grid.dataItem(row);\r\n if (item == null) {\r\n return;\r\n }\r\n\r\n var eventId = item[grid.GridKey];\r\n if (eventId == null) {\r\n return;\r\n }\r\n\r\n var url = VR.Common.GetRootURL();\r\n var selection = event + \"-\" + eventId.toString();\r\n var input = $(\"#f\" + grid.FieldId);\r\n var model = input.data(\"field\");\r\n if (model && model.IsDisplayOnly) {\r\n selection += \"-false-displayonly\";\r\n }\r\n selection = \"eventedit=\" + encodeURIComponent(selection);\r\n\r\n url +=\r\n \"event/edit?selection=\" +\r\n encodeURIComponent(selection);\r\n nxLoading.start(\"Loading page. Please wait...\");\r\n if (VR.Common.CanOpen) {\r\n window.open(url);\r\n } else {\r\n window.location.href = url;\r\n }\r\n }; //DisplayGridEvent\r\n\r\n\r\n function getCookie(cname) {\r\n var name = cname + \"=\";\r\n var decodedCookie = decodeURIComponent(document.cookie);\r\n var ca = decodedCookie.split(\";\");\r\n for (var i = 0; i < ca.length; i++) {\r\n var c = ca[i];\r\n while (c.charAt(0) == \" \") {\r\n c = c.substring(1);\r\n }\r\n if (c.indexOf(name) == 0) {\r\n return c.substring(name.length, c.length);\r\n }\r\n }\r\n return \"\";\r\n }\r\n\r\n /*// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\r\n /// \r\n /// Performs house keeping job for after save.\r\n /// \r\n /// The returned result.\r\n /// The event values\r\n /// */\r\n self.DoAfterSave = function (result, isNoEdits, ChangedValues) {\r\n if (!result) {\r\n return;\r\n }\r\n var allValues = [];\r\n var values = ChangedValues.split(\"|\");\r\n for (var i = 0; i < values.length; i++) {\r\n allValues.push(values[i].substr(values[i].indexOf(\"=\") + 1, values[i].length));\r\n }\r\n\r\n if (result.Values.length > 0) {\r\n $.each(result.Values, function (index, field) {\r\n var input = $(\"#f\" + field.FieldId);\r\n var model = $(input).data(\"field\");\r\n\r\n if (model) {\r\n\r\n // If a value for a field was sent to the server, but the server returned no value for this field, have that field keep its value\r\n // Else assign the value returned from the server to the field\r\n model.FieldValue = ((field.FieldValue === \"\" || field.FieldValue === null) && (allValues[index] !== \"\" || allValues[index] !== null)) ? allValues[index] : field.FieldValue;\r\n\r\n if (model.FieldType === \"DatePicker\") {\r\n let format = model.InputFormat;\r\n if (format == null || format == \"\") {\r\n format = \"MM/dd/yyyy\";\r\n }\r\n if (\r\n model.FieldValue &&\r\n model.FieldValue.indexOf(\"99\") < 0 &&\r\n model.FieldValue.indexOf(\"88\") < 0\r\n ) {\r\n model.FieldValue = moment(model.FieldValue).format(\r\n format.toUpperCase()\r\n );\r\n input.val(model.FieldValue);\r\n }\r\n }\r\n\r\n if (model.FieldType != \"Image\") {\r\n model.OriginalValue = model.FieldValue;\r\n if (model.isRetained && editPageData.CRUDType == \"Create\") {\r\n setStickyValue(model.FieldId, model.FieldValue);\r\n }\r\n } else {\r\n var value = $(\"#f\" + model.FieldId).attr(\"field-changed\");\r\n if (value != \"1\") {\r\n model.OriginalValue = model.FieldValue;\r\n } else {\r\n var url = VR.Common.GetRootURL(\"event/edit\") + \"data/imagesave\";\r\n var src = $(\"#f\" + model.FieldId).prop(\"src\");\r\n if (src && src != \"\" && src.indexOf(\"data:image/\") > -1) {\r\n src = src.replace(/\\+/g, \"#\");\r\n } else {\r\n src = null;\r\n }\r\n var eventId = self.EventId;\r\n var id = model.FieldValue;\r\n var selection =\r\n \"data=\" +\r\n src +\r\n \"|id=\" +\r\n id +\r\n \"|eventId=\" +\r\n eventId +\r\n \"|fieldId=\" +\r\n model.FieldId;\r\n selection = encodeURIComponent(selection);\r\n var data = { selection: selection };\r\n VR.Common.Ajax({\r\n type: \"POST\",\r\n url: url,\r\n data: data,\r\n success: function (response) {\r\n //var json = VR.Common.DecryptData(response.Json);\r\n var result = $.parseJSON(response.Json);\r\n\r\n if (result.Code != 0) {\r\n VR.Common.HandleInvalidResult(result, \"Save Image\", true);\r\n } else {\r\n if (id == null || id == \"\" || id != result.Message) {\r\n model.FieldValue = result.Message;\r\n model.OriginalValue = model.FieldValue;\r\n }\r\n $(\"#f\" + model.FieldId).attr(\"field-changed\", \"\");\r\n }\r\n },\r\n dataType: \"json\",\r\n async: false\r\n });\r\n }\r\n }\r\n\r\n if (input.length > 0) {\r\n self.ForceSetFieldValue(input, model.FieldValue);\r\n }\r\n model.HasChange = false;\r\n\r\n var errorData = null;\r\n if (result.Errors && result.Errors.length > 0) {\r\n $.each(result.Errors, function (index, error) {\r\n if (model.FieldId == error.FieldId) {\r\n model.HasSaveError = true;\r\n errorData = error;\r\n return false;\r\n }\r\n });\r\n\r\n if (errorData != null) {\r\n model.ErrorMessage = errorData.Message;\r\n self.AddErrorField(model);\r\n self.ErrorPanel.setError({\r\n field: input,\r\n model: model,\r\n message: errorData.Message,\r\n location: errorData.Location,\r\n isHardEdit: errorData.IsHardEdit\r\n });\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n self.InitFields(null, isNoEdits);\r\n\r\n // Remove the existing alerts\r\n self.Alerts.splice(0, self.Alerts.length);\r\n if (result.Alerts) {\r\n if (result.Alerts.length > 0) {\r\n // Populate the Alerts with the number of Actual alerts returned from the server\r\n $.each(result.Alerts, function (index, alert) {\r\n self.Alerts.push(alert);\r\n });\r\n }\r\n }\r\n self.SyncEventAlertsCount(result.Alerts.length);\r\n\r\n var alerts = $(\"#alerts-dropdown\").data(\"kendoDropDownList\");\r\n if (alerts) {\r\n var dataSource = new kendo.data.DataSource({\r\n data: self.Alerts\r\n });\r\n alerts.setDataSource(dataSource);\r\n alerts.select(0);\r\n alerts.trigger(\"change\");\r\n }\r\n\r\n if (result.Code == 0) {\r\n self.EventId = result.EventId;\r\n var title = $(\"#main-container\").attr(\"event-title\");\r\n title = title + \" : \" + self.EventId;\r\n $(\"#plugins\").html(VR.Common.HtmlEscape(title));\r\n self.SaveCount++;\r\n VR.Common.CreateAmendmentsMenu();\r\n VR.Common.CreateDocumentsMenu();\r\n self.SetupNotes();\r\n $(\"#mobileErrorsBtnText\").html(`${self.GetFieldErrorCount()}`);\r\n }\r\n }; //DoAfterSave\r\n\r\n /*// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= \r\n /// \r\n /// Performs field value changed functions.\r\n /// \r\n /// The input field.\r\n /// */\r\n self.DoFieldValueChanged = function (input) {\r\n var model = $(input).data(\"field\");\r\n var curVal = self.GetInputValue(input, true);\r\n var fieldVal = model.FieldValue;\r\n var origVal = model?.OriginalValue ?? \"\";\r\n //below we use bitwise operators (https://www.w3schools.com/js/js_bitwise.asp)\r\n // the | is a bitwise OR which sets each bit to 1if one of two bits is 1\r\n // << Shifts left by pushing zeros in from the right and let the leftmost bits fall off. The number following << is the number of places to shift.\r\n // EXAMPLE: this is a new record and we are setting the value of the field for the first time.\r\n // fieldVal = 0 or 00000\r\n // curVal = 1 or 00001\r\n // fieldVal == curVal = 0 or 00000\r\n // this evaluates to (0 | 1 | 0) or:\r\n // scenario = 00000\r\n // 00010\r\n // 00000\r\n // result = 00010 or 2\r\n // EXAMPLE2: this is an existing record and we have changed the value of the field.\r\n // fieldVal = 1 or 00001\r\n // curVal = 1 or 00001\r\n // fieldVal == curVal = 0 or 00000\r\n // this evaluates to (0 | 1 | 0) or:\r\n // scenario = 00001\r\n // 00010\r\n // 00000\r\n // result = 00011 or 3\r\n var scenario =\r\n ~~(fieldVal && fieldVal != \"\") |\r\n (~~(curVal && curVal != \"\") << 1) |\r\n (~~(curVal == fieldVal) << 2);\r\n switch (scenario) {\r\n case 1:\r\n //curval != fieldVal, only prev val is set with a value != \"\"\r\n case 2:\r\n //curval != fieldVal, only curval is set with a value != \"\"\r\n case 3:\r\n var model = $(input).data(\"field\");\r\n if (model.AllowOther === true && model.FieldType === \"ComboBox\" && curVal !== \"\") {\r\n let setFieldStatus = Array.isArray(model.ValidationDropdownItems) && !model.ValidationDropdownItems.map(x => x.ValueInt === null ? x.ValueString : x.ValueInt).includes(curVal);\r\n if (setFieldStatus) {\r\n let cBox = $(input).data(\"kendoComboBox\");\r\n if (cBox) {\r\n let data = cBox.dataSource?.data();\r\n if (data) {\r\n setFieldStatus = !data.map(x => x.value.toLowerCase()).includes(curVal.toLowerCase());\r\n }\r\n }\r\n }\r\n if (setFieldStatus) {\r\n self.SetFieldStatus(input, model, \"literal\", null, null);\r\n }\r\n else {\r\n self.ResetField(input);\r\n }\r\n }\r\n else\r\n {\r\n // both curval and fieldVal are set, but !=\r\n self.ResetField(input);\r\n }\r\n break;\r\n case 4:\r\n // curval = fieldVal because neither are set\r\n case 7:\r\n // curval = fieldVal, both are set\r\n if (curVal == origVal) {\r\n model.HasChange = false;\r\n model.HasChangeOvrd = false;\r\n }\r\n break;\r\n default:\r\n //nonsense conditions, throw some exception to handle it, or ignore\r\n }\r\n\r\n if (!model) {\r\n return;\r\n }\r\n\r\n var id = input.id;\r\n var name = $(input).attr(\"data-field-name\");\r\n if (name) {\r\n //var inputs = $(\"#tab-content\").find(\"input[data-field-name='\" + name + \"']\");\r\n var inputs = self.GetInputFields(name);\r\n\r\n if (inputs.length > 0) {\r\n $.each(inputs, function (i, field) {\r\n var format = $(field).data(\"casing\") != \"ignore\";\r\n var value = self.GetInputValue(input, format);\r\n self.SetFieldValue(field, value, false, true);\r\n });\r\n }\r\n }\r\n\r\n // if form is initializing or field value has changed.\r\n if (self.State <= 0 || curVal != model.PreviousValue) {\r\n self.DoRelatedFields(input);\r\n }\r\n }; //DoFieldValueChanged\r\n function performLookup(\r\n fieldId,\r\n value,\r\n filter,\r\n valfiltertype,\r\n voidVal,\r\n webfiltertype,\r\n eventYear,\r\n responseFunction\r\n ) {\r\n var model = $(\"#f\" + fieldId).data(\"field\");\r\n if (VR.Edit.State <= 0) return;\r\n var url = \"data/lookup\";\r\n var request = {\r\n FieldId: fieldId,\r\n Value: ((value || \"\") + \"\").replace(/\\|\\|/g, \"\").replace(/\\|$/, \"\"),\r\n Filter: ((filter || \"\") + \"\").replace(/\\|\\|/g, \"\").replace(/\\|$/, \"\"),\r\n ValFilterType: ((valfiltertype || \"\") + \"\")\r\n .replace(/\\|\\|/g, \"\")\r\n .replace(/\\|$/, \"\"),\r\n VoidValue: ((voidVal || \"\") + \"\").replace(/\\|\\|/g, \"\").replace(/\\|$/, \"\"),\r\n WebFilterType: ((webfiltertype || \"\") + \"\")\r\n .replace(/\\|\\|/g, \"\")\r\n .replace(/\\|$/, \"\"),\r\n EventYear: VR.Edit.EventYear\r\n };\r\n request.Value = request.Value.trim();\r\n\r\n VR.Common.SecurePost(\r\n url,\r\n { lookup: request },\r\n function (e) {\r\n responseFunction(e);\r\n },\r\n false\r\n );\r\n }\r\n\r\n /*// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= \r\n /// \r\n /// Performs filter field change.\r\n /// \r\n /// The input field.\r\n /// The filter value.\r\n /// */\r\n self.DoFilterField = function (input, value) {\r\n var model = $(input).data(\"field\");\r\n if (!model || model.FieldType != \"ComboBox\") {\r\n return;\r\n }\r\n\r\n if (!model.FilterValue || model.FilterValue != value) {\r\n model.FilterValue = value;\r\n var filterValues = self.GetFilterValues(model);\r\n filterValues = filterValues;\r\n var voidVal = \"\";\r\n if (model && model.VoidField) {\r\n voidVal = self.GetFieldValue(model.VoidField);\r\n }\r\n voidVal = voidVal;\r\n var url = VR.Common.GetRootURL(\"event/edit\");\r\n var field = model;\r\n\r\n var valfiltertype = \"\";\r\n if (model && model.ValFilterType) {\r\n valfiltertype = model.ValFilterType;\r\n }\r\n valfiltertype = encodeURIComponent(valfiltertype);\r\n var webfiltertype = \"\";\r\n if (model && model.WebFilterType) {\r\n webfiltertype = model.WebFilterType;\r\n }\r\n webfiltertype = encodeURIComponent(webfiltertype);\r\n\r\n //var webfiltertype = model.WebFilterType;\r\n //var valfiltertype = model.ValFilterType;\r\n performLookup(\r\n model.FieldId,\r\n \"\",\r\n filterValues,\r\n valfiltertype,\r\n voidVal,\r\n webfiltertype,\r\n self.EventYear,\r\n function (result) {\r\n var data = [];\r\n var index = -1;\r\n var value = self.GetFieldValue(model.FieldId);\r\n var comboBox = $(input).data(\"kendoComboBox\");\r\n if (result.Code != 0) {\r\n VR.Common.HandleInvalidResult(result, \"Lookup\", true);\r\n }\r\n else if (result.DropdownOptions) {\r\n for (let i = 0; i < result.DropdownOptions.length; i++) {\r\n let option = result.DropdownOptions[i];\r\n let curValue = option.ValueInt === null ? option.ValueString : option.ValueInt;\r\n if (value == curValue) {\r\n index = i;\r\n }\r\n data.push({ text: option.Label, value: curValue });\r\n }\r\n if (comboBox) {\r\n comboBox.dataSource.data(data);\r\n comboBox.refresh();\r\n if (index > -1) {\r\n comboBox.select(index);\r\n }\r\n }\r\n }\r\n else if (result.List) {\r\n for (var i = 0; i < result.List.length; i++) {\r\n var val = result.List[i];\r\n if (value == val) {\r\n index = i;\r\n }\r\n data.push({ text: val, value: val });\r\n }\r\n\r\n if (data.length == 0) {\r\n //data.push({ text: \"\", value: \"\" });\r\n }\r\n if (comboBox) {\r\n comboBox.dataSource.data(data);\r\n comboBox.refresh();\r\n if (index > -1) {\r\n comboBox.select(index);\r\n }\r\n }\r\n }\r\n }\r\n );\r\n }\r\n }; //DoFilterFields\r\n\r\n /*// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= \r\n /// \r\n /// Performs filter field changes.\r\n /// \r\n /// The input field.\r\n /// */\r\n self.DoFilterFields = function (input) {\r\n var model = $(input).data(\"field\");\r\n if (model && model.FilterDependents && model.FilterDependents.length > 0) {\r\n var value = self.GetInputValue(input);\r\n $.each(model.FilterDependents, function (index, id) {\r\n var field = $(\"#f\" + id);\r\n self.DoFilterField(field, value);\r\n });\r\n }\r\n }; //DoFilterFields\r\n\r\n /*// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= \r\n /// \r\n /// Performs related field functions.\r\n /// \r\n /// The input field.\r\n /// */\r\n self.DoRelatedFields = function (input) {\r\n var model = $(input).data(\"field\");\r\n if (!model) {\r\n return;\r\n }\r\n\r\n if (!model.RelatedFields || model.RelatedFields.length == 0) {\r\n self.DoSkipFields(input);\r\n return;\r\n }\r\n\r\n var key = null;\r\n switch (model.FieldType) {\r\n case \"AutoComplete\":\r\n var autocomplete = $(input).data(\"kendoAutoComplete\");\r\n if (autocomplete != null) {\r\n var val = autocomplete.value();\r\n var list = autocomplete.dataSource.data();\r\n var index = -1;\r\n if (list && list.length > 0) {\r\n $.each(list, function (i, data) {\r\n if (data != null && data.text == val) {\r\n if (data.key != null) {\r\n key = data.key;\r\n }\r\n return false;\r\n }\r\n });\r\n }\r\n }\r\n break;\r\n case \"ComboBox\":\r\n var combobox = $(input).data(\"kendoComboBox\");\r\n if (combobox != null) {\r\n var dataItem = combobox.dataItem();\r\n if (dataItem != null && dataItem.key != null) {\r\n key = dataItem.key;\r\n \r\n }\r\n }\r\n break;\r\n }\r\n\r\n var value = $(input).val();\r\n if (!value) {\r\n value = \"\";\r\n }\r\n if (value != \"\" && !nx.IsInList(model.FieldId)) {\r\n value = \"OTHER\";\r\n }\r\n var request = {\r\n RelatedFields: model.RelatedFields,\r\n Value: value,\r\n FieldId: model.FieldId\r\n };\r\n\r\n if (key != null) {\r\n request.Key = key;\r\n }\r\n if (model && model.VoidField) {\r\n var voidVal = self.GetFieldValue(model.VoidField);\r\n request.VoidValue = voidVal;\r\n }\r\n\r\n request.Filter = self.GetFilterValues(model);\r\n\r\n var url = VR.Common.GetRootURL(\"/event/edit\") + \"data/related\";\r\n VR.Common.SecurePost(\r\n url,\r\n { request: request },\r\n function (result) {\r\n if (result.Code != 0) {\r\n VR.Common.HandleInvalidResult(result, \"Related\", true);\r\n return;\r\n }\r\n model.HasRelatedValue =\r\n result.Code == 0 && result.Data && result.Data.length > 0;\r\n self.DoSkipFields(input);\r\n $.each(model.RelatedFields, function (index, id) {\r\n var data = null;\r\n if (model.HasRelatedValue) {\r\n for (var i = 0; i < result.Data.length; i++) {\r\n if (result.Data[i].FieldId == id) {\r\n data = result.Data[i];\r\n break;\r\n }\r\n }\r\n }\r\n\r\n var related = $(\"#f\" + id);\r\n var relatedModel = related.data(\"field\");\r\n if (model.HasRelatedValue) {\r\n if (data != null) {\r\n var value = VR.Common.ToFormattedValue(data.FieldValue);\r\n self.SetFieldValue(related, value, true, true);\r\n }\r\n }\r\n\r\n setTimeout(function (e) {\r\n if (id != model.FieldId) {\r\n self.DoRelatedFields(related);\r\n self.DoSkipFields(related);\r\n if (\r\n relatedModel &&\r\n relatedModel.FilterDependents &&\r\n relatedModel.FilterDependents.length > 0\r\n )\r\n self.DoFilterFields(related);\r\n }\r\n }, 10);\r\n });\r\n },\r\n false,\r\n undefined,\r\n false,\r\n false\r\n );\r\n }; //DoRelatedFields\r\n\r\n /*// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= \r\n /// \r\n /// Executes OnDisplay script.\r\n /// \r\n /// */\r\n self.ExecuteOnDisplay = function () {\r\n //var prevState = self.State;\r\n if (VR.Edit.EventId > 0) {\r\n for (var field in VR.Edit.Fields) {\r\n if (VR.Edit.Fields[field].ShouldRunEdits) {\r\n for (var edit in VR.Edit.Fields[field].Edits) {\r\n if (\r\n VR.Edit.Fields[field].Edits[edit].EditType == \"alert\" &&\r\n (VR.Edit.Fields[field].FieldStatus == \"alerttrigger\" ||\r\n !VR.Edit.Fields[field].FieldStatus)\r\n ) {\r\n var f = $(\"#f\" + VR.Edit.Fields[field].FieldId);\r\n var model = f.data(\"field\");\r\n\r\n VR.Script.Validate(f, model, edit);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n var script = self.OnDisplay;\r\n if (!script || script == \"\") {\r\n return;\r\n }\r\n var message = VR.Script.ExecuteScript(\r\n {},\r\n {},\r\n { EditNumber: 0, Script: script, Kind: \"ondisplay\" }\r\n );\r\n if (message !== null && message !== \"\") {\r\n VR.Common.ShowError(message);\r\n }\r\n\r\n self.State = 1;\r\n }; //ExecuteOnDisplay\r\n\r\n /*// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= \r\n /// \r\n /// Executes OnSave script.\r\n /// \r\n /// */\r\n self.ExecuteOnSave = function () {\r\n VR.Common.QueueManager.DequeueAll();\r\n var script = self.OnSave;\r\n if (!script || script == \"\") {\r\n return;\r\n }\r\n\r\n var edit = { EditNumber: 0, Script: script, Kind: \"onsave\" };\r\n VR.Script.ExecuteScript({}, {}, edit);\r\n return edit;\r\n }; //ExecuteOnSave\r\n\r\n /*// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= \r\n /// \r\n /// Performs skip field logic.\r\n /// \r\n /// The input field.\r\n /// The value to inidcate if this is an initilization.\r\n /// */\r\n self.DoSkipFields = function (input, isInit) {\r\n //if ($(input).hasClass(\"readonly-text\")) {\r\n // return;\r\n //}\r\n\r\n var model = $(input).data(\"field\");\r\n if (!model || !model.DependentFields || model.DependentFields.length == 0) {\r\n return;\r\n }\r\n\r\n $.each(model.DependentFields, function (index, dependentId) {\r\n var dependentfield = $(\"#f\" + dependentId);\r\n var data = $(dependentfield).data(\"field\");\r\n //if ((isInit && dependentfield.hasClass(\"readonly-text\")) || !data || data.IsEnabled == false || data.IsDisplayOnly == true) {\r\n // return;\r\n //}\r\n if (!data || data.IsEditable == false || data.IsDisplayOnly == true) {\r\n return;\r\n }\r\n\r\n $.each(data.SkipFields, function (i, skipField) {\r\n var field = $(\"#f\" + skipField.FieldId);\r\n var value = self.GetInputValue(field).toUpperCase();\r\n if (value == null) {\r\n value = \"\";\r\n }\r\n var skipvalues = skipField.SkipValues || [];\r\n var isSkip = false;\r\n for (var i = 0; i < skipvalues.length; i++) {\r\n var skipval = skipvalues[i];\r\n if (skipval) {\r\n switch (skipval.Value.toUpperCase()) {\r\n case \"NOT=BLANK\":\r\n if (model.FieldType == \"CheckBox\") {\r\n isSkip = $(field).prop(\"checked\");\r\n } else {\r\n isSkip = value != \"\";\r\n }\r\n break;\r\n case \"NOT=OTHER\":\r\n isSkip = value != \"OTHER\";\r\n isSkip = VR.Script.IsInList(skipField.FieldId);\r\n break;\r\n case \"NOT=\":\r\n if (!skipval.SkipValues) {\r\n isSkip = value != \"\";\r\n } else {\r\n isSkip = true;\r\n $.each(skipval.SkipValues, function (ind, val) {\r\n if (val.toUpperCase() == value) {\r\n isSkip = false;\r\n }\r\n if (!isSkip) {\r\n return false;\r\n }\r\n });\r\n }\r\n break;\r\n case \"BLANK\":\r\n if (model.FieldType == \"CheckBox\") {\r\n isSkip = !$(field).prop(\"checked\");\r\n } else {\r\n isSkip = value == \"\";\r\n }\r\n break;\r\n default:\r\n isSkip = skipval.Value.toUpperCase() == value;\r\n break;\r\n }\r\n }\r\n\r\n if (isSkip) {\r\n break;\r\n }\r\n }\r\n self.SetReadOnly(dependentfield, isSkip);\r\n //Setting ParamBypassed propery on each dependent field so we can use IsfieldSkipped function to write edits.\r\n // These are set in Event Screen Designer > Attributes > Skip Fields On\r\n data.ParamBypassed = !!isSkip;\r\n if (isSkip) {\r\n return false;\r\n }\r\n });\r\n });\r\n }; //DoSkipFields\r\n\r\n /*// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= \r\n /// \r\n /// Keydown event handler for fields\r\n /// \r\n /// The event handler argument.\r\n /// */\r\n self.FieldKeyDown = function (e) {\r\n if (e.ctrlKey || e.altKey || e.metaKey) {\r\n return;\r\n }\r\n\r\n console.log(\r\n \"e.key=\" + e.key + \",e.which=\" + e.which + \",e.ctrlKey=\" + e.ctrlKey\r\n );\r\n\r\n switch (e.which) {\r\n // helps make the next focused item be a field in our form\r\n case 9:\r\n var model = $(e.target).data(\"field\");\r\n if (!model) {\r\n var parent = $(e.target).parents(\".edit-field\");\r\n if (parent.length < 1) {\r\n parent = $(e.target).parents(\".edit-group\"); //For grid buttons.\r\n }\r\n var inputs = parent.find(\".input-field\");\r\n $.each(inputs, function (index, input) {\r\n var id = $(input).attr(\"id\");\r\n if (id) {\r\n var index = id.indexOf(\"f\");\r\n if (index == 0) {\r\n model = $(input).data(\"field\");\r\n return false;\r\n }\r\n }\r\n });\r\n }\r\n\r\n if (!model) {\r\n return;\r\n }\r\n e.preventDefault();\r\n e.stopPropagation();\r\n if (model.FieldType != \"Button\") {\r\n self.DoFieldValueChanged(\"#f\" + model.FieldId);\r\n if (model.FieldType == \"Signature\") {\r\n self.ValidateField(\"#f\" + model.FieldId);\r\n }\r\n }\r\n var input = $(\"#f\" + model.FieldId);\r\n self.DoSkipFields(input);\r\n \r\n self.FocusNextField(model, e.shiftKey);\r\n\r\n if (model.FieldType === \"ComboBox\") {\r\n var errorFields = self.ErrorFields;\r\n var errorExists = false;\r\n for (var i = 0; i < errorFields.length && !errorExists; i++) {\r\n if (errorFields[i].FieldId === model.FieldId) {\r\n errorExists = true;\r\n }\r\n }\r\n if (!errorExists) {\r\n var valid = self.CheckIsComboBoxValueAllowed(input);\r\n if (!valid) {\r\n self.ErrorPanel.setError({\r\n field: input,\r\n model: model,\r\n message: \"Entry doesn't exist.\",\r\n location: null,\r\n isHardEdit: model.isHardEdit,\r\n errorType: \"validation\"\r\n });\r\n self.TakeActionOnField(\"skipped\", \"Entry doesn't exist.\", null, input, model);\r\n self.AddErrorField(model);\r\n }\r\n }\r\n }\r\n break;\r\n case 192:\r\n VR.Script.ReplaceDiacricals(e);\r\n break;\r\n case 46:\r\n var fields = $(e.target);\r\n if (fields.length > 0) {\r\n if (\r\n fields.attr(\"readonly\") === \"readonly\" ||\r\n fields.attr(\"disabled\") === \"disabled\"\r\n ) {\r\n break;\r\n }\r\n }\r\n break;\r\n case 113: //F2\r\n self.ShowPopupMenu(e);\r\n break;\r\n case 13: //enter\r\n if (nx && nx.Model && nx.Model.FieldId > 0) {\r\n var input = $(\"#f\" + nx.Model.FieldId);\r\n var model = input.data(\"field\");\r\n if (model && model.FieldType != \"MemoEdit\" && e.keyCode == 13) {\r\n e.preventDefault();\r\n } else if (model.FieldType == \"ComboBox\") {\r\n var dropdownlist = input.data(\"kendoComboBox\");\r\n var dataSet =\r\n model.DropDownList ||\r\n $.map(dropdownlist.dataSource.data(), function (data) {\r\n return data.text;\r\n });\r\n\r\n for (var i = 0; i < dataSet.length; i++) {\r\n if (\r\n dataSet[i]\r\n .toLowerCase()\r\n .indexOf(e.sender.element.val().toLowerCase()) == 0\r\n ) {\r\n VR.Script.MoveLit(dataSet[i], model.FieldName);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n break;\r\n }\r\n }; //FieldKeyDown\r\n\r\n /*// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= \r\n /// \r\n /// Keyup event handler for fields.\r\n /// \r\n /// The event handler argument.\r\n /// */\r\n self.FieldKeyUp = function (e) {\r\n var input = $(e.target);\r\nvar model = input.data(\"field\");\r\n if (!model) {\r\n var parent = input.parents(\".edit-field\");\r\n if (parent.length < 1) {\r\n parent = input.parents(\".edit-group\"); //For grid buttons.\r\n }\r\n var inputs = parent.find(\".input-field\");\r\n $.each(inputs, function (index, input2) {\r\n var id = $(input2).attr(\"id\");\r\n if (id) {\r\n var index = id.indexOf(\"f\");\r\n if (index == 0) {\r\n input = $(input2);\r\n model = input.data(\"field\");\r\n return false;\r\n }\r\n }\r\n });\r\n }\r\n\r\n if (!model) {\r\n return;\r\n }\r\n\r\n if (e.which < 32 || e.which > 126 || e.altKey || e.ctrlKey || e.metaKey) {\r\n return;\r\n }\r\n\r\n if (!model.MaxLength) {\r\n return;\r\n }\r\n\r\n var value = self.GetFieldRawValue(model.FieldId);\r\n //var value = self.GetFieldValue(model.FieldId);\r\n if (\r\n value != null &&\r\n value.toString().length >= model.MaxLength &&\r\n model.FieldType != \"ComboBox\"\r\n ) {\r\n e.preventDefault();\r\n if (e.target.value != $(\"#f\" + model.FieldId).val()) {\r\n $(\"#f\" + model.FieldId).val(e.target.value);\r\n }\r\n if (SkipOnEndField) {\r\n var input = $(\"#f\" + model.FieldId);\r\n self.DoSkipFields(input);\r\n self.FocusNextField(model, e.shiftKey && e.which == 8); //make sure the previous test is using tab too!\r\n }\r\n }\r\n }; //FieldKeyUp\r\n\r\n /*// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= \r\n /// \r\n /// Sets focus on the first field.\r\n /// \r\n /// */\r\n //self.FocusFirstField = function () {\r\n // var model = self.FirstField;\r\n // if (!model && self.Fields && self.Fields.length > 0) {\r\n // $.each(self.Fields, function (index, model) {\r\n // if (model.FieldType != \"Hidden\" && model.FieldType != \"Label\" && model.FieldType != \"Image\") {\r\n // self.FirstField = model;\r\n // return false;\r\n // }\r\n // });\r\n // }\r\n\r\n // if (!model) {\r\n // return;\r\n // }\r\n\r\n // var input = $(\"#f\" + model.FieldId);\r\n // if (!input || input.length < 1) {\r\n // return;\r\n // }\r\n\r\n // var gadget = null;\r\n // switch (model.FieldType) {\r\n // case \"AutoComplete\": gadget = $(input).data(\"kendoAutoComplete\"); break;\r\n // case \"ComboBox\": gadget = $(input).data(\"kendoComboBox\"); break;\r\n // case \"MultiSelect\": gadget = $(input).data(\"kendoMultiSelect\"); break;\r\n // case \"NumericTextBox\": gadget = $(input).data(\"kendoNumericTextBox\"); break;\r\n // case \"RadioButton\": gadget = $(input).find(\"input:first\"); break;\r\n // }\r\n\r\n // if (gadget) {\r\n // gadget.focus();\r\n // } else {\r\n // $(input).focus();\r\n // }\r\n\r\n // VR.Image.TypeFromImage.Model = model;\r\n //}; //FocusFirstField\r\n\r\n /*// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= \r\n /// \r\n /// Sets focus on the next field.\r\n /// \r\n /// The field model.\r\n /// The value to indicate if focusing on the previous field.\r\n /// */\r\n self.FocusNextField = function (model, isPrev) {\r\n if (!model) {\r\n return;\r\n }\r\n var count = self.Fields.length;\r\n var input = $(\"#f\" + model.FieldId);\r\n var next = model;\r\n while (count) {\r\n if (isPrev) {\r\n next = next.Prev;\r\n } else {\r\n next = next.Next;\r\n }\r\n\r\n if (!next) {\r\n break;\r\n }\r\n\r\n if (\r\n next.FieldType != \"Hidden\" &&\r\n next.FieldType != \"Label\" &&\r\n next.FieldType != \"Image\" &&\r\n next.FieldType != \"Grid\"\r\n ) {\r\n input = $(\"#f\" + next.FieldId);\r\n if (\r\n !input.hasClass(\"readonly-text\") &&\r\n input.attr(\"aria-disabled\") != \"true\" &&\r\n input.is(\":not(:disabled)\") &&\r\n !input.attr(\"readonly\")\r\n ) {\r\n model = next;\r\n break;\r\n }\r\n }\r\n count--;\r\n }\r\n\r\n if (!model || !input || input.length < 1) {\r\n return;\r\n }\r\n\r\n VR.Script.FocusField({ input: input[0], model: model }, false);\r\n }; //FocusNextField\r\n\r\n /*// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= \r\n /// \r\n /// Sets field value forciblly.\r\n /// \r\n /// The input field.\r\n /// The field value.\r\n /// The value to indicate if the change is applied to all fields with the same field name.\r\n /// */\r\n self.ForceSetFieldValue = function (input, value, applyall) {\r\n var field = $(input).data(\"field\");\r\n if (field) {\r\n self.SetFieldValue(input, value, applyall);\r\n }\r\n }; //ForceSetFieldValue\r\n\r\n /*// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= \r\n /// \r\n /// Show image editor.\r\n /// \r\n /// The source image editor.\r\n /// */\r\n self.EditImage = function (editor) {\r\n var modal = $(\"#imageeditor-modal\");\r\n $(\"#imageeditor-extension\")\r\n .css(\"display\", \"\")\r\n .parent()\r\n .css(\"display\", \"\");\r\n $(\"#imageeditor-filetype\").css(\"display\", \"none\");\r\n var headers = modal.find(\".imageeditor-headers\");\r\n headers.css(\"display\", \"none\");\r\n var size = self.SetImageEditorSize(modal);\r\n $(\"#imageedit-canvassection, #imageedit-canvasannote\").css(\r\n \"display\",\r\n \"none\"\r\n );\r\n var id = editor.attr(\"id\");\r\n var image = editor.find(\".edit-image\");\r\n var source = image.attr(\"src\");\r\n $(\"#imageedit-filesource\").css(\"display\", \"none\");\r\n $(\"#imageedit-buttons\").css(\"display\", \"\");\r\n $(\"#imageedit-slidebars\").css(\"display\", \"\");\r\n $(\"#imageedit-annotationsection\").css(\"display\", \"\");\r\n $(\"#imageedit-editsection\").css(\"display\", \"\");\r\n $(\"#imageedit-acceptbutton\").css(\"display\", \"\");\r\n $(\"#imageedit-savetodatabse, #imageedit-savetofile\").css(\"display\", \"none\");\r\n var imagedit = $(\"#imageedit-editor\");\r\n imagedit.css(\"display\", \"\");\r\n imagedit.attr(\"src\", source);\r\n imagedit.attr(\"data-editor\", id);\r\n imagedit.cropper(\"destroy\");\r\n imagedit.cropper({\r\n minCanvasWidth: size.width,\r\n minCanvasHeight: size.height,\r\n minContainerHeight: size.height,\r\n minContainerWidth: size.width,\r\n zoomOnWheel: false\r\n });\r\n $(\"#imageedit-buttons\")\r\n .find(\".btn-cropbutton\")\r\n .css(\"visibility\", \"visible\");\r\n $(\"#imageedit-slidebars\").css(\"visibility\", \"visible\");\r\n $(\"#imageedit-dragbutton\").addClass(\"active\");\r\n $(\"#imageedit-cropbutton\").removeClass(\"active\");\r\n $(\"#imageeditor-title\").html(\"Image Editor\");\r\n VR.Image.SlideBars.Setup();\r\n\r\n modal.attr(\"data-fileload\", \"\");\r\n modal.modal(\"show\");\r\n }; //EditImage\r\n\r\n /*// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= \r\n /// \r\n /// Show Tiff Image editor.\r\n /// \r\n /// The source image editor.\r\n /// */\r\n self.EditTiffImage = function (editor) {\r\n var modal = $(\"#tiffeditor-modal\");\r\n var modalsize = self.SetImageEditorSize(modal);\r\n var headers = modal.find(\".imageeditor-headers\");\r\n headers.css(\"display\", \"none\");\r\n $(\"#tiffeditor-canvassection,#tiffeditor-canvasannote\").css(\r\n \"display\",\r\n \"none\"\r\n );\r\n $(\"#tiffeditor-buttons\").css(\"display\", \"\");\r\n $(\"#tiffeditor-editsection\").css(\"display\", \"\");\r\n $(\"#tiffeditor-acceptbutton\").css(\"display\", \"\");\r\n $(\"#tiffeditor-savetodatabse, #tiffeditor-savetofile\").css(\r\n \"display\",\r\n \"none\"\r\n );\r\n\r\n var editorid = editor.attr(\"id\");\r\n var images = editor.find(\"img\");\r\n var size = images.length;\r\n\r\n var canvases = $(\"#tiffeditor-canvassection\");\r\n //canvases.css(\"display\", \"none\");\r\n var section = $(\"#tiffeditor-editsection\");\r\n section.attr(\"data-image-size\", size);\r\n section.attr(\"data-page-number\", 0);\r\n section.attr(\"data-editor\", editorid);\r\n $(\"#tiffeditor-pagenumber\").html(\"Page 1 of \" + size);\r\n\r\n var html = \"\";\r\n $.each(images, function (index, image) {\r\n var source = $(image).attr(\"src\");\r\n var style = \" display : none;\";\r\n if (index == 0) {\r\n style = \"\";\r\n }\r\n html +=\r\n \"
\" +\r\n \"
\";\r\n });\r\n section.html(html);\r\n section.css(\"display\", \"\");\r\n for (var i = 0; i < size; i++) {\r\n var imageedit = $(\"#tiffeditor-page\" + (i + 1));\r\n imageedit.cropper({\r\n minCanvasWidth: modalsize.width,\r\n minCanvasHeight: modalsize.height,\r\n minContainerHeight: modalsize.height,\r\n minContainerWidth: modalsize.width,\r\n crop: function (e) { }\r\n });\r\n\r\n if (i == 0) {\r\n $(\"#tiffeditor-pagesection\" + (i + 1)).css(\"display\", \"\");\r\n var cropper = modal.find(\".cropper-container\");\r\n if (cropper.length > 0) {\r\n self.TiffModalHeight = cropper.css(\"height\");\r\n }\r\n }\r\n }\r\n $(\"#tiffeditor-buttons\")\r\n .find(\".btn-cropbutton\")\r\n .css(\"visibility\", \"visible\");\r\n $(\"#tiffeditor-slidebars\").css(\"visibility\", \"visible\");\r\n $(\"#tiffeditor-dragbutton\").addClass(\"active\");\r\n $(\"#tiffeditor-cropbutton\").removeClass(\"active\");\r\n\r\n html = \"\";\r\n for (var i = 0; i < size; i++) {\r\n html +=\r\n \"
\";\r\n }\r\n canvases.html(html);\r\n\r\n var annote = $(\"#tiffeditor-annotationsection\");\r\n var annotes = annote.data(\"canvas\");\r\n if (annotes) {\r\n $.each(annotes, function (index, canvas) {\r\n canvas.dispose();\r\n $(canvas.wrapperEl).remove();\r\n });\r\n }\r\n html = \"\";\r\n for (var i = 0; i < size; i++) {\r\n var style = \"style='display:none;'\";\r\n if (i == 0) {\r\n style = \"\";\r\n }\r\n html +=\r\n \"\";\r\n }\r\n annote.html(html);\r\n annote = $(\"#tiffeditor-canvasannote\");\r\n annotes = annote.data(\"canvas\");\r\n if (annotes) {\r\n $.each(annotes, function (index, canvas) {\r\n canvas.dispose();\r\n $(canvas.wrapperEl).remove();\r\n });\r\n }\r\n html = \"\";\r\n for (var i = 0; i < size; i++) {\r\n var style = \"style='display:none;'\";\r\n var id = \"tiffeditor-canvasannote\" + (i + 1);\r\n html +=\r\n \"
\";\r\n }\r\n annote.html(html);\r\n VR.Image.SlideBars.SetupTiff();\r\n modal.attr(\"data-fileload\", \"\");\r\n modal.modal(\"show\");\r\n }; //EditTiffImage\r\n\r\n /*// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= \r\n /// \r\n /// Gets the application value.\r\n /// \r\n /// The application value name.\r\n /// The current input.\r\n /// The application value.*/\r\n self.GetApplicationValue = function (name, input) {\r\n var returnValue = null;\r\n\r\n //Somewhere/sometime the code was changed from always requiring a string ('f12345' or 'FIELD_NAME') to allowing\r\n //the field ID as an integer (12345 or 'FIELD_NAME'). The indexOf below returns an error on the ID so we'll\r\n //get the field name here and use it for this function.\r\n if (typeof name == \"number\") {\r\n var model = $(input).data(\"field\");\r\n name = model.FieldName;\r\n }\r\n\r\n if (!name) {\r\n return returnValue;\r\n }\r\n\r\n if (name.indexOf(\"CURRENT_\") == 0) {\r\n name = name.substring(\"CURRENT_\".length);\r\n }\r\n if (name.indexOf(\"@\") == 0) {\r\n name = name.substring(\"@\".length);\r\n }\r\n\r\n switch (name) {\r\n case \"DATE\":\r\n case \"TODAY\":\r\n var date = new Date();\r\n returnValue = new Date(\r\n date.getFullYear(),\r\n date.getMonth(),\r\n date.getDate()\r\n );\r\n break;\r\n case \"NOW\":\r\n returnValue = new Date();\r\n break;\r\n case \"CURRENTSFN\":\r\n returnValue = self.GetFieldValue(\"STATE_FILE_NUMBER\");\r\n break;\r\n case \"DOCPRINTER\":\r\n returnValue = self.DocPrinter;\r\n break;\r\n case \"DOCUMENT\":\r\n returnValue = self.Document;\r\n break;\r\n case \"DOCRBVALUE\":\r\n returnValue = self.DocParameter;\r\n break;\r\n case \"DOCTRACKID\":\r\n returnValue = self.DocTrackId;\r\n break;\r\n case \"DOCUMENTID\":\r\n returnValue = self.DocumentId;\r\n break;\r\n case \"NUMCOPIES\":\r\n returnValue = self.NumCopies;\r\n break;\r\n case \"FAXRECVID\":\r\n returnValue = 0;\r\n break;\r\n case \"FAXREQID\":\r\n returnValue = self.FaxReqId;\r\n break;\r\n case \"FAXSIGCODE\":\r\n returnValue = self.FaxSigCode;\r\n break;\r\n case \"FAXVERSION\":\r\n returnValue = self.FaxVersion;\r\n break;\r\n case \"FIRSTDOCNUM\":\r\n returnValue = self.FirstDocNum;\r\n break;\r\n case \"FORMSTATE\":\r\n returnValue = self.State;\r\n break;\r\n case \"LASTDOCNUM\":\r\n returnValue = self.LastDocNum;\r\n break;\r\n case \"EVENTID\":\r\n returnValue = self.EventId;\r\n break;\r\n case \"EVENTNAME\":\r\n returnValue = self.EventName;\r\n break;\r\n case \"GUIROLE\":\r\n returnValue = self.GuiRole;\r\n break;\r\n case \"PRINT_BLANK\":\r\n returnValue = false;\r\n break;\r\n default:\r\n if (self.ApplicationValues == null) {\r\n var url = VR.Common.GetRootURL() + \"data/appvalue\";\r\n VR.Common.Ajax({\r\n type: \"POST\",\r\n url: url,\r\n data: null,\r\n success: function (response) {\r\n //var json = VR.Common.DecryptData(response.Json);\r\n var result = $.parseJSON(response.Json);\r\n\r\n if (result.Code != 0) {\r\n VR.Common.HandleInvalidResult(\r\n result,\r\n \"Application Value\",\r\n true\r\n );\r\n } else {\r\n self.ApplicationValues = result.Values;\r\n }\r\n },\r\n dataType: \"json\",\r\n async: false\r\n });\r\n }\r\n\r\n returnValue = self.ApplicationValues[name];\r\n if (typeof returnValue === \"undefined\") {\r\n returnValue = null;\r\n }\r\n break;\r\n }\r\n\r\n if (returnValue == null) {\r\n returnValue = \"\";\r\n }\r\n\r\n return returnValue;\r\n }; //GetApplicationValue\r\n\r\n /*// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= \r\n /// \r\n /// Gets changed fields.\r\n /// \r\n /// The fieldId/string value pair of all changed fields.*/\r\n self.GetChangedFields = function () {\r\n var data = \"\";\r\n $.each(self.Fields, function (index, model) {\r\n if (model.HasChange) {\r\n data += model.FieldId + \"|\";\r\n }\r\n });\r\n\r\n return data;\r\n }; //GetChangedFields\r\n\r\n /*// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= \r\n /// \r\n /// Gets the current tiff editor.\r\n /// \r\n /// The current tiff editor.*/\r\n self.GetCurrentTiffEditor = function () {\r\n var section = $(\"#tiffeditor-editsection\");\r\n var page = parseInt(section.attr(\"data-page-number\"));\r\n if (isNaN(page) || page < 0) {\r\n page = 0;\r\n }\r\n\r\n var tiffpage = $(\"#tiffeditor-page\" + (page + 1));\r\n return tiffpage;\r\n }; //GetCurrentTiffEditor\r\n\r\n /*// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= \r\n /// \r\n /// Gets the current tiff editor page.\r\n /// \r\n /// The current tiff editor page.*/\r\n self.GetCurrentTiffEditorPage = function () {\r\n var section = $(\"#tiffeditor-editsection\");\r\n var page = section.attr(\"data-page-number\");\r\n page = parseInt(page);\r\n if (isNaN(page) || page < 0) {\r\n page = 0;\r\n }\r\n\r\n var tiffpage = $(\"#tiffeditor-pagesection\" + (page + 1));\r\n return tiffpage;\r\n }; //GetCurrentTiffEditorPage\r\n\r\n /*// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= \r\n /// \r\n /// Gets the event year.\r\n /// \r\n /// The event year.*/\r\n self.GetEventYear = function () {\r\n var returnValue = self.GetFieldValue(\"EVENT_YEAR\", true);\r\n return returnValue;\r\n }; //GetEventYear\r\n\r\n /*// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= \r\n /// \r\n /// Gets field values of all fields.\r\n /// \r\n /// The fieldId/string value pair of all field values.*/\r\n self.GetFieldData = function () {\r\n var data = \"\";\r\n\r\n $.each(self.Fields, function (indx, model) {\r\n var value = self.GetFieldValue(model.FieldId);\r\n if (model.FieldType == \"MaskedTextBox\") {\r\n if (!!model.Mask) {\r\n value = VR.Edit.GetFieldRawValue(model.FieldId);\r\n } else {\r\n value = model.OriginalValue;\r\n }\r\n } else if (model.FieldDataType == \"date\") {\r\n value = VR.Common.ToDateString(value);\r\n value = value.replace(/([8]{2}|[9]{2})\\//g, \"01/\");\r\n //value = value.replace(/[9]{4}/g, '0001');\r\n }\r\n data += model.FieldId + \"=\" + value + \"|\";\r\n });\r\n\r\n return data;\r\n }; //GetFieldData\r\n\r\n /*// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= \r\n /// \r\n /// Gets Shipping tab data\r\n /// \r\n /// The fieldId/string value pair of all field values.*/\r\n self.GetShippingTabData = function () {\r\n var data = \"\";\r\n\r\n $.each(self.Fields, function (indx, model) {\r\n if (model.Tab == \"Shipping\" && model.FieldType !== \"Button\" && model.FieldName !== \"Label Layout\" && model.FieldName !== \"carrier_name_id\"\r\n && model.FieldName !== \"Estimated Cost\" && model.FieldName !== \"SHIPPING_LABEL_TRACKING_NUMBER\") {\r\n var value = self.GetFieldValue(model.FieldId);\r\n if (model.FieldType == \"MaskedTextBox\") {\r\n if (!!model.Mask) {\r\n value = VR.Edit.GetFieldRawValue(model.FieldId);\r\n } else {\r\n value = model.OriginalValue;\r\n }\r\n }\r\n data += model.FieldName + \"=\" + value + \"|\";\r\n }\r\n });\r\n return data;\r\n };\r\n\r\n self.GetShipCarrierAndTrackingNumber = function () {\r\n var data = \"\";\r\n\r\n $.each(self.Fields, function (indx, model) {\r\n if (model.Tab == \"Shipping\" && (model.FieldName == \"Carrier_Name\" || model.FieldName == \"SHIPPING_LABEL_TRACKING_NUMBER\")) {\r\n var value = self.GetFieldValue(model.FieldId);\r\n data += model.FieldName + \"=\" + value + \"|\";\r\n }\r\n });\r\n return data.slice(0, -1);\r\n };\r\n\r\n\r\n //GetFieldData\r\n /*// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= \r\n /// \r\n /// Gets field errors.\r\n /// \r\n /// The fieldId/string value pair of all field errors.*/\r\n self.GetFieldErrors = function () {\r\n var data = \"\";\r\n $.each(self.Fields, function (index, model) {\r\n if (model.ErrorMessage && model.ErrorMessage != \"\") {\r\n data += model.FieldId + \"=\" + model.ErrorMessage + \"|\";\r\n }\r\n });\r\n\r\n return data;\r\n }; //GetFieldErrors\r\n\r\n /*// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= \r\n /// \r\n /// Gets field error count.\r\n /// \r\n /// The query location (if applicable).\r\n /// The integer field error count.*/\r\n self.GetFieldErrorCount = function (qloc) {\r\n var errorFields;\r\n if (!!qloc) {\r\n errorFields = self.ErrorFields.filter(ele => ele.QueryLocation == qloc);\r\n } else {\r\n errorFields = self.ErrorFields;\r\n }\r\n return errorFields.length;\r\n }; // GetFieldErrorCount\r\n\r\n /*// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= \r\n /// \r\n /// Gets field model.\r\n /// \r\n /// The field Id or field name.\r\n /// The field model object.*/\r\n self.GetFieldModel = function (field) {\r\n var value = null;\r\n var prefix = null;\r\n if (field && field.toString().length > 0) {\r\n prefix = field.substring(0, 1);\r\n }\r\n\r\n if (prefix == \"f\" || prefix == \"p\" || prefix == \"g\") {\r\n field = field.substring(1);\r\n }\r\n\r\n var id = parseInt(field);\r\n if (!isNaN(id)) {\r\n var input = $(\"#f\" + id.toString());\r\n if (input.length > 0) {\r\n value = $(input).data(\"field\");\r\n }\r\n } else {\r\n //var inputs = $(\"#tab-content\").find(\"input[data-field-name='\" + field + \"']\");\r\n var inputs = self.GetInputFields(field);\r\n if (inputs.length > 0) {\r\n value = $(inputs).data(\"field\");\r\n }\r\n }\r\n\r\n return value;\r\n }; //GetFieldModel\r\n\r\n /*// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= \r\n /// \r\n /// Gets field overrides.\r\n /// \r\n /// The fieldId/string value pair of all field overrides.*/\r\n self.GetFieldOverrides = function () {\r\n var data = \"\";\r\n $.each(self.Fields, function (index, model) {\r\n if (model.FieldStatus && model.FieldStatus != \"\") {\r\n var location = (model.QueryLocation && model.FieldStatus !== \"alerttrigger\") ? model.QueryLocation : \"\";\r\n\r\n if (!location) {\r\n location = \"\";\r\n } else if (location.length > 0) {\r\n location = \",\" + location;\r\n }\r\n\r\n if (model.FieldStatus !== \"literal\") {\r\n data += model.FieldId + \"=\" + model.FieldStatus + location + \"|\";\r\n }\r\n }\r\n });\r\n\r\n return data;\r\n }; //GetFieldOverrides\r\n\r\n\r\n /*// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\r\n /// \r\n /// Gets all the fields that have the status of \"literal\"\r\n /// \r\n /// data, which contains the fieldid plus the fieldstatus combined */\r\n self.GetOtherLiteralFields = function() {\r\n var data = \"\";\r\n $.each(self.Fields, function (index, model) {\r\n\r\n // if the field currently has an orange background then add to data\r\n if (model.AllowOther === true && model.FieldStatus === \"literal\") {\r\n data += model.FieldId + \"=literal|\";\r\n }\r\n });\r\n\r\n return data;\r\n }; //GetOtherLiteralFields\r\n\r\n /*// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= \r\n /// \r\n /// Gets the field value.\r\n /// \r\n /// The field Id or field name.\r\n /// The value to indicate if null sould be return if the field is not found.\r\n /// The field value in a string format.*/\r\n self.GetFieldValue = function (field, returnNull, isFormatted, comboBoxReturnDisplayValue) {\r\n var value = null;\r\n var id = parseInt(field);\r\n if (!isNaN(id)) {\r\n var input = $(\"#f\" + id.toString());\r\n if (input.length > 0) {\r\n var model = $(input).data(\"field\");\r\n if (model.FieldType == \"MaskedTextBox\" && !!model.Mask && isFormatted) {\r\n value = VR.Edit.GetInputValue(input, true, false, comboBoxReturnDisplayValue);\r\n } else {\r\n value = VR.Edit.GetInputValue(input, false, true, comboBoxReturnDisplayValue);\r\n }\r\n }\r\n } else {\r\n //var inputs = $(\"#tab-content\").find(\".input-field[data-field-name='\" + field + \"']\");\r\n var inputs = self.GetInputFields(field);\r\n if (inputs.length > 0) {\r\n var model = $(inputs[0]).data(\"field\");\r\n if (model.FieldType == \"MaskedTextBox\" && !!model.Mask && isFormatted) {\r\n value = VR.Edit.GetInputValue(inputs[0], true, false, comboBoxReturnDisplayValue);\r\n }\r\n else if (model.FieldType == \"TimePicker\" && VR.Common.IsMobile()) {\r\n value = VR.Edit.GetInputValue(inputs[0], false, false, comboBoxReturnDisplayValue).replace(\":\", \"\");\r\n }\r\n else {\r\n value = VR.Edit.GetInputValue(inputs[0], false, true, comboBoxReturnDisplayValue);\r\n }\r\n }\r\n }\r\n\r\n if ((value == \"\" || value == null) && field == \"ISACTIVE\") {\r\n value = self.Isactive;\r\n }\r\n\r\n if (!returnNull && value == null) {\r\n value = \"\";\r\n }\r\n return value;\r\n }; //GetFieldValue\r\n self.GetFieldRawValue = function (field, returnNull) {\r\n var value = null;\r\n var id = parseInt(field);\r\n if (!isNaN(id)) {\r\n var input = $(\"#f\" + id.toString());\r\n if (input.length > 0) {\r\n var model = $(input).data(\"field\");\r\n value = VR.Edit.GetInputValue(input, false);\r\n }\r\n } else {\r\n var inputs = self.GetInputFields(field);\r\n if (inputs.length > 0) {\r\n var model = $(inputs[0]).data(\"field\");\r\n value = VR.Edit.GetInputValue(inputs[0], false);\r\n }\r\n }\r\n if (value == null && field == \"ISACTIVE\") {\r\n value = self.Isactive;\r\n }\r\n\r\n if (!returnNull && value == null) {\r\n value = \"\";\r\n }\r\n return value;\r\n }; //GetRawFieldValue\r\n /*// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= \r\n /// \r\n /// Gets the filter values.\r\n /// \r\n /// The field model.\r\n /// The field value in a string format.*/\r\n self.GetFilterValues = function (model) {\r\n var value = \"\";\r\n if (model && model.FilterFields && model.FilterFields.length > 0) {\r\n for (var i = 0; i < model.FilterFields.length; i++) {\r\n var id = model.FilterFields[i];\r\n value += self.GetFieldValue(id).toString() + \"|\";\r\n }\r\n }\r\n\r\n return value;\r\n }; //GetFilterValues\r\n\r\n /*// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= \r\n /// \r\n /// Gets the input fields.\r\n /// \r\n /// The field name.\r\n /// The input field list.*/\r\n self.GetInputFields = function (field) {\r\n if (!field) {\r\n return null;\r\n }\r\n\r\n var inputs = $(\"#tab-content\").find(\r\n \".input-field[data-field-name='\" + field + \"']\"\r\n );\r\n if (inputs.length <= 0) {\r\n field = field.toUpperCase();\r\n inputs = $(\"#tab-content\").find(\r\n \".input-field[data-field-name='\" + field + \"']\"\r\n );\r\n }\r\n\r\n return inputs;\r\n }; //GetInputFields\r\n\r\n /*// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= \r\n /// \r\n /// Gets the input field value.\r\n /// \r\n /// The input field.\r\n /// The value to indicate if formatted value should be returned.\r\n /// isFormatted did nothing prior to 6/17/2020, now it can affect the string handling\r\n /// The field value in a string format.*/\r\n self.GetInputValue = function (input, isFormatted, comboBoxOverloadFieldValue, comboBoxReturnDisplayValue) {\r\n var value = null;\r\n var model = $(input).data(\"field\");\r\n if (model) {\r\n switch (model.FieldType) {\r\n case \"CheckBox\":\r\n value = $(input).prop(\"checked\");\r\n if (value) {\r\n value = \"Y\";\r\n } else {\r\n value = \"N\";\r\n }\r\n break;\r\n case \"ComboBox\":\r\n var comboBox = $(input).data(\"kendoComboBox\");\r\n if (!!comboBox) {\r\n var selectedIndex = comboBox.selectedIndex;\r\n if (\r\n selectedIndex > -1 &&\r\n !!comboBox.dataSource &&\r\n comboBox.dataSource.data().length > 0\r\n ) {\r\n var text = comboBox.text();\r\n value = comboBox.value();\r\n var data = comboBox.dataSource.data();\r\n var found = false;\r\n for (var item = 0; item < data.length; item++) {\r\n if (typeof (data[item].text) !== \"undefined\" && typeof (data[item].text) !== \"null\" &&\r\n typeof (text) !== \"undefined\" && typeof (text) !== \"null\"\r\n ) {\r\n if (data[item].text.toString().toUpperCase() == text.toString().toUpperCase()) {\r\n value = comboBoxReturnDisplayValue === true ? data[item].text : data[item].value;\r\n found = true;\r\n break;\r\n }\r\n }\r\n }\r\n if (!found) value = text;\r\n } else {\r\n value = comboBox.text();\r\n if (value === \"\" && model.FieldValue !== null && model.FieldValue !== \"\" && comboBoxOverloadFieldValue === true) {\r\n value = model.FieldValue;\r\n }\r\n }\r\n } else {\r\n value = $(input).val();\r\n }\r\n if (!!value && typeof value == \"string\") {\r\n if ($(input).data(\"casing\") != \"ignore\") {\r\n // In ComboBox ?Need to account for isFormatted = false?\r\n switch (model.Case) {\r\n case \"upper\":\r\n value = value.toUpperCase();\r\n break;\r\n case \"lower\":\r\n value = value.toLowerCase();\r\n break;\r\n case \"capitalize\":\r\n // In ComboBox ?Need to account for isFormatted = false?\r\n value = self.CapitalizeEachWord(value);\r\n break;\r\n }\r\n }\r\n value = value.trim();\r\n }\r\n break;\r\n case \"RadioButton\":\r\n var buttons = $(input).find(\"input\");\r\n $.each(buttons, function (index, radio) {\r\n var val = $(radio).prop(\"checked\");\r\n if (val) {\r\n value = $(radio).val();\r\n }\r\n });\r\n break;\r\n case \"Image\":\r\n value = model.FieldValue;\r\n break;\r\n case \"MonthPicker\":\r\n case \"DatePicker\":\r\n case \"MaskedTextBox\":\r\n var maskedtextbox = $(input).data(\"kendoMaskedTextBox\");\r\n if (maskedtextbox) {\r\n value = isFormatted ? maskedtextbox.value() : maskedtextbox.raw();\r\n if (model.FieldType == \"DatePicker\" && value) {\r\n value = maskedtextbox.value();\r\n }\r\n } else {\r\n value = $(input).val();\r\n }\r\n break;\r\n case \"MultiSelect\":\r\n var multiselect = $(input).data(\"kendoMultiSelect\");\r\n if (multiselect) {\r\n var list = multiselect.value();\r\n if (list && list.length > 0) {\r\n value = \"\";\r\n for (var i = 0; i < list.length; i++) {\r\n if (i > 0) {\r\n value += \"*\";\r\n }\r\n value += list[i].trim();\r\n }\r\n }\r\n } else {\r\n value = $(input).val();\r\n }\r\n break;\r\n case \"Signature\":\r\n var model = $(input).data(\"field\"); // this line is redundant to the earlier setting of model?\r\n if (model) {\r\n value = model.FieldValue;\r\n if (value) {\r\n value = value.toString();\r\n }\r\n }\r\n break;\r\n default:\r\n value = $(input).val();\r\n break;\r\n }\r\n\r\n if (!!value && typeof value == \"string\") {\r\n if ($(input).data(\"casing\") != \"ignore\") {\r\n //need to check prev value against current value\r\n //VRS-3752 Casing does not work on an already saved record.\r\n //check if the value has changed, they might just be tabbing through and not want their\r\n //beautiful field recapitalized.\r\n //note that OriginalValue may be null while value is \"\"\r\n //This routime works on Textboxes, to work with other controls need code in OnBlur to manage PreviousValue\r\n //\r\n if (model.FieldType == \"TextBox\") {\r\n if ((model.PreviousValue == null && model.OriginalValue != value) || (model.PreviousValue != null && model.PreviousValue != value)) {\r\n if (isFormatted == null || isFormatted == true) {\r\n switch (model.Case) {\r\n case \"upper\":\r\n value = value.toUpperCase();\r\n break;\r\n case \"lower\":\r\n value = value.toLowerCase();\r\n break;\r\n case \"capitalize\":\r\n value = self.CapitalizeEachWord(value);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n // ComboBox handles its value in the switch statement above, so we exclude it here\r\n else if (model.FieldType != null && model.FieldType != \"ComboBox\") {\r\n if ($(input).data(\"casing\") != \"ignore\") {\r\n switch (model.Case) {\r\n case \"upper\":\r\n value = value.toUpperCase();\r\n break;\r\n case \"lower\":\r\n value = value.toLowerCase();\r\n break;\r\n case \"capitalize\":\r\n value = self.CapitalizeEachWord(value);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n value = value.trim();\r\n }\r\n }\r\n\r\n if (value == null) {\r\n value = \"\";\r\n }\r\n\r\n return value;\r\n }; //GetInputValue\r\n\r\n /*// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= \r\n /// \r\n /// Gets the isactive value for the current event Id.\r\n /// \r\n /// The current event Id.*/\r\n self.GetIsActive = function () {\r\n var value = self.GetFieldValue(\"ISACTIVE\", true);\r\n\r\n return value;\r\n }; //GetIsActive\r\n\r\n /*// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= \r\n /// \r\n /// Gets field values of all fields for preload.\r\n /// \r\n /// The field name/string value pair of all field values.*/\r\n self.GetPreloadData = function () {\r\n var data = self.EventName + \"|\";\r\n\r\n $.each(self.Fields, function (indx, model) {\r\n var value = self.GetFieldValue(model.FieldId);\r\n if (model.FieldDataType == \"date\") {\r\n value = VR.Common.ToDateString(value);\r\n }\r\n data += model.FieldName + \"=\" + value + \"|\";\r\n });\r\n\r\n return data;\r\n }; //GetPreloadData\r\n\r\n /*// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= \r\n /// \r\n /// Get the state file number.\r\n /// \r\n /// The state file number.*/\r\n self.GetStateFileNumber = function () {\r\n var returnValue = self.GetFieldValue(\"STATE_FILE_NUMBER\", true);\r\n return returnValue;\r\n }; //GetStateFileNumber\r\n\r\n /*// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= \r\n /// \r\n /// Inactivates image.\r\n /// \r\n /// The image Id.\r\n /// */\r\n self.InactivateImage = function (id) {\r\n if (id && id.indexOf(\"image-\") > -1) {\r\n id = id.substring(\"image-\".length);\r\n }\r\n\r\n id = parseInt(id);\r\n if (isNaN(id)) {\r\n return;\r\n }\r\n\r\n var selected = null;\r\n $.each(self.ImageDataSource.data(), function (index, model) {\r\n if (model.ImageId == id) {\r\n selected = model;\r\n return false;\r\n }\r\n });\r\n\r\n if (!selected) {\r\n return;\r\n }\r\n\r\n VR.Common.SecurePost(\r\n \"data/imagetoggle\",\r\n \"image=\" + id + \"|active=\" + selected.IsActive,\r\n function (result) {\r\n if (result.Code != 0) {\r\n VR.Common.HandleInvalidResult(result, \"Image\", true);\r\n } else {\r\n var list = $(\"#image-list\");\r\n list.find(\".image\").off(\"dblclick\");\r\n selected.IsActive = !selected.IsActive;\r\n $(\"#image-pager\")\r\n .data(\"kendoPager\")\r\n .refresh();\r\n var list = $(\"#image-list\");\r\n var kendoList = list.data(\"kendoListView\");\r\n kendoList.refresh();\r\n\r\n list.find(\".image\").on(\"dblclick\", function (e) {\r\n self.ShowImageWindow(this.id);\r\n });\r\n\r\n var element = null;\r\n $.each(kendoList.element.children(), function (index, child) {\r\n if (child.id == \"image-\" + id) {\r\n element = child;\r\n return false;\r\n }\r\n });\r\n kendoList.select(element);\r\n\r\n var checkbox = $(\"#\" + selected.ImageId + \"-check\");\r\n checkbox.trigger(\"click\");\r\n }\r\n }\r\n );\r\n }; //InactivateImage\r\n\r\n self.CreateFunction = function (script) {\r\n return new Function(script);\r\n }; //CreateFunction\r\n\r\n self.dynscript = function (\r\n model,\r\n edit,\r\n year,\r\n eventGroup,\r\n roleCode,\r\n userName,\r\n kind\r\n ) {\r\n return function () {\r\n if (!!model.FieldId) {\r\n VR.Script.EditNumber = edit.EditNumber;\r\n VR.Script.Edit = edit;\r\n }\r\n try {\r\n console.log(\"running edit \" + model.FieldId + \":\" + edit.EditNumber);\r\n var fileName = \"f\" + model.FieldId + \"_e\" + edit.EditNumber;\r\n if (!model.FieldId) {\r\n var year = VR.Edit.SecurityEventYear;\r\n var roleCode = VR.Edit.SecurityRoleCode;\r\n var userName = VR.Edit.SecurityUserName;\r\n var eventGroup = VR.Edit.SecurityEventGroup;\r\n var kind = edit.Kind;\r\n fileName =\r\n eventGroup +\r\n \"-\" +\r\n roleCode +\r\n \"-\" +\r\n userName +\r\n \"-\" +\r\n year +\r\n \"-\" +\r\n kind;\r\n }\r\n VR.Edit.CreateFunction(\r\n \"//# sourceURL=\" + fileName + \".js\\r\\n\" + edit.Script\r\n )();\r\n } catch (ex) {\r\n var _message = ex;\r\n if (ex.message) _message = ex.message;\r\n if (\r\n CanViewScriptEditor &&\r\n _message.indexOf(\"Script.ErrMessage:\") == -1\r\n ) {\r\n var jsEditorAnchor = \"\";\r\n var nibble = \"\";\r\n if (!model.FieldId) {\r\n nibble = encodeURIComponent(\r\n \"eventYear=\" +\r\n year +\r\n \"|eventGroup=\" +\r\n eventGroup +\r\n \"|role_code=\" +\r\n roleCode +\r\n \"|user_name=\" +\r\n userName\r\n );\r\n //nibble = encodeURI(nibble);\r\n jsEditorAnchor =\r\n 'here';\r\n alert(\r\n \"there was an error in \" +\r\n kind +\r\n \" role edit. Click \" +\r\n jsEditorAnchor +\r\n \" to edit the script.

\" +\r\n _message\r\n );\r\n } else {\r\n nibble = encodeURIComponent(\r\n \"FieldId=\" + model.FieldId + \"|Edit_Number=\" + edit.EditNumber\r\n );\r\n //nibble = encodeURI(nibble);\r\n jsEditorAnchor =\r\n 'here';\r\n alert(\r\n \"there was an error in edit \" +\r\n model.FieldId +\r\n \":\" +\r\n edit.EditNumber +\r\n \". Click \" +\r\n jsEditorAnchor +\r\n \" to edit the script.

\" +\r\n _message\r\n );\r\n }\r\n }\r\n if (_message.indexOf(\"Script.ErrMessage:\") == 0) {\r\n throw _message.replace(\"Script.ErrMessage:\", \"\");\r\n }\r\n console.error(ex);\r\n }\r\n };\r\n }; //dynscript\r\n\r\n /*// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= \r\n /// \r\n /// Initialize fields.\r\n /// \r\n /// The index to the the tab to initialize or null for all fields.\r\n /// */\r\n self.InitFields = function (index, isNoEdits) {\r\n if (isNoEdits) return;\r\n\r\n var fields;\r\n if (index == null) {\r\n fields = self.Fields;\r\n } else if (\r\n !self.Tabs ||\r\n self.Tabs.length == 0 ||\r\n index < -1 ||\r\n index > self.Tabs.length\r\n ) {\r\n return;\r\n } else {\r\n fields = self.Tabs[index];\r\n }\r\n\r\n if (!fields || fields.length < 1) {\r\n return;\r\n }\r\n\r\n $.each(fields, function (index, model) {\r\n var input = $(\"#f\" + model.FieldId);\r\n self.DoSkipFields(input, true);\r\n\r\n if (\r\n (model.IsEditable == false || model.IsDisplayOnly == true) &&\r\n !$(input).hasClass(\"readonly-text\")\r\n ) {\r\n self.SetReadOnly(input, true);\r\n }\r\n self.SetFieldStatusColor(input, model);\r\n\r\n if (\r\n !self.FirstField &&\r\n !$(input).hasClass(\"readonly-text\") &&\r\n model.FieldType != \"Hidden\" &&\r\n model.FieldType != \"Label\" &&\r\n model.FieldType != \"Image\" &&\r\n model.FieldType != \"Button\"\r\n ) {\r\n self.FirstField = model;\r\n }\r\n });\r\n }; //InitFields\r\n\r\n /*// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= \r\n /// \r\n /// Initialzes the image scan.\r\n /// \r\n /// */\r\n self.InitScanImage = function () {\r\n Dynamsoft.DWT.RegisterEvent(\"OnWebTwainReady\", function (e) {\r\n self.DWObject = Dynamsoft.DWT.GetWebTwain(\"dwtcontrolContainer\");\r\n self.DWObject.RegisterEvent(\"OnPostAllTransfers\", function () {\r\n var buttons = $(\"#scanimage-buttons\");\r\n var size = self.DWObject.HowManyImagesInBuffer;\r\n if (size && size > 1) {\r\n buttons.css(\"visibility\", \"visible\");\r\n self.DWObject.CurrentImageIndexInBuffer = 0;\r\n $(\"#scanimage-pagenumber\").html(\r\n \"Page: \" +\r\n (self.DWObject.CurrentImageIndexInBuffer + 1) +\r\n \" of \" +\r\n self.DWObject.HowManyImagesInBuffer\r\n );\r\n self.DWObject.RegisterEvent(\"OnTopImageInTheViewChanged\", function (\r\n index\r\n ) {\r\n self.DWObject.CurrentImageIndexInBuffer = index;\r\n $(\"#scanimage-pagenumber\").html(\r\n \"Page: \" +\r\n (self.DWObject.CurrentImageIndexInBuffer + 1) +\r\n \" of \" +\r\n self.DWObject.HowManyImagesInBuffer\r\n );\r\n });\r\n } else {\r\n buttons.css(\"visibility\", \"hidden\");\r\n }\r\n });\r\n\r\n var list = [];\r\n for (var i = 0; i < self.DWObject.SourceCount; i++) {\r\n list.push(self.DWObject.GetSourceNameItems(i));\r\n }\r\n\r\n var source = $(\"#scanner-source\");\r\n source.kendoDropDownList({\r\n dataSource: list\r\n });\r\n\r\n var modal = $(\"#scanimage-modal\");\r\n modal.find(\".ds-dwt-container-box\").css(\"margin-left\", \"150px\");\r\n });\r\n\r\n Dynamsoft.DWT.Load();\r\n\r\n var buttons = $(\"#scanimage-buttons\");\r\n var button = buttons.find(\".btn-primary\");\r\n button.tooltip({\r\n container: \"body\",\r\n trigger: \"hover\"\r\n });\r\n\r\n button.on(\"click\", function (e) {\r\n var id = $(this).attr(\"id\");\r\n if (id == \"scanimage-previousbutton\") {\r\n if (self.DWObject.CurrentImageIndexInBuffer > 0) {\r\n self.DWObject.CurrentImageIndexInBuffer -= 1;\r\n }\r\n } else {\r\n if (\r\n self.DWObject.CurrentImageIndexInBuffer + 1 <\r\n self.DWObject.HowManyImagesInBuffer\r\n ) {\r\n self.DWObject.CurrentImageIndexInBuffer += 1;\r\n }\r\n }\r\n });\r\n }; //InitScanImage\r\n\r\n /*// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= \r\n /// \r\n /// Initialzes the Edit view.\r\n /// \r\n /// */\r\n self.Initialize = function () {\r\n nxLoading.start(\"Loading fields. Please wait...\");\r\n self.Referrer = document.referrer;\r\n self.State = -1;\r\n var dataValue = $(\"#data-value\");\r\n var value = dataValue.attr(\"data-value\");\r\n if (!value) return;\r\n var result = $.parseJSON(value);\r\n dataValue.attr(\"data-value\", \"\");\r\n self.EventName = result.EventName;\r\n self.SpecialEventId = result.SpecialEventId;\r\n self.EventId = result.EventId;\r\n self.EventYear = result.EventYear;\r\n self.GuiRole = result.GuiRole;\r\n self.ModTypeId = result.ModTypeId;\r\n self.RegTypeCode = result.RegTypeCode;\r\n self.RegTypeDescription = result.RegTypeDescription;\r\n self.Isactive = result.Isactive;\r\n self.ImageSecurity = result.ImageSecurity;\r\n self.ImageCount = result.ImageCount;\r\n self.MissingValues = result.MissingValues;\r\n self.NotesCount = result.NotesCount;\r\n self.Preloads = result.Preloads;\r\n self.CanClose = result.EditSecurity && result.EditSecurity.CanClose;\r\n self.CanDeleteWithSFN =\r\n result.EditSecurity && result.EditSecurity.CanDeleteWithSFN;\r\n self.CanLeave = result.EditSecurity && result.EditSecurity.CanLeave;\r\n self.CanNumberOverride =\r\n result.EditSecurity && result.EditSecurity.CanNumberOverride;\r\n self.CanSave = result.EditSecurity && result.EditSecurity.CanSave;\r\n self.CanSaveWithEdits = self.CanSave;\r\n self.CanSaveWithoutEdits =\r\n result.EditSecurity && result.EditSecurity.CanSaveWithoutEdits;\r\n self.IsCasEvent = result.IsCasEvent;\r\n self.IsCasEnabled = result.IsCasEnabled;\r\n self.IsDataCached = result.IsDataCached;\r\n self.IsDisplayOnly = result.IsDisplayOnly;\r\n self.IsKeyCached = result.IsKeyCached;\r\n self.CanLeaveValidated = false;\r\n self.SaveCount = 0;\r\n self.SetupBackButton();\r\n self.OnDisplay = result.OnDisplay;\r\n self.OnSave = result.OnSave;\r\n self.SecurityEventYear = result.SecurityEventYear;\r\n self.SecurityRoleCode = result.SecurityRoleCode;\r\n self.SecurityUserName = result.SecurityUsername || \"ALL\";\r\n self.SecurityEventGroup = result.SecurityEventGroup;\r\n self.SourceEvent = result.SourceEvent;\r\n self.SourceEventId = result.SourceEventId;\r\n self.MaxImageUpload = parseInt(editPageData.MaxImageUpload);\r\n\r\n if (isNaN(self.MaxImageUpload)) {\r\n self.MaxImageUpload = 15728640;\r\n } else {\r\n self.MaxImageUpload = self.MaxImageUpload * 1048576 * 1.5;\r\n }\r\n\r\n if (!!result.Alerts) {\r\n self.Alerts = result.Alerts;\r\n }\r\n\r\n $(\"#alerts-dropdown\").kendoDropDownList({\r\n dataTextField: \"Message\",\r\n dataValueField: \"FieldName\",\r\n dataSource: self.Alerts\r\n });\r\n $(\"#alert-span\").css(\"display\", \"\");\r\n self.SyncEventAlertsCount(self.Alerts.length);\r\n\r\n if (VR.Common.Location === \"/event/edit\") {\r\n self.ErrorPanel = errorPanel();\r\n }\r\n self.SetupFields(result);\r\n self.SetupNextButtons();\r\n $(\"#loading-image\").css(\"display\", \"none\");\r\n $(\"#edit-header\").css(\"display\", \"block\");\r\n self.SetupSave(\"save-button\", true, false);\r\n self.SetupSave(\"editsave-menu\", true, false);\r\n self.SetupSave(\"saverec-menu\", false, false);\r\n self.SetupSave(\"savetwin-menu\", true, true);\r\n self.SetupSave(\"savetwinnoedit-menu\", false, true);\r\n self.SetupNotes();\r\n self.SetupErrorCount();\r\n self.SetupLinking();\r\n self.SetupActionMenus();\r\n self.SetupWindowKeyDown();\r\n self.SetupOnBeforeUnload();\r\n self.SetupOnUnload();\r\n VR.Common.SetupViewFieldDefs();\r\n VR.Common.OnResize(self.ResizeWindow);\r\n self.SetupAllControls();\r\n self.State = 1;\r\n self.ValidateOnLoad(editPageData.PageTitle);\r\n\r\n var dcnt = -1;\r\n for (let i = 0; i < self.Tabs.length; i++) {\r\n let curTabList = self.Tabs[i];\r\n for (let j = 0; j < curTabList.length; j++) {\r\n let curField = curTabList[j];\r\n if (curField.Edits && curField.ShouldRunEdits) {\r\n // Check to see if the field has edits\r\n var parameter = {\r\n message: null,\r\n location: null,\r\n lastedit: null,\r\n edittype: null,\r\n errorat: null,\r\n state: self.State\r\n };\r\n var jqueryField = $(\"#f\" + curField.FieldId);\r\n $.each(curField.Edits, function (index, edit) {\r\n // iterate through the edits\r\n if (edit.EditType == \"alert\") {\r\n // check for edits with the alert type\r\n var tempModel = $(jqueryField).data(\"field\");\r\n if (typeof(tempModel) === \"object\") {\r\n VR.Edit.editModel = tempModel;\r\n }\r\n VR.Script.Validate(jqueryField, curField, edit, parameter);\r\n }\r\n });\r\n }\r\n if (curField.FieldType === \"ComboBox\" && curField.FieldValue !== null && curField.FieldValue !== \"\" &&\r\n (curField.ValidationDropdownItems === null || curField.ValidationDropdownItems.length === 0))\r\n {\r\n let field = $(\"#f\" + curField.FieldId);\r\n let comboBox = field.data(\"kendoComboBox\");\r\n let dataSource = comboBox.dataSource;\r\n dataSource.fetch().then(function () {\r\n let newData = dataSource.data();\r\n let updatedValue = false;\r\n for (let k = 0; k < newData.length && !updatedValue; k++) {\r\n let curOption = newData[k];\r\n if (curOption.text === comboBox.value()) {\r\n self.SetFieldValue(field, curOption.value);\r\n updatedValue = true;\r\n }\r\n }\r\n });\r\n }\r\n\r\n if (curField.FieldType === \"ComboBox\" && curField.FieldValue) {\r\n let elem = $(\"#f\" + curField.FieldId);\r\n let elemModel = $(\"#f\" + curField.FieldId).data(\"field\");\r\n\r\n let hasIssue = false;\r\n var value = !!elemModel.FieldValue\r\n ? elemModel.FieldValue\r\n : self.GetInputValue(elem, true);\r\n var comboBox = elem.data(\"kendoComboBox\");\r\n\r\n var multispaces = RegExp(/\\s\\s+/g);\r\n if (multispaces.test(value)) {\r\n value = value.replace(/\\s\\s+/g, \" \");\r\n VR.Script.MoveLit(value, elemModel.FieldName);\r\n }\r\n if (value) {\r\n if (elemModel.AllowOther == true) {\r\n if (value != elemModel.OriginalValue\r\n && comboBox.select() === -1\r\n && value != elemModel.DefaultValue\r\n && !nx.IsInList(elemModel.FieldId)) {\r\n self.SetFieldStatus(comboBox.input, elemModel, \"literal\", null, null);\r\n }\r\n } else {\r\n if (comboBox.value() && comboBox.select() === -1 && !nx.IsInList(elemModel.FieldId)) {\r\n hasIssue = true;\r\n }\r\n else if (elemModel.ValidationDropdownItems !== null) {\r\n let found = false;\r\n for (let k = 0; k < elemModel.ValidationDropdownItems.length && found === false; k++) {\r\n let curItem = elemModel.ValidationDropdownItems[k];\r\n found = value.toString().toLowerCase() === (curItem.ValueInt === null ? curItem.ValueString.toLowerCase() : curItem.ValueInt.toString());\r\n }\r\n hasIssue = !found;\r\n }\r\n }\r\n }\r\n\r\n if (hasIssue) {\r\n self.ErrorPanel.setError({\r\n field: elem,\r\n model: elemModel,\r\n message: \"Entry doesn't exist.\",\r\n location: null,\r\n isHardEdit: elemModel.isHardEdit,\r\n errorType: \"validation\"\r\n });\r\n self.TakeActionOnField(\"skipped\", \"Entry doesn't exist.\", null, elem, elemModel);\r\n self.AddErrorField(elemModel);\r\n }\r\n }\r\n }\r\n }\r\n\r\n nxLoading.end();\r\n }; //Initialze\r\n\r\n self.ValidateOnLoad = function (pageTitle) {\r\n if (!pageTitle.includes(\"New\")) {\r\n $.each(self.Fields, function (index, model) {\r\n if (model.FieldStatus == \"skipped\") {\r\n self.load = true;\r\n model.HasSaveError = true;\r\n model.ShouldRunEdits = true;\r\n self.ValidateField($(\"#f\" + model.FieldId)); \r\n }\r\n self.load = false;\r\n });\r\n }\r\n };\r\n\r\n /*// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= \r\n /// \r\n /// Returns if the record is being saved.\r\n /// \r\n /// */\r\n self.IsSaving = function () {\r\n return self.State == 2 || self.State == 3;\r\n }; //IsSaving\r\n\r\n /*// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= \r\n /// \r\n /// Loads image or a file to the web server.\r\n /// \r\n /// */\r\n self.LoadImageFile = function (extensionOverwrite) {\r\n var source = $(\"#image-data\").prop(\"data-src\");\r\n if (source == \"\") {\r\n return;\r\n }\r\n\r\n var modal = $(\"#imageeditor-modal\");\r\n var headers = modal.find(\".imageeditor-headers\");\r\n headers.css(\"display\", \"\");\r\n $(\"#imageedit-acceptbutton\").css(\"display\", \"none\");\r\n $(\"#imageedit-savetodatabse, #imageedit-savetofile\").css(\"display\", \"\");\r\n\r\n var appfunc = $(\"#imageedit-appfunction\");\r\n if (appfunc.length > 0) {\r\n var dropdownlist = appfunc.data(\"kendoDropDownList\");\r\n if (!dropdownlist) {\r\n appfunc.css(\"width\", \"200px\");\r\n var dataSource = new kendo.data.DataSource({\r\n transport: {\r\n read: function (options) {\r\n var list = $(\"#imageedit-appfunction-list\");\r\n var text = list.find(\".k-textbox\");\r\n var val = text.val();\r\n var url = VR.Common.GetRootURL(\"event/edit\");\r\n VR.Common.SecurePost(\r\n url + \"data/secfile\",\r\n val,\r\n function (result) {\r\n if (result.Code == 0) {\r\n var data = [];\r\n data.push({ text: \" \", value: \"\" });\r\n $.each(result.List, function (index, item) {\r\n data.push({ text: item, value: item, key: item });\r\n });\r\n if (!!options) options.success(data);\r\n return data;\r\n } else {\r\n options.error(result);\r\n VR.Common.HandleInvalidResult(result, \"Image\", true);\r\n return [];\r\n }\r\n },\r\n true,\r\n undefined,\r\n false,\r\n false\r\n );\r\n }\r\n },\r\n serverFiltering: true\r\n });\r\n\r\n appfunc.kendoDropDownList({\r\n autoBind: false,\r\n dataTextField: \"text\",\r\n dataValueField: \"value\",\r\n dataSource: dataSource,\r\n filter: \"contains\",\r\n height: 150\r\n });\r\n\r\n var parent = appfunc.parents(\".k-dropdown\");\r\n $(parent).on(\"keypress\", function (e) {\r\n if (e.key == \"-\") {\r\n var dropdownlist = appfunc.data(\"kendoDropDownList\");\r\n if (dropdownlist) {\r\n dropdownlist.open();\r\n }\r\n }\r\n });\r\n }\r\n }\r\n\r\n var fileType = $(\"#image-file-group\").attr(\"data-file-type\");\r\n var source = $(\"#image-data\").prop(\"data-src\");\r\n var extension = $(\"#image-file\").val();\r\n if (!extension) {\r\n return;\r\n }\r\n\r\n var index = extension.lastIndexOf(\".\");\r\n if (index == -1 || extension.length - index <= 1) {\r\n extension = \"\";\r\n } else {\r\n extension = extension.substring(index + 1).toLowerCase();\r\n }\r\n\r\n switch (extension) {\r\n case \"tif\": //change tif to tiff\r\n extension = \"tiff\";\r\n break;\r\n case \"jpg\": //change jpg to jpeg\r\n extension = \"jpeg\";\r\n break;\r\n }\r\n\r\n var imageextension = $(\"#imageeditor-extension\");\r\n var fileextension = $(\"#imageeditor-filetype\");\r\n\r\n $(\"#imageedit-canvassection, #imageedit-canvasannote\").css(\r\n \"display\",\r\n \"none\"\r\n );\r\n $(\"#image-data\").prop(\"data-extension\", extension);\r\n if (fileType == \"0\" && extension != \"tiff\") {\r\n var size = self.SetImageEditorSize(modal);\r\n\r\n $(\"#imageedit-filesource\").css(\"display\", \"none\");\r\n $(\"#imageedit-buttons\").css(\"display\", \"\");\r\n $(\"#imageedit-editsection\").css(\"display\", \"\");\r\n $(\"#imageedit-slidebars\").css(\"display\", \"\");\r\n $(\"#imageedit-annotationsection\").css(\"display\", \"\");\r\n var imagedit = $(\"#imageedit-editor\");\r\n imagedit.css(\"display\", \"\");\r\n imagedit.attr(\"src\", source);\r\n imagedit.cropper(\"destroy\");\r\n imagedit.cropper({\r\n minCanvasWidth: size.width,\r\n minCanvasHeight: size.height,\r\n minContainerHeight: size.height,\r\n minContainerWidth: size.width,\r\n crop: function (e) { }\r\n });\r\n $(\"#imageedit-buttons\")\r\n .find(\".btn-cropbutton\")\r\n .css(\"visibility\", \"visible\");\r\n $(\"#imageedit-slidebars\").css(\"visibility\", \"visible\");\r\n $(\"#imageedit-dragbutton\").addClass(\"active\");\r\n $(\"#imageedit-cropbutton\").removeClass(\"active\");\r\n $(\"#imageeditor-title\").html(\"Image Editor\");\r\n VR.Image.SlideBars.Setup();\r\n modal.attr(\"data-fileload\", \"\");\r\n } else {\r\n var content = $(modal).find(\".modal-dialog\");\r\n content.css(\"height\", \"\");\r\n content.css(\"width\", \"\");\r\n content.css(\"margin-left\", \"\");\r\n\r\n source = VR.Common.GetRootURL() + \"/images/\";\r\n switch (extension) {\r\n case \"csv\":\r\n case \"doc\":\r\n case \"docx\":\r\n case \"exe\":\r\n case \"pdf\":\r\n case \"rtf\":\r\n case \"tiff\":\r\n case \"txt\":\r\n case \"xls\":\r\n case \"xlsx\":\r\n case \"zip\":\r\n source += extension + \".png\";\r\n break;\r\n default:\r\n source += \"data.png\";\r\n break;\r\n }\r\n $(\"#imageedit-filesource\").attr(\"src\", source);\r\n $(\"#imageedit-filesource\").css(\"display\", \"\");\r\n $(\"#imageedit-editor\").css(\"display\", \"none\");\r\n $(\"#imageedit-buttons\").css(\"display\", \"none\");\r\n $(\"#imageedit-editsection\").css(\"display\", \"none\");\r\n $(\"#imageedit-slidebars\").css(\"display\", \"none\");\r\n $(\"#imageedit-annotationsection\").css(\"display\", \"none\");\r\n $(\"#imageeditor-title\").html(\"File Load\");\r\n modal.attr(\"data-fileload\", \"1\");\r\n }\r\n\r\n var description = $(\"#imagename-text\").val();\r\n $(\"#imageedit-description\").val(description);\r\n\r\n modal.attr(\"data-annotation\", \"\");\r\n modal.modal(\"show\");\r\n if (extensionOverwrite) {\r\n var dropdown = $(\"#imageeditor-extension\").data(\"kendoDropDownList\");\r\n if (dropdown) dropdown.value(extensionOverwrite);\r\n }\r\n }; //LoadImageFile\r\n\r\n /*// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= \r\n /// \r\n /// Loads a Tiff images to the web server.\r\n /// \r\n /// */\r\n self.LoadTiffFile = function () {\r\n var modal = $(\"#tiffeditor-modal\");\r\n var headers = modal.find(\".imageeditor-headers\");\r\n headers.css(\"display\", \"\");\r\n $(\"#tiffeditor-acceptbutton\").css(\"display\", \"none\");\r\n $(\"#tiffeditor-savetodatabse, #tiffeditor-savetofile\").css(\"display\", \"\");\r\n\r\n var appfunc = $(\"#tiffeditor-appfunction\");\r\n if (appfunc.length > 0) {\r\n var dropdownlist = appfunc.data(\"kendoDropDownList\");\r\n if (dropdownlist) {\r\n dropdownlist.select(-1);\r\n } else {\r\n appfunc.css(\"width\", \"200px\");\r\n var dataSource = new kendo.data.DataSource({\r\n transport: {\r\n read: function (options) {\r\n var list = $(\"#tiffeditor-appfunction-list\");\r\n var text = list.find(\".k-textbox\");\r\n var val = text.val();\r\n var url = VR.Common.GetRootURL(\"event/edit\");\r\n VR.Common.SecurePost(\r\n url + \"data/secfile\",\r\n val,\r\n function (result) {\r\n if (result.Code == 0) {\r\n var data = [];\r\n data.push({ text: \" \", value: \"\" });\r\n $.each(result.List, function (index, item) {\r\n data.push({ text: item, value: item, key: item });\r\n });\r\n if (!!options) options.success(data);\r\n return data;\r\n } else {\r\n options.error(result);\r\n VR.Common.HandleInvalidResult(result, \"Image\", true);\r\n return [];\r\n }\r\n },\r\n true,\r\n undefined,\r\n false,\r\n false\r\n );\r\n }\r\n },\r\n serverFiltering: true\r\n });\r\n\r\n appfunc.kendoDropDownList({\r\n autoBind: false,\r\n dataTextField: \"text\",\r\n dataValueField: \"value\",\r\n dataSource: dataSource,\r\n filter: \"contains\",\r\n height: 150\r\n });\r\n\r\n var parent = appfunc.parents(\".k-dropdown\");\r\n $(parent).on(\"keypress\", function (e) {\r\n if (e.key == \"-\") {\r\n var dropdownlist = appfunc.data(\"kendoDropDownList\");\r\n if (dropdownlist) {\r\n dropdownlist.open();\r\n }\r\n }\r\n });\r\n VR.Image.SlideBars.SetupTiff();\r\n }\r\n }\r\n\r\n $(\"#tiffeditor-canvassection,#tiffeditor-canvasannote\").css(\r\n \"display\",\r\n \"none\"\r\n );\r\n $(\"#tiffeditor-buttons\").css(\"display\", \"\");\r\n $(\"#tiffeditor-editsection\").css(\"display\", \"\");\r\n\r\n $(\"#tiffeditor-description\").val(\"\");\r\n\r\n modal.attr(\"data-annotation\", \"\");\r\n modal.modal(\"show\");\r\n }; //LoadTiffFile\r\n\r\n /*// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= \r\n /// \r\n /// Performs next paragraph function.\r\n /// \r\n /// The keydown event handler argument.\r\n /// */\r\n self.PerformNextParagraph = function (e) {\r\n var model = $(e.target).data(\"field\");\r\n if (!model) {\r\n var parent = $(e.target).parents(\".edit-field\");\r\n if (parent.length < 1) {\r\n parent = $(e.target).parents(\".edit-group\"); //For grid buttons.\r\n }\r\n var inputs = parent.find(\".input-field\");\r\n $.each(inputs, function (index, input) {\r\n var id = $(input).attr(\"id\");\r\n if (id) {\r\n var index = id.indexOf(\"f\");\r\n if (index == 0) {\r\n model = $(input).data(\"field\");\r\n return false;\r\n }\r\n }\r\n });\r\n }\r\n\r\n if (!model) {\r\n return;\r\n }\r\n\r\n var first = null;\r\n var section = model.Section;\r\n var count = self.Fields.length;\r\n var input = $(\"#f\" + model.FieldId);\r\n var next = model;\r\n model = null;\r\n while (count) {\r\n next = next.Next;\r\n if (next.Section == section) {\r\n count--;\r\n continue;\r\n }\r\n\r\n if (!next) {\r\n break;\r\n }\r\n\r\n if (next.FieldType != \"Hidden\" && !first) {\r\n first = next;\r\n }\r\n if (\r\n next.FieldType != \"Hidden\" &&\r\n next.FieldType != \"Label\" &&\r\n next.FieldType != \"Image\" &&\r\n next.FieldType != \"Button\"\r\n ) {\r\n input = $(\"#f\" + next.FieldId);\r\n if (!input.hasClass(\"readonly-text\")) {\r\n model = next;\r\n break;\r\n }\r\n }\r\n count--;\r\n }\r\n\r\n if (!model || !input || input.length < 1) {\r\n if (!first) {\r\n return;\r\n } else {\r\n VR.Script.FocusField(\r\n { input: \"#\" + first.FieldId, model: first },\r\n false\r\n );\r\n return;\r\n }\r\n } else {\r\n VR.Script.FocusField({ input: input[0], model: model }, false);\r\n }\r\n }; //PerformNextParagraph\r\n\r\n /*// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= \r\n /// \r\n /// Populate notes from the web service call result.\r\n /// \r\n /// The web call result.\r\n /// */\r\n self.PopulateNotes = function (result) {\r\n self.Notes = null;\r\n var noteslist = $(\"#notes-list\");\r\n if (!result || !result.List || result.List.length == 0) {\r\n noteslist.html(\"

No notes to show.

\");\r\n self.Notes = [];\r\n } else {\r\n self.Notes = result.List;\r\n self.CreateNotesList();\r\n }\r\n }; //PopulateNotes\r\n\r\n /*// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= \r\n /// \r\n /// Set query location for the field.\r\n /// \r\n /// The target field.\r\n /// */\r\n self.QueryField = function (target) {\r\n var text = $(\"#fieldquery-text\");\r\n text.val(\"\");\r\n text.data(\"target\", target);\r\n var dropdown = $(\"#fieldquery-location\").data(\"kendoDropDownList\");\r\n if (dropdown) {\r\n dropdown.select(0);\r\n $(\"#fieldquery-modal\").modal(\"show\");\r\n } else {\r\n VR.Common.SecurePost(\"data/querylocations\", null, function (result) {\r\n if (result.Code == 0) {\r\n var data = [];\r\n //data.push({ text: \"\", value: \"\" });\r\n\r\n $.each(result.List, function (index, item) {\r\n data.push({ text: item, value: item });\r\n });\r\n\r\n $(\"#fieldquery-location\").kendoDropDownList({\r\n dataTextField: \"text\",\r\n dataValueField: \"value\",\r\n dataSource: data\r\n });\r\n\r\n $(\"#fieldquery-modal\").modal(\"show\");\r\n } else {\r\n options.error(result);\r\n VR.Common.HandleInvalidResult(result, \"Query Locations\", true);\r\n return [];\r\n }\r\n });\r\n\r\n $(\"#fieldquery-modal\").on(\"shown.bs.modal\", function (e) {\r\n $(\"#fieldquery-text\").focus();\r\n });\r\n\r\n $(\"#fieldquery-accept\").on(\"click\", function (e) {\r\n var target = $(\"#fieldquery-text\").data(\"target\");\r\n if (target) {\r\n target = $(target);\r\n var message = $(\"#fieldquery-text\").val();\r\n var model = target.data(\"field\");\r\n var location = \"\";\r\n var dropdown = $(\"#fieldquery-location\").data(\"kendoDropDownList\");\r\n if (dropdown) {\r\n location = dropdown.value();\r\n }\r\n\r\n self.SetStatus(target, model, \"queried\", message, location);\r\n $(target).focus();\r\n }\r\n\r\n $(\"#fieldquery-text\").data(\"target\", null);\r\n });\r\n }\r\n }; //QueryField\r\n\r\n /*// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= \r\n /// \r\n /// Removes error field from error field list.\r\n /// \r\n /// The field model.\r\n /// */\r\n self.RemoveErrorField = function (model) {\r\n self.ErrorPanel.resetError(model.FieldId);\r\n var index = self.ErrorFields.indexOf(model);\r\n if (index > -1) {\r\n self.ErrorFields.splice(index, 1);\r\n if (VR.Common.IsMobile()) {\r\n var field = $(\"#f\" + model.FieldId);\r\n field.css(\"border\", \"1px solid rgb(187,220,235)\");\r\n $(\"#mobileErrorsBtnText\").html(`${self.GetFieldErrorCount()}`);\r\n }\r\n }\r\n }; //RemoveErrorField\r\n\r\n /*// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= \r\n /// \r\n /// Resets the field status.\r\n /// \r\n /// The field.\r\n /// The value to indicate if the previous changed state needs to be preserved.\r\n /// */\r\n self.ResetField = function (sender, keepState) {\r\n var field = $(sender);\r\n var model = field.data(\"field\");\r\n if (model) {\r\n if (model.FieldStatus != null) {\r\n var status = \"input-\" + model.FieldStatus;\r\n field.removeClass(status);\r\n switch (model.FieldType) {\r\n case \"CheckBox\":\r\n case \"RadioButton\":\r\n field.removeClass(\"checkbox-radio-skipped\");\r\n field.removeClass(\"checkbox-radio-overridden\");\r\n field.removeClass(\"checkbox-radio-queried\");\r\n break;\r\n case \"ComboBox\":\r\n case \"NumericTextBox\":\r\n field\r\n .parents(\".edit-field\")\r\n .find(\"input\")\r\n .removeClass(status);\r\n break;\r\n case \"MultiSelect\":\r\n var parent = field.parents(\".edit-field\");\r\n var input = parent.find(\".k-multiselect-wrap \");\r\n input.removeClass(status);\r\n break;\r\n }\r\n }\r\n\r\n model.FieldStatus = null;\r\n model.ErrorMessage = null;\r\n //model.HasError = false;\r\n if (!keepState) {\r\n var curVal = self.GetInputValue(field, true);\r\n model.HasChange = (curVal == model.OriginalValue) ? false : true;\r\n model.HasChangeOvrd = null;\r\n }\r\n model.QueryLocation = null;\r\n\r\n self.SetStatus(field, model, null, null, null);\r\n }\r\n }; //ResetField\r\n\r\n /*// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= \r\n /// \r\n /// Handles window resize event.\r\n /// \r\n /// */\r\n self.ResizeWindow = function () {\r\n var display = $(\"#alert-span\").css(\"display\");\r\n $(\"body\").css(\"padding-top\", 0);\r\n if (VR.Common.IsNavBurger()) {\r\n $(\"#navbar-bottom\").css(\"display\", \"\");\r\n $(\"#tab-control\").css(\"display\", \"none\");\r\n if (display != \"none\") {\r\n $(\"#alert-span\").css(\"display\", \"block\");\r\n $(\"#alert-span\").css(\"margin-top\", \"10px\");\r\n }\r\n } else {\r\n $(\"#navbar-bottom\").css(\"display\", \"none\");\r\n $(\"#tab-control\").css(\"display\", \"\");\r\n if (display != \"none\") {\r\n $(\"#alert-span\").css(\"display\", \"\");\r\n $(\"#alert-span\").css(\"margin-top\", \"\");\r\n }\r\n }\r\n\r\n var cropper = $(\"#tiffeditor-modal\").find(\".cropper-container\");\r\n if (cropper.length > 0 && self.TiffModalHeight) {\r\n setTimeout(function (e) {\r\n cropper.css(\"height\", self.TiffModalHeight);\r\n }, 100);\r\n }\r\n\r\n var nav = $(\"nav\");\r\n if (nav.length > 1) {\r\n nav = nav[0];\r\n }\r\n\r\n self.NavHeight = $(nav).height();\r\n }; //ResizeWindow\r\n\r\n /*// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= \r\n /// \r\n /// RowChanged event handler.\r\n /// \r\n /// The event argument.\r\n /// */\r\n self.RowChanged = function (e) {\r\n var grid = this;\r\n var selected = this.select();\r\n if (selected && selected.length > 0) {\r\n selected = selected[0];\r\n if (selected) {\r\n $(selected)\r\n .off(\"dblclick\")\r\n .on(\"dblclick\", function (e) {\r\n if (!grid.IsEditable && !grid.IsDisplayOnly) {\r\n return;\r\n }\r\n self.DisplayEvent({ grid: grid, selected: this });\r\n });\r\n }\r\n }\r\n\r\n if (grid) {\r\n var input = $(\"#f\" + grid.FieldId);\r\n var model = input.data(\"field\");\r\n if (model) {\r\n var timeout = 10;\r\n if (!grid.Initialized) {\r\n timeout = 50;\r\n }\r\n grid.Initialized = true;\r\n setTimeout(function () {\r\n //$(selected).focus();\r\n var value = VR.Script.GetRowValue(model.FieldId, grid.GridKey);\r\n VR.Script.SetVar(value, grid.GridKey);\r\n if (grid.IsKeyCached) {\r\n VR.Common.CreateDocumentsMenu(grid.GridEvent, value);\r\n } else {\r\n VR.Common.CreateDocumentsMenu();\r\n }\r\n self.ValidateField(input);\r\n }, timeout);\r\n }\r\n }\r\n }; //RowChanged\r\n\r\n /*// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= \r\n /// \r\n /// Sets up the save.\r\n /// \r\n /// The value to indicate if edits needs to be performed.\r\n /// The value to indicate if this is twin save.\r\n /// The value to indicate if this is script save.\r\n /// The value to indicate if async post should be performed.\r\n /// */\r\n self.Save = function (\r\n hasEdits,\r\n isTwinSave,\r\n isScript,\r\n isAsync,\r\n byPassUpdateSecurity\r\n ) {\r\n var currentSave = self.IsSaving();\r\n var returnValue = null;\r\n //self.SetupAllControls();\r\n\r\n if (!byPassUpdateSecurity) byPassUpdateSecurity = false;\r\n\r\n nxLoading.start(\"Saving record. Please wait...\");\r\n\r\n var hasError = false;\r\n\r\n var x = function (state) {\r\n return function (index, model) {\r\n self.RemoveErrorField(model);\r\n model.RequiredFlag = false;\r\n if (model.FieldStatus != \"overridden\" && model.FieldStatus != \"queried\" && model.FieldStatus != \"literal\") {\r\n model.FieldStatus = null;\r\n }\r\n var input = $(\"#f\" + model.FieldId);\r\n input.data(\"state\", state);\r\n var validator = $(input).data(\"kendoValidator\");\r\n // Fields enabled state at the time of save captured in wasprotected var\r\n if (model.FieldType == \"CheckBox\") {\r\n validator = $(input).kendoValidator().data(\"kendoValidator\");\r\n let curval = $(\"#f\" + model.FieldId)[0].checked ? \"Y\" : \"N\";\r\n if (model.OriginalValue != curval) {\r\n model.FieldValue = curval;\r\n model.HasChange = (model.HasChangeOvrd == null) ? true : model.HasChangeOvrd;\r\n }\r\n }\r\n if (validator && model && model.ShouldRunEdits) {\r\n if (hasEdits) {\r\n var wasNotEditable = !model.IsEditable;\r\n var wasprotected = !model.IsEnabled;\r\n validator._isValidated = false;\r\n if (wasNotEditable) {\r\n // Fields must be editable in order for edits to run. This will handle the role protected fields.\r\n model.IsEditable = true;\r\n }\r\n if (validator._isValidated === false && model.IsEnabled === false) {\r\n // Temporarily enable the field so that the kendo validator will run for the field on save\r\n model.IsEnabled = true;\r\n nx.EnableField(model.FieldId, \"f\", true);\r\n }\r\n }\r\n var error = !validator.validate();\r\n var index = self.ErrorFields.indexOf(model);\r\n error = error || index > -1;\r\n hasError = error || hasError;\r\n if (error == true) {\r\n VR.Common.QueueManager.Clear();\r\n self.SetFieldHeight(this, model, false);\r\n self.AddErrorField(model);\r\n } else if (model.FieldType == \"Signature\" || model.FieldType == \"CheckBox\") {\r\n if (\r\n !self.ValidateField(input)\r\n ) {\r\n VR.Common.QueueManager.Clear();\r\n self.SetFieldHeight(this, model, false);\r\n }\r\n }\r\n if (wasNotEditable) {\r\n // Set the IsEditable property back to false.\r\n model.IsEditable = false;\r\n }\r\n if (wasprotected) {\r\n // Set the field back to disabled if it was disabled prior to the user hitting save\r\n model.IsEnabled = false;\r\n nx.EnableField(model.FieldId, \"f\", false);\r\n }\r\n }\r\n }\r\n };\r\n var y = x(isScript ? self.State = 3 : self.State = 2);\r\n try {\r\n $(\"#error-popover\").popover(\"hide\");\r\n\r\n var requiredFields = self.Fields.filter(ele => !!ele.IsRequired);\r\n if (requiredFields) {\r\n $.each(requiredFields, y);\r\n var requiredFlags = requiredFields.filter(fld => !!fld.RequiredFlag);\r\n if (requiredFlags.length > 0) {\r\n nxLoading.end();\r\n return;\r\n }\r\n }\r\n\r\n if (hasEdits) {\r\n try {\r\n $.each(self.Fields, y);\r\n } catch (err) {\r\n console.log(err);\r\n }\r\n }\r\n\r\n if (hasError && hasEdits) {\r\n VR.Common.QueueManager.Clear();\r\n } else {\r\n var href = VR.Common.GetRootURL(\"event/edit\") + \"event/save\";\r\n var event = self.EventName;\r\n if (event == null) {\r\n event = \"\";\r\n }\r\n var eventId = self.EventId;\r\n var regCode = self.RegTypeCode;\r\n if (regCode == null) {\r\n regCode = \"\";\r\n }\r\n var modTypeid = self.ModTypeId;\r\n if (modTypeid == null || modTypeid == 0) {\r\n modTypeid = \"\";\r\n }\r\n var value = self.GetFieldData().slice(0, -1);\r\n var overrides = self.GetFieldOverrides().slice(0, -1);\r\n var errors = self.GetFieldErrors().slice(0, -1);\r\n var changed = self.GetChangedFields();\r\n var otherLits = self.GetOtherLiteralFields().slice(0, -1);\r\n var selection =\r\n \"name=\" +\r\n event +\r\n \"|id=\" +\r\n eventId +\r\n \"|overrides=\" +\r\n overrides +\r\n \"|otherLits=\" +\r\n otherLits +\r\n \"|errors=\" +\r\n errors +\r\n \"|changed=\" +\r\n changed +\r\n \"|hasEdits=\" +\r\n hasEdits +\r\n \"|regcode=\" +\r\n regCode +\r\n \"|mod=\" +\r\n modTypeid +\r\n \"|count=\" +\r\n self.SaveCount +\r\n \"|eventYear=\" +\r\n self.EventYear +\r\n \"|value=\" +\r\n value +\r\n \"|byPassUpdateSecurity=\" +\r\n byPassUpdateSecurity +\r\n \"|specialEventId=\" +\r\n self.SpecialEventId;\r\n var data = { selection: selection };\r\n VR.Common.Ajax({\r\n type: \"POST\",\r\n url: href,\r\n data: data,\r\n success: function (response) {\r\n var result = $.parseJSON(response.Json);\r\n var values = value;\r\n\r\n if (result.Code != 0) {\r\n if (!isScript) {\r\n if (result.Errors && result.Errors.length > 0) {\r\n self.DoAfterSave(result, !hasEdits);\r\n self.ShowSaveError(result.Message, true);\r\n } else if (result.Code == 999999) {\r\n VR.Common.HandleInvalidResult(result, \"Save\", false);\r\n } else {\r\n self.ShowSaveError(result.Message, true);\r\n }\r\n VR.Common.QueueManager.Clear();\r\n }\r\n returnValue = result.Message;\r\n } else {\r\n self.DoAfterSave(result, !hasEdits, values);\r\n if (result.KeyFieldId != null && result.KeyFieldValue != null) {\r\n nx.MoveLit(result.KeyFieldValue, result.KeyFieldId);\r\n }\r\n var edit = null;\r\n if (hasEdits) {\r\n edit = self.ExecuteOnSave();\r\n }\r\n var third = \"false\";\r\n if (!isScript) {\r\n if (edit && edit.Message) {\r\n //A message is shown. No message here.\r\n } else if (isTwinSave) {\r\n if (window.opener) {\r\n VR.Common.ShowMessageBox(\r\n \"The twin record saved successfully.\\r\\nDo you want to close the current window?\",\r\n function (param) {\r\n window.close();\r\n },\r\n true\r\n );\r\n } else {\r\n VR.Script.Alert(\"The twin record saved successfully.\");\r\n }\r\n } else {\r\n if (window.opener) {\r\n VR.Common.ShowMessageBox(\r\n \"The record saved successfully.\\r\\nDo you want to close the current window?\",\r\n function (param) {\r\n window.close();\r\n },\r\n [\"yes\", \"no\"]\r\n );\r\n } else {\r\n VR.Script.Alert(\"The record saved successfully.\");\r\n }\r\n }\r\n }\r\n //need to push the record id to the url so if we come off the page and come back\r\n //we'll know what record id to lookup!\r\n if (result.PreloadId && result.PreloadId != \"\") {\r\n third = \"preload%25\" + result.PreloadId;\r\n }\r\n $(\"#plugins\").text(\r\n capitalizeFirstLetters(editPageData.PageTitle.split(':')[0]) + \": \" + result.EventId\r\n );\r\n history.pushState(\r\n null,\r\n null,\r\n \"edit?selection=eventedit%3D\" +\r\n event +\r\n \"-\" +\r\n result.EventId +\r\n \"-\" +\r\n third\r\n );\r\n }\r\n },\r\n dataType: \"json\",\r\n async: isAsync\r\n });\r\n }\r\n } finally {\r\n if (currentSave) { // do not reset state until all save operations completed\r\n } else {\r\n self.State = 1;\r\n }\r\n }\r\n\r\n if (returnValue == null) {\r\n returnValue = \"\";\r\n }\r\n\r\n setTimeout(function () {\r\n nxLoading.end();\r\n }, 3000);\r\n\r\n return returnValue;\r\n }; //Save\r\n\r\n self.PrintShippingLabel = function (userLocationCode, mailFirstName, mailLastname, mailAddress1, mailCity, mailState, mailZip) {\r\n var returnValue = {\r\n tracking_number: null,\r\n amount: null\r\n };\r\n var selection = self.GetShippingTabData()\r\n + \"userLocation=\" + userLocationCode + \"|\"\r\n + \"mailToFirstName=\" + mailFirstName + \"|\"\r\n + \"mailToLastname=\" + mailLastname + \"|\"\r\n + \"mailToAddress1=\" + mailAddress1 + \"|\"\r\n + \"mailToCity=\" + mailCity + \"|\"\r\n + \"mailToState=\" + mailState + \"|\"\r\n + \"mailToZip=\" + mailZip;\r\n\r\n var data = { selection: selection };\r\n VR.Common.Ajax({\r\n type: \"POST\",\r\n url: VR.Common.GetRootURL() + \"event/printshippinglabel\",\r\n data: data,\r\n success: function (response) {\r\n if (response.error_messages == null) {\r\n returnValue.tracking_number = response.tracking_number;\r\n returnValue.amount = response.amount;\r\n window.open(response.print_label_format);\r\n }\r\n else {\r\n VR.Common.ShowError(response.error_messages, \"Shipping Label could not be created\");\r\n }\r\n },\r\n dataType: \"json\",\r\n async: false\r\n });\r\n nx.MoveLit(returnValue.tracking_number, \"SHIPPING_LABEL_TRACKING_NUMBER\");\r\n nx.MoveLit(returnValue.amount, \"Estimated Cost\");\r\n };\r\n\r\n\r\n self.ProcessTrackingNumber = function () {\r\n\r\n var selection = self.GetShipCarrierAndTrackingNumber();\r\n\r\n var data = { selection: selection };\r\n VR.Common.Ajax({\r\n type: \"POST\",\r\n url: VR.Common.GetRootURL() + \"event/processtrackingnumber\",\r\n data: data,\r\n success: function (response) {\r\n if (response[0].Key == \"error_messages\") {\r\n VR.Common.ShowError(response[0].Value, \"Unable to find Tracking Number\");\r\n }\r\n else {\r\n window.open(response[0].Value);\r\n }\r\n },\r\n dataType: \"json\",\r\n async: true\r\n });\r\n };\r\n\r\n /*// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= \r\n /// \r\n /// Sets the field height.\r\n /// \r\n /// The input field.\r\n /// The field model.\r\n /// The value to indicate if the height is the normal height.\r\n /// */\r\n self.SetFieldHeight = function (field, model, isNormal) {\r\n if (!field || !model) {\r\n return;\r\n }\r\n\r\n var parent = $(field).parents(\".edit-field\");\r\n switch (model.FieldType) {\r\n case \"MemoEdit\":\r\n case \"RadioButton\":\r\n break;\r\n default:\r\n if (isNormal) {\r\n parent.css(\"height\", \"\");\r\n } else {\r\n var section = parent.find(\".k-invalid-msg\");\r\n var display = section.css(\"display\");\r\n if (section.length > 0 && display != \"none\") {\r\n parent.css(\"height\", \"inherit\");\r\n } else {\r\n parent.css(\"height\", \"\");\r\n }\r\n }\r\n break;\r\n }\r\n }; //SetFieldHeight\r\n\r\n /*// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= \r\n /// \r\n /// Sets the currrent field status.\r\n /// \r\n /// The input field.\r\n /// The field model.\r\n /// The field status.\r\n /// The error message.\r\n /// The query location.\r\n /// */\r\n self.SetFieldStatus = function (field, model, status, message, location) {\r\n //model.HasError = false;\r\n model.FieldStatus = null;\r\n model.QueryLocation = null;\r\n if (status && status != \"rekeyed\") {\r\n model.FieldStatus = status;\r\n model.ErrorMessage = message;\r\n model.QueryLocation = location;\r\n }\r\n if (status != \"alerttrigger\") {\r\n self.SetAlertStatus(model.FieldName, false, null);\r\n }\r\n self.SetFieldStatusColor(field, model);\r\n }; //SetFieldStatus\r\n\r\n self.SyncEventAlertsCount = function (count) {\r\n if (VR.Common.IsMobile()) {\r\n if (count === 0) {\r\n $(\"#alert-span\").css(\"display\", \"none\");\r\n } else {\r\n $(\"#alert-span\").css(\"display\", \"inline\");\r\n }\r\n }\r\n var alertcountfield = $('input[data-field-name=\"ALERT_COUNT\"]');\r\n if (!!alertcountfield) {\r\n // update the alerts count field\r\n self.SetFieldValue(alertcountfield, count, true);\r\n }\r\n $(\"#alerts-count\").text(count);\r\n var alerts = $(\"#alerts-dropdown\").data(\"kendoDropDownList\");\r\n if (!!alerts) {\r\n if (count === 0) {\r\n $(\"#alerts-count\").addClass(\"label-default\");\r\n $(\"#alerts-count\").removeClass(\"label-danger\");\r\n $(\".alerts-dropdown > .k-dropdown-wrap.k-state-default\").removeClass(\r\n \"alerts-danger\"\r\n );\r\n alerts.enable(false);\r\n } else {\r\n alerts.enable(true);\r\n $(\"#alerts-count\").removeClass(\"label-default\");\r\n $(\"#alerts-count\").addClass(\"label-danger\");\r\n $(\".alerts-dropdown > .k-dropdown-wrap.k-state-default\").addClass(\r\n \"alerts-danger\"\r\n );\r\n }\r\n }\r\n }; //SyncEventAlertsCount\r\n\r\n self.SetAlertStatus = function (fieldName, addNewAlert, alertMessage) {\r\n if (addNewAlert) {\r\n // to add alerts - check to see it it already exist priot to adding\r\n var count = 0;\r\n for (var i = 0; i < self.Alerts.length; i++) {\r\n var item = self.Alerts[i];\r\n if (item.FieldName == fieldName && item.Message == alertMessage) {\r\n count++;\r\n }\r\n }\r\n if (count === 0) {\r\n self.Alerts.push({\r\n AlertId: 0,\r\n FieldName: fieldName,\r\n Message: alertMessage\r\n });\r\n }\r\n } else {\r\n // remove the item if it exists\r\n for (var i = 0; i < self.Alerts.length; i++) {\r\n var item = self.Alerts[i];\r\n if (!!fieldName && !!alertMessage) {\r\n // if fieldname and alert are provided remove specific alert\r\n if (item.FieldName == fieldName && item.Message == alertMessage) {\r\n self.Alerts.splice(i, 1);\r\n }\r\n } else {\r\n if (item.FieldName == fieldName) {\r\n // if alert message is not provided remove all alerts for the field\r\n self.Alerts.splice(i, 1);\r\n }\r\n }\r\n }\r\n }\r\n // update the dropdowns datasource with the updated alerts object\r\n var alertsDropdown = $(\"#alerts-dropdown\").data(\"kendoDropDownList\");\r\n if (alertsDropdown) {\r\n var dataSource = new kendo.data.DataSource({\r\n data: self.Alerts\r\n });\r\n alertsDropdown.setDataSource(dataSource);\r\n alertsDropdown.select(0);\r\n alertsDropdown.trigger(\"change\");\r\n }\r\n // update the alerts count field\r\n self.SyncEventAlertsCount(self.Alerts.length);\r\n }; //SetAlertStatus\r\n\r\n /*// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= \r\n /// \r\n /// Sets the currrent field status color.\r\n /// \r\n /// The input field.\r\n /// The field model.\r\n /// */\r\n self.SetFieldStatusColor = function (field, model) {\r\n field = $(field);\r\n if (field.hasClass(\"readonly-text\")) {\r\n return;\r\n }\r\n\r\n var isDark = $(\"#isdarkgadget\").val();\r\n var status = model.FieldStatus;\r\n if (status && status != \"rekeyed\") {\r\n status = \"input-\" + status;\r\n field.addClass(status);\r\n switch (model.FieldType) {\r\n case \"CheckBox\":\r\n case \"RadioButton\":\r\n status = \"checkbox-radio-\" + model.FieldStatus;\r\n field.addClass(status);\r\n break;\r\n case \"ComboBox\":\r\n case \"NumericTextBox\":\r\n field\r\n .parents(\".edit-field\")\r\n .find(\"input\")\r\n .addClass(status);\r\n break;\r\n case \"MultiSelect\":\r\n var parent = field.parents(\".edit-field\");\r\n var input = parent.find(\".k-multiselect-wrap\");\r\n input.addClass(status);\r\n break;\r\n case \"MaskedTextBox\":\r\n break;\r\n }\r\n if (isDark) {\r\n field.css(\"color\", \"black\");\r\n }\r\n } else {\r\n if (isDark) {\r\n field.css(\"color\", \"\");\r\n }\r\n field.removeClass(\"input-overridden\");\r\n field.removeClass(\"input-queried\");\r\n field.removeClass(\"input-skipped\");\r\n switch (model.FieldType) {\r\n case \"CheckBox\":\r\n case \"RadioButton\":\r\n var inputs = field.parents(\".edit-field\");\r\n inputs.removeClass(\"checkbox-radio-skipped\");\r\n inputs.removeClass(\"checkbox-radio-overridden\");\r\n inputs.removeClass(\"checkbox-radio-queried\");\r\n break;\r\n case \"ComboBox\":\r\n case \"NumericTextBox\":\r\n var inputs = field.parents(\".edit-field\").find(\"input\");\r\n inputs.removeClass(\"input-overridden\");\r\n inputs.removeClass(\"input-queried\");\r\n inputs.removeClass(\"input-skipped\");\r\n inputs.removeClass(\"input-literal\");\r\n break;\r\n case \"MultiSelect\":\r\n var parent = field.parents(\".edit-field\");\r\n var inputs = parent.find(\".k-multiselect-wrap\");\r\n inputs.removeClass(\"input-overridden\");\r\n inputs.removeClass(\"input-queried\");\r\n inputs.removeClass(\"input-skipped\");\r\n break;\r\n case \"MaskedTextBox\":\r\n break;\r\n }\r\n }\r\n }; //SetFieldStatusColor\r\n\r\n /*// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= \r\n /// \r\n /// Sets field value.\r\n /// \r\n /// The input field.\r\n /// The field value.\r\n /// The value to indicate if the change is applied to all fields with the same field name.\r\n /// */\r\n self.SetFieldValue = function (input, value, applyall, runComboBoxFetch) {\r\n var field = $(input).data(\"field\");\r\n if (field) {\r\n switch (field.FieldType) {\r\n case \"CheckBox\":\r\n $(input).prop(\"checked\", value === true || value == \"Y\");\r\n break;\r\n case \"ComboBox\":\r\n var comboBox = $(input).data(\"kendoComboBox\");\r\n if (comboBox) {\r\n let cbDataSource = comboBox.dataSource;\r\n if (cbDataSource && VR.Edit.State > 0 && runComboBoxFetch === true) {\r\n cbDataSource.fetch().then(function () {\r\n var list = comboBox.list;\r\n if (list) {\r\n var selected = false;\r\n //if (!nxLoading.IsLoading()) comboBox.search($(input).val());\r\n comboBox.select(function (dataItem) {\r\n selected = dataItem && dataItem.value == value;\r\n return selected;\r\n });\r\n if (selected == false) {\r\n comboBox.text(value);\r\n }\r\n }\r\n $(input).data(\"prevValue\", comboBox.value());\r\n });\r\n }\r\n else {\r\n var list = comboBox.list;\r\n if (list) {\r\n var selected = false;\r\n //if (!nxLoading.IsLoading()) comboBox.search($(input).val());\r\n comboBox.select(function (dataItem) {\r\n selected = dataItem && dataItem.value == value;\r\n return selected;\r\n });\r\n if (selected == false) {\r\n comboBox.text(value);\r\n }\r\n }\r\n $(input).data(\"prevValue\", comboBox.value());\r\n }\r\n }\r\n break;\r\n case \"RadioButton\":\r\n var buttons = $(input).find(\"input\");\r\n $.each(buttons, function (index, radio) {\r\n var val = $(radio).val();\r\n if (val == value) {\r\n radio.checked = true;\r\n } else {\r\n radio.checked = false;\r\n }\r\n });\r\n break;\r\n case \"MonthPicker\":\r\n case \"DatePicker\":\r\n case \"MaskedTextBox\":\r\n var maskedtextbox = $(input).data(\"kendoMaskedTextBox\");\r\n if (!maskedtextbox) {\r\n //we may want to set up month and date pickers here as well, but that will be for another ticket\r\n if (field.FieldType === \"MaskedTextBox\") {\r\n VR.Edit.SetupMaskedEdit(field);\r\n maskedtextbox = $(input).data(\"kendoMaskedTextBox\");\r\n }\r\n }\r\n if (maskedtextbox) {\r\n maskedtextbox.value(value);\r\n }\r\n break;\r\n case \"Signature\":\r\n var model = $(input).data(\"field\");\r\n if (model) {\r\n model.FieldValue = value;\r\n }\r\n break;\r\n case \"NumericTextBox\":\r\n var numbertextbox = $(input).data(\"kendoNumericTextBox\");\r\n if (numbertextbox) {\r\n numbertextbox.value(value);\r\n }\r\n break;\r\n case \"TimePicker\":\r\n var tp = $(input).data(\"kendoTimePicker\");\r\n if (tp) {\r\n tp.value(value);\r\n }\r\n break;\r\n }\r\n if (\r\n field.FieldType != \"MaskedTextBox\" &&\r\n field.FieldType != \"DatePicker\" &&\r\n field.FieldType != \"MonthPicker\" &&\r\n field.FieldType != \"TimePicker\"\r\n ) {\r\n $(input).val(value);\r\n }\r\n var fieldVal = field?.FieldValue ?? \"\";\r\n var origVal = field?.OriginalValue ?? \"\";\r\n if (value != origVal && fieldVal != value) {\r\n field.HasChange = (!!field.HasChangeOvrd) ? field.HasChangeOvrd : true;\r\n field.PreviousValue = fieldVal;\r\n }\r\n field.FieldValue = value;\r\n\r\n if (applyall) {\r\n var fieldName = $(input).attr(\"data-field-name\");\r\n //var inputs = $(\"#tab-content\").find(\"input[data-field-name='\" + fieldName + \"']\");\r\n var inputs = self.GetInputFields(fieldName);\r\n var id = $(input).attr(\"id\");\r\n $.each(inputs, function (index, input) {\r\n var fieldId = $(input).attr(\"id\");\r\n if (fieldId != id) {\r\n self.SetFieldValue(input, value);\r\n }\r\n });\r\n }\r\n }\r\n }; //SetFieldValue\r\n\r\n /*// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= \r\n /// \r\n /// Sets field value.\r\n /// \r\n /// The input field.\r\n /// The field value.\r\n /// The value to indicate if the change is applied to all fields with the same field name.\r\n /// */\r\n self.SetFieldValues = function (input, value, applyall) {\r\n var id = parseInt(input);\r\n if (!isNaN(id)) {\r\n self.SetFieldValue(\"#f\" + id, value, applyall);\r\n } else {\r\n var inputs = $(input);\r\n if (inputs.length == 0) {\r\n //inputs = $(\"#tab-content\").find(\"input[data-field-name='\" + input + \"']\");\r\n inputs = self.GetInputFields(input);\r\n }\r\n if (inputs.length > 0) {\r\n self.SetFieldValue(inputs[0], value, applyall);\r\n }\r\n }\r\n }; //SetFieldValues\r\n\r\n /*// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= \r\n /// \r\n /// Sets the modal editor size and returns the width and height of cropper object to be created.\r\n /// \r\n /// The modal object.\r\n /// The width and height of cropper object to be created.*/\r\n self.SetImageEditorSize = function (modal) {\r\n var returnValue = { width: 0, height: 0 };\r\n if (!modal) {\r\n return returnValue;\r\n }\r\n\r\n var headers = modal.find(\".imageeditor-headers\");\r\n var visible = null;\r\n if (headers.length > 0) {\r\n visible = $(headers[0]).css(\"display\");\r\n }\r\n var windowwidth = $(window).width();\r\n var windowheight = $(window).height();\r\n var width = windowwidth;\r\n var height = windowheight;\r\n if (windowwidth < 768) {\r\n height *= 0.65;\r\n } else {\r\n height *= 0.9;\r\n }\r\n if (visible == \"\" || (visible && visible != \"none\")) {\r\n var headers = modal.find(\".imageeditor-header\");\r\n var headerheight = headers.length * 30;\r\n height -= headerheight;\r\n }\r\n\r\n height -= 40; //For sliders and annotation buttons\r\n height = Math.round(height);\r\n width *= 0.94;\r\n width = Math.round(width);\r\n var content = $(modal).find(\".modal-dialog\");\r\n content.css(\"height\", height + \"px\");\r\n content.css(\"width\", width + \"px\");\r\n content.css(\"margin-left\", Math.round((windowwidth - width) / 2) + \"px\");\r\n\r\n height -= 150;\r\n width -= 100;\r\n if (windowwidth >= 768) {\r\n height = Math.max(400, height);\r\n width = Math.max(550, width);\r\n } else {\r\n height = Math.max(250, height);\r\n width = Math.max(280, width);\r\n }\r\n\r\n returnValue.height = height;\r\n returnValue.width = width;\r\n\r\n return returnValue;\r\n }; //SetImageEditorSize\r\n\r\n /*// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= \r\n /// \r\n /// Sets read-only status.\r\n /// \r\n /// The input field.\r\n /// The value to indicate if the field is read-only.\r\n /// */\r\n self.SetReadOnly = function (input, isReadOnly) {\r\n var isDark = $(\"#isdarkgadget\").val();\r\n var intInputId = parseInt(input);\r\n if (!isNaN(intInputId)) {\r\n input = \"#f\" + intInputId;\r\n } else if (typeof input === \"string\") {\r\n if (!input.startsWith(\"#\")) {\r\n input = \"#\" + input;\r\n }\r\n }\r\n var field = $(input).data(\"field\");\r\n if (field) {\r\n switch (field.FieldType) {\r\n case \"MaskedTextBox\":\r\n if (isReadOnly) {\r\n $(input).addClass(\"readonly-text\");\r\n $(input).attr(\"disabled\", true);\r\n field.IsEnabled = false;\r\n } else {\r\n if (field.IsEditable == true) {\r\n $(input).removeClass(\"readonly-text\");\r\n $(input).removeAttr(\"disabled\");\r\n field.IsEnabled = true;\r\n $(input).kendoMaskedTextBox({\r\n mask: field.Mask,\r\n unmaskOnPost: false\r\n });\r\n }\r\n }\r\n case \"AutoComplete\":\r\n var autocomplete = $(input).data(\"kendoAutoComplete\");\r\n if (autocomplete) {\r\n if (isReadOnly) {\r\n field.IsEnabled = false;\r\n autocomplete.readonly(true);\r\n $(input).css(\"background-color\", \"silver\");\r\n if (isDark) {\r\n $(input).css(\"color\", \"black\");\r\n }\r\n } else {\r\n if (field.IsEditable == true) {\r\n field.IsEnabled = true;\r\n autocomplete.readonly(false);\r\n $(input).css(\"background-color\", \"\");\r\n if (isDark) {\r\n $(input).css(\"color\", \"\");\r\n }\r\n }\r\n }\r\n }\r\n break;\r\n case \"ComboBox\":\r\n var comboBox = $(input).data(\"kendoComboBox\");\r\n if (comboBox) {\r\n var fieldId = field.FieldId;\r\n var textBox = $(input)\r\n .parent()\r\n .find(\"input[name='f\" + fieldId + \"_input']\");\r\n var parent = $(input).parent();\r\n var span = $(parent).find(\"span\");\r\n if (isReadOnly) {\r\n comboBox.readonly(true);\r\n comboBox.enable(false);\r\n field.IsEnabled = false;\r\n $(span).css(\"background-color\", \"silver\");\r\n $(textBox).css(\"background-color\", \"silver\");\r\n if (isDark) {\r\n $(span).css(\"color\", \"black\");\r\n $(textBox).css(\"color\", \"black\");\r\n }\r\n } else {\r\n if (field.IsEditable == true) {\r\n field.IsEnabled = true;\r\n comboBox.readonly(false);\r\n comboBox.enable();\r\n $(span).css(\"background-color\", \"\");\r\n $(textBox).css(\"background-color\", \"\");\r\n if (isDark) {\r\n $(span).css(\"color\", \"\");\r\n $(textBox).css(\"color\", \"\");\r\n }\r\n }\r\n }\r\n }\r\n break;\r\n case \"MonthPicker\":\r\n case \"DatePicker\":\r\n var datepicker = $(input).data(\"kendoDatePicker\");\r\n if (datepicker) {\r\n if (isReadOnly) {\r\n datepicker.readonly();\r\n datepicker.enable(false);\r\n field.IsEnabled = false;\r\n $(input).css(\"background-color\", \"silver\");\r\n if (isDark) {\r\n $(input).css(\"color\", \"black\");\r\n }\r\n } else {\r\n if (field.IsEditable == true) {\r\n field.IsEnabled = true;\r\n datepicker.enable(true);\r\n $(input).css(\"background-color\", \"\");\r\n if (isDark) {\r\n $(input).css(\"color\", \"\");\r\n }\r\n }\r\n }\r\n }\r\n break;\r\n case \"NumericTextBox\":\r\n var numeric = $(input).data(\"kendoNumericTextBox\");\r\n if (numeric) {\r\n var inputs = $(input)\r\n .parents(\".edit-field\")\r\n .find(\"input\");\r\n if (isReadOnly) {\r\n field.IsEnabled = false;\r\n numeric.readonly(true);\r\n inputs.addClass(\"readonly-text\");\r\n inputs.css(\"background-color\", \"silver\");\r\n if (isDark) {\r\n $(inputs).css(\"color\", \"black\");\r\n }\r\n } else {\r\n if (field.IsEditable == true) {\r\n field.IsEnabled = true;\r\n numeric.readonly(false);\r\n inputs.removeClass(\"readonly-text\");\r\n inputs.css(\"background-color\", \"\");\r\n if (isDark) {\r\n $(inputs).css(\"color\", \"\");\r\n }\r\n }\r\n }\r\n }\r\n break;\r\n case \"Button\":\r\n var buttons = $(input);\r\n if (isReadOnly) {\r\n buttons.attr(\"disabled\", \"disabled\");\r\n field.IsEnabled = false;\r\n } else {\r\n if (field.IsEditable == true) {\r\n field.IsEnabled = true;\r\n buttons.removeAttr(\"disabled\");\r\n }\r\n }\r\n break;\r\n case \"RadioButton\":\r\n var radio = \"#f\" + field.FieldId + \" *\";\r\n var inputAttr = $(input);\r\n if (isReadOnly) {\r\n $(radio).prop(\"disabled\", true);\r\n inputAttr.attr(\"aria-disabled\", \"true\")\r\n field.IsEnabled = false;\r\n } else {\r\n if (field.IsEditable == true) {\r\n field.IsEnabled = true;\r\n $(radio).prop(\"disabled\", false);\r\n inputAttr.attr(\"aria-disabled\", \"false\")\r\n }\r\n } \r\n break;\r\n case \"Signature\":\r\n var buttons = $(input);\r\n if (isReadOnly) {\r\n buttons.attr(\"disabled\", \"disabled\");\r\n field.IsEnabled = false;\r\n } else {\r\n if (field.IsEditable == true) {\r\n field.IsEnabled = true;\r\n buttons.removeAttr(\"disabled\");\r\n }\r\n }\r\n break;\r\n case \"MultiSelect\":\r\n var multiselect = $(input).data(\"kendoMultiSelect\");\r\n if (multiselect) {\r\n $(input).removeClass(\"readonly-text\");\r\n multiselect.readonly(isReadOnly);\r\n var parents = $(input).parents(\".edit-field\");\r\n var text = parents.find(\".k-multiselect-wrap\");\r\n if (isReadOnly) {\r\n field.IsEnabled = false;\r\n text.addClass(\"readonly-text\");\r\n text.css(\"background-color\", \"silver\");\r\n if (isDark) {\r\n $(text).css(\"color\", \"black\");\r\n }\r\n } else {\r\n if (field.IsEditable == true) {\r\n field.IsEnabled = true;\r\n text.removeClass(\"readonly-text\");\r\n text.css(\"background-color\", \"\");\r\n if (isDark) {\r\n $(text).css(\"color\", \"\");\r\n }\r\n }\r\n }\r\n }\r\n break;\r\n default:\r\n if (isReadOnly) {\r\n $(input).addClass(\"readonly-text\");\r\n $(input).attr(\"disabled\", true);\r\n field.IsEnabled = false;\r\n } else {\r\n if (field.IsEditable == true) {\r\n field.IsEnabled = true;\r\n $(input).removeClass(\"readonly-text\");\r\n $(input).removeAttr(\"disabled\");\r\n }\r\n }\r\n }\r\n }\r\n }; //SetReadOnly\r\n\r\n /*// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= \r\n /// \r\n /// Sets the currrent field status.\r\n /// \r\n /// The input field.\r\n /// The field model.\r\n /// The field status.\r\n /// The error message.\r\n /// The query location.\r\n /// */\r\n self.SetStatus = function (field, model, status, message, location) {\r\n if (!model) {\r\n return;\r\n }\r\n\r\n var inputs = self.GetInputFields(model.FieldName);\r\n if (status == \"skipped\" || status == \"rekeyed\") {\r\n $.each(inputs, function (index, input) {\r\n if (status == \"rekeyed\") {\r\n self.DoFieldValueChanged(input);\r\n }\r\n });\r\n }\r\n\r\n self.SetFieldStatus(field, model, status, message, location);\r\n var errorSection = $(\"#f\" + model.FieldId + \"-msg\");\r\n if (errorSection) {\r\n errorSection.css(\"display\", \"none\");\r\n }\r\n\r\n $.each(inputs, function (index, input) {\r\n var data = $(input).data(\"field\");\r\n if (data != model) {\r\n self.SetFieldStatus(input, data, status, message, location);\r\n //data.FieldStatus = model.FieldStatus;\r\n //data.ErrorMessage = model.ErrorMessage;\r\n //data.QueryLocation = model.QueryLocation;\r\n }\r\n });\r\n\r\n //self.SetFieldHeight(this, model, true);\r\n //var inputs = $(\"#tab-content\").find(\"input[data-field-name='\" + model.FieldName + \"']\");\r\n }; //SetStatus\r\n\r\n /*// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= \r\n /// \r\n /// Sets the current page for the Tiff Image editor.\r\n /// \r\n /// The cropper section.\r\n /// The page number.\r\n /// The TIFF page length.\r\n /// */\r\n self.SetTiffEditorPage = function (section, page, size) {\r\n if (!size | !section || page < 0 || page >= size) {\r\n return;\r\n }\r\n section.attr(\"data-page-number\", page);\r\n var canvases = $(\"#tiffeditor-canvassection,#tiffeditor-canvasannote\");\r\n for (var i = 0; i < size; i++) {\r\n var tiffpage = $(\"#tiffeditor-pagesection\" + (i + 1));\r\n if (i != page) {\r\n tiffpage.css(\"display\", \"none\");\r\n } else {\r\n var cropped = tiffpage.attr(\"data-cropped\");\r\n if (!cropped) {\r\n canvases.css(\"display\", \"none\");\r\n section.css(\"display\", \"\");\r\n $(\"#tiffeditor-buttons\")\r\n .find(\".btn-cropbutton\")\r\n .css(\"visibility\", \"visible\");\r\n $(\"#tiffeditor-slidebars\").css(\"visibility\", \"visible\");\r\n tiffpage.css(\"display\", \"\");\r\n var mode = tiffpage.attr(\"mode\");\r\n if (mode == \"1\") {\r\n $(\"#tiffeditor-cropbutton\").trigger(\"click\");\r\n } else {\r\n $(\"#tiffeditor-dragbutton\").trigger(\"click\");\r\n }\r\n } else {\r\n canvases.css(\"display\", \"\");\r\n section.css(\"display\", \"none\");\r\n $(\"#tiffeditor-buttons\")\r\n .find(\".btn-cropbutton\")\r\n .css(\"visibility\", \"hidden\");\r\n $(\"#tiffeditor-slidebars\").css(\"visibility\", \"hidden\");\r\n for (var i = 0; i < size; i++) {\r\n var tiffpage = $(\"#tiffeditor-canvas\" + (i + 1));\r\n if (i == page) {\r\n tiffpage.css(\"display\", \"\");\r\n } else {\r\n tiffpage.css(\"display\", \"none\");\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n page++;\r\n $(\"#tiffeditor-pagenumber\").html(\"Page \" + page + \" of \" + size);\r\n }; //SetTiffEditorPage\r\n\r\n /*// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= \r\n /// \r\n /// Sets up all controls.\r\n /// \r\n /// */\r\n self.SetupAllControls = function () {\r\n if (self.Tabs && self.Tabs.length > 0) {\r\n for (var i = 0; i < self.Tabs.length; i++) {\r\n self.SetupControls(i);\r\n }\r\n self.InitFields();\r\n }\r\n }; //SetupAllControls\r\n\r\n /*// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= \r\n /// \r\n /// Sets up the Action menu.\r\n /// \r\n /// */\r\n self.SetupActionMenus = function () {\r\n self.SetupScanImage();\r\n self.SetupFileLoad();\r\n self.SetupImageEdit();\r\n self.SetupViewImage();\r\n self.SetupReviewError();\r\n self.SetupNumberRecord();\r\n self.SetupEventActivation();\r\n self.SetupDocTracking();\r\n self.SetupTypeFromImage();\r\n $(\"#runviews-menu\").on(\"click\", function (e) {\r\n VR.Script.Views();\r\n });\r\n\r\n $(\"#action-menu\")\r\n .find(\"a\")\r\n .on(\"click\", function (e) {\r\n if (VR.Common.IsNavBurger()) {\r\n $(\"#top-button\").trigger(\"click\");\r\n }\r\n });\r\n }; //SetpActionMenus\r\n\r\n /*// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= \r\n /// \r\n /// Sets up the AutoComplete control.\r\n /// \r\n /// The field model.\r\n /// */\r\n self.SetupAutoComplete = function (model) {\r\n var field = $(\"#f\" + model.FieldId);\r\n if (model.FieldType == \"TextBox\") {\r\n field.kendoAutoComplete({});\r\n } else {\r\n var dataSource = [];\r\n if (model.DropDownList) {\r\n dataSource = model.DropDownList;\r\n } else {\r\n var fieldId = model.FieldId;\r\n dataSource = new kendo.data.DataSource({\r\n transport: {\r\n read: function (options) {\r\n var input = $(\"#f\" + fieldId);\r\n input.attr(\"autocomplete\", \"off\");\r\n var val = $(input).val();\r\n var model = $(input).data(\"field\");\r\n var filter = self.GetFilterValues(model);\r\n var voidVal = \"\";\r\n if (model && model.VoidField) {\r\n voidVal = self.GetFieldValue(model.VoidField);\r\n }\r\n voidVal = encodeURIComponent(voidVal);\r\n var valfiltertype = \"\";\r\n if (model && model.ValFilterType) {\r\n valfiltertype = model.ValFilterType;\r\n }\r\n valfiltertype = encodeURIComponent(valfiltertype);\r\n var webfiltertype = \"\";\r\n if (model && model.WebFilterType) {\r\n webfiltertype = model.WebFilterType;\r\n }\r\n webfiltertype = encodeURIComponent(webfiltertype);\r\n performLookup(\r\n fieldId,\r\n val,\r\n filter,\r\n valfiltertype,\r\n voidVal,\r\n webfiltertype,\r\n self.EventYear,\r\n function (result) {\r\n if (result.Code == 0) {\r\n var data = [];\r\n if (!result.List || result.List.length == 0) {\r\n //data.push({ text: \"\", value: \"\" });\r\n } else {\r\n for (var i = 0; i < result.List.length; i++) {\r\n var value = result.List[i];\r\n var key = null;\r\n if (result.Keys && result.Keys.length > i) {\r\n key = result.Keys[i];\r\n }\r\n //if (value == model.FieldValue) {\r\n // index = i;\r\n //}\r\n data.push({ text: value, key: key });\r\n }\r\n }\r\n\r\n if (!!options) options.success(data);\r\n return data;\r\n } else {\r\n options.error(result);\r\n VR.Common.HandleInvalidResult(result, \"Lookup\", false);\r\n return [];\r\n }\r\n }\r\n );\r\n }\r\n },\r\n serverFiltering: true\r\n });\r\n }\r\n\r\n field.kendoAutoComplete({\r\n dataSource: dataSource,\r\n dataTextField: \"text\",\r\n delay: 200,\r\n filter: \"contains\"\r\n });\r\n }\r\n field.attr(\"spellcheck\", model.SpellCheck);\r\n field.on(\"keypress\", function (e) {\r\n var model = $(this).data(\"field\");\r\n if (model && model.FieldStatus != null) {\r\n self.ResetField(this, true);\r\n }\r\n model.HasChange = (model.HasChangeOvrd == null) ? false : model.HasChangeOvrd;\r\n });\r\n\r\n field.on(\"keydown\", function (e) {\r\n var value = $(this).val();\r\n if (!value && e.which == 8) {\r\n e.preventDefault();\r\n var autocomplete = $(this).data(\"kendoAutoComplete\");\r\n if (autocomplete) {\r\n autocomplete.search(\"\");\r\n }\r\n } else {\r\n self.FieldKeyDown(e);\r\n }\r\n });\r\n field.on(\"keyup\", self.FieldKeyUp);\r\n\r\n field.on(\"focus\", function (e) {\r\n $(this).select();\r\n VR.Image.TypeFromImage.SetField(model, this);\r\n VR.Edit.LastFocusedField = model.FieldId;\r\n });\r\n }; //SetupAutoComplete\r\n\r\n /*// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= \r\n /// \r\n /// Sets up the back button.\r\n /// \r\n /// */\r\n self.SetupBackButton = function () {\r\n if (\r\n !self.Referrer ||\r\n self.Referrer.toLowerCase().indexOf(\"/event/edit\") == -1\r\n ) {\r\n $(\"#previouspage-button\").css(\"display\", \"none\");\r\n }\r\n\r\n $(\"#previouspage-button\").on(\"click\", function () {\r\n self.CanLeavePage(function () {\r\n if (self.SourceEvent && self.SourceEventId && self.SourceEventId > 0) {\r\n var url = VR.Common.GetRootURL();\r\n var selection = self.SourceEvent + \"-\" + self.SourceEventId;\r\n selection = \"eventedit=\" + encodeURIComponent(selection);\r\n url +=\r\n \"event/edit?selection=\" +\r\n encodeURIComponent(selection);\r\n nxLoading.start(\"Loading page. Please wait...\");\r\n if (VR.Common.CanOpen) {\r\n window.open(url);\r\n } else {\r\n window.location.href = url;\r\n }\r\n } else {\r\n window.location.href = self.Referrer;\r\n }\r\n });\r\n });\r\n }; //SetupBackButton\r\n\r\n /*// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= \r\n /// \r\n /// Sets up the Button control.\r\n /// \r\n /// The field model.\r\n /// */\r\n self.SetupButton = function (model) {\r\n var input = $(\"#f\" + model.FieldId);\r\n $(input).attr(\"data-field-name\", model.FieldName);\r\n $(input).on(\"click\", function (e) {\r\n self.ErrorPanel.resetError(model.FieldId);\r\n $.each(model.Edits, function (index, edit) {\r\n if (model.ShouldRunEdits) {\r\n VR.Script.ExecuteScript(input, model, edit);\r\n }\r\n });\r\n });\r\n\r\n $(input).on(\"focus\", function (e) {\r\n VR.Image.TypeFromImage.SetField(model, this);\r\n VR.Edit.LastFocusedField = model.FieldId;\r\n });\r\n\r\n input.on(\"keydown\", self.FieldKeyDown);\r\n\r\n var parent = input.parents(\".edit-field\");\r\n $(parent).css(\"height\", \"auto\");\r\n }; //SetupButton\r\n\r\n /*// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= \r\n /// \r\n /// Setsup the CheckBox control.\r\n /// \r\n /// The field model.\r\n /// The value to indicate if the field is to be created.\r\n /// */\r\n self.SetupCheckBox = function (model, isCreating) {\r\n if (isCreating) {\r\n var html =\r\n \"\";\r\n\r\n var section = $(\"#p\" + model.FieldId);\r\n $(section).html(html);\r\n $(section).addClass(\"input-field\");\r\n }\r\n\r\n var input = $(\"#f\" + model.FieldId);\r\n $(input).prop(\"checked\", [\"Y\", \"T\"].includes(model.FieldValue));\r\n input.on(\"keydown\", self.FieldKeyDown);\r\n\r\n input.on(\"focus\", function (e) {\r\n VR.Image.TypeFromImage.SetField(model, this);\r\n VR.Edit.LastFocusedField = model.FieldId;\r\n });\r\n\r\n input.on(\"change blur\", function (e) {\r\n if (nx.ValueOf(model.FieldId) == \"Y\" || nx.ValueOf(model.FieldId) == \"T\") { \r\n $(input).attr(\"checked\", \"checked\");\r\n } else {\r\n $(input).removeAttr(\"checked\");\r\n }\r\n self.DoFieldValueChanged(\"#f\" + model.FieldId);\r\n if (model.Edits.length > 0) {\r\n self.ValidateField(input);\r\n e.preventDefault();\r\n \r\n self.DoSkipFields(input);\r\n //self.FocusNextField(model, e.shiftKey); \r\n }\r\n });\r\n }; //SetupCheckBox\r\n self.SetupDataSourceForComboBox = function (\r\n fieldName,\r\n textProperty,\r\n valueProperty,\r\n model,\r\n fieldValue\r\n ) {\r\n if (!fieldValue) fieldValue = \"\";\r\n return {\r\n DropDownList: $.map(model, function (row) {\r\n return row[textProperty];\r\n }),\r\n DropDownValues: $.map(model, function (row) {\r\n return row[valueProperty];\r\n }),\r\n FieldValue: fieldValue,\r\n FieldId: self.GetFieldIdFromFieldName(fieldName)\r\n };\r\n }; //SetupDataSourceForComboBox\r\n self.SetupDataSourceForDropDownList = function (\r\n fieldName,\r\n textProperty,\r\n valueProperty,\r\n model\r\n ) {\r\n return {\r\n List: $.map(model, function (row) {\r\n return row[textProperty];\r\n }),\r\n Keys: $.map(model, function (row) {\r\n return row[valueProperty];\r\n })\r\n };\r\n }; //SetupDataSourceForDropDownList\r\n self.GetFieldIdFromFieldName = function (fieldName) {\r\n var field = $(\"input[data-field-name='\" + fieldName + \"']\");\r\n if (!!field && field.length > 0) {\r\n return field.attr(\"id\").substring(1);\r\n } else {\r\n return \"\";\r\n }\r\n }; //GetFieldIdFromName\r\n self.ComboBoxTimeout = null;\r\n /*// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= \r\n /// \r\n /// Sets up ComboBox.\r\n /// \r\n /// The field model.\r\n /// */\r\n self.SetupComboBox = function (model) {\r\n var dataSource = [];\r\n var index = -1;\r\n var autoBind = false;\r\n model.FieldType = \"ComboBox\";\r\n var filter = \"\";\r\n let shouldUpdateFieldValue = null;\r\n\r\n if (model.DropDownList && model.DropDownValues) {\r\n if (model.ValidationDropdownItems) {\r\n for (let i = 0; i < model.ValidationDropdownItems.length; i++) {\r\n let curItem = model.ValidationDropdownItems[i];\r\n let curValue = curItem.ValueInt === null ? curItem.ValueString : curItem.ValueInt;\r\n if (curValue == model.FieldValue) {\r\n index = i;\r\n }\r\n else if (model.FieldValue == curItem.Label) {\r\n index = i;\r\n shouldUpdateFieldValue = curValue;\r\n }\r\n dataSource.push({ text: curItem.Label, value: curValue });\r\n }\r\n }\r\n else {\r\n for (var i = 0; i < model.DropDownList.length; i++) {\r\n var value = model.DropDownValues[i];\r\n\r\n if (value == model.FieldValue) {\r\n index = i;\r\n }\r\n if (value.trim() != \"\") {\r\n dataSource.push({ text: model.DropDownList[i], value: value });\r\n }\r\n }\r\n }\r\n autoBind = true;\r\n }\r\n else {\r\n filter = \"startswith\";\r\n var fieldId = model.FieldId;\r\n dataSource = new kendo.data.DataSource({\r\n transport: {\r\n read: function (options) {\r\n var input = $(\"#f\" + fieldId)\r\n .parent()\r\n .find(\"input[name='f\" + fieldId + \"_input']\");\r\n var val = $(input).val();\r\n var model = $(\"#f\" + fieldId).data(\"field\");\r\n let filter = self.GetFilterValues(model);\r\n var voidVal = \"\";\r\n if (model && model.VoidField) {\r\n voidVal = self.GetFieldValue(model.VoidField);\r\n }\r\n var valfiltertype = \"\";\r\n if (model && model.ValFilterType) {\r\n valfiltertype = model.ValFilterType;\r\n }\r\n valfiltertype = encodeURIComponent(valfiltertype);\r\n var webfiltertype = \"\";\r\n if (model && model.WebFilterType) {\r\n webfiltertype = model.WebFilterType;\r\n }\r\n webfiltertype = encodeURIComponent(webfiltertype);\r\n performLookup(\r\n fieldId,\r\n val,\r\n filter,\r\n valfiltertype,\r\n voidVal,\r\n webfiltertype,\r\n self.EventYear,\r\n function (result) {\r\n if (result.Code == 0) {\r\n var data = [];\r\n if (!result.List || result.List.length == 0) {\r\n //data.push({ text: \"\", value: \"\" });\r\n } else {\r\n for (var i = 0; i < result.DropdownOptions.length; i++) {\r\n var curDropdownOption = result.DropdownOptions[i];\r\n data.push({\r\n text: curDropdownOption.Label,\r\n value: curDropdownOption.ValueInt === null ? curDropdownOption.ValueString : curDropdownOption.ValueInt\r\n });\r\n }\r\n }\r\n if (!!options) options.success(data);\r\n // this is Kendo magic\r\n else {\r\n // we need to apply the changes here if options is not assigned.\r\n $(\"#f\" + fieldId)\r\n .data(\"kendoComboBox\")\r\n .setDataSource(data);\r\n }\r\n if (!input.is(\":focus\")) {\r\n $(\"#f\" + fieldId)\r\n .data(\"kendoComboBox\")\r\n .close();\r\n }\r\n return data;\r\n } else {\r\n options.error(result);\r\n VR.Common.HandleInvalidResult(result, \"Lookup\", true);\r\n return [];\r\n }\r\n }\r\n );\r\n }\r\n },\r\n serverFiltering: true\r\n });\r\n }\r\n\r\n var input = $(\"#f\" + model.FieldId);\r\n if (!model.AllowOther) {\r\n input.addClass(\"combobox-no-literals\");\r\n }\r\n if (model.WebFilterType != \"\" && model.WebFilterType != null) {\r\n filter = model.WebFilterType;\r\n }\r\n var groupdiv = $(\"#g\" + model.FieldId + \">div>div\");\r\n var combospan = groupdiv.find(\"div > span.k-combobox\");\r\n $(input).kendoComboBox({\r\n dataTextField: \"text\",\r\n dataValueField: \"value\",\r\n dataSource: dataSource,\r\n delay: 200,\r\n filter: filter,\r\n autoBind: autoBind,\r\n suggest: true,\r\n open: function (e) {\r\n var dropDown = $(e.sender.element);\r\n if (!dropDown.is(\":not([readonly])\")) {\r\n e.preventDefault();\r\n }\r\n }\r\n });\r\n $(\"[name='f\" + model.FieldId + \"_input']\").attr(\r\n \"spellcheck\",\r\n model.SpellCheck\r\n );\r\n var comboBox = $(input).data(\"kendoComboBox\");\r\n var dataSource = comboBox.dataSource.data();\r\n var index = -1;\r\n\r\n if (shouldUpdateFieldValue !== null) {\r\n self.SetFieldValue(input, shouldUpdateFieldValue);\r\n }\r\n\r\n if (model.DefaultValue !== null && model.DropDownList !== null) {\r\n index = model.DropDownList.indexOf(model.DefaultValue);\r\n }\r\n\r\n if (model.FieldValue !== null && model.FieldValue !== \"\") {\r\n if ($.grep(dataSource, function (item) { return (item.value ? item.value : item.text) == model.FieldValue }).length == 0) {\r\n\r\n if (index == -1) {\r\n if (model.ValidationDropdownItems) {\r\n let selectedItem = model.ValidationDropdownItems.find(d => (d.ValueInt == null ? d.ValueString : d.ValueInt) == model.FieldValue);\r\n if (selectedItem) {\r\n comboBox.dataSource.add({\r\n text: selectedItem.Label,\r\n value: selectedItem.ValueInt == null ? selectedItem.ValueString : selectedItem.ValueInt\r\n });\r\n }\r\n else {\r\n comboBox.dataSource.add({\r\n text: model.FieldValue,\r\n value: model.FieldValue\r\n });\r\n }\r\n }\r\n else {\r\n comboBox.dataSource.add({\r\n text: model.FieldValue,\r\n value: model.FieldValue\r\n });\r\n }\r\n \r\n comboBox.value(model.FieldValue);\r\n }\r\n else {\r\n comboBox.value(comboBox.text());\r\n }\r\n }\r\n }\r\n\r\n if ((model.FieldValue !== null && model.FieldValue !== \"\") && (model.DefaultValue !== null && model.DropDownList !== null)) {\r\n if ($.grep(dataSource, function (item) { return (item.value ? item.value : item.text) == model.FieldValue }).length == 0) {\r\n\r\n comboBox.dataSource.add({\r\n text: model.FieldValue,\r\n value: model.FieldValue\r\n });\r\n comboBox.value(model.FieldValue);\r\n \r\n }\r\n }\r\n\r\n if (model.FieldName === \"\" && model.DefaultValue !== null && model.DefaultValue !== \"\") {\r\n if (\r\n $.grep(dataSource, function (item) { return item.text == model.DefaultValue }).length == 0\r\n ) {\r\n comboBox.dataSource.add({\r\n text: model.DefaultValue,\r\n value: model.DefaultValue\r\n });\r\n }\r\n comboBox.value(model.DefaultValue);\r\n }\r\n\r\n var errorMessage = \"\";\r\n\r\n if (self.EventId == 0) {\r\n self.DoFieldValueChanged(input);\r\n /*if (!!model.DefaultValue && model.DropDownList !== null) {\r\n model.FieldValue = model.DropDownValues[model.DropDownList.indexOf(model.DefaultValue)];\r\n if (!!model.FieldValue && model.DropDownList !== null) {\r\n model.FieldValue = model.DropDownList[model.DropDownList.indexOf(model.DefaultValue)];\r\n }\r\n if (typeof (model.FieldValue) === \"undefined\") {\r\n errorMessage = \"The default value specified for \" + model.FieldName + \"(\" + model.FieldId + \") is not an existing value within the \" + model.FieldName + \" combobox. Select an existing value as a default or change to accept other literal\";\r\n }\r\n }*/\r\n }\r\n\r\n /*\r\n // this is no longer needed with the combobox changes (VRS-4617 and VRS-4711)\r\n if ((model.FieldValue !== null && model.FieldValue !== \"\")) {\r\n if (!!model.DropDownList && !!model.DropDownValues && errorMessage === \"\" && model.DropDownValues.includes(model.FieldValue)) {\r\n model.FieldValue = model.DropDownList[model.DropDownValues.indexOf(model.FieldValue)];\r\n }\r\n }\r\n */\r\n\r\n if (self.EventId == 0 && !model.FieldValue) {\r\n model.FieldValue = model.DefaultValue;\r\n }\r\n\r\n $(input).data(\"prevValue\", model.FieldValue);\r\n\r\n comboBox.select(function (dataItem) {\r\n if (errorMessage !== \"\" && (model.FieldValue.toLowerCase() !== model.DefaultValue.toLowerCase())) {\r\n console.log(errorMessage);\r\n return;\r\n }\r\n if (model.FieldValue === null) {\r\n model.FieldValue = \"\";\r\n }\r\n\r\n return dataItem.value.toString().toLowerCase() === model.FieldValue.toString().toLowerCase();\r\n });\r\n\r\n if (!!model.FieldStatus) {\r\n self.SetStatus(comboBox.input, model, model.FieldStatus, null, null);\r\n }\r\n\r\n comboBox.input.on(\"keydown\", function (e) {\r\n self.FieldKeyDown(e);\r\n });\r\n $(input).on(\"touchstart\", function (e) {\r\n var model = null;\r\n model = $(e.target).data(\"field\");\r\n nx.FocusField({ input: e.target, model: model }, true);\r\n });\r\n if (filter != \"\") {\r\n comboBox.input.attr(\"maxlength\", model.MaxLength);\r\n }\r\n comboBox.input.on(\"keyup\", self.FieldKeyUp);\r\n comboBox.input.on(\"focus\", function (e) {\r\n var model = $(\r\n \"#\" +\r\n $(this)\r\n .attr(\"name\")\r\n .replace(\"_input\", \"\")\r\n ).data(\"field\");\r\n if (model) {\r\n nx.Model = model;\r\n model.PreviousValue = this.value;\r\n $(this).select();\r\n //model.Validated = false;\r\n console.log(\"onfocus model.FieldName=\" + model.FieldName);\r\n } else {\r\n nx.Model = null;\r\n console.log(\"onfocus nodata\");\r\n }\r\n VR.Edit.LastFocusedField = model.FieldId;\r\n });\r\n\r\n }; //SetupComboBox\r\n\r\n /*// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= \r\n /// \r\n /// Sets up the controls.\r\n /// The list of fields.\r\n /// \r\n /// */\r\n self.SetupControls = function (index) {\r\n if (\r\n index == null ||\r\n !self.Tabs ||\r\n self.Tabs.length == 0 ||\r\n index < -1 ||\r\n index > self.Tabs.length\r\n ) {\r\n return;\r\n }\r\n var fields = self.Tabs[index];\r\n if (!fields || fields.length < 1) {\r\n return;\r\n }\r\n var panelId = \"tab-panel\" + index.toString();\r\n var panel = $(\"#\" + panelId);\r\n var init = $(panel).attr(\"data-init\");\r\n if (init != \"0\") {\r\n return;\r\n }\r\n\r\n $.each(fields, function (index, model) {\r\n switch (model.FieldType) {\r\n case \"AutoComplete\":\r\n self.SetupAutoComplete(model);\r\n break;\r\n case \"Button\":\r\n self.SetupButton(model);\r\n break;\r\n case \"CheckBox\":\r\n self.SetupCheckBox(model);\r\n break;\r\n case \"ComboBox\":\r\n self.SetupComboBox(model);\r\n break;\r\n case \"DatePicker\":\r\n self.SetupDatePicker(model);\r\n break;\r\n case \"DateTimePicker\":\r\n self.SetupDateTimePicker(model);\r\n break;\r\n case \"DropDownList\":\r\n self.SetupComboBox(model);\r\n break;\r\n case \"Grid\":\r\n self.SetupGrid(model);\r\n break;\r\n case \"Hidden\":\r\n break;\r\n case \"Image\":\r\n self.SetupImage(model);\r\n break;\r\n case \"Label\": self.SetupLabel(model); break;\r\n case \"MaskedTextBox\":\r\n self.SetupMaskedEdit(model);\r\n break;\r\n case \"MemoEdit\":\r\n self.SetupMemoBox(model);\r\n break;\r\n case \"MonthPicker\":\r\n self.SetupDatePicker(model);\r\n break;\r\n case \"MultiSelect\":\r\n self.SetupMultiSelect(model);\r\n break;\r\n case \"NumericTextBox\":\r\n self.SetupNumericTextBox(model);\r\n break;\r\n case \"RadioButton\":\r\n self.SetupRadioButton(model);\r\n break;\r\n case \"Signature\":\r\n self.SetupSignatureButton(model);\r\n break;\r\n case \"TextBox\":\r\n self.SetupTextBox(model);\r\n break;\r\n case \"TimePicker\":\r\n self.SetupTimePicker(model);\r\n break;\r\n }\r\n\r\n self.CreateFieldValidator(model);\r\n });\r\n\r\n //self.InitFields(index);\r\n\r\n $(panel).attr(\"data-init\", \"1\");\r\n }; //SetupControls\r\n\r\n /*// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\r\n /// \r\n /// Sets up DatePicker.\r\n /// \r\n /// The field model.\r\n /// */\r\n self.SetupDatePicker = function (model) {\r\n var format = model.InputFormat;\r\n var input = $(\"#f\" + model.FieldId);\r\n input.attr(\"autocomplete\", \"off\");\r\n if (model.FieldType == \"DatePicker\") {\r\n if (format == null || format == \"\") {\r\n format = \"MM/dd/yyyy\";\r\n }\r\n if (\r\n model.FieldValue &&\r\n model.FieldValue.indexOf(\"99\") < 0 &&\r\n model.FieldValue.indexOf(\"88\") < 0\r\n ) {\r\n model.FieldValue = moment(model.FieldValue).format(\r\n format.toUpperCase()\r\n );\r\n input.val(model.FieldValue);\r\n }\r\n var past =\r\n $.grep(model.Edits, function (edit, i) {\r\n return edit.SpecialEdit && edit.SpecialEdit.toUpperCase() == \"PAST\";\r\n }).length > 0;\r\n $(input).kendoDatePicker({\r\n //max: new Date(model.InputMax),\r\n //min: new Date(model.InputMin),\r\n max: past ? new Date() : undefined,\r\n format: format,\r\n //change: function (e) {\r\n // self.DoFieldValueChanged(input);\r\n //},\r\n close: function (e) {\r\n self.ResetField(\"#f\" + model.FieldId);\r\n }\r\n });\r\n $(input).kendoMaskedTextBox({\r\n mask: \"00/00/0000\"\r\n });\r\n } else {\r\n if (format == null || format == \"\") {\r\n format = \"MMMM yyyy\";\r\n }\r\n if (model.FieldValue) {\r\n model.FieldValue = moment(model.FieldValue).format(\r\n format.toUpperCase()\r\n );\r\n input.val(model.FieldValue);\r\n }\r\n $(input).kendoDatePicker({\r\n //max: new Date(model.InputMax),\r\n //min: new Date(model.InputMin),\r\n start: \"year\",\r\n depth: \"year\",\r\n format: format,\r\n //change: function (e) {\r\n // self.DoFieldValueChanged(input);\r\n //},\r\n close: function (e) {\r\n self.ResetField(\"#f\" + model.FieldId);\r\n }\r\n });\r\n }\r\n\r\n $(input).on(\"keydown\", function (e) {\r\n if (e.which == 9) {\r\n self.FieldKeyDown(e);\r\n }\r\n });\r\n\r\n $(input).on(\"keypress\", function (e) {\r\n var datePicker = $(this).data(\"kendoDatePicker\");\r\n var model = $(this).data(\"field\");\r\n if (!model || model.FieldType != \"DatePicker\") {\r\n return;\r\n }\r\n switch (e.which) {\r\n case 84:\r\n case 116:\r\n e.preventDefault();\r\n var date = new Date();\r\n date.setHours(0, 0, 0, 0);\r\n datePicker.value(date);\r\n //self.DoFieldValueChanged(input);\r\n break;\r\n case 66:\r\n case 70:\r\n case 98:\r\n case 102:\r\n e.preventDefault();\r\n var dateString = datePicker.value();\r\n if (dateString == null || dateString == \"\") {\r\n dateString = new Date();\r\n }\r\n var value = new Date(dateString);\r\n if (!isNaN(value)) {\r\n var add = 1;\r\n if (e.which == 66 || e.which == 98) {\r\n add = -1;\r\n }\r\n var newDate = new Date(value);\r\n newDate.setDate(value.getDate() + add);\r\n datePicker.value(newDate);\r\n //self.DoFieldValueChanged(input);\r\n }\r\n break;\r\n case 85:\r\n case 117:\r\n e.preventDefault();\r\n $(this).val(\"99/99/9999\");\r\n break;\r\n case 88:\r\n case 120:\r\n e.preventDefault();\r\n $(this).val(\"88/88/8888\");\r\n }\r\n });\r\n\r\n $(input).on(\"focus\", function (e) {\r\n VR.Edit.LastFocusedField = model.FieldId;\r\n })\r\n\r\n //$(input).on(\"keyup\", self.FieldKeyUp);\r\n\r\n //$(input).on(\"focus\", function (e) {\r\n // $(this).select();\r\n // VR.Image.TypeFromImage.SetField(model, this);\r\n //});\r\n }; //SetupDatePicker\r\n\r\n /*// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= \r\n /// \r\n /// Sets up DateTimePicker.\r\n /// \r\n /// The field model.\r\n /// */\r\n self.SetupDateTimePicker = function (model) {\r\n var input = $(\"#f\" + model.FieldId);\r\n input.attr(\"autocomplete\", \"off\");\r\n //var date = new Date(model.FieldValue);\r\n $(input).kendoDateTimePicker({\r\n //change: function (e) {\r\n // self.DoFieldValueChanged(input);\r\n //},\r\n //max: new Date(model.InputMax),\r\n //min: new Date(model.InputMin),\r\n value: model.FieldValue ? new Date(model.FieldValue) : \"\"\r\n });\r\n $(input).data(\"kendoDateTimePicker\").readonly(!model.CanEdit);\r\n\r\n $(input).on(\"keydown\", function (e) {\r\n if ($(this).hasClass(\"readonly-text\")) {\r\n if (e.which != 9) {\r\n e.preventDefault();\r\n return;\r\n }\r\n }\r\n self.FieldKeyDown(e);\r\n });\r\n\r\n $(input).on(\"keypress\", function (e) {\r\n var datePicker = $(this).data(\"kendoDateTimePicker\");\r\n switch (e.which) {\r\n case 84:\r\n case 116:\r\n e.preventDefault();\r\n var date = new Date();\r\n date.setHours(0, 0, 0, 0);\r\n datePicker.value(date);\r\n self.DoFieldValueChanged(input);\r\n break;\r\n case 66:\r\n case 70:\r\n case 98:\r\n case 102:\r\n e.preventDefault();\r\n var value = new Date(datePicker.value());\r\n if (!isNaN(value)) {\r\n var add = 1;\r\n if (e.which == 66 || e.which == 98) {\r\n add = -1;\r\n }\r\n var newDate = new Date(value);\r\n newDate.setDate(value.getDate() + add);\r\n datePicker.value(newDate);\r\n self.DoFieldValueChanged(input);\r\n }\r\n break;\r\n case 85:\r\n case 117:\r\n e.preventDefault();\r\n $(this).val(\"99/99/9999\");\r\n break;\r\n case 78:\r\n case 110:\r\n e.preventDefault();\r\n $(this).val(\"88/88/8888\");\r\n }\r\n });\r\n\r\n $(input).on(\"keyup\", self.FieldKeyUp);\r\n\r\n $(input).on(\"focus\", function (e) {\r\n $(this).select();\r\n VR.Image.TypeFromImage.SetField(model, this);\r\n VR.Edit.LastFocusedField = model.FieldId;\r\n });\r\n }; //SetupDateTimePicker\r\n\r\n /*// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= \r\n /// \r\n /// Sets up document tracking.\r\n /// \r\n /// */\r\n self.SetupDocTracking = function () {\r\n $(\"#docktrack-menu\").on(VR.Common.IsNavBurger() ? \"touchend\" : \"click\", function (e) {\r\n var event = self.EventName;\r\n var eventId = self.EventId;\r\n var selection = \"doctrack-\" + eventId + \"|event=\" + event;\r\n selection = \"search=\" + encodeURIComponent(selection);\r\n var url =\r\n VR.Common.GetRootURL(\"event/edit\") +\r\n \"event/search?selection=\" +\r\n encodeURIComponent(selection);\r\n nxLoading.start(\"Loading page. Please wait...\");\r\n if (VR.Common.CanOpen) {\r\n window.open(url);\r\n nxLoading.end();\r\n } else {\r\n window.location.href = url;\r\n }\r\n });\r\n }; //SetupDocTracking\r\n self.TakeActionOnField = function (key, message, location, field, model) {\r\n if (key === \"rekeyed\") {\r\n VR.Script.FocusField({ input: field, model: model }, true);\r\n self.RemoveErrorField(model);\r\n model.FieldStatus = null;\r\n } else {\r\n if (key === \"queried\" || key === \"overridden\") {\r\n self.RemoveErrorField(model);\r\n }\r\n self.SetStatus(field, model, key, message, location);\r\n }\r\n }; //TakeActionOnField\r\n\r\n function capitalizeFirstLetters(str) {\r\n return str.toLowerCase().replace(/^\\w|\\s\\w/g, function (letter) {\r\n return letter.toUpperCase();\r\n });\r\n }\r\n\r\n self.BindDropDown = function (data, model, input) {\r\n var clonedData = data.slice(0);\r\n\r\n var groupdiv = $(\"#g\" + model.FieldId + \">div>div\");\r\n $(\"#f\" + model.FieldId).kendoDropDownList({\r\n dataTextField: \"text\",\r\n dataValueField: \"value\",\r\n dataSource: clonedData,\r\n open: function (e) {\r\n if (input.attr(\"readonly\")) {\r\n e.preventDefault();\r\n }\r\n }\r\n });\r\n var readonly = input.attr(\"readonly\");\r\n var parent = $(input).parents(\".k-dropdown\");\r\n $(parent).on(\"keydown\", function (e) {\r\n self.FieldKeyDown(e);\r\n });\r\n $(parent).on(\"keypress\", function (e) {\r\n var input = $(\"#f\" + model.FieldId);\r\n if ($(input).hasClass(\"readonly-text\")) {\r\n return;\r\n }\r\n if (e.key == \" \") {\r\n if (!readonly) {\r\n var dropdownlist = $(input).data(\"kendoDropDownList\");\r\n if (dropdownlist) {\r\n dropdownlist.open();\r\n $(input).select();\r\n }\r\n }\r\n }\r\n });\r\n if (readonly) {\r\n input.data(\"field\", model);\r\n self.SetReadOnly(input, true);\r\n }\r\n }; //BindDropDown\r\n\r\n /*// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= \r\n /// \r\n /// Sets up event activation.\r\n /// \r\n /// */\r\n self.SetupEventActivation = function () {\r\n $(function () {\r\n $(\"#deleterecs-menu\").on(VR.Common.IsNavBurger() ? \"touchend\" : \"click\", function (e) {\r\n VR.Edit.changeRecordActiveStatus(e, true);\r\n });\r\n $(\"#activaterec-menu\").on(VR.Common.IsNavBurger() ? \"touchend\" : \"click\", function (e) {\r\n VR.Edit.changeRecordActiveStatus(e, false);\r\n });\r\n });\r\n }; //SetupEventActivation\r\n\r\n self.changeRecordActiveStatus = function(e, deleteRecord) {\r\n var isactive = self.GetIsActive();\r\n var event = self.EventName;\r\n var eventId = self.EventId;\r\n if (!eventId || eventId == 0) {\r\n VR.Common.ShowError(\"The new record cannot be activated/deactivated.\");\r\n return;\r\n }\r\n if (deleteRecord) {\r\n isactive = \"\";\r\n }\r\n let params = { deleteRecord, isactive, event, eventId };\r\n if (isactive == 'T') {\r\n VR.Common.ShowDeleteRecordMessageBox(\"Are you sure you want to deactivate this record?\", null, [\"yes\", \"no\"], params, deleteEventRecord, \"Record Deactivation Confirmation\");\r\n } else {\r\n VR.Common.ShowDeleteRecordMessageBox(\"Are you sure you want to activate this record?\", null, [\"yes\", \"no\"], params, deleteEventRecord, \"Record Activation Confirmation\");\r\n }\r\n \r\n }\r\n\r\n function deleteEventRecord(params) {\r\n nxLoading.start(\"Posting. Please wait...\");\r\n VR.Common.SecurePost(\r\n \"event/activate\",\r\n {\r\n request: {\r\n name: params.event,\r\n id: params.eventId,\r\n active: params.isactive,\r\n hide: params.deleteRecord ? \"T\" : \"F\"\r\n }\r\n },\r\n function (result) {\r\n if (result.Code != 0) {\r\n VR.Common.HandleInvalidResult(result, \"Activate/Deactivate\", true);\r\n } else {\r\n params.isactive = params.isactive == \"T\" || params.deleteRecord ? \"F\" : \"T\";\r\n var inputs = self.GetInputFields(\"ISACTIVE\");\r\n $.each(inputs, function (index, input) {\r\n self.SetFieldValue(input, params.isactive);\r\n var model = $(input).data(\"field\");\r\n if (model) {\r\n model.HasChange = false;\r\n model.OriginalValue = params.isactive;\r\n }\r\n });\r\n\r\n self.Isactive = params.isactive;\r\n if (params.isactive == \"T\") {\r\n $(\"#hidden-record\").css(\"display\", \"none\");\r\n VR.Common.ShowInfo(\"The record activated.\");\r\n } else {\r\n $(\"#hidden-record\").css(\"display\", \"\");\r\n VR.Common.ShowInfo(\"The record deactivated.\");\r\n }\r\n }\r\n }\r\n ).always(function () {\r\n nxLoading.end();\r\n });\r\n }\r\n /*// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= \r\n /// \r\n /// Sets up fields.\r\n /// \r\n /// The result from the web service.\r\n /// */\r\n self.SetupFields = function (result) {\r\n self.Tabs = [];\r\n if (result.Tabs && result.Tabs.length > 0) {\r\n var first = null;\r\n var last = null;\r\n $.each(result.Tabs, function (index, tab) {\r\n var fields = [];\r\n if (tab.Sections) {\r\n $.each(tab.Sections, function (index, section) {\r\n $.each(section.Fields, function (index, model) {\r\n model.Tab = tab.Name;\r\n model.Section = section.Name;\r\n\r\n if (model.isRetained && editPageData.CRUDType == \"Create\") {\r\n let tempStickyVal = getStickyValue(model.FieldId);\r\n if (tempStickyVal === \"\") {\r\n setStickyValue(model.FieldId, model.FieldValue);\r\n }\r\n else {\r\n model.FieldValue = tempStickyVal;\r\n }\r\n }\r\n\r\n model.FieldValue = VR.Common.ToFormattedValue(model.FieldValue);\r\n model.OriginalValue = VR.Common.ToFormattedValue(\r\n model.OriginalValue\r\n );\r\n if (!!model.FieldValue && model.FieldValue == model.OriginalValue) {\r\n model.PreviousValue = model.OriginalValue;\r\n } else {\r\n model.PreviousValue = \"\";\r\n }\r\n model.HasChange = false;\r\n model.HasChangeOvrd = null;\r\n if (model.FieldValue && self.EventId == 0) {\r\n model.HasChange = true;\r\n }\r\n fields.push(model);\r\n self.Fields.push(model);\r\n $(\"#f\" + model.FieldId).data(\"field\", model);\r\n if (!first) {\r\n first = model;\r\n }\r\n if (last) {\r\n last.Next = model;\r\n model.Prev = last;\r\n }\r\n last = model;\r\n });\r\n });\r\n\r\n self.Tabs.push(fields);\r\n }\r\n });\r\n\r\n if (first) {\r\n first.Prev = last;\r\n last.Next = first;\r\n }\r\n\r\n $(\"#bottom-menu\")\r\n .find(\"a\")\r\n .on(\"click\", function (e) {\r\n var id = $(e.target).attr(\"data-target\");\r\n $(\"#tabs\")\r\n .find(\"a[aria-controls=\" + id + \"]\")\r\n .trigger(\"click\");\r\n $(\"#bottom-button\").trigger(\"click\");\r\n });\r\n\r\n if (self.Tabs.length > 0) {\r\n self.SetupControls(0);\r\n $(\"#tab-content\").css(\"display\", \"\");\r\n\r\n if (VR.Common.IsMobile()) {\r\n $(\"#tab-content\").css({\r\n \"overflow-y\": \"scroll\",\r\n \"-webkit-overflow-scrolling\": \"touch\",\r\n \"max-height\": \"65vh\"\r\n });\r\n }\r\n }\r\n\r\n $(\".tab\").on(\"click\", function (e) {\r\n var id = $(this).attr(\"data-index\");\r\n id = parseInt(id, 10);\r\n self.SetupControls(id);\r\n $(\"#tab-content\").scrollTop(0);\r\n });\r\n }\r\n\r\n var isactive = self.GetIsActive();\r\n if (!isactive || isactive.toUpperCase() == \"T\") {\r\n $(\"#hidden-record\").css(\"display\", \"none\");\r\n } else {\r\n $(\"#hidden-record\").css(\"display\", \"\");\r\n }\r\n }; //SetupFields\r\n\r\n /*// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= \r\n /// \r\n /// Sets up loading of files.\r\n /// \r\n /// */\r\n self.SetupFileLoad = function () {\r\n $(\"#loadfile-menu\").on(VR.Common.IsNavBurger() ? \"touchend\" : \"click\", function (e) {\r\n if (!self.EventId || self.EventId == 0) {\r\n VR.Common.ShowError(\"Please save this record first.\");\r\n return;\r\n }\r\n\r\n $(\"#imagefile-title\").html(\"Load File\");\r\n $(\"#image-file-group\").attr(\"data-file-type\", \"1\");\r\n $(\"#imagefile-button\").attr(\"accept\", \"*\");\r\n $(\"#imagename-text\").val(\"\");\r\n $(\"#image-file\").val(\"\");\r\n $(\"#image-data\").prop(\"data-src\", \"\");\r\n $(\"#image-file-error\").html(\"\");\r\n $(\"#imageedit-isactive\").attr(\"checked\", true);\r\n $(\"#imagefile-modal\").modal(\"show\");\r\n });\r\n\r\n $(\"#loadimage-menu\").on(VR.Common.IsNavBurger() ? \"touchend\" : \"click\", function (e) {\r\n if (!self.EventId || self.EventId == 0) {\r\n VR.Common.ShowError(\"Please save this record first.\");\r\n return;\r\n }\r\n\r\n $(\"#imagefile-title\").html(\"Load Image\");\r\n $(\"#image-file-group\").attr(\"data-file-type\", \"0\");\r\n $(\"#imagefile-button\").attr(\"accept\", \"image/*\");\r\n $(\"#imagename-text\").val(\"\");\r\n $(\"#image-file\").val(\"\");\r\n $(\"#image-data\").prop(\"data-src\", \"\");\r\n $(\"#image-file-error\").html(\"\");\r\n $(\"#imageedit-isactive\").attr(\"checked\", true);\r\n $(\"#imagefile-modal\").modal(\"show\");\r\n });\r\n\r\n self.SetupLoadFile();\r\n }; //SetupFileLoad\r\n\r\n /*// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= \r\n /// \r\n /// Sets up Grid.\r\n /// \r\n /// The result from the web service.\r\n /// */\r\n self.SetupGrid = function (model) {\r\n var field = model;\r\n var section = $(\"#p\" + model.FieldId);\r\n var grid = $(section).data(\"kendoGrid\");\r\n if (grid) {\r\n return;\r\n }\r\n\r\n var input = $(\"#f\" + model.FieldId);\r\n input.removeData(\"field\");\r\n\r\n $(section).html(\"\");\r\n $(section).addClass(\"input-field\");\r\n\r\n var eventId = self.EventId;\r\n var url = VR.Common.GetRootURL(\"event/edit\") + \"data/grid\";\r\n var selection = \"eventId=\" + eventId + \"|fieldId=\" + model.FieldId;\r\n VR.Common.SecurePost(\r\n url,\r\n selection,\r\n function (result) {\r\n if (result.Code != 0) {\r\n VR.Common.HandleInvalidResult(result, \"Grid\", true);\r\n return;\r\n }\r\n\r\n var columns = [];\r\n if (result.Columns) {\r\n for (var i = 0; i < result.Columns.length; i++) {\r\n var model = result.Columns[i];\r\n columns[i] = {\r\n field: model.FieldName,\r\n format: model.Format,\r\n title: model.Title,\r\n width: model.Width\r\n };\r\n }\r\n }\r\n\r\n var dataSource = result.Result;\r\n if (!dataSource) {\r\n dataSource = [];\r\n }\r\n\r\n $.each(dataSource, function (index, row) {\r\n if (result && result.Columns) {\r\n for (var i = 0; i < result.Columns.length; i++) {\r\n var column = result.Columns[i];\r\n row[column.FieldName] = VR.Common.ToDate(row[column.FieldName]);\r\n if (column.Type === \"string\" && typeof row[column.FieldName] === \"string\" && row[column.FieldName].toLowerCase() === \"null\") {\r\n row[column.FieldName] = row[column.FieldName] + \" \";\r\n }\r\n }\r\n }\r\n });\r\n\r\n var dataFields = {};\r\n if (result && result.Columns) {\r\n for (var i = 0; i < result.Columns.length; i++) {\r\n var column = result.Columns[i];\r\n dataFields[column.FieldName] = { type: column.Type };\r\n }\r\n }\r\n\r\n var dataModel = {\r\n fields: dataFields\r\n };\r\n\r\n $(section).kendoGrid({\r\n change: self.RowChanged,\r\n dataSource: {\r\n data: dataSource,\r\n schema: {\r\n model: dataModel\r\n }\r\n },\r\n columns: columns,\r\n height: 300,\r\n mobile: false, //by setting the mobile option to false the grids will render properly on mobile devices today.\r\n sortable: true,\r\n reorderable: true,\r\n scrollable: true,\r\n resizable: true,\r\n toolbar: [\"search\"],\r\n search: {\r\n fields: Object.keys(dataFields)\r\n },\r\n pageable: { pageSize: 10000 },\r\n selectable: \"row\"\r\n });\r\n $(\".k-grid-content\").css(\"height\", \"200px\");\r\n $(section).css(\"width\", \"90%\");\r\n $(section).css(\"height\", \"300px\");\r\n $(\"#g\" + field.FieldId).css(\"padding-left\", \"17px\");\r\n $(\"#l\" + field.FieldId).css(\"padding-left\", \"0\");\r\n if (field.IsEditable || field.IsDisplayOnly) {\r\n var bottom = $(\"#f\" + field.FieldId + \"-msg\");\r\n bottom.removeClass(\"invalid-msg\");\r\n var fieldid = VR.Common.HtmlEscape(field.FieldId);\r\n var html = \"
\";\r\n if (columns.length > 0) {\r\n html +=\r\n \"\";\r\n }\r\n\r\n if (result.CanAdd && field.IsEditable && !field.IsDisplayOnly) {\r\n html +=\r\n \"\";\r\n }\r\n if (result.ShowDocumentButton) {\r\n html += \"\";\r\n }\r\n bottom.html(html);\r\n bottom.css(\"display\", \"\");\r\n var buttons = bottom.find(\".grid-button\");\r\n buttons.on(\"click\", function (e) {\r\n var id = $(this).attr(\"id\");\r\n var header = \"\";\r\n if (id && id.length > 1) {\r\n header = id.substring(0, 1);\r\n id = id.substring(1);\r\n }\r\n\r\n if (header == \"a\") {\r\n if (self.EventId == 0) {\r\n VR.Common.ShowError(\"Please save this event record first.\");\r\n return;\r\n }\r\n self.CanLeavePage(self.AddNewRecord, this);\r\n }\r\n else if (header == \"d\") {\r\n var gridfield = $(\"#p\" + id);\r\n var grid = gridfield.data(\"kendoGrid\");\r\n var row = grid.select();\r\n if (row) {\r\n self.CanLeavePage(self.DisplayGridEvent, {\r\n grid: grid,\r\n selected: row\r\n });\r\n }\r\n }\r\n else if (header == \"o\") {\r\n var gridfield = $(\"#p\" + id);\r\n var grid = gridfield.data(\"kendoGrid\");\r\n var row = grid.select();\r\n if (row) {\r\n let item = grid.dataItem(row);\r\n if (item == null) {\r\n return;\r\n }\r\n let eventId = item[result.Key];\r\n if (eventId) {\r\n let docSelection = \"name=\" + result.EventName + \"|id=\" + eventId.toString() + \"|year=\" + VR.Edit.GetEventYear();\r\n nxLoading.start(\"Loading documents. Please wait...\");\r\n VR.Common.SecurePost(\"report/documents\", docSelection, function (resultDocs) {\r\n nxLoading.end();\r\n $(\"#griddocs-modal\").modal(\"show\");\r\n if (resultDocs.Code === 0 && Array.isArray(resultDocs.Documents)) {\r\n let tableHtml = \"\";\r\n for (let i = 0; i < resultDocs.Documents.length; i++) {\r\n tableHtml += \"\" + resultDocs.Documents[i].Name + \"\" + (resultDocs.Documents[i].IsFax == true ? \"Yes\" : \"No\") +\r\n \"\";\r\n }\r\n var gridDocBody = $(\"#griddocs-table-body\");\r\n if (tableHtml.length == 0) {\r\n tableHtml = \"

No documents

\";\r\n }\r\n gridDocBody.html(tableHtml);\r\n gridDocBody.find(\".griddocs-table-btn\").on(\"click\", function (e) {\r\n let id = $(this).attr(\"id\");\r\n id = id.substring(4);\r\n let windowValue = $(\"#footer-data\").attr(\"data-window\");\r\n let canPrintSelection = \"name=\" + result.EventName + \"|id=\" + id + \"|eventid=\" + eventId + \"|year=|number=|window=\" + windowValue +\r\n \"|cas=\" + VR.Edit.IsCasEvent.toString();\r\n VR.Doc.SendPrintDocumentRequest(canPrintSelection);\r\n });\r\n }\r\n });\r\n }\r\n }\r\n }\r\n });\r\n\r\n buttons.on(\"keydown\", self.FieldKeyDown);\r\n }\r\n\r\n var grid = $(section).data(\"kendoGrid\");\r\n\r\n //Delay so that the documents can be properly queried.\r\n setTimeout(function (e) {\r\n var located = false;\r\n if (result.KeyValue) {\r\n located = VR.Script.SelectRow(\r\n field.FieldId,\r\n result.Key,\r\n result.KeyValue\r\n );\r\n }\r\n\r\n if (!located) {\r\n var row = grid.tbody.find(\"tr:eq(0)\");\r\n grid.select(row);\r\n }\r\n }, 10);\r\n grid.GridKey = result.Key;\r\n grid.GridEvent = result.EventName;\r\n grid.FieldId = field.FieldId;\r\n grid.IsEditable = field.IsEditable;\r\n grid.IsDisplayOnly = field.IsDisplayOnly;\r\n grid.IsKeyCached = result.IsKeyCached;\r\n\r\n var table = $(section).find(\"table\");\r\n if (table && table.length > 0) {\r\n table = table[0];\r\n }\r\n $(table).attr(\"id\", \"f\" + field.FieldId);\r\n $(table).attr(\"data-field-name\", field.FieldName);\r\n $(table).addClass(\"input-field\");\r\n $(table).data(\"field\", field);\r\n $(table).data(\"grid\", result);\r\n $(table).on(\"keydown\", self.FieldKeyDown);\r\n },\r\n true,\r\n undefined,\r\n false,\r\n false\r\n );\r\n if (!self.GridDocsRefreshCreated) {\r\n $(\"#griddocs-close-refresh\").on(\"click\", function () {\r\n location.reload();\r\n });\r\n self.GridDocsRefreshCreated = true;\r\n }\r\n }; //SetupGrid\r\n\r\n /*// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= \r\n /// \r\n /// Sets up image.\r\n /// \r\n /// The result from the web service.\r\n /// */\r\n self.SetupImage = function (model) {\r\n var field = $(\"#f\" + model.FieldId);\r\n field.data(\"field\", model);\r\n var button = $(\"#b\" + model.FieldId);\r\n button.on(\"change\", function () {\r\n var val = $(this).val();\r\n var inputFiles = this.files;\r\n if (inputFiles == undefined || inputFiles.length == 0) {\r\n return;\r\n }\r\n\r\n var inputFile = inputFiles[0];\r\n\r\n var reader = new FileReader();\r\n reader.onload = function (event) {\r\n if (!event || !event.target || !event.target.result) {\r\n VR.Common.ShowError(\r\n \"Could not load file. This is possibly the file is too large.\",\r\n \"Error\"\r\n );\r\n } else if (event.target.result.length > self.MaxImageUpload) {\r\n VR.Common.ShowError(\"The image exceeds the limit (\" + editPageData.MaxImageUpload +\"MB)\", \"Error\");\r\n return;\r\n }\r\n field.prop(\"src\", event.target.result);\r\n field.attr(\"field-changed\", \"1\");\r\n var model = field.data(\"field\");\r\n if (model) {\r\n model.HasChange = (model.HasChangeOvrd == null) ? false : model.HasChangeOvrd;\r\n }\r\n };\r\n reader.onerror = function (event) {\r\n VR.Common.ShowError(\r\n \"Could not load file. This is possibly the file is too large.\",\r\n \"Error\"\r\n );\r\n field.prop(\"src\", null);\r\n field.prop(\"alt\", \"Load error\");\r\n var model = field.data(\"field\");\r\n if (model) {\r\n model.HasChange = (model.HasChangeOvrd == null) ? false : model.HasChangeOvrd;\r\n }\r\n };\r\n reader.readAsDataURL(inputFile);\r\n });\r\n\r\n var parent = field.parents(\".edit-field\");\r\n\r\n parent.find(\".btn-danger\").on(\"click\", function (e) {\r\n field.prop(\"src\", \"\");\r\n field.attr(\"field-changed\", \"1\");\r\n var model = field.data(\"field\");\r\n if (model) {\r\n model.HasChange = (model.HasChangeOvrd == null) ? false : model.HasChangeOvrd;\r\n }\r\n });\r\n\r\n $(parent).css(\"height\", \"auto\");\r\n var buttons = $(parent).find(\".btn\");\r\n buttons.on(\"keydown\", self.FieldKeyDown);\r\n }; //SetupImage\r\n\r\n /*// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= \r\n /// \r\n /// Sets up the the image editors.\r\n /// \r\n /// */\r\n self.SetupImageEdit = function () {\r\n var modal = $(\"#imageeditor-modal\");\r\n\r\n modal.on(\"show.bs.modal\", function (e) {\r\n var editor = $(\"#imageedit-editor\");\r\n editor.attr(\"data-scaleX\", \"\");\r\n editor.attr(\"data-scaleY\", \"\");\r\n $(\"#imageedit-annotetoggle, #imageedit-editannot\").css(\"display\", \"\");\r\n });\r\n\r\n modal.on(\"shown.bs.modal\", function (e) {\r\n $(document).off(\"focusin.modal\"); //Fix for KendoDropDownList closes immediately when the dopdown is opened. http://stackoverflow.com/questions/14795035/twitter-bootstrap-modal-blocks-text-input-field\r\n var fileload = $(this).attr(\"data-fileload\");\r\n if (!fileload) {\r\n var annotation = $(this).attr(\"data-annotation\");\r\n var width = $(this).attr(\"data-annotewidth\");\r\n var height = $(this).attr(\"data-annoteheight\");\r\n VR.Image.Annotation.InitEditorImage(\r\n $(\"#imageedit-editsection\"),\r\n $(\"#imageedit-annotationsection\"),\r\n { annote: annotation, width: width, height: height }\r\n );\r\n }\r\n $(\"#imageedit-dragbutton\").trigger(\"click\");\r\n });\r\n\r\n self.SetupImageEditButtons();\r\n self.SetupImageEditAccept();\r\n self.SetupImageSaveButtons();\r\n\r\n modal = $(\"#tiffeditor-modal\");\r\n\r\n modal.on(\"show.bs.modal\", function (e) { });\r\n\r\n modal.on(\"shown.bs.modal\", function (e) {\r\n $(document).off(\"focusin.modal\"); //Fix for KendoDropDownList closes immediately when the dopdown is opened. http://stackoverflow.com/questions/14795035/twitter-bootstrap-modal-blocks-text-input-field\r\n $(\"#tiffeditor-dragbutton\").trigger(\"click\");\r\n var annotation = $(this).attr(\"data-annotation\");\r\n var width = $(this).attr(\"data-annotewidth\");\r\n var height = $(this).attr(\"data-annoteheight\");\r\n VR.Image.Annotation.InitTiffEditorImage(\r\n $(\"#tiffeditor-editsection\"),\r\n $(\"#tiffeditor-annotationsection\"),\r\n { annote: annotation, width: width, height: height }\r\n );\r\n });\r\n\r\n self.SetupTiffEditorButtons();\r\n self.SetupTiffEditAccept();\r\n self.SetupTiffSaveButtons();\r\n }; // SetupImageEdit\r\n\r\n /*// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= \r\n /// \r\n /// Sets up the accept button for the image editor.\r\n /// \r\n /// */\r\n self.SetupImageEditAccept = function () {\r\n $(\"#imageedit-acceptbutton\").on(\"click\", function () {\r\n var imagedit = $(\"#imageedit-editor\");\r\n var id = imagedit.attr(\"data-editor\");\r\n var editor = $(\"#\" + id);\r\n var image = editor.find(\".edit-image\");\r\n var section = $(\"#imageedit-canvassection\");\r\n var data = null;\r\n var display = section.css(\"display\");\r\n if (display != \"none\") {\r\n var canvas = section.children(\"img\");\r\n if (canvas.length > 0) {\r\n data = canvas.attr(\"src\");\r\n } else {\r\n data = \"\";\r\n }\r\n }\r\n\r\n if (data == null) {\r\n data = $(\"#image-data\").prop(\"data-src\");\r\n }\r\n\r\n image.attr(\"src\", data);\r\n var changed = editor.attr(\"data-changed\");\r\n if (!changed) {\r\n changed = \"\";\r\n }\r\n\r\n if (changed.indexOf(\"image\") == -1) {\r\n changed += \"|image\";\r\n }\r\n\r\n id = id.replace(\"editor\", \"canvas\");\r\n if (display != \"none\") {\r\n VR.Image.Annotation.RecreateAnnote(image, \"imageedit-canvasannote\", id);\r\n } else {\r\n VR.Image.Annotation.CopyObjects(\"imageedit-annotationsection\", id);\r\n }\r\n var parent = $(\"#\" + id).parent();\r\n var canvas = parent.data(\"canvas\");\r\n var json = canvas.toJSON([\r\n \"order\",\r\n \"originalText\",\r\n \"originalWidth\",\r\n \"originalHeight\"\r\n ]);\r\n json = JSON.stringify(json);\r\n var width = canvas.getWidth();\r\n var height = canvas.getHeight();\r\n editor.attr(\"annotation\", json);\r\n editor.attr(\"annote-width\", width);\r\n editor.attr(\"annote-height\", height);\r\n\r\n if (changed.indexOf(\"annote\") == -1) {\r\n changed += \"|annote\";\r\n }\r\n\r\n editor.attr(\"data-changed\", changed);\r\n $(\"#imageeditor-modal\").modal(\"hide\");\r\n });\r\n }; //SetupImagEditAccept\r\n\r\n /*// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= \r\n /// \r\n /// Sets up buttons for image editor.\r\n /// \r\n /// */\r\n self.SetupImageEditButtons = function () {\r\n $(\"#imageedit-buttons\")\r\n .find(\".btn-imageedit\")\r\n .tooltip({\r\n container: \"body\",\r\n trigger: \"hover\"\r\n });\r\n\r\n $(\"#imageedit-dragbutton\").on(\"click\", function (e) {\r\n var section = $(\"#imageedit-editsection\");\r\n var item = section.find(\".cropper-modal\");\r\n item.css(\"opacity\", \"0\");\r\n item = section.find(\".cropper-crop-box\");\r\n item.css(\"display\", \"none\");\r\n $(\"#imageedit-editor\").cropper(\"setDragMode\", \"move\");\r\n $(\"#imageedit-dragbutton\").addClass(\"active\");\r\n $(\"#imageedit-cropbutton\").removeClass(\"active\");\r\n });\r\n\r\n $(\"#imageedit-cropbutton\").on(\"click\", function (e) {\r\n var section = $(\"#imageedit-editsection\");\r\n var item = section.find(\".cropper-modal\");\r\n item.css(\"opacity\", \"0.5\");\r\n item = section.find(\".cropper-crop-box\");\r\n item.css(\"display\", \"\");\r\n $(\"#imageedit-editor\").cropper(\"setDragMode\", \"crop\");\r\n $(\"#imageedit-dragbutton\").removeClass(\"active\");\r\n $(\"#imageedit-cropbutton\").addClass(\"active\");\r\n VR.Image.Annotation.HideAnnotation();\r\n });\r\n\r\n $(\"#imageedit-getimagebutton\").on(\"click\", function (e) {\r\n var section = $(\"#imageedit-editsection\");\r\n var item = section.find(\".cropper-crop-box\");\r\n var display = item.css(\"display\");\r\n if (display == \"none\") {\r\n return;\r\n }\r\n\r\n section.css(\"display\", \"none\");\r\n //var editor = $(\"#imageedit-editor\");\r\n //var width;\r\n //var height;\r\n //if ($(window).width() >= 768) {\r\n // var imageData = editor.cropper('getImageData');\r\n // width = Math.round(imageData.naturalWidth) + \"px\";\r\n // height = Math.round(imageData.naturalHeight) + \"px\";\r\n //} else {\r\n // var modal = $(\"#imageeditor-modal\");\r\n // var size = self.SetImageEditorSize(modal);\r\n // width = size.width + \"px\";\r\n // height = size.height + \"px\";\r\n //}\r\n //var canvas = editor.cropper(\"getCroppedCanvas\");\r\n //$(canvas).css(\"max-height\", height);\r\n //$(canvas).css(\"max-width\", width);\r\n var editor = $(\"#imageedit-editor\");\r\n var annote = $(\"#imageedit-annotation\");\r\n var cropped = $(\"#imageedit-canvassection\");\r\n var cropannote = $(\"#imageedit-canvasannote\");\r\n var cropbox = $(\".cropper-crop-box\")\r\n VR.Image.CreateCroppedImage(section, editor, annote, cropped, cropannote, cropbox);\r\n //section.html(canvas);\r\n cropped.css(\"display\", \"\");\r\n cropannote.css(\"display\", \"\");\r\n $(\"#imageedit-buttons\")\r\n .find(\".btn-cropbutton\")\r\n .css(\"visibility\", \"hidden\");\r\n $(\"#imageedit-slidebars\").css(\"visibility\", \"hidden\");\r\n //$(\"#imageedit-annotetoggle, #imageedit-editannot, #imageedit-slidebars\").css(\"display\", \"none\");\r\n });\r\n\r\n $(\"#imageedit-resetbutton\").on(\"click\", function (e) {\r\n var editor = $(\"#imageedit-editor\");\r\n editor.cropper(\"reset\");\r\n editor.attr(\"data-scaleX\", \"\");\r\n editor.attr(\"data-scaleY\", \"\");\r\n $(\"#imageedit-canvassection, #imageedit-canvasannote\").css(\r\n \"display\",\r\n \"none\"\r\n );\r\n $(\"#imageedit-editsection, #imageedit-annotationsection\").css(\r\n \"display\",\r\n \"\"\r\n );\r\n $(\"#imageedit-buttons\")\r\n .find(\".btn-cropbutton\")\r\n .css(\"visibility\", \"visible\");\r\n $(\"#imageedit-slidebars\").css(\"visibility\", \"visible\");\r\n $(\"#imageedit-dragbutton\").trigger(\"click\");\r\n VR.Image.SlideBars.Reset();\r\n $(\r\n \"#imageedit-annotetoggle, #imageedit-editannot, #imageedit-slidebars\"\r\n ).css(\"display\", \"\");\r\n });\r\n\r\n $(\"#imageedit-annotetoggle\").on(\"click\", function () {\r\n var cropped = $(\"#imageedit-canvassection\");\r\n var display = cropped.css(\"display\");\r\n if (display == \"none\") {\r\n if (VR.Image.Annotation.IsHidden()) {\r\n $(\"#imageedit-resetbutton\").trigger(\"click\");\r\n VR.Image.Annotation.ShowAnnotation();\r\n } else {\r\n VR.Image.Annotation.HideAnnotation();\r\n }\r\n } else {\r\n var cropannote = $(\"#imageedit-canvasannote\");\r\n var display = cropannote.css(\"display\");\r\n if (display == \"none\") {\r\n cropannote.css(\"display\", \"\");\r\n } else {\r\n cropannote.css(\"display\", \"none\");\r\n }\r\n }\r\n });\r\n\r\n $(\"#imageedit-editannot\").on(\"click\", function () {\r\n var cropped = $(\"#imageedit-canvassection\");\r\n var display = cropped.css(\"display\");\r\n if (display == \"none\") {\r\n $(\"#imageedit-resetbutton\").trigger(\"click\");\r\n VR.Image.Annotation.ShowAnnotation();\r\n VR.Image.Annotation.ShowAnnotationEditor(\r\n \"imageedit-editsection\",\r\n \"imageedit-annotationsection\"\r\n );\r\n } else {\r\n VR.Image.Annotation.ShowCroppedAnnoteEditor(\r\n \"imageedit-canvassection\",\r\n \"imageedit-canvasannote\"\r\n );\r\n }\r\n });\r\n }; //SetupImageEditButtons\r\n\r\n /*// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= \r\n /// \r\n /// Sets up the image save buttons.\r\n /// \r\n /// */\r\n self.SetupImageSaveButtons = function () {\r\n $(\"#imageedit-savetodatabse, #imageedit-savetofile\").on(\"click\", function (\r\n e\r\n ) {\r\n var modal = $(\"#imageeditor-modal\");\r\n modal.modal(\"hide\");\r\n var location = \"D\";\r\n var id = $(this).attr(\"id\");\r\n if (id == \"imageedit-savetofile\") {\r\n location = \"P\";\r\n }\r\n\r\n var event = self.EventName;\r\n var appfunc = $(\"#imageedit-appfunction\");\r\n if (appfunc.length == 0) {\r\n appfunc = \"\";\r\n } else {\r\n appfunc = appfunc.val();\r\n }\r\n var isactive = $(\"#imageedit-isactive\");\r\n if (isactive.length == 0) {\r\n isactive = true;\r\n } else {\r\n isactive = isactive.attr(\"checked\");\r\n if (isactive == \"checked\") {\r\n isactive = true;\r\n }\r\n }\r\n var description = $(\"#imageedit-description\").val();\r\n var fileType = $(\"#image-file-group\").attr(\"data-file-type\");\r\n var data = null;\r\n var display = \"\";\r\n if (fileType == \"0\") {\r\n var section = $(\"#imageedit-canvassection\");\r\n display = section.css(\"display\");\r\n if (display != \"none\") {\r\n var image = section.children(\"img\");\r\n if (image.length > 0) {\r\n data = image.attr(\"src\");\r\n } else {\r\n data = \"\";\r\n }\r\n }\r\n }\r\n\r\n if (data == null) {\r\n data = $(\"#image-data\").prop(\"data-src\");\r\n }\r\n\r\n if (data && data != \"\") {\r\n if (data.length > self.MaxImageUpload) {\r\n VR.Common.ShowError(\"The file size exceeds the limit (\" + editPageData.MaxImageUpload+\"MB).\");\r\n return;\r\n }\r\n data = data.replace(/\\+/g, \"#\");\r\n } else {\r\n data = \"\";\r\n }\r\n\r\n var year = self.GetFieldValue(\"EVENT_YEAR\");\r\n var number = self.GetFieldValue(\"STATE_FILE_NUMBER\", true);\r\n var extension = $(\"#image-data\").prop(\"data-extension\");\r\n if (extension) {\r\n extension = extension.toLowerCase();\r\n switch (extension) {\r\n case \"jpg\":\r\n extension = \"jpeg\";\r\n break;\r\n case \"tif\":\r\n extension = \"tiff\";\r\n break;\r\n }\r\n }\r\n\r\n var newext;\r\n if ($(\"#imageeditor-filetype\").css(\"display\") == \"none\") {\r\n var imageextension = $(\"#imageeditor-extension\");\r\n var dropdown = imageextension.data(\"kendoDropDownList\");\r\n if (dropdown) {\r\n newext = dropdown.value();\r\n } else {\r\n newext = imageextension.val();\r\n }\r\n } else {\r\n newext = extension;\r\n }\r\n\r\n var annote = { json: \"\", width: \"\", height: \"\" };\r\n var fileload = modal.attr(\"data-fileload\");\r\n if (!fileload) {\r\n if (display != \"none\") {\r\n annote = VR.Image.Annotation.JsonString(\r\n \"imageedit-canvasannote-canvas\"\r\n );\r\n } else {\r\n annote = VR.Image.Annotation.JsonString(\"imageedit-annotation\");\r\n }\r\n }\r\n var url = VR.Common.GetRootURL(\"event/edit\") + \"data/imageload\";\r\n var selection = {\r\n EventGroup: event,\r\n eventId: self.EventId,\r\n appfunc: appfunc,\r\n isactive: isactive,\r\n description: description,\r\n location: location,\r\n extension: extension,\r\n newext: newext,\r\n year: year,\r\n number: number,\r\n annote: annote.json,\r\n width: annote.width,\r\n height: annote.height,\r\n data: data,\r\n filename: $(\"#imageedit-filename\").val()\r\n };\r\n VR.Common.SecurePost(\r\n url,\r\n { imageLoad: selection },\r\n function (result) {\r\n if (result.Code != 0 || result.Image == null) {\r\n VR.Common.HandleInvalidResult(result, \"File Load\", false);\r\n } else {\r\n var list = $(\"#image-list\");\r\n list.find(\".image\").off(\"dblclick\");\r\n var images = self.ImageDataSource.data();\r\n if (images.length == 0) {\r\n images = [];\r\n }\r\n images.push(result.Image);\r\n self.ImageDataSource.data(images);\r\n\r\n var pager = $(\"#image-pager\").data(\"kendoPager\");\r\n if (pager) {\r\n pager.refresh();\r\n }\r\n var kendoList = list.data(\"kendoListView\");\r\n if (kendoList) {\r\n kendoList.refresh();\r\n\r\n list.find(\".image\").on(\"dblclick\", function (e) {\r\n self.ShowImageWindow(this.id);\r\n });\r\n }\r\n\r\n self.ImageCount++;\r\n if (VR.Common.IsMobile()) {\r\n $(\"#mobileImagesBtnText\").html(VR.Common.HtmlEscape(self.ImageCount));\r\n }\r\n else {\r\n $(\"#images-count\").html(\"Image count: \" + VR.Common.HtmlEscape(self.ImageCount));\r\n }\r\n }\r\n },\r\n true,\r\n undefined,\r\n false,\r\n false\r\n );\r\n });\r\n }; //SetupImageSaveButtons\r\n\r\n /*// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= \r\n /// \r\n /// Sets up the errors button and count.\r\n /// \r\n /// */\r\n self.SetupErrorCount = function () {\r\n if (VR.Common.IsMobile()) {\r\n let errorBtn = $(\"#errors-count\");\r\n errorBtn.show();\r\n $('#validation-panel').hide();\r\n errorBtn.removeClass();\r\n errorBtn.addClass(\"glyphicon glyphicon-warning-sign\");\r\n errorBtn.html(`${self.GetFieldErrorCount()}`);\r\n errorBtn.css({ \"font-size\": \"30px\", \"display\": \"inline\", \"padding\": \"10px 8px\" });\r\n $(\"#mobileErrorsBtnText\").css({ \"font-size\": \"30px\", \"position\": \"relative\", \"top\": \"-5px\", \"left\": \"5px\", \"color\": \"black\", \"font-weight\": \"bold\" });\r\n errorBtn.on(\"touchend\", function (e) {\r\n $(\"#validation-panel\").toggle();\r\n });\r\n }\r\n }; //SetupErrorCount\r\n\r\n /*// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= \r\n /// \r\n /// Sets up Label.\r\n /// \r\n /// The result from the web service.\r\n /// */\r\n self.SetupLabel = function (model) {\r\n let startHtml = $(\"#p\" + model.FieldId + \" > label\").html();\r\n $(\"#p\" + model.FieldId + \" > label\").html(startHtml.replaceAll(\"\\n\", \"
\"));\r\n }; //SetupLabel\r\n\r\n /*// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= \r\n /// \r\n /// Sets up linking.\r\n /// \r\n /// */\r\n self.SetupLinking = function () {\r\n $(\".linking-menu\").on(VR.Common.IsNavBurger() ? \"touchend\" : \"click\", function (e) {\r\n var openNew = $(this).attr(\"data-opennew\");\r\n $(this).removeAttr(\"data-opennew\");\r\n var target = $(this).attr(\"data-target\");\r\n if (!target) {\r\n target = \"\";\r\n }\r\n $(this).removeAttr(\"data-target\");\r\n var event = self.EventName;\r\n var eventId = self.EventId;\r\n var value = self.GetFieldData();\r\n var selection = \"event=\" + event + \"|id=\" + eventId + \"|value=\" + value;\r\n var url = VR.Common.GetRootURL(\"event/edit\") + \"event/linking\";\r\n VR.Common.SecurePost(\r\n url,\r\n selection,\r\n function (result) {\r\n if (!result || result.Code != 0) {\r\n VR.Common.HandleInvalidResult(result, \"Linking\", true);\r\n } else {\r\n nxLoading.start(\"Loading page. Please wait...\");\r\n var href = VR.Common.GetRootURL();\r\n var selection =\r\n e.target.id +\r\n \"|\" +\r\n result.LinkingSetupId +\r\n \"|\" +\r\n self.IsCasEvent +\r\n \"|\" +\r\n target;\r\n selection = \"search=\" + encodeURIComponent(selection);\r\n href +=\r\n \"event/search?selection=\" +\r\n encodeURIComponent(selection);\r\n if (VR.Common.CanOpen || openNew) {\r\n window.open(href);\r\n nxLoading.end();\r\n } else {\r\n window.location.href = href;\r\n }\r\n }\r\n },\r\n true,\r\n undefined,\r\n false,\r\n false\r\n );\r\n });\r\n }; //SetupLinking\r\n\r\n /*// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= \r\n /// \r\n /// Sets up the load file dialog box.\r\n /// \r\n /// */\r\n self.SetupLoadFile = function () {\r\n $(\"#imagefile-modal\").on(\"shown.bs.modal\", function (e) {\r\n $(\"#imagename-text\").focus();\r\n });\r\n var uploadLength = null\r\n $(\"#imagefile-button\").on(\"change\", function (e) {\r\n var val = $(this).val();\r\n if (val == \"\") {\r\n return;\r\n }\r\n $(\"#image-file\").val(val);\r\n var inputFiles = this.files;\r\n if (inputFiles == undefined || inputFiles.length == 0) {\r\n return;\r\n }\r\n var inputFile = inputFiles[0];\r\n var filename = \"\";\r\n if (inputFile) {\r\n filename = inputFile.name;\r\n }\r\n\r\n $(\"#imageedit-filename\").html(filename);\r\n\r\n var reader = new FileReader();\r\n reader.onload = function (event) {\r\n if (!event || !event.target || !event.target.result) {\r\n VR.Common.ShowError(\r\n \"Could not load file. This is possibly the file is too large.\",\r\n \"Error\"\r\n );\r\n $(\"#image-data\").prop(\"data-src\", \"\");\r\n }\r\n uploadLength = event.target.result.length\r\n $(\"#image-data\").prop(\"data-src\", event.target.result);\r\n $(\"#imagefile-button\").val(\"\");\r\n };\r\n\r\n reader.onerror = function (event) {\r\n VR.Common.ShowError(\r\n \"Could not load file. This is possibly the file is too large.\",\r\n \"Error\"\r\n );\r\n $(\"#image-data\").prop(\"data-src\", \"\");\r\n };\r\n reader.readAsDataURL(inputFile);\r\n });\r\n\r\n $(\"#loadfile-button\").on(\"click\", function (e) {\r\n var val = $(\"#image-file\").val();\r\n if (!val || val == \"\") {\r\n $(\"#image-file-error\").html(\"Please select a file\");\r\n return;\r\n }\r\n\r\n if (uploadLength > self.MaxImageUpload) {\r\n VR.Common.ShowError(\"The image exceeds the limit (\" + editPageData.MaxImageUpload + \"MB)\", \"Error\", null, 7500);\r\n $(\"#image-data\").prop(\"data-src\", \"\");\r\n return;\r\n } else {\r\n $(\"#image-file-error\").html(\"\");\r\n $(\"#imagefile-modal\").modal(\"hide\");\r\n self.LoadImageFile();\r\n }\r\n\r\n \r\n });\r\n }; //SetupLoadFile\r\n\r\n /*// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= \r\n /// \r\n /// Sets up fields.\r\n /// \r\n /// The result from the web service.\r\n /// */\r\n self.SetupMaskedEdit = function (model) {\r\n var input = $(\"#f\" + model.FieldId);\r\n var maskedtextbox = $(input).data(\"kendoMaskedTextBox\");\r\n if (!maskedtextbox) {\r\n input.attr(\"autocomplete\", \"off\");\r\n input.kendoMaskedTextBox({\r\n mask: model.Mask,\r\n unmaskOnPost: false\r\n });\r\n }\r\n\r\n input.on(\"focus\", function (e) {\r\n $(this).select();\r\n VR.Image.TypeFromImage.SetField(model, this);\r\n VR.Edit.LastFocusedField = model.FieldId;\r\n });\r\n\r\n input.on(\"keydown\", function (e) {\r\n if (\r\n $(this).hasClass(\"readonly-text\") &&\r\n $(this).is(\":not([role='listbox'])\")\r\n ) {\r\n if (e.which != 9) {\r\n e.preventDefault();\r\n return;\r\n }\r\n }\r\n self.FieldKeyDown(e);\r\n });\r\n\r\n input.on(\"keyup\", self.FieldKeyUp);\r\n\r\n input.on(\"keypress\", function (e) {\r\n var maskedEdit = $(this).data(\"kendoMaskedTextBox\");\r\n var model = $(this).data(\"field\");\r\n if (\r\n !model ||\r\n (maskedEdit.options && maskedEdit.options.mask != \"00/00/0000\")\r\n ) {\r\n return;\r\n }\r\n switch (e.which) {\r\n case 84:\r\n case 116:\r\n e.preventDefault();\r\n var date = new Date();\r\n maskedEdit.value(VR.Common.ToDateString(date.setHours(0, 0, 0, 0)));\r\n break;\r\n case 66:\r\n case 70:\r\n case 98:\r\n case 102:\r\n e.preventDefault();\r\n var value = new Date(maskedEdit.value());\r\n if (!isNaN(value)) {\r\n var add = 1;\r\n if (e.which == 66 || e.which == 98) {\r\n add = -1;\r\n }\r\n var newDate = new Date(value);\r\n newDate.setDate(value.getDate() + add);\r\n maskedEdit.value(VR.Common.ToDateString(newDate));\r\n }\r\n break;\r\n case 85:\r\n case 117:\r\n e.preventDefault();\r\n maskedEdit.value(\"99/99/9999\");\r\n break;\r\n case 78:\r\n case 110:\r\n e.preventDefault();\r\n maskedEdit.value(\"88/88/8888\");\r\n break;\r\n case 9: self.FieldKeyDown(e);\r\n }\r\n });\r\n }; //SetupMaskedEdit\r\n\r\n /*// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= \r\n /// \r\n /// Setsup the Button control.\r\n /// \r\n /// The field model.\r\n /// */\r\n self.SetupMemoBox = function (model) {\r\n //var value = VR.Common.HtmlEscape(model.FieldValue);\r\n //var html = \"\";\r\n //$(\"#p\" + model.FieldId).html(html);\r\n var panel = $(\"#p\" + model.FieldId);\r\n panel.css(\"height\", \"auto\");\r\n var input = $(\"#f\" + model.FieldId);\r\n $(input).val(model.FieldValue);\r\n input.attr(\"autocomplete\", \"off\");\r\n input.attr(\"spellcheck\", model.SpellCheck);\r\n input.attr(\"maxlength\", model.MaxLength);\r\n input.attr(\"rows\", model.MemoBoxRows);\r\n input.on(\"keydown\", self.FieldKeyDown);\r\n input.on(\"keyup\", self.FieldKeyUp);\r\n input.on(\"focus\", function (e) {\r\n VR.Image.TypeFromImage.SetField(model, this);\r\n VR.Edit.LastFocusedField = model.FieldId;\r\n });\r\n }; //SetupMemoBox\r\n\r\n /*// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= \r\n /// \r\n /// Setsup the MultiSelect control.\r\n /// \r\n /// The field model.\r\n /// */\r\n self.SetupMultiSelect = function (model) {\r\n var input = $(\"#f\" + model.FieldId);\r\n input.attr(\"autocomplete\", \"off\");\r\n input.removeData(\"field\");\r\n var disabled = input.attr(\"disabled\");\r\n var value = VR.Common.HtmlEscape(model.FieldValue);\r\n var html =\r\n \"\";\r\n var panel = $(\"#p\" + model.FieldId);\r\n $(panel).html(html);\r\n\r\n var dataSource = [];\r\n if (model.DropDownList && model.DropDownValues) {\r\n if (model.DropDownList && model.DropDownValues) {\r\n for (var i = 0; i < model.DropDownList.length; i++) {\r\n dataSource.push({\r\n text: model.DropDownList[i],\r\n value: model.DropDownValues[i]\r\n });\r\n }\r\n }\r\n } else {\r\n var fieldId = model.FieldId;\r\n dataSource = new kendo.data.DataSource({\r\n transport: {\r\n read: function (options) {\r\n var input = $(\"#f\" + fieldId)\r\n .parent()\r\n .find(\"input\");\r\n var val = $(input).val();\r\n val = encodeURIComponent(val);\r\n var model = $(input).data(\"field\");\r\n var filter = self.GetFilterValues(model);\r\n var voidVal = \"\";\r\n if (model && model.VoidField) {\r\n voidVal = self.GetFieldValue(model.VoidField);\r\n }\r\n performLookup(\r\n fieldId,\r\n val,\r\n filter,\r\n \"\",\r\n voidVal,\r\n \"\",\r\n self.EventYear,\r\n function (result) {\r\n if (result.Code == 0) {\r\n var data = [];\r\n if (result.List) {\r\n for (var i = 0; i < result.List.length; i++) {\r\n var value = result.List[i];\r\n data.push({ text: value, value: value });\r\n }\r\n }\r\n\r\n if (!!options) options.success(data);\r\n else {\r\n // we need to apply the changes here if options is not assigned.\r\n $(\"#f\" + fieldId)\r\n .data(\"kendoComboBox\")\r\n .setDataSource(data);\r\n }\r\n if (!input.is(\":focus\")) {\r\n $(\"#f\" + fieldId)\r\n .data(\"kendoComboBox\")\r\n .close();\r\n }\r\n return data;\r\n } else {\r\n options.error(result);\r\n VR.Common.HandleInvalidResult(result, \"Lookup\", true);\r\n return [];\r\n }\r\n }\r\n );\r\n }\r\n },\r\n serverFiltering: true\r\n });\r\n }\r\n\r\n var list = null;\r\n if (model.FieldValue && model.FieldValue != \"\") {\r\n list = model.FieldValue.split(\"*\");\r\n }\r\n\r\n var values = [];\r\n if (list && list.length > 0) {\r\n for (var i = 0; i < list.length; i++) {\r\n var val = list[i];\r\n values.push({ text: val, value: val });\r\n }\r\n }\r\n\r\n input = $(\"#f\" + model.FieldId);\r\n $(input).kendoMultiSelect({\r\n autoBind: false,\r\n dataTextField: \"text\",\r\n dataValueField: \"value\",\r\n dataSource: dataSource,\r\n deley: 2000,\r\n filter: \"contains\",\r\n value: values\r\n });\r\n\r\n input.addClass(\"input-field\");\r\n input.attr(\"data-field-name\", model.FieldName);\r\n input.data(\"field\", model);\r\n if (disabled) {\r\n self.SetReadOnly(input, true);\r\n }\r\n var multiSelect = panel.find(\".k-input\");\r\n multiSelect.on(\"keydown\", self.FieldKeyDown);\r\n multiSelect.on(\"focus\", function (e) {\r\n VR.Image.TypeFromImage.SetField(model, this);\r\n VR.Edit.LastFocusedField = model.FieldId;\r\n });\r\n }; //SetupMultiSelect\r\n\r\n /*// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= \r\n /// \r\n /// Setsup the next button.\r\n /// \r\n /// */\r\n self.SetupNextButtons = function () {\r\n $(\"#tab-content\")\r\n .find(\".btn-next\")\r\n .on(\"click\", function (e) {\r\n var target = $(this).attr(\"data-target\");\r\n var model = $(\"#f\" + target).data(\"field\");\r\n if (model) {\r\n var index = self.Fields.indexOf(model);\r\n for (var i = 0; i < self.Fields.length; i++) {\r\n index = (index + 1) % self.Fields.length;\r\n model = self.Fields[index];\r\n if (\r\n model.FieldType != \"Hidden\" &&\r\n model.FieldType != \"Label\" &&\r\n model.IsEnabled &&\r\n model.IsEditable\r\n ) {\r\n break;\r\n }\r\n }\r\n\r\n if (model && model.FieldId) {\r\n VR.Script.FocusField(\r\n { input: \"#f\" + model.FieldId, model: model },\r\n false\r\n );\r\n }\r\n }\r\n });\r\n }; //SetupNextButtons\r\n\r\n /*// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= \r\n /// \r\n /// Sets up record numbering.\r\n /// \r\n /// */\r\n self.SetupNumberRecord = function () {\r\n $(\"#numberrec-menu\").on(VR.Common.IsNavBurger() ? \"touchend\" : \"click\", function (e) {\r\n var isactive = self.GetIsActive();\r\n var event = self.EventName;\r\n var eventId = self.EventId;\r\n if (!eventId || eventId == 0) {\r\n VR.Common.ShowError(\"The new record cannot be numbered.\");\r\n return;\r\n }\r\n //var inputs = $(\"#tab-content\").find(\"input[data-field-name='STATE_FILE_NUMBER']\");\r\n var fields = self.GetInputFields(\"STATE_FILE_NUMBER\");\r\n if (fields.length == 0) {\r\n VR.Common.ShowError(\"The state file number field not found.\");\r\n return;\r\n }\r\n\r\n var value = self.GetFieldValue(\"STATE_FILE_NUMBER\");\r\n if (value && !self.CanNumberOverride) {\r\n VR.Common.ShowError(\"The state file number field already exists.\");\r\n return;\r\n }\r\n\r\n var isNumberReady = false;\r\n //inputs = $(\"#tab-content\").find(\"input[data-field-name='OK_TO_NUMBER']\");\r\n var inputs = self.GetInputFields(\"OK_TO_NUMBER\");\r\n if (inputs.length == 0) {\r\n isNumberReady = true;\r\n } else {\r\n value = self.GetFieldValue(\"OK_TO_NUMBER\");\r\n if (value == \"Y\") {\r\n isNumberReady = true;\r\n }\r\n }\r\n\r\n if (isNumberReady) {\r\n //inputs = $(\"#tab-content\").find(\"input[data-field-name='REGISTER_READY']\");\r\n inputs = self.GetInputFields(\"REGISTER_READY\");\r\n if (inputs.length == 0) {\r\n isNumberReady = true;\r\n } else {\r\n value = self.GetFieldValue(\"REGISTER_READY\");\r\n if (value == \"Y\") {\r\n isNumberReady = true;\r\n }\r\n }\r\n }\r\n\r\n if (!isNumberReady) {\r\n VR.Common.ShowError(\r\n \"The indicator field on the form in the event record indicates that the record is not \" +\r\n \"ready to number because of errors or incomplete entries. Please complete the record \" +\r\n \"properly and try again.\"\r\n );\r\n return;\r\n }\r\n\r\n var regCode = self.GetFieldValue(\"REG_TYPE_CODE\", true);\r\n var eventYear = self.GetFieldValue(\"EVENT_YEAR\", true);\r\n var modTypeid = self.ModTypeId;\r\n if (modTypeid == null || modTypeid == 0) {\r\n modTypeid = \"\";\r\n }\r\n\r\n var selection =\r\n \"name=\" +\r\n event +\r\n \"|id=\" +\r\n eventId +\r\n \"|regtype=\" +\r\n regCode +\r\n \"|year=\" +\r\n eventYear +\r\n \"|modtype=\" +\r\n modTypeid;\r\n nxLoading.start(\"Posting. Please wait...\");\r\n VR.Common.SecurePost(\r\n \"event/number\",\r\n selection,\r\n function (result) {\r\n if (result.Code != 0) {\r\n VR.Common.HandleInvalidResult(result, \"Number\", false);\r\n } else {\r\n var inputs = $(\"#tab-content\").find(\r\n \"input[data-field-name='STATE_FILE_NUMBER']\"\r\n );\r\n if (inputs.length > 0) {\r\n $.each(inputs, function (index, input) {\r\n self.SetFieldValue(input, result.Number);\r\n var model = $(input).data(\"field\");\r\n if (model) {\r\n model.HasChange = false;\r\n model.OriginalValue = result.Number;\r\n }\r\n });\r\n }\r\n\r\n if (result.ChangedFields && result.ChangedFields.length > 0) {\r\n $.each(result.ChangedFields, function (index, field) {\r\n var inputs = $(\"#tab-content\").find(\r\n \"input[data-field-name='\" + field.FieldName + \"']\"\r\n );\r\n $.each(inputs, function (i, input) {\r\n self.SetFieldValue(input, field.Value);\r\n var model = $(input).data(\"field\");\r\n if (model) {\r\n model.HasChange = false;\r\n model.OriginalValue = field.Value;\r\n }\r\n });\r\n });\r\n }\r\n\r\n VR.Common.ShowInfo(\"The record numbered.\");\r\n }\r\n },\r\n false\r\n ).always(function () {\r\n nxLoading.end();\r\n });\r\n });\r\n }; //SetupNumberRecord\r\n\r\n /*// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= \r\n /// \r\n /// Setsup the NumericTextBox control.\r\n /// \r\n /// The field model.\r\n /// */\r\n self.SetupNumericTextBox = function (model) {\r\n var format = model.InputFormat;\r\n if (!format || format == \"\") {\r\n format = \"c\";\r\n }\r\n\r\n var input = $(\"#f\" + model.FieldId);\r\n input.attr(\"autocomplete\", \"off\");\r\n var settings = {\r\n format: format,\r\n decimals: 3,\r\n display: \"initial\"\r\n };\r\n var max = parseFloat(model.InputMax);\r\n if (!isNaN(max)) settings.max = max;\r\n var min = parseFloat(model.InputMin);\r\n if (!isNaN(min)) settings.min = min;\r\n var step = parseFloat(model.InputStep);\r\n if (!isNaN(step) && step !== 0) settings.step = step;\r\n input.kendoNumericTextBox(settings);\r\n input.data(\"kendoNumericTextBox\").value(model.FieldValue);\r\n\r\n input.on(\"keydown\", self.FieldKeyDown);\r\n input.on(\"keyup\", self.FieldKeyUp);\r\n input.prop(\"type\", \"number\");\r\n input.on(\"focus\", function (e) {\r\n $(this).select();\r\n VR.Image.TypeFromImage.SetField(model, this);\r\n VR.Edit.LastFocusedField = model.FieldId;\r\n });\r\n }; //SetupNumericTextBox\r\n\r\n /*// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= \r\n /// \r\n /// Setsup the notes.\r\n /// \r\n /// */\r\n self.SetupNotes = function () {\r\n var dataVal = $(\"#data-value\");\r\n var value = dataVal.attr(\"data-note\");\r\n if (value != \"\") {\r\n self.CanNotes =\r\n value && value.length == 5 && value.substring(0, 1) == \"1\";\r\n self.CanSaveNotes =\r\n value && value.length == 5 && value.substring(1, 2) == \"1\";\r\n self.CanNewNotes =\r\n value && value.length == 5 && value.substring(2, 3) == \"1\";\r\n self.CanDeleteNotes =\r\n value && value.length == 5 && value.substring(3, 4) == \"1\";\r\n self.IsNotesAdmin =\r\n value && value.length == 5 && value.substr(4, 1) == \"1\";\r\n }\r\n var menu = $(\"#shownotes-menu\");\r\n var recordid = self.EventId;\r\n if (!self.CanNotes || recordid == 0) {\r\n menu.css(\"display\", \"none\");\r\n if (VR.Common.IsMobile()) {\r\n $(\"#notes-count\").css(\"display\", \"none\");\r\n }\r\n } else {\r\n menu.css(\"display\", \"block\");\r\n menu.on(VR.Common.IsNavBurger() ? \"touchend\" : \"click\", function (e) {\r\n self.ShowNotes(\"0\");\r\n });\r\n let notesBtn = $(\"#notes-count\");\r\n if (VR.Common.IsMobile()) {\r\n notesBtn.removeClass();\r\n notesBtn.addClass(\"glyphicon glyphicon-comment\");\r\n notesBtn.html(`${self.NotesCount}`);\r\n notesBtn.css({ \"font-size\": \"30px\", \"display\": \"inline\", \"padding\": \"10px 8px\" });\r\n $(\"#mobileNotesBtnText\").css({ \"font-size\": \"30px\", \"position\": \"relative\", \"top\": \"-5px\", \"left\": \"5px\", \"color\": \"black\", \"font-weight\": \"bold\" });\r\n notesBtn.on(\"touchend\", function (e) {\r\n self.ShowNotes(\"0\");\r\n });\r\n } else {\r\n notesBtn.on(\"dblclick\", function (e) {\r\n self.ShowNotes(\"0\");\r\n });\r\n }\r\n }\r\n dataVal.attr(\"data-note\", \"\");\r\n }; //SetupNotes\r\n\r\n /* =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= \r\n /// \r\n /// Sets up onbeforeunload.\r\n /// \r\n /// */\r\n self.SetupOnBeforeUnload = function () {\r\n var unloading = false;\r\n $(window).on(\"beforeunload\", function (e) {\r\n if (self.IsDisplayOnly) {\r\n return;\r\n }\r\n if (self.CanLeaveValidated == true) {\r\n self.CanLeaveValidated = false;\r\n return;\r\n }\r\n var returnValue = \"\";\r\n if (\r\n (!self.CanSaveWithEdits && !self.CanSaveWithoutEdits) ||\r\n !self.CanSave ||\r\n self.CanClose\r\n ) {\r\n return;\r\n }\r\n\r\n $.each(self.Fields, function (index, model) {\r\n if (model.HasChange) {\r\n returnValue = \"You have unsaved changes. \";\r\n }\r\n });\r\n if (returnValue) {\r\n setTimeout(function () {\r\n if (!unloading) {\r\n nxLoading.end();\r\n }\r\n }, 4000);\r\n return returnValue;\r\n }\r\n return true;\r\n });\r\n $(window).on(\"unload\", function () {\r\n unloading = true;\r\n });\r\n }; //SetupOnBeforeUnload\r\n\r\n /* =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= \r\n /// \r\n /// Sets up on unload event handler.\r\n /// \r\n /// */\r\n self.SetupOnUnload = function () {\r\n if (self.IsDataCached && self.EventId > 0) {\r\n var selection = \"event=\" + self.EventName + \"|id=\" + self.EventId;\r\n VR.Common.SecurePost(\"data/eventcache\", selection, function (result) {\r\n if (result.Code == 1460) {\r\n var url = self.Referrer;\r\n var footer;\r\n if (url && url.indexOf(\"/event/edit\") < 0) {\r\n footer =\r\n \"This page will go back to one of previously visited pages where you can go safely.\";\r\n url = self.Referrer;\r\n } else {\r\n footer = \"\\n This page will go back to the home page.\";\r\n url = VR.Common.GetRootURL();\r\n }\r\n self.CanLeaveValidated = true;\r\n VR.Common.ShowErrorMessage(result, \"Data Check\", footer, function () {\r\n window.location.href = url;\r\n });\r\n } else if (result.Code != 0) {\r\n VR.Common.HandleInvalidResult(result, \"Data Check\", false);\r\n }\r\n });\r\n }\r\n\r\n $(window).on(\"unload\", function () {\r\n if (self.EventId == 0) {\r\n return;\r\n }\r\n var windowId = $(\"#footer-data\").attr(\"data-window\");\r\n var selection =\r\n \"window=\" +\r\n windowId +\r\n \"|event=\" +\r\n self.EventName +\r\n \"|id=\" +\r\n self.EventId;\r\n VR.Common.SecurePost(\"home/close\", selection, function (result) {\r\n if (result.Code != 0) {\r\n VR.Common.HandleInvalidResult(result, \"Close\", true);\r\n }\r\n });\r\n });\r\n }; //SetupOnUnload\r\n\r\n /* =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= \r\n /// \r\n /// Sets up general popup menu.\r\n /// \r\n /// */\r\n self.SetupPopupMenu = function () {\r\n $(document).on(\"contextmenu\", function (event) {\r\n self.ShowPopupMenu(event);\r\n });\r\n\r\n $(document).on(\"mousedown\", function (event) {\r\n if (!$(event.target).parents(\".custom-menu\").length > 0) {\r\n $(\".custom-menu\").hide(100);\r\n }\r\n });\r\n\r\n if (VR.Common.IsIOS()) {\r\n $(\"#undofieldmenu-popupmenu\").html(\"Hide Field Popup Menu\");\r\n\r\n $(document).on(\"touchstart\", function (event) {\r\n console.log(\"touchstart\");\r\n var display = $(\".custom-menu\").css(\"display\");\r\n console.log(\"display=\" + display);\r\n if (display != \"none\") {\r\n console.log(\"touchstart exit\");\r\n return;\r\n }\r\n console.log(\"event.originalEvent=\" + event.originalEvent);\r\n console.log(\r\n \"event.originalEvent.touches=\" + event.originalEvent.touches\r\n );\r\n console.log(\r\n \"event.originalEvent.touches[0]=\" + event.originalEvent.touches[0]\r\n );\r\n console.log(\r\n \"event.originalEvent.touches[0].pageX=\" +\r\n event.originalEvent.touches[0].pageX\r\n );\r\n if (event.originalEvent.touches.length < 1) {\r\n console.log(\"touchstart return\");\r\n return;\r\n }\r\n var touchobj = event.originalEvent.touches[0];\r\n console.log(\"touchobj.pageX=\" + touchobj.pageX);\r\n console.log(\"touchobj.pageY=\" + touchobj.pageY);\r\n var startx = touchobj.pageX;\r\n var starty = touchobj.pageY;\r\n console.log(\"startx=\" + startx);\r\n console.log(\"starty=\" + starty);\r\n self.PopupTimeout = setTimeout(function (e) {\r\n console.log(\"touchstart-timeout\");\r\n self.ShowPopupMenu({\r\n target: event.target,\r\n pageX: startx,\r\n pageY: starty\r\n });\r\n }, 2000);\r\n });\r\n }\r\n\r\n if (VR.Common.IsIOS()) {\r\n $(document).on(\"touchend\", function (event) {\r\n console.log(\"touchend\");\r\n if (self.PopupTimeout) {\r\n console.log(\"self.PopupTimeout\");\r\n clearTimeout(self.PopupTimeout);\r\n self.PopupTimeout = null;\r\n } else if (!$(event.target).parents(\".custom-menu\").length > 0) {\r\n $(\".custom-menu\").hide(100);\r\n }\r\n });\r\n }\r\n\r\n $(\".custom-menu li\").on(\"click\", function () {\r\n var action = $(this).attr(\"data-action\");\r\n var id = $(self.PopupTarget).attr(\"id\");\r\n var model = $(self.PopupTarget).data(\"field\");\r\n switch (action) {\r\n case \"about\":\r\n VR.Common.ShowWebSiteInfo();\r\n break;\r\n case \"field\":\r\n VR.Common.ShowFieldInfo(self.PopupTarget);\r\n break;\r\n case \"js-editor\":\r\n VR.Common.ShowFieldJEditor(self.PopupTarget);\r\n VR.Script.FocusField({ input: id, model: model }, true);\r\n break;\r\n case \"notes\":\r\n var prefix = null;\r\n if (id && id.toString().length > 0) {\r\n prefix = id.toString().substring(0, 1);\r\n }\r\n if (prefix == \"f\" || prefix == \"p\" || prefix == \"g\") {\r\n id = id.substring(1);\r\n }\r\n self.ShowNotes(id);\r\n break;\r\n case \"undo\":\r\n VR.Common.UndoPopupMenu();\r\n $(\"#showbrowserpopup-menu\").css(\"display\", \"none\");\r\n $(\"#showfieldpopup-menu\").css(\"display\", \"\");\r\n break;\r\n case \"query\":\r\n self.QueryField(self.PopupTarget);\r\n break;\r\n case \"reset\":\r\n self.ResetField(self.PopupTarget);\r\n break;\r\n case \"page\":\r\n $(\"#pageinfo-modal\").modal(\"show\");\r\n break;\r\n case \"date\":\r\n case \"clear\":\r\n case \"default\":\r\n var value = \"\";\r\n if (action == \"date\") {\r\n var d = new Date();\r\n value = VR.Common.ToDateString(d);\r\n } else if (action == \"default\") {\r\n var model = $(self.PopupTarget).data(\"field\");\r\n if (model) {\r\n value = model.DefaultValue;\r\n }\r\n }\r\n\r\n self.SetFieldValue(self.PopupTarget, value, true);\r\n VR.Script.FocusField({ input: id, model: model }, true);\r\n break;\r\n case \"casing\":\r\n var casing = \"keep\";\r\n var model = $(self.PopupTarget).data(\"field\");\r\n if ($(self.PopupTarget).data(\"casing\") != \"ignore\") {\r\n casing = \"ignore\";\r\n } else {\r\n switch (model.Case) {\r\n case \"capitalize\":\r\n case \"upper\":\r\n case \"lower\":\r\n casing = \"keep\";\r\n break;\r\n default:\r\n casing = \"ignore\";\r\n break;\r\n }\r\n }\r\n var fields = self.GetInputFields(model.FieldName);\r\n for (var i = 0; i < fields.length; i++) {\r\n $(fields[i]).data(\"casing\", casing);\r\n }\r\n if (casing != \"ignore\") {\r\n switch (model.Case) {\r\n case \"capitalize\":\r\n case \"upper\":\r\n case \"lower\":\r\n $(self.PopupTarget).val(\r\n self.GetFieldValue(model.FieldName, true)\r\n );\r\n break;\r\n }\r\n }\r\n VR.Script.FocusField({ input: id, model: model }, true);\r\n break;\r\n default:\r\n VR.Image.Annotation.HandlePopupMenu(action);\r\n break;\r\n }\r\n $(\".modal-x\").click(function () {\r\n VR.Script.FocusField({ input: id, model: model }, true);\r\n });\r\n $(\".custom-menu\").hide(100);\r\n });\r\n }; //SetupPopupMenu\r\n\r\n /*// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= \r\n /// \r\n /// Setsup the RadioButton control.\r\n /// \r\n /// The field model.\r\n /// */\r\n self.SetupRadioButton = function (model) {\r\n var panel = $(\"#p\" + model.FieldId);\r\n panel.css(\"height\", \"auto\");\r\n\r\n var input = $(\"#f\" + model.FieldId);\r\n input.on(\"keydown\", function (e) {\r\n self.FieldKeyDown(e);\r\n if (e.key === \"Tab\") {\r\n self.ValidateField(input);\r\n VR.Image.TypeFromImage.SetField(model, input);\r\n }\r\n });\r\n input.on(\"focus\", function (e) {\r\n VR.Image.TypeFromImage.SetField(model, this);\r\n VR.Edit.LastFocusedField = model.FieldId;\r\n });\r\n }; //SetupRadioButton\r\n\r\n /*// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= \r\n /// \r\n /// Sets up the review error/query.\r\n /// \r\n /// */\r\n self.SetupReviewError = function () {\r\n $(\"#reviewerror-modal\").on(\"show.bs.modal\", function (e) {\r\n var html = \"\";\r\n $.each(self.Fields, function (index, model) {\r\n if (\r\n !$(\"#f\" + model.FieldId).hasClass(\"readonly-text\") &&\r\n model.FieldStatus &&\r\n model.FieldStatus != \"alerttrigger\" &&\r\n model.FieldStatus != \"skipped\" &&\r\n model.FieldStatus != \"literal\"\r\n ) {\r\n html +=\r\n \"\" +\r\n model.FieldName +\r\n \"\" +\r\n VR.Common.HtmlEscape(model.FieldLabel) +\r\n \"\" +\r\n model.FieldStatus +\r\n \"\";\r\n }\r\n });\r\n\r\n var list = $(\"#reviewerror-list\");\r\n list.html(html);\r\n\r\n if (html.length > 0) {\r\n $(\"#reviewerror-section\").css(\"display\", \"\");\r\n $(\"#reviewerror-noerror\").css(\"display\", \"none\");\r\n } else {\r\n $(\"#reviewerror-section\").css(\"display\", \"none\");\r\n $(\"#reviewerror-noerror\").css(\"display\", \"\");\r\n }\r\n\r\n list.find(\".review-btn\").on(\"click\", function (e) {\r\n var link = $(this).attr(\"id\");\r\n if (!link || link.length < 7) {\r\n return;\r\n }\r\n\r\n link = \"#f\" + link.substring(7);\r\n link = $(link);\r\n if (link.length < 1) {\r\n return;\r\n }\r\n var model = link.data(\"field\");\r\n if (!model) {\r\n return;\r\n }\r\n\r\n switch (model.FieldType) {\r\n case \"ComboBox\":\r\n case \"MultiSelect\":\r\n var parent = link.parents(\".edit-field\");\r\n if (parent.length < 1) {\r\n return;\r\n }\r\n link = parent.find(\".k-input\");\r\n if (link.length < 1) {\r\n return;\r\n }\r\n break;\r\n }\r\n\r\n var tab = link.parents(\"[role=tabpanel]\");\r\n var id = tab.attr(\"id\");\r\n $(\"#tabs\")\r\n .find(\"a[aria-controls=\" + id + \"]\")\r\n .trigger(\"click\");\r\n var position = link.offset();\r\n var offset = $(\"nav\").height();\r\n offset = VR.Common.ToFloat(offset);\r\n if (isNaN(offset)) {\r\n offset = 50;\r\n }\r\n offset -= 50;\r\n\r\n $(\"#reviewerror-modal\").modal(\"hide\");\r\n window.scrollTo(0, position.top - 70 - offset);\r\n $(link).focus();\r\n });\r\n });\r\n\r\n $(\"#reviewerror-modal\").on(\"shown.bs.modal\", function (e) {\r\n var dialog = $(\"#reviewerror-modal .modal-content\");\r\n var table = $(\"#reviewerror-table\");\r\n var height = $(dialog).height();\r\n var winheight = $(window).height();\r\n\r\n if (height > winheight - 250) {\r\n height = winheight - 250;\r\n $(table).css(\"max-height\", height + \"px\");\r\n }\r\n });\r\n\r\n if (VR.Common.IsNavBurger()) {\r\n $(\"#reviewoverridesqueries-menu\").on(\"touchend\", function (e) {\r\n console.log(\"inside review error mobile\");\r\n $(\"#reviewerror-modal\").modal(\"show\");\r\n });\r\n }\r\n }; //SetupReviewError\r\n\r\n /*// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= \r\n /// \r\n /// Sets up the save.\r\n /// \r\n /// The target object.\r\n /// The value to indicate if edits need to run.\r\n /// The value to indicate if this is twin save.\r\n /// */\r\n self.SetupSave = function (target, hasEdits, isTwinSave) {\r\n $(\"#\" + target).on(VR.Common.IsNavBurger() ? \"touchend\" : \"click\", function () {\r\n if (!isTwinSave) {\r\n self.Save(hasEdits, isTwinSave, false, true);\r\n } else {\r\n var selection = \"name=\" + self.EventName;\r\n VR.Common.SecurePost(\r\n \"event/twinsave\",\r\n selection,\r\n function (result) {\r\n if (result.Code != 0 || !result.List) {\r\n if (!result.List) {\r\n result = null;\r\n }\r\n VR.Common.HandleInvalidResult(result, \"Twin Save\", false);\r\n } else {\r\n $.each(result.List, function (i, field) {\r\n //var inputs = $(\"#tab-content\").find(\"input[data-field-name='\" + field.FieldName + \"']\");\r\n var inputs = self.GetInputFields(field.FieldName);\r\n $.each(inputs, function (index, input) {\r\n self.SetFieldValue(\r\n input,\r\n field.Value == null ? \"\" : field.Value\r\n );\r\n });\r\n });\r\n if (!result.CanSaveTwinWithSFN) {\r\n var stateFileNumber = self.GetStateFileNumber();\r\n if (stateFileNumber) {\r\n var message =\r\n \"Cannot create a twin after record has been assigned a state file number.\";\r\n if (result.List.length > 0) {\r\n message +=\r\n \"\\nThe field values on the form were changed due to the setting in the twin save table.\";\r\n }\r\n self.ShowSaveError(message);\r\n return;\r\n }\r\n }\r\n //var inputs = $(\"#tab-content\").find(\"input[data-field-name='STATE_FILE_NUMBER']\");\r\n var inputs = self.GetInputFields(\"STATE_FILE_NUMBER\");\r\n $.each(inputs, function (index, input) {\r\n self.SetFieldValue(input, \"\");\r\n });\r\n //inputs = $(\"#tab-content\").find(\"input[data-field-name='LOCAL_FILE_NUMBER']\");\r\n inputs = self.GetInputFields(\"LOCAL_FILE_NUMBER\");\r\n $.each(inputs, function (index, input) {\r\n self.SetFieldValue(input, \"\");\r\n });\r\n if (result.KeyFields) {\r\n $.each(result.KeyFields, function (i, field) {\r\n //var inputs = $(\"#tab-content\").find(\"input[data-field-name='\" + field + \"']\");\r\n var inputs = self.GetInputFields(field);\r\n $.each(inputs, function (index, input) {\r\n self.SetFieldValue(input, 0);\r\n });\r\n });\r\n }\r\n self.EventId = 0;\r\n var title = $(\"#main-container\").attr(\"event-title\");\r\n title = title + \" : Twin Save\";\r\n $(\"#plugins\").html(VR.Common.HtmlEscape(title));\r\n self.Save(hasEdits, true, false, true);\r\n }\r\n },\r\n true,\r\n \"eventname=\"\r\n );\r\n }\r\n });\r\n }; //SetupSave\r\n\r\n /*// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= \r\n /// \r\n /// Sets up the image scanning.\r\n /// \r\n /// */\r\n self.SetupScanImage = function () {\r\n var menu = $(\"#scanimage-menu\");\r\n if (VR.Common.IsMobile()) {\r\n menu.css(\"display\", \"none\");\r\n return;\r\n }\r\n\r\n var modal = $(\"#scanimage-modal\");\r\n menu.on(\"click\", function () {\r\n if (!self.EventId || self.EventId < 1) {\r\n VR.Common.ShowError(\r\n \"Cannot attach an image until you save the record.\"\r\n );\r\n return;\r\n }\r\n var buttons = $(\"#scanimage-buttons\");\r\n if (!self.DWObject) {\r\n self.InitScanImage();\r\n } else {\r\n self.DWObject.RemoveAllImages();\r\n }\r\n\r\n buttons.css(\"visibility\", \"hidden\");\r\n modal.modal(\"show\");\r\n });\r\n\r\n modal.on(\"shown.bs.modal\", function (e) { });\r\n\r\n var button = modal.find(\".btn-success\");\r\n button.on(\"click\", function (e) {\r\n if (!self.DWObject) {\r\n return;\r\n }\r\n\r\n self.DWObject.IfDisableSourceAfterAcquire = true;\r\n var dropdown = $(\"#scanner-source\").data(\"kendoDropDownList\");\r\n if (dropdown) {\r\n var selected = dropdown.select();\r\n self.DWObject.SelectSourceByIndex(selected);\r\n }\r\n self.DWObject.OpenSource();\r\n self.DWObject.AcquireImage();\r\n });\r\n\r\n button = modal.find(\".btn-default\");\r\n button.on(\"click\", function (e) {\r\n if (!self.DWObject || self.DWObject.HowManyImagesInBuffer < 1) {\r\n return;\r\n }\r\n\r\n self.DWObject.RemoveAllImages();\r\n $(\"#scanimage-pagenumber\").html(\"\");\r\n });\r\n function uuidv4() {\r\n return \"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(/[xy]/g, function (\r\n c\r\n ) {\r\n var r = (Math.random() * 16) | 0,\r\n v = c == \"x\" ? r : (r & 0x3) | 0x8;\r\n return v.toString(16);\r\n });\r\n }\r\n $(\"#scanimage-acceptbutton\").on(\"click\", function (e) {\r\n $(\"#scanimage-modal\").modal(\"hide\");\r\n var size = self.DWObject.HowManyImagesInBuffer;\r\n if (!size || size < 1) {\r\n return;\r\n }\r\n self.DWObject.SelectedImagesCount = 1;\r\n if (size == 1) {\r\n var imagesize = self.DWObject.GetSelectedImagesSize(\r\n Dynamsoft.DWT.EnumDWT_ImageType.IT_PNG\r\n );\r\n var imagedata = self.DWObject.SaveSelectedImagesToBase64Binary();\r\n if (!imagedata) {\r\n return;\r\n }\r\n imagedata = \"data:image/png;base64,\" + imagedata;\r\n $(\"#image-data\").prop(\"data-src\", imagedata);\r\n $(\"#image-file-group\").attr(\"data-file-type\", \"0\");\r\n $(\"#image-file\").val(\"scanned.png\");\r\n $(\"#imageedit-isactive\").attr(\"checked\", true);\r\n $(\"#imageedit-filename\").val(uuidv4());\r\n self.LoadImageFile(\"TIFF\");\r\n } else {\r\n var modal = $(\"#tiffeditor-modal\");\r\n var modalsize = self.SetImageEditorSize(modal);\r\n\r\n var canvases = $(\"#tiffeditor-canvassection,#tiffeditor-canvasannote\");\r\n canvases.css(\"display\", \"none\");\r\n var section = $(\"#tiffeditor-editsection\");\r\n section.attr(\"data-image-size\", size);\r\n section.attr(\"data-page-number\", 0);\r\n $(\"#tiffeditor-pagenumber\").html(\"Page 1 of \" + size);\r\n var html = \"\";\r\n for (var i = 0; i < size; i++) {\r\n self.DWObject.SelectedImagesCount = 1;\r\n self.DWObject.SetSelectedImageIndex(0, i);\r\n var imagesize = self.DWObject.GetSelectedImagesSize(\r\n EnumDWT_ImageType.IT_PNG\r\n );\r\n var imagedata = self.DWObject.SaveSelectedImagesToBase64Binary();\r\n if (!imagedata) {\r\n return;\r\n }\r\n imagedata = \"data:image/png;base64,\" + imagedata;\r\n var style = \" display : none;\";\r\n if (i == 0) {\r\n style = \"\";\r\n }\r\n html +=\r\n \"
\" +\r\n \"
\";\r\n }\r\n section.html(html);\r\n for (var i = 0; i < size; i++) {\r\n var imageedit = $(\"#tiffeditor-page\" + (i + 1));\r\n imageedit.cropper({\r\n minCanvasWidth: modalsize.width,\r\n minCanvasHeight: modalsize.height,\r\n minContainerHeight: modalsize.height,\r\n minContainerWidth: modalsize.width,\r\n crop: function (e) { }\r\n });\r\n if (i == 0) {\r\n $(\"#tiffeditor-pagesection\" + (i + 1)).css(\"display\", \"\");\r\n var cropper = modal.find(\".cropper-container\");\r\n if (cropper.length > 0) {\r\n self.TiffModalHeight = cropper.css(\"height\");\r\n }\r\n }\r\n }\r\n $(\"#tiffeditor-buttons\")\r\n .find(\".btn-cropbutton\")\r\n .css(\"visibility\", \"visible\");\r\n $(\"#tiffeditor-slidebars\").css(\"visibility\", \"visible\");\r\n $(\"#tiffeditor-dragbutton\").addClass(\"active\");\r\n $(\"#tiffeditor-cropbutton\").removeClass(\"active\");\r\n html = \"\";\r\n for (var i = 0; i < size; i++) {\r\n html +=\r\n \"
\";\r\n }\r\n $(\"#tiffeditor-canvassection\").html(html);\r\n var annote = $(\"#tiffeditor-annotationsection\");\r\n var annotes = annote.data(\"canvas\");\r\n if (annotes) {\r\n $.each(annotes, function (index, canvas) {\r\n canvas.dispose();\r\n $(canvas.wrapperEl).remove();\r\n });\r\n }\r\n html = \"\";\r\n for (var i = 0; i < size; i++) {\r\n var style = \"style='display:none;'\";\r\n if (i == 0) {\r\n style = \"\";\r\n }\r\n html +=\r\n \"\";\r\n }\r\n annote.html(html);\r\n\r\n $(\"#tiffeditor-isactive\").attr(\"checked\", true);\r\n self.LoadTiffFile();\r\n }\r\n });\r\n }; //SetupScanImage\r\n\r\n self.TopazNumberOfTabletPoints = function () {\r\n try {\r\n return NumberOfTabletPoints();\r\n } catch (e) {\r\n return 0;\r\n }\r\n }; //TopazNumberOfTabletPoints\r\n\r\n /*// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= \r\n /// \r\n /// Sets up the Signature Button control.\r\n /// \r\n /// The field model.\r\n /// */\r\n self.SetupSignatureButton = function (model) {\r\n if (!self.SignaturePad) {\r\n var canvas = $(\"#signaturepad-canvas\");\r\n\r\n if (canvas.length > 0) {\r\n self.SignaturePad = new SignaturePad(canvas[0]);\r\n self.SignaturePad.minWidth = 2.5;\r\n self.SignaturePad.maxWidth = 2.5;\r\n self.SignaturePad.penColor = \"rgb(24, 24, 128)\";\r\n self.SignaturePad.backgroundColor = \"rgb(255, 255, 255)\";\r\n self.SetSignatureButtonColor(model);\r\n $(\"#signature-clear\").on(\"click\", function (e) {\r\n model.Cleared = true;\r\n try {\r\n self.ClearTopazDisplay();\r\n } catch (e) { }\r\n self.SignaturePad.clear();\r\n });\r\n\r\n $(\"#signature-cancel\").on(\"click\", function (e) {\r\n try {\r\n self.StopTopazInput();\r\n } catch (e) { }\r\n self.SignaturePad.off();\r\n });\r\n\r\n $(\"#signature-mouse\").on(\"click\", function (e) {\r\n self.SignaturePad.on();\r\n $(\"#signature-mouse\").css(\"display\", \"none\");\r\n });\r\n\r\n $(\"#signature-save\").on(\"click\", function (e) {\r\n model = self.CurrentSignatureField;\r\n var emptyPad =\r\n self.SignaturePad.isEmpty() &&\r\n self.TopazNumberOfTabletPoints() == 0;\r\n var url = VR.Common.GetRootURL(\"event/edit\") + \"data/sign\";\r\n var data = self.SignaturePad.toDataURL();\r\n if (\r\n data &&\r\n data != \"\" &&\r\n data.indexOf(\"data:image/\") > -1 &&\r\n emptyPad == false\r\n ) {\r\n data = data.replace(/\\+/g, \"#\");\r\n } else {\r\n data = null;\r\n }\r\n if (self.CurrentSignatureField != null) {\r\n var event = self.EventName;\r\n var eventId = self.EventId;\r\n var selection =\r\n \"event=\" +\r\n event +\r\n \"|eventId=\" +\r\n eventId +\r\n \"|fieldId=\" +\r\n model.FieldId +\r\n \"|sign=\" +\r\n data;\r\n\r\n VR.Common.SecurePost(\r\n url,\r\n selection,\r\n function (result) {\r\n if (result.Code == 0) {\r\n model.FieldValue = result.SigId;\r\n self.ValidateField($(\"#f\" + model.FieldId)[0]);\r\n var input = \"#f\" + model.FieldId;\r\n var field = $(input);\r\n self.SetFieldValue(field, result.SigId, true);\r\n if (!!field) {\r\n nx.ResetField(field);\r\n if (!!model.FieldValue && !emptyPad) {\r\n self.ToggleSignatureFocus(field, true);\r\n } else {\r\n self.ToggleSignatureFocus(field, false);\r\n }\r\n }\r\n } else {\r\n VR.Common.HandleInvalidResult(result, \"Signature\", false);\r\n }\r\n\r\n $(\"#signature-modal\").modal(\"hide\");\r\n },\r\n true,\r\n undefined,\r\n false,\r\n false\r\n );\r\n self.SetSignatureButtonColor(model);\r\n alert(\r\n \"Warning, your signature will not get saved until you save the record.\"\r\n );\r\n }\r\n try {\r\n self.StopTopazInput();\r\n } catch (e) { }\r\n self.CurrentSignatureField = null;\r\n });\r\n }\r\n }\r\n\r\n var field = $(\"#f\" + model.FieldId);\r\n self.SetSignatureButtonColor(model);\r\n if (!!field) {\r\n if (!!model.FieldValue) {\r\n self.ToggleSignatureFocus(field, true);\r\n } else {\r\n self.ToggleSignatureFocus(field, false);\r\n }\r\n }\r\n\r\n $(field).data(\"field\", model);\r\n $(field).on(\"click\", function (e) {\r\n self.CurrentSignatureField = $(this).data(\"field\");\r\n self.ShowSignature(this, false);\r\n self.SignaturePad.off();\r\n });\r\n field.on(\"keydown\", self.FieldKeyDown);\r\n field.on(\"focus\", function (e) {\r\n VR.Image.TypeFromImage.SetField(model, this);\r\n });\r\n }; //SetupSignatureButton\r\n self.ToggleSignatureFocus = function (field, signed) {\r\n if (signed == true) {\r\n field.removeClass(\"btn-signature-unsigned\");\r\n field.addClass(\"btn-signature-signed\");\r\n field.text(\"Signed\");\r\n } else {\r\n field.addClass(\"btn-signature-unsigned\");\r\n field.removeClass(\"btn-signature-signed\");\r\n field.text(\"Sign\");\r\n }\r\n }; //ToggleSignatureFocus\r\n\r\n self.SetSignatureButtonColor = function (model) {\r\n var emptyPad =\r\n self.SignaturePad.isEmpty() && self.TopazNumberOfTabletPoints() == 0;\r\n var fieldValue = model.Cleared || !model.FieldValue;\r\n if (emptyPad && fieldValue) {\r\n $(\"#f\" + model.FieldId).css(\"background\", \"#22B3FC\");\r\n $(\"#f\" + model.FieldId).css(\"color\", \"#FFFFFF\");\r\n } else {\r\n $(\"#f\" + model.FieldId).css(\"background\", \"#FFFFFF\");\r\n $(\"#f\" + model.FieldId).css(\"color\", \"#555555\");\r\n }\r\n }; //SetSignatureButtonColor\r\n /*// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= \r\n /// \r\n /// Sets up the text box control.\r\n /// \r\n /// The field model.\r\n /// */\r\n self.SetupTextBox = function (model) {\r\n var field = $(\"#f\" + model.FieldId);\r\n field.attr(\"autocomplete\", \"off\");\r\n field.attr(\"spellcheck\", model.SpellCheck);\r\n $(field).val(model.FieldValue);\r\n $(field).on(\"keypress\", function (e) {\r\n var model = $(this).data(\"field\");\r\n if (model && model.FieldStatus != null) {\r\n self.ResetField(this, true);\r\n }\r\n });\r\n\r\n $(field).on(\"keydown\", self.FieldKeyDown);\r\n $(field).on(\"keyup\", self.FieldKeyUp);\r\n\r\n $(field).on(\"focus\", function (e) {\r\n $(this).select();\r\n VR.Image.TypeFromImage.SetField(model, this);\r\n VR.Edit.LastFocusedField = model.FieldId;\r\n });\r\n\r\n if ($(field).val() != model.FieldValue) {\r\n $(this).data(\"casing\", \"ignore\"); // Does this line do anything calls (_this_) not (_field_)\r\n // should this line be removed?\r\n }\r\n }; //SetupTextBox\r\n\r\n /*// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= \r\n /// \r\n /// Setsup the TIFF image editor accept button.\r\n /// \r\n /// */\r\n self.SetupTiffEditAccept = function () {\r\n $(\"#tiffeditor-acceptbutton\").on(\"click\", function () {\r\n var imagedit = $(\"#tiffeditor-editsection\");\r\n var id = imagedit.attr(\"data-editor\");\r\n var editor = $(\"#\" + id);\r\n var images = editor.find(\"img\");\r\n var size = images.length;\r\n var changed = false;\r\n size = parseInt(size);\r\n for (var i = 0; i < size; i++) {\r\n var tiffpage = $(\"#tiffeditor-pagesection\" + (i + 1));\r\n var imageedit = $(\"#tiffeditor-page\" + (i + 1));\r\n var croped = tiffpage.attr(\"mode\");\r\n if (croped == \"1\") {\r\n var canvas = $(\"#tiffeditor-canvas\" + (i + 1));\r\n if (canvas.length > 0) {\r\n var canvas = canvas.find(\"img\");\r\n if (canvas.length > 0) {\r\n var data = $(canvas).attr(\"src\");\r\n if (data) {\r\n var image = editor.find(\"img[data-page-number='\" + i + \"']\");\r\n image.attr(\"src\", data);\r\n changed = true;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n var changed = editor.attr(\"data-changed\");\r\n if (!changed) {\r\n changed = \"\";\r\n }\r\n if (changed.indexOf(\"image\") == -1) {\r\n changed += \"|image\";\r\n }\r\n\r\n var canvases = $(\"#tiffeditor-annotationsection\").data(\"canvas\");\r\n var parent = editor.parents(\".k-window\");\r\n parent = parent.find(\"canvas\");\r\n if (parent.length > 1) {\r\n parent = $(parent[0]);\r\n }\r\n parent = parent.parent();\r\n var targets = parent.data(\"canvas\");\r\n if (targets && targets.length > 0) {\r\n $.each(canvases, function (index, canvas) {\r\n if (index < targets.length) {\r\n var target = targets[index];\r\n var cropped = $(\"#tiffeditor-pagesection\" + (index + 1)).attr(\r\n \"mode\"\r\n );\r\n if (cropped == \"1\") {\r\n var image = editor.find(\"img[data-page-number='\" + index + \"']\");\r\n var canvasid = id.replace(\"-editor\", \"-canvas\");\r\n VR.Image.Annotation.RecreateTiffAnnote(\r\n index,\r\n image,\r\n \"tiffeditor-canvasannote\",\r\n canvasid\r\n );\r\n } else {\r\n VR.Image.Annotation.Copy(canvas, target);\r\n }\r\n }\r\n });\r\n }\r\n\r\n var jsons = \"\";\r\n $.each(canvases, function (index, canvas) {\r\n var object;\r\n var cropped = $(\"#tiffeditor-pagesection\" + (index + 1)).attr(\"mode\");\r\n if (cropped == \"1\") {\r\n var annote = $(\"#tiffeditor-canvasannote\" + (index + 1));\r\n object = annote.data(\"canvas\");\r\n } else {\r\n object = canvas;\r\n }\r\n\r\n var json = \"\";\r\n if (object) {\r\n json = object.toJSON([\r\n \"order\",\r\n \"originalText\",\r\n \"originalWidth\",\r\n \"originalHeight\"\r\n ]);\r\n json = JSON.stringify(json);\r\n }\r\n jsons += json + \"|\";\r\n });\r\n\r\n if (jsons.length > 0) {\r\n jsons = jsons.substring(0, jsons.length - 1);\r\n }\r\n\r\n var width = \"\";\r\n var height = \"\";\r\n if (canvases && canvases.length > 0) {\r\n for (var i = 0; i < canvases.length; i++) {\r\n var cropped = $(\"#tiffeditor-pagesection\" + (i + 1)).attr(\"mode\");\r\n if (cropped == \"1\") {\r\n var annote = $(\"#tiffeditor-canvasannote\" + (i + 1));\r\n var object = annote.data(\"canvas\");\r\n width += object.getWidth() + \"|\";\r\n height += object.getHeight() + \"|\";\r\n } else {\r\n width += canvases[i].getWidth() + \"|\";\r\n height += canvases[i].getHeight() + \"|\";\r\n }\r\n }\r\n }\r\n\r\n editor.attr(\"annotation\", jsons);\r\n editor.attr(\"annote-width\", width);\r\n editor.attr(\"annote-height\", height);\r\n\r\n if (changed.indexOf(\"annote\") == -1) {\r\n changed += \"|annote\";\r\n }\r\n editor.attr(\"data-changed\", changed);\r\n\r\n $(\"#tiffeditor-modal\").modal(\"hide\");\r\n });\r\n }; //SetupTiffEditAccept\r\n\r\n /*// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= \r\n /// \r\n /// Setsup the TIFF image editor buttons.\r\n /// \r\n /// */\r\n self.SetupTiffEditorButtons = function () {\r\n $(\"#tiffeditor-buttons\")\r\n .find(\".btn-imageedit\")\r\n .tooltip({\r\n container: \"body\",\r\n trigger: \"hover\"\r\n });\r\n\r\n $(\"#tiffeditor-dragbutton\").on(\"click\", function (e) {\r\n var tiffpage = self.GetCurrentTiffEditorPage();\r\n var item = tiffpage.find(\".cropper-modal\");\r\n item.css(\"opacity\", \"0\");\r\n item = tiffpage.find(\".cropper-crop-box\");\r\n item.css(\"display\", \"none\");\r\n var editor = self.GetCurrentTiffEditor();\r\n editor.cropper(\"setDragMode\", \"move\");\r\n $(\"#tiffeditor-dragbutton\").addClass(\"active\");\r\n $(\"#tiffeditor-cropbutton\").removeClass(\"active\");\r\n tiffpage.attr(\"mode\", \"0\");\r\n });\r\n\r\n $(\"#tiffeditor-cropbutton\").on(\"click\", function (e) {\r\n var tiffpage = self.GetCurrentTiffEditorPage();\r\n\r\n var item = tiffpage.find(\".cropper-modal\");\r\n item.css(\"opacity\", \"0.5\");\r\n item = tiffpage.find(\".cropper-crop-box\");\r\n item.css(\"display\", \"\");\r\n var editor = self.GetCurrentTiffEditor();\r\n editor.cropper(\"setDragMode\", \"crop\");\r\n $(\"#tiffeditor-dragbutton\").removeClass(\"active\");\r\n $(\"#tiffeditor-cropbutton\").addClass(\"active\");\r\n tiffpage.attr(\"mode\", \"1\");\r\n VR.Image.Annotation.HideAnnotation(true);\r\n });\r\n\r\n $(\"#tiffeditor-getimagebutton\").on(\"click\", function (e) {\r\n var section = $(\"#tiffeditor-editsection\");\r\n var size = section.attr(\"data-image-size\");\r\n var page = section.attr(\"data-page-number\");\r\n size = parseInt(size);\r\n page = parseInt(page);\r\n if (isNaN(page) || page < 0 || page >= size) {\r\n return;\r\n }\r\n\r\n var tiffpage = $(\"#tiffeditor-pagesection\" + (page + 1));\r\n var item = tiffpage.find(\".cropper-crop-box\");\r\n var display = item.css(\"display\");\r\n if (display == \"none\") {\r\n return;\r\n }\r\n\r\n //var editor = $(\"#tiffeditor-page\" + (page + 1));\r\n //var width;\r\n //var height;\r\n //if ($(window).width() >= 768) {\r\n // var imageData = editor.cropper('getCanvasData');\r\n // var width = Math.round(imageData.width) + \"px\";\r\n // var height = Math.round(imageData.height) + \"px\";\r\n //} else {\r\n // var modal = $(\"#tiffeditor-modal\");\r\n // var size = self.SetImageEditorSize(modal);\r\n // var width = size.width + \"px\";\r\n // var height = size.height + \"px\";\r\n //}\r\n //var canvas = editor.cropper(\"getCroppedCanvas\");\r\n //$(canvas).css(\"max-height\", height);\r\n //$(canvas).css(\"max-width\", width);\r\n //var canvassection = $(\"#tiffeditor-canvas\" + (page + 1));\r\n //canvassection.html(canvas);\r\n //canvassection.css(\"display\", \"\");\r\n for (var i = 1; i <= size + 1; i++) {\r\n if (i !== page + 1) {\r\n $(\"#tiffeditor-canvas\" + i).css(\"display\", \"none\");\r\n $(\"#tiffeditor-canvasannote\" + i).css(\"display\", \"none\");\r\n }\r\n }\r\n\r\n var editor = $(\"#tiffeditor-page\" + (page + 1));\r\n var annote = $(\"#tiffeditor-annotate\" + (page + 1));\r\n var cropped = $(\"#tiffeditor-canvas\" + (page + 1));\r\n var cropannote = $(\"#tiffeditor-canvasannote\" + (page + 1));\r\n var cropbox = $(\".cropper-crop-box\");\r\n VR.Image.CreateCroppedImage(\r\n tiffpage,\r\n editor,\r\n annote,\r\n cropped,\r\n cropannote,\r\n cropbox\r\n );\r\n\r\n $(\"#tiffeditor-buttons\")\r\n .find(\".btn-cropbutton\")\r\n .css(\"visibility\", \"hidden\");\r\n $(\"#tiffeditor-slidebars\").css(\"visibility\", \"hidden\");\r\n tiffpage.attr(\"data-cropped\", \"1\");\r\n tiffpage.css(\"display\", \"none\");\r\n var canvases = $(\"#tiffeditor-canvassection,#tiffeditor-canvasannote\");\r\n canvases.css(\"display\", \"\");\r\n section.css(\"display\", \"none\");\r\n });\r\n\r\n $(\"#tiffeditor-resetbutton\").on(\"click\", function (e) {\r\n var section = $(\"#tiffeditor-editsection\");\r\n var size = section.attr(\"data-image-size\");\r\n for (var i = 0; i < size; i++) {\r\n var tiffpage = $(\"#tiffeditor-pagesection\" + (i + 1));\r\n if (i == 0) {\r\n tiffpage.css(\"display\", \"\");\r\n } else {\r\n tiffpage.css(\"display\", \"none\");\r\n }\r\n var editor = $(\"#tiffeditor-page\" + (i + 1));\r\n editor.cropper(\"reset\");\r\n editor.attr(\"data-scaleX\", \"\");\r\n editor.attr(\"data-scaleY\", \"\");\r\n tiffpage.attr(\"data-cropped\", \"\");\r\n var canvassection = $(\"#tiffeditor-canvas\" + (i + 1));\r\n canvassection.css(\"display\", \"none\");\r\n\r\n var item = tiffpage.find(\".cropper-modal\");\r\n item.css(\"opacity\", \"0\");\r\n item = tiffpage.find(\".cropper-crop-box\");\r\n item.css(\"display\", \"none\");\r\n editor.cropper(\"setDragMode\", \"move\");\r\n tiffpage.attr(\"mode\", \"0\");\r\n }\r\n\r\n section.css(\"display\", \"\").attr(\"data-page-number\", \"0\");\r\n $(\"#tiffeditor-canvassection,#tiffeditor-canvasannote\").css(\r\n \"display\",\r\n \"none\"\r\n );\r\n $(\"#tiffeditor-buttons\")\r\n .find(\".btn-cropbutton\")\r\n .css(\"visibility\", \"visible\");\r\n $(\"#tiffeditor-slidebars\").css(\"visibility\", \"visible\");\r\n $(\"#tiffeditor-dragbutton\").trigger(\"click\");\r\n VR.Image.Annotation.ShowAnnotation(true);\r\n VR.Image.SlideBars.ResetTiff();\r\n });\r\n\r\n $(\"#tiffeditor-prevbutton\").on(\"click\", function (e) {\r\n var section = $(\"#tiffeditor-editsection\");\r\n var size = section.attr(\"data-image-size\");\r\n var page = section.attr(\"data-page-number\");\r\n size = parseInt(size);\r\n page = parseInt(page);\r\n if (isNaN(page) || page < 1) {\r\n return;\r\n }\r\n page--;\r\n self.SetTiffEditorPage(section, page, size);\r\n VR.Image.Annotation.SetTiffEditorPage(page);\r\n });\r\n\r\n $(\"#tiffeditor-nextbutton\").on(\"click\", function (e) {\r\n var section = $(\"#tiffeditor-editsection\");\r\n var size = section.attr(\"data-image-size\");\r\n var page = section.attr(\"data-page-number\");\r\n size = parseInt(size);\r\n page = parseInt(page);\r\n if (isNaN(page) || page + 1 >= size) {\r\n return;\r\n }\r\n page++;\r\n self.SetTiffEditorPage(section, page, size);\r\n VR.Image.Annotation.SetTiffEditorPage(page);\r\n });\r\n\r\n $(\"#tiffeditor-firstbutton\").on(\"click\", function (e) {\r\n var section = $(\"#tiffeditor-editsection\");\r\n var size = section.attr(\"data-image-size\");\r\n size = parseInt(size);\r\n if (isNaN(size)) {\r\n return;\r\n }\r\n self.SetTiffEditorPage(section, 0, size);\r\n VR.Image.Annotation.SetTiffEditorPage(0);\r\n });\r\n\r\n $(\"#tiffeditor-lastbutton\").on(\"click\", function (e) {\r\n var section = $(\"#tiffeditor-editsection\");\r\n var size = section.attr(\"data-image-size\");\r\n size = parseInt(size);\r\n if (isNaN(size)) {\r\n return;\r\n }\r\n self.SetTiffEditorPage(section, size - 1, size);\r\n VR.Image.Annotation.SetTiffEditorPage(size - 1);\r\n });\r\n\r\n $(\"#tiffeditor-annotetoggle\").on(\"click\", function () {\r\n var page = VR.Image.GetCurrentEditorPage();\r\n var tiffpage = $(\"#tiffeditor-pagesection\" + (page + 1));\r\n var cropped = tiffpage.attr(\"data-cropped\");\r\n if (cropped) {\r\n var page = $(\"#tiffeditor-canvasannote\" + (page + 1));\r\n var display = page.css(\"display\");\r\n if (display != \"none\") {\r\n page.css(\"display\", \"none\");\r\n } else {\r\n page.css(\"display\", \"\");\r\n }\r\n } else if (VR.Image.Annotation.IsHidden(true)) {\r\n $(\"#tiffeditor-resetbutton\").trigger(\"click\");\r\n } else {\r\n VR.Image.Annotation.HideAnnotation(true);\r\n }\r\n });\r\n\r\n $(\"#tiffeditor-editannot\").on(\"click\", function () {\r\n var page = VR.Image.GetCurrentEditorPage();\r\n var tiffpage = $(\"#tiffeditor-pagesection\" + (page + 1));\r\n var cropped = tiffpage.attr(\"data-cropped\");\r\n if (!cropped) {\r\n var section = $(\"#tiffeditor-editsection\");\r\n var size = section.attr(\"data-image-size\");\r\n size = parseInt(size);\r\n $(\"#tiffeditor-resetbutton\").trigger(\"click\");\r\n self.SetTiffEditorPage(section, page, size);\r\n VR.Image.Annotation.SetTiffEditorPage(page);\r\n VR.Image.Annotation.ShowAnnotationEditor(\r\n \"tiffeditor-editsection\",\r\n \"tiffeditor-annotationsection\"\r\n );\r\n } else {\r\n page++;\r\n var annote = \"tiffeditor-canvasannote\" + page;\r\n var cropped = \"tiffeditor-canvas\" + page;\r\n VR.Image.Annotation.ShowCroppedAnnoteEditor(cropped, annote);\r\n }\r\n });\r\n }; //SetupTiffEditorButtons\r\n\r\n /*// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= \r\n /// \r\n /// Setsup the TIFF image viewer buttons.\r\n /// \r\n /// */\r\n self.SetupTiffViewerButtons = function (windowHost) {\r\n var buttons = windowHost.find(\r\n \".imageviewer-firstbutton, .imageviewer-prevbutton, .imageviewer-nextbutton, .imageviewer-lastbutton\"\r\n );\r\n buttons.tooltip({\r\n container: \"body\",\r\n placement: \"bottom\",\r\n trigger: \"hover\"\r\n });\r\n\r\n buttons.on(\"click\", function (e) {\r\n var section = windowHost.find(\".imageviewer-imagesection\");\r\n var pagenum = section.attr(\"data-page-number\");\r\n var size = section.attr(\"data-pages\");\r\n pagenum = parseInt(pagenum);\r\n size = parseInt(size);\r\n if (isNaN(pagenum) || isNaN(size)) {\r\n return;\r\n }\r\n\r\n if ($(this).hasClass(\"imageviewer-firstbutton\")) {\r\n pagenum = 0;\r\n } else if ($(this).hasClass(\"imageviewer-lastbutton\")) {\r\n pagenum = size - 1;\r\n } else if ($(this).hasClass(\"imageviewer-prevbutton\")) {\r\n pagenum--;\r\n if (pagenum < 0) {\r\n pagenum = 0;\r\n }\r\n } else {\r\n pagenum++;\r\n if (pagenum >= size) {\r\n pagenum = size - 1;\r\n }\r\n }\r\n\r\n var images = section.find(\"img\");\r\n $.each(images, function (index, image) {\r\n var num = $(image).attr(\"data-page-number\");\r\n num = parseInt(num);\r\n if (isNaN(num)) {\r\n return;\r\n }\r\n\r\n if (num == pagenum) {\r\n $(image).css(\"display\", \"\");\r\n } else {\r\n $(image).css(\"display\", \"none\");\r\n }\r\n });\r\n\r\n var canvases = windowHost.find(\"canvas\");\r\n $.each(canvases, function (index, canvas) {\r\n var display = \"none\";\r\n if (index == pagenum) {\r\n display = \"\";\r\n }\r\n $(canvas).css(\"display\", display);\r\n });\r\n\r\n section.attr(\"data-page-number\", pagenum);\r\n var page = section.find(\".imageviewer-pagenumber\");\r\n page.html(\"Page \" + (pagenum + 1) + \" of \" + size);\r\n });\r\n }; //SetupTiffViewerButtons\r\n\r\n /*// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= \r\n /// \r\n /// Setsup the TIFF image editor save buttons.\r\n /// \r\n /// */\r\n self.SetupTiffSaveButtons = function () {\r\n $(\"#tiffeditor-savetodatabse, #tiffeditor-savetofile\").on(\"click\", function (\r\n e\r\n ) {\r\n $(\"#tiffeditor-modal\").modal(\"hide\");\r\n var location = \"D\";\r\n var id = $(this).attr(\"id\");\r\n if (id == \"tiffeditor-savetofile\") {\r\n location = \"P\";\r\n }\r\n\r\n var event = self.EventName;\r\n var appfunc = $(\"#tiffeditor-appfunction\");\r\n if (appfunc.length == 0) {\r\n appfunc = \"\";\r\n } else {\r\n appfunc = appfunc.val();\r\n }\r\n var isactive = $(\"#tiffeditor-isactive\");\r\n if (isactive.length == 0) {\r\n isactive = true;\r\n } else {\r\n isactive = isactive.attr(\"checked\");\r\n if (isactive == \"checked\") {\r\n isactive = true;\r\n }\r\n }\r\n var description = $(\"#tiffeditor-description\").val();\r\n var section = $(\"#tiffeditor-editsection\");\r\n var size = section.attr(\"data-image-size\");\r\n size = parseInt(size);\r\n var data = \"\";\r\n for (var i = 0; i < size; i++) {\r\n var tiffpage = $(\"#tiffeditor-pagesection\" + (i + 1));\r\n var cropped = tiffpage.attr(\"data-cropped\");\r\n //if (cropped && cropped == \"1\")\r\n if (false) {\r\n //Can't sabe cropped TIFF image for now.\r\n var canvas = $(\"#tiffeditor-canvas\" + (i + 1));\r\n if (canvas.length > 0) {\r\n data += \"!\" + canvas.attr(\"src\");\r\n }\r\n } else {\r\n var page = $(\"#tiffeditor-page\" + (i + 1));\r\n data += \"!\" + page.attr(\"src\");\r\n }\r\n }\r\n\r\n if (data) {\r\n data = data.substring(1).replace(/\\+/g, \"#\");\r\n }\r\n\r\n var annote = VR.Image.Annotation.TiffJsonString(\r\n \"tiffeditor-annotationsection\"\r\n );\r\n\r\n var year = self.GetFieldValue(\"EVENT_YEAR\");\r\n var number = self.GetFieldValue(\"STATE_FILE_NUMBER\", true);\r\n\r\n var url = VR.Common.GetRootURL(\"event/edit\") + \"data/tifffilesave\";\r\n var selection = {\r\n EventGroup: event,\r\n eventId: self.EventId,\r\n appfunc: appfunc,\r\n isactive: isactive,\r\n description: description,\r\n location: location,\r\n size: size,\r\n year: year,\r\n number: number,\r\n annote: annote.jsons,\r\n width: annote.widths,\r\n height: annote.heights,\r\n data: data\r\n };\r\n VR.Common.SecurePost(\r\n url,\r\n { imageLoad: selection },\r\n function (result) {\r\n if (result.Code != 0 || result.Image == null) {\r\n VR.Common.HandleInvalidResult(result, \"Tiff File Load\", false);\r\n } else {\r\n var list = $(\"#image-list\");\r\n list.find(\".image\").off(\"dblclick\");\r\n var images = self.ImageDataSource.data();\r\n if (images.length == 0) {\r\n images = [];\r\n }\r\n images.push(result.Image);\r\n self.ImageDataSource.data(images);\r\n\r\n var pager = $(\"#image-pager\").data(\"kendoPager\");\r\n if (pager) {\r\n pager.refresh();\r\n }\r\n var kendoList = list.data(\"kendoListView\");\r\n if (kendoList) {\r\n kendoList.refresh();\r\n\r\n list.find(\".image\").on(\"dblclick\", function (e) {\r\n self.ShowImageWindow(this.id);\r\n });\r\n }\r\n\r\n self.ImageCount++;\r\n if (VR.Common.IsMobile()) {\r\n $(\"#mobileImagesBtnText\").html(VR.Common.HtmlEscape(self.ImageCount));\r\n }\r\n else {\r\n $(\"#images-count\").html(\"Image count: \" + VR.Common.HtmlEscape(self.ImageCount));\r\n }\r\n }\r\n },\r\n true,\r\n undefined,\r\n false,\r\n false\r\n );\r\n });\r\n }; //SetupTiffSaveButtons\r\n\r\n /*// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= \r\n /// \r\n /// Setsup the timer picker.\r\n /// \r\n /// The field model.\r\n /// */\r\n self.SetupTimePicker = function (model) {\r\n var format = model.InputFormat;\r\n if (!format || format == \"\") {\r\n format = \"HH:mm\";\r\n }\r\n\r\n var input = $(\"#f\" + model.FieldId);\r\n input.attr(\"autocomplete\", \"off\");\r\n input.kendoTimePicker({\r\n format: format\r\n });\r\n $(input).data(\"kendoTimePicker\").readonly(!model.CanEdit);\r\n\r\n input.on(\"keydown\", self.FieldKeyDown);\r\n input.on(\"keyup\", self.FieldKeyUp);\r\n input.on(\"focus\", function (e) {\r\n $(this).select();\r\n VR.Image.TypeFromImage.SetField(model, this);\r\n VR.Edit.LastFocusedField = model.FieldId;\r\n });\r\n }; //SetupTimePicker\r\n\r\n /*// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= \r\n /// \r\n /// Setsup the type from image.\r\n /// \r\n /// */\r\n self.SetupTypeFromImage = function () {\r\n VR.Image.TypeFromImage.Setup();\r\n }; //SetupTypeFromImage\r\n\r\n /*// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= \r\n /// \r\n /// Setsup the view images.\r\n /// \r\n /// */\r\n self.SetupViewImage = function () {\r\n var menu = $(\"#imagelist-menu\");\r\n if (menu.length < 1) {\r\n return;\r\n }\r\n\r\n var eventHandler = function (e) {\r\n var kendoWindow = $(\"#imagelist-window\").data(\"kendoWindow\");\r\n if (!kendoWindow) {\r\n var height = self.NavHeight;\r\n height = VR.Common.ToFloat(height) + 10;\r\n var top = height + \"px\";\r\n\r\n var listWindow = $(\"#imagelist-window\");\r\n listWindow.kendoWindow({\r\n animation: false,\r\n position: {\r\n top: top,\r\n left: \"10%\"\r\n },\r\n width: \"80%\",\r\n title: \"Images/Documents\",\r\n actions: [\"Pin\", \"Close\"],\r\n close: function (e) {\r\n setTimeout(function () {\r\n $(\".k-window\").css(\"z-index\", \"1000\");\r\n }, 1000);\r\n },\r\n open: function (e) {\r\n var elemenet = listWindow.parents(\".k-window\");\r\n elemenet.css(\"z-index\", \"1000\");\r\n },\r\n visible: false\r\n });\r\n\r\n listWindow.find(\".btn-success\").on(\"click\", function (e) {\r\n var listview = $(\"#image-list\").data(\"kendoListView\");\r\n var selected = listview.select();\r\n if (selected.length > 0) {\r\n self.ShowImageWindow(selected[0].id);\r\n }\r\n });\r\n\r\n var button = listWindow.find(\".btn-danger\");\r\n if (!self.ImageSecurity || !self.ImageSecurity.CanDelete) {\r\n button.css(\"display\", \"none\");\r\n } else {\r\n button.on(\"click\", function () {\r\n var listview = $(\"#image-list\").data(\"kendoListView\");\r\n var selected = listview.select();\r\n if (selected.length > 0) {\r\n self.ImageId = selected[0].id;\r\n VR.Common.ShowMessageBox(\r\n \"Do you want to delete this item?\",\r\n self.DeleteImage,\r\n true\r\n );\r\n }\r\n });\r\n }\r\n\r\n button = listWindow.find(\".btn-warning\");\r\n if (!self.ImageSecurity || !self.ImageSecurity.CanInactivate) {\r\n button.css(\"display\", \"none\");\r\n } else {\r\n button.on(\"click\", function () {\r\n var listWindow = $(\"#image-list\").data(\"kendoListView\");\r\n var selected = listWindow.select();\r\n if (selected.length > 0) {\r\n self.InactivateImage(selected[0].id);\r\n }\r\n });\r\n }\r\n\r\n listWindow.find(\".btn-primary\").on(\"click\", function () {\r\n $(\"#imagelist-window\")\r\n .data(\"kendoWindow\")\r\n .close();\r\n });\r\n\r\n if (VR.Common.IsMobile()) {\r\n var parents = listWindow.parents(\".k-window\");\r\n var handle = parents.find(\".k-resize-se\");\r\n handle.css(\"opacity\", \"1\");\r\n handle.css(\"background-color\", \"#66f\");\r\n handle.css(\"z-index\", \"1010\");\r\n handle.css(\"width\", \"32px\");\r\n handle.css(\"height\", \"32px\");\r\n }\r\n\r\n $(\"#image-pager\").kendoPager({\r\n dataSource: self.ImageDataSource\r\n });\r\n\r\n $(\"#image-list\").kendoListView({\r\n dataSource: self.ImageDataSource,\r\n selectable: true,\r\n template: kendo.template(\r\n \"
#: Description #
\"\r\n )\r\n });\r\n\r\n var isDark = $(\"#isdarkgadget\").val();\r\n if (isDark) {\r\n $(\"#image-list\").css(\"background-color\", \"#444\");\r\n }\r\n\r\n var parent = $(\"#image-list\").parents(\".k-window\");\r\n parent.css(\"z-index\", \"1000\");\r\n\r\n $(\"#imagelist-window\").css(\"display\", \"\");\r\n }\r\n self.ShowImageList();\r\n };\r\n\r\n menu.on(VR.Common.IsNavBurger() ? \"touchend\" : \"click\", eventHandler);\r\n let imagesBtn = $(\"#images-count\");\r\n if (VR.Common.IsMobile()) {\r\n if (self.EventId === 0) {\r\n imagesBtn.css(\"display\", \"none\");\r\n } else {\r\n imagesBtn.removeClass();\r\n imagesBtn.addClass(\"glyphicon glyphicon-picture\");\r\n imagesBtn.html(`${self.ImageCount}`);\r\n imagesBtn.css({ \"font-size\": \"30px\", \"display\": \"inline\", \"padding\": \"10px 8px 10px 12px\", \"margin-right\": \"10px\" });\r\n $(\"#mobileImagesBtnText\").css({ \"font-size\": \"30px\", \"position\": \"relative\", \"top\": \"-5px\", \"left\": \"5px\", \"color\": \"black\", \"font-weight\": \"bold\" });\r\n imagesBtn.on(\"touchend\", eventHandler);\r\n }\r\n }\r\n else {\r\n imagesBtn.on(\"dblclick\", eventHandler);\r\n }\r\n }; //SetupViewImage\r\n\r\n /*// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= \r\n /// \r\n /// Sets up window key down event handler.\r\n /// \r\n /// */\r\n self.SetupWindowKeyDown = function () {\r\n if (\"onhelp\" in window) {\r\n window.onhelp = function (e) {\r\n return false;\r\n };\r\n }\r\n\r\n $(window).on(\"keydown\", function (e) {\r\n VR.Common.ShowFieldHelp(e);\r\n });\r\n }; //SetupWindowKeyDown\r\n\r\n /*// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= \r\n /// \r\n /// Shows image/document window.\r\n /// \r\n /// The element Id.\r\n /// */\r\n self.ShowImage = function (id) {\r\n if (id.indexOf(\"image-\") > -1) {\r\n id = id.substring(\"image-\".length);\r\n id = parseInt(id);\r\n }\r\n var selected = null;\r\n $.each(self.ImageDataSource.data(), function (index, model) {\r\n if (model.ImageId == id) {\r\n selected = model;\r\n return false;\r\n }\r\n });\r\n\r\n if (!selected) {\r\n return;\r\n }\r\n\r\n var type = selected.Extension;\r\n if (type) {\r\n type = type.toLowerCase();\r\n }\r\n\r\n var isImage = false;\r\n switch (type) {\r\n case \"bmp\":\r\n case \"gif\":\r\n case \"tiff\":\r\n case \"jpeg\":\r\n case \"png\":\r\n isImage = true;\r\n break;\r\n }\r\n\r\n var windowHost = $(\"#\" + id + \"-window\");\r\n if (windowHost.length > 0) {\r\n var editor = $(\"#\" + id + \"-editor\");\r\n editor.attr(\"data-changed\", \"\");\r\n if (!isImage && type != \"pdf\") {\r\n var html = editor.html();\r\n editor.html(html);\r\n }\r\n var imageWindow = windowHost.data(\"kendoWindow\");\r\n var elemenet = windowHost.parents(\".k-window\");\r\n elemenet.css(\"z-index\", \"1000\");\r\n imageWindow.open();\r\n } else {\r\n $(\"#imagelist-message\").html(\"Loading image/document. Please wait...\");\r\n\r\n var url = VR.Common.GetRootURL(\"event/edit\") + \"data/image\";\r\n VR.Common.SecurePost(\r\n url,\r\n \"image-\" + id,\r\n function (result) {\r\n if (result.Code != 0) {\r\n $(\"#imagelist-message\").html(\"\");\r\n VR.Common.HandleInvalidResult(result, \"Image\", false);\r\n } else if (result.Images) {\r\n $(\"
\").appendTo(\r\n \"#image-windows\"\r\n );\r\n windowHost = self.CreateImageWindow(id, result);\r\n var html = self.CreateImageViewer(result, selected);\r\n var editor = $(\"#\" + id + \"-editor\");\r\n editor.html(html);\r\n editor.attr(\"data-changed\", \"\");\r\n\r\n self.SetupTiffViewerButtons(windowHost);\r\n\r\n windowHost.find(\".btn-warning\").on(\"click\", function () {\r\n VR.Print.PrintDialog(function (args) {\r\n if (args.isCancelled) {\r\n return;\r\n }\r\n VR.Image.Generate(id, args, function (images) {\r\n VR.Print.ImagePrint(images, args);\r\n });\r\n });\r\n });\r\n\r\n windowHost.find(\".btn-default\").on(\"click\", function () {\r\n VR.Image.Annotation.ToggleAnnotation(windowHost);\r\n });\r\n\r\n windowHost.find(\".imageviewer-closebutton\").on(\"click\", function () {\r\n var editor = $(\"#\" + id + \"-editor\");\r\n var changed = editor.attr(\"data-changed\");\r\n var backup = $(\"#\" + id + \"-backup\");\r\n if (changed && changed != \"\") {\r\n var image = windowHost.data(\"Image\");\r\n var input = windowHost.find(\"input[type='search']\");\r\n var dropdownlist = input.data(\"kendoDropDownList\");\r\n if (dropdownlist != null) {\r\n if (!image.ApplicationFunction) {\r\n dropdownlist.select(-1);\r\n } else {\r\n dropdownlist.select(function (item) {\r\n return item.value == image.ApplicationFunction;\r\n });\r\n var selected = dropdownlist.select();\r\n if (selected == -1) {\r\n var data = {\r\n text: image.ApplicationFunction,\r\n value: image.ApplicationFunction\r\n };\r\n dropdownlist.dataSource.add(data);\r\n dropdownlist.select(function (item) {\r\n return item.value == image.ApplicationFunction;\r\n });\r\n selected = dropdownlist.select();\r\n }\r\n }\r\n }\r\n\r\n var isactive = windowHost.find(\r\n \".imagedit-input[type='checkbox']\"\r\n );\r\n isactive.attr(\"checked\", image.IsActive);\r\n var description = windowHost.find(\r\n \".imagedit-input[type='text']\"\r\n );\r\n description.val(image.Description);\r\n if (changed.indexOf(\"image\") > 0) {\r\n var html = backup.html();\r\n editor.html(html);\r\n self.SetupTiffViewerButtons(windowHost);\r\n }\r\n }\r\n editor.attr(\"data-changed\", \"\");\r\n backup.html(\"\");\r\n windowHost.data(\"kendoWindow\").close();\r\n });\r\n\r\n windowHost.find(\".btn-info\").on(\"click\", function () {\r\n var editor = $(\"#\" + id + \"-editor\");\r\n var backup = $(\"#\" + id + \"-backup\");\r\n var html = backup.html();\r\n if (!html) {\r\n html = editor.html();\r\n backup.html(html);\r\n }\r\n var section = windowHost.find(\".imageviewer-imagesection\");\r\n var annote = editor.attr(\"annotation\");\r\n var width = editor.attr(\"annote-width\");\r\n var height = editor.attr(\"annote-height\");\r\n if (!annote) {\r\n var parentWindow = windowHost.data(\"kendoWindow\");\r\n annote = parentWindow.Annotation;\r\n width = parentWindow.AnnotationWidth;\r\n height = parentWindow.AnnotationHeight;\r\n }\r\n if (section.length == 0) {\r\n $(\"#imageeditor-modal\")\r\n .attr(\"data-annotation\", annote)\r\n .attr(\"data-annotewidth\", width)\r\n .attr(\"data-annoteheight\", height);\r\n self.EditImage(editor);\r\n } else {\r\n $(\"#tiffeditor-modal\")\r\n .attr(\"data-annotation\", annote)\r\n .attr(\"data-annotewidth\", width)\r\n .attr(\"data-annoteheight\", height);\r\n self.EditTiffImage(editor);\r\n }\r\n });\r\n\r\n windowHost.find(\".btn-success\").on(\"click\", function () {\r\n self.UpdateImage(windowHost);\r\n var backup = $(\"#\" + id + \"-backup\");\r\n backup.html(\"\");\r\n $(\"#\" + id + \"-window\").remove();\r\n });\r\n\r\n var info = windowHost.find(\".btn-info\");\r\n if (isImage) {\r\n info.css(\"display\", \"\");\r\n } else {\r\n info.css(\"display\", \"none\");\r\n }\r\n\r\n var width = $(window).width() * 0.6;\r\n var height = $(window).height() * 0.6;\r\n var frame = windowHost.find(\"iframe\");\r\n frame.width(width);\r\n frame.height(height);\r\n var imageWindow = windowHost.data(\"kendoWindow\");\r\n imageWindow.open();\r\n $(\"#imagelist-message\").html(\"\");\r\n }\r\n },\r\n true,\r\n undefined,\r\n false,\r\n false\r\n ).fail(function (e) {\r\n $(\"#imagelist-message\").html(\"\");\r\n var message = \"Get failed.\";\r\n if (e && e.responseText) {\r\n message = e.responseText;\r\n }\r\n var result = { Code: 999999, Message: message, StackInfo: \"\" };\r\n VR.Common.HandleInvalidResult(result, \"Image\", true);\r\n });\r\n }\r\n }; //ShowImage\r\n\r\n /*// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= \r\n /// \r\n /// Shows image/document list window.\r\n /// \r\n /// */\r\n self.ShowImageList = function () {\r\n if (self.ImageListWindow != null) {\r\n self.ImageListWindow.open();\r\n } else {\r\n nxLoading.start(\"Loading images/documents. Please wait...\");\r\n\r\n $(\"#image-list\").html(\"\");\r\n var event = self.EventName;\r\n var eventid = self.EventId;\r\n var selection = event + \"-\" + eventid;\r\n var url = VR.Common.GetRootURL(\"event/edit\") + \"data/images\";\r\n VR.Common.SecurePost(\r\n url,\r\n selection,\r\n function (result) {\r\n nxLoading.end();\r\n\r\n if (result && result.Code != 0) {\r\n VR.Common.HandleInvalidResult(result, \"Images\", true);\r\n } else if (!result.Images || result.Images.length < 1) {\r\n VR.Common.ShowInfo(\"No images/documents to show.\");\r\n } else {\r\n self.ImageDataSource.data(result.Images);\r\n\r\n $(\"#image-pager\")\r\n .data(\"kendoPager\")\r\n .refresh();\r\n $(\"#image-list\")\r\n .data(\"kendoListView\")\r\n .refresh();\r\n\r\n $(\"#image-list .image\").on(\"dblclick\", function (e) {\r\n self.ShowImageWindow(this.id);\r\n });\r\n\r\n self.ImageListWindow = $(\"#imagelist-window\").data(\"kendoWindow\");\r\n self.ImageListWindow.open();\r\n }\r\n },\r\n true,\r\n undefined,\r\n false,\r\n false\r\n );\r\n }\r\n }; //ShowImageList\r\n\r\n /*// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= \r\n /// \r\n /// Shows image window.\r\n /// \r\n /// The image Id.\r\n /// */\r\n self.ShowImageWindow = function (id) {\r\n var selectedid = id;\r\n if (id && id.indexOf(\"image-\") > -1) {\r\n id = id.substring(\"image-\".length);\r\n }\r\n\r\n id = parseInt(id);\r\n if (isNaN(id)) {\r\n return;\r\n }\r\n\r\n var selected = null;\r\n $.each(self.ImageDataSource.data(), function (index, model) {\r\n if (model.ImageId == id) {\r\n selected = model;\r\n return false;\r\n }\r\n });\r\n\r\n if (\r\n selected &&\r\n self.ImageSecurity &&\r\n !selected.IsActive &&\r\n !self.ImageSecurity.CanDisplayInactive\r\n ) {\r\n VR.Common.ShowError(\"Cannot show hidden image/document.\");\r\n return;\r\n }\r\n\r\n self.ShowImage(selectedid);\r\n }; //ShowImageWindow\r\n\r\n /*// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= \r\n /// \r\n /// Shows notes.\r\n /// \r\n /// The field Id.\r\n /// */\r\n self.ShowNotes = function (fieldId) {\r\n $(\"#notes-list-body\").attr(\"data-field-id\", fieldId);\r\n if (self.Notes) {\r\n self.CreateNotesList();\r\n $(\"#noteslist-modal\").modal(\"show\");\r\n } else {\r\n nxLoading.start(\"Loading notes. Please wait...\");\r\n\r\n var event = self.EventName;\r\n var url = VR.Common.GetRootURL(\"event/edit\") + \"data/notes\";\r\n var selection =\r\n \"event=\" + event + \"|eventId=\" + self.EventId + \"|field=0\";\r\n VR.Common.SecurePost(\r\n url,\r\n selection,\r\n function (result) {\r\n nxLoading.end();\r\n if (result.Code == 0) {\r\n self.CreateNotesEditor();\r\n self.PopulateNotes(result);\r\n $(\"#noteslist-modal\").modal(\"show\");\r\n } else {\r\n VR.Common.HandleInvalidResult(result, \"Notes\", false);\r\n }\r\n },\r\n true,\r\n undefined,\r\n false,\r\n false\r\n );\r\n }\r\n }; //ShowNotes\r\n\r\n /*// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= \r\n /// \r\n /// Shows popup menu.\r\n /// \r\n /// The event object.\r\n /// */\r\n self.ShowPopupMenu = function (event) {\r\n if ($(event.target).attr(\"spellcheck\") == \"true\" && event.which != 113)\r\n return;\r\n if (event.preventDefault) {\r\n event.preventDefault();\r\n }\r\n var pageInfo = \"\";\r\n if (VR.Image.Annotation.ShowPopupMenu(event)) {\r\n pageInfo = \"none\";\r\n }\r\n\r\n if (!pageInfo) {\r\n var parent = $(event.target).parents(\".k-window\");\r\n var pageInfo = parent.length > 0 ? \"none\" : \"\"; //Disable for k-window - treated as modal.\r\n }\r\n\r\n var isField = false;\r\n var isDataField = false;\r\n var isSign = false;\r\n var canNote = false;\r\n var hasValue = false;\r\n\r\n var parent = $(event.target).parents(\".modal\");\r\n var modal = parent.length > 0 ? \"none\" : \"\";\r\n var parent = $(event.target).parents(\".edit-field\");\r\n var target = null;\r\n var inputs = parent.find(\".input-field\");\r\n $.each(inputs, function (index, input) {\r\n var id = $(input).attr(\"id\");\r\n if (id) {\r\n var index = id.indexOf(\"f\");\r\n if (index == 0) {\r\n target = input;\r\n isField = true;\r\n isDataField = true;\r\n if (self.CanNotes && self.EventId > 0) {\r\n canNote = true;\r\n }\r\n return false;\r\n }\r\n }\r\n });\r\n\r\n self.PopupTarget = target;\r\n var model = $(target).data(\"field\");\r\n if ((!model || model.IsEnabled === false) && !event.target.className.includes(\"upper-canvas\")) {\r\n return;\r\n }\r\n if (model && model.Case && model.Case != \"\" && model.Case != \"normal\") {\r\n $(\"#overwrite-casing-popupmenu\").show();\r\n if ($(target).data(\"casing\") != \"ignore\") {\r\n $(\"#overwrite-casing-popupmenu\").text(\"Ignore Casing Rules\");\r\n $(target).data(\"casing\", \"keep\");\r\n } else {\r\n $(\"#overwrite-casing-popupmenu\").text(\"Keep Casing Rules\");\r\n }\r\n } else {\r\n $(\"#overwrite-casing-popupmenu\").hide();\r\n }\r\n if (model && model.FieldType == \"Signature\") {\r\n isSign = true;\r\n if (model.FieldValue) {\r\n hasValue = true;\r\n }\r\n }\r\n\r\n if (\r\n model &&\r\n (model.FieldType == \"hidden\" ||\r\n model.FieldType == \"Button\" ||\r\n model.FieldType == \"Grid\" ||\r\n model.FieldType == \"Image\" ||\r\n model.FieldType == \"Label\" ||\r\n model.FieldType == \"Signature\")\r\n ) {\r\n isDataField = false;\r\n }\r\n\r\n if (isField) {\r\n isField = \"\";\r\n } else {\r\n isField = \"none\";\r\n }\r\n\r\n $(\"#fieldinfo-popupmenu\").css(\"display\", isField);\r\n if (\r\n isDataField &&\r\n ($(target).attr(\"readonly\") ||\r\n $(target).hasClass(\"readonly-text\") ||\r\n $(target).hasClass(\"aria-readonly\") ||\r\n !model.IsEditable)\r\n ) {\r\n isDataField = false;\r\n }\r\n\r\n if (isDataField) {\r\n isDataField = \"\";\r\n } else {\r\n isDataField = \"none\";\r\n }\r\n\r\n $(\"#fieldquery-popupmenu\").css(\"display\", isDataField);\r\n $(\"#fieldreset-popupmenu\").css(\"display\", isDataField);\r\n $(\"#clearfield-popupmenu\").css(\"display\", isDataField);\r\n $(\"#defaultvalue-popupmenu\").css(\"display\", isDataField);\r\n\r\n if (\r\n model &&\r\n (model.FieldType == \"CheckBox\" || model.FieldType == \"RadioButton\")\r\n ) {\r\n isDataField = \"none\";\r\n }\r\n\r\n $(\"#currentdate-popupmenu\").css(\"display\", isDataField);\r\n\r\n if (canNote) {\r\n canNote = \"\";\r\n } else {\r\n canNote = \"none\";\r\n }\r\n\r\n $(\"#notes-popupmenu\").css(\"display\", canNote);\r\n\r\n if (isSign) {\r\n isSign = \"\";\r\n } else {\r\n isSign = \"none\";\r\n }\r\n\r\n $(\"#editsign-popupmenu\").css(\"display\", isSign);\r\n\r\n if (hasValue) {\r\n hasValue = \"\";\r\n } else {\r\n hasValue = \"none\";\r\n }\r\n $(\"#viewsign-popupmenu\").css(\"display\", hasValue);\r\n var top = event.pageY;\r\n var left = event.pageX;\r\n if (!top) top = $(event.target).offset().top;\r\n if (!left) left = $(event.target).offset().left;\r\n if (event.target.className.includes(\"upper-canvas\")) {\r\n $(\"#scripteditor-popupmenu\").css(\"display\", \"none\");\r\n }\r\n else {\r\n $(\"#scripteditor-popupmenu\").css(\"display\", \"\");\r\n }\r\n $(\".custom-menu\")\r\n .finish()\r\n .toggle(100)\r\n .css({ top: top + \"px\", left: left + \"px\" });\r\n }; //ShowPopupMenu\r\n\r\n /*// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= \r\n /// \r\n /// Shows save error messsage.\r\n /// \r\n /// The error message.\r\n /// The value to indicate if message should not be escaped.\r\n /// */\r\n self.ShowSaveError = function (message, noescape) {\r\n if (!noescape) {\r\n message = VR.Common.HtmlEscape(message);\r\n }\r\n\r\n message = message.replace(/\\n/g, \"
\");\r\n\r\n VR.Common.ShowError(\r\n \"

Error(s) occured during save.

\" + message,\r\n \"Save Error\",\r\n noescape\r\n );\r\n }; //ShowSaveError\r\n\r\n /*// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= \r\n /// \r\n /// Initializes Topaz signature device.\r\n /// \r\n /// The drawing canvas.\r\n /// */\r\n self.StartTopazInput = function (context) {\r\n try {\r\n var retmod = 0;\r\n self.SignaturePad.TopazTmr = null;\r\n SetTabletState(1);\r\n retmod = TabletModelNumber();\r\n SetTabletState(0);\r\n if (retmod == 11 || retmod == 12 || retmod == 15) {\r\n self.SignaturePad.TopazTmr =\r\n SetTabletState(1, context, 50) || self.SignaturePad.TopazTmr;\r\n SetLCDCaptureMode(2);\r\n LcdRefresh(0, 0, 0, 500, 100);\r\n LCDSetWindow(0, 0, 500, 100);\r\n SetJustifyMode(0);\r\n KeyPadClearHotSpotList();\r\n ClearSigWindow(0);\r\n ClearSigWindow(1);\r\n SetDisplayXSize(context.canvas.width);\r\n SetDisplayYSize(context.canvas.height);\r\n SetImageXSize(context.canvas.width);\r\n SetImageYSize(context.canvas.height);\r\n SetLCDCaptureMode(2);\r\n }\r\n } catch (e) { }\r\n }; // StartTopazInput\r\n\r\n /*// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= \r\n /// \r\n /// Stops input for Topaz signature device.\r\n /// \r\n /// */\r\n self.StopTopazInput = function () {\r\n self.ClearTopazDisplay();\r\n if (self.SignaturePad.TopazTmr != null) {\r\n SetLCDCaptureMode(1);\r\n SetTabletState(0, self.SignaturePad.TopazTmr);\r\n }\r\n }; //StopTopazInput\r\n\r\n /*// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= \r\n /// \r\n /// Stops input for Topaz signature device.\r\n /// \r\n /// */\r\n self.ClearTopazDisplay = function () {\r\n if (self.SignaturePad.TopazTmr != null) {\r\n LcdRefresh(0, 0, 0, 500, 100);\r\n LCDSetWindow(0, 0, 500, 100);\r\n SetSigWindow(1, 0, 0, 500, 100);\r\n KeyPadClearHotSpotList();\r\n ClearSigWindow(0);\r\n }\r\n }; //ClearTopazDisplay\r\n\r\n /*// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\r\n /// \r\n /// Shows signature dialog window.\r\n /// \r\n /// The button that initiated.\r\n /// The value to indcate if the dialgo window is to view the signature.\r\n /// */\r\n self.ShowSignature = function (button, isDisplay) {\r\n var model = $(button).data(\"field\");\r\n if (!!model.FieldValue) {\r\n isDisplay = true;\r\n }\r\n if (isDisplay) {\r\n if (!model || !model.FieldValue) {\r\n return;\r\n }\r\n\r\n var url = VR.Common.GetRootURL(\"event/edit\") + \"data/signature\";\r\n VR.Common.SecurePost(\r\n url,\r\n model.FieldValue,\r\n function (result) {\r\n if (result.Code == 0) {\r\n self.SignaturePad.clear();\r\n\r\n self.SignaturePad.fromDataURL(result.Signature);\r\n $(\"#signature-mouse\").css(\"display\", \"\");\r\n $(\"#signature-clear\").css(\"display\", \"\");\r\n $(\"#signature-cancel\").css(\"display\", \"\");\r\n $(\"#signature-save\").css(\"display\", \"\");\r\n $(\"#signature-ok\").css(\"display\", \"none\");\r\n\r\n self.StartTopazInput(self.SignaturePad._ctx);\r\n\r\n $(\"#signature-modal\").modal(\"show\");\r\n } else {\r\n VR.Common.HandleInvalidResult(result, \"Signture\", false);\r\n }\r\n },\r\n true,\r\n \"signatureid=\",\r\n false,\r\n false\r\n );\r\n } else {\r\n if (self.EventId == 0) {\r\n VR.Common.ShowError(\r\n \"Cannot enter signature for a new event. Please save first.\",\r\n \"Error\"\r\n );\r\n return;\r\n }\r\n\r\n self.SignaturePad.clear();\r\n $(\"#signature-mouse\").css(\"display\", \"\");\r\n $(\"#signature-clear\").css(\"display\", \"\");\r\n $(\"#signature-cancel\").css(\"display\", \"\");\r\n $(\"#signature-save\").css(\"display\", \"\");\r\n $(\"#signature-ok\").css(\"display\", \"none\");\r\n\r\n self.StartTopazInput(self.SignaturePad._ctx);\r\n\r\n $(\"#signature-modal\").modal(\"show\");\r\n }\r\n }; //ShowSignature\r\n\r\n /*// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= \r\n /// \r\n /// Updates the current image.\r\n /// \r\n /// The host of image editor window.\r\n /// */\r\n self.UpdateImage = function (host) {\r\n var imageWindow = host.data(\"kendoWindow\");\r\n imageWindow.close();\r\n\r\n var editor = host.find(\".editor-image\");\r\n var id = editor.attr(\"id\");\r\n\r\n var index = id.indexOf(\"-editor\");\r\n if (index > -1) {\r\n id = id.substring(0, index);\r\n }\r\n\r\n index = id.indexOf(\"image-\");\r\n if (index > -1) {\r\n id = id.substring(\"image-\".length);\r\n }\r\n\r\n var changed = editor.attr(\"data-changed\");\r\n if (!changed) {\r\n return;\r\n }\r\n\r\n var input = host.find(\"input[type='search']\");\r\n var appfunc = input.data(\"kendoDropDownList\");\r\n if (appfunc != null) {\r\n appfunc = appfunc.value();\r\n }\r\n\r\n var isactive = host.find(\".imagedit-input[type='checkbox']\");\r\n if (isactive.length == 0) {\r\n isactive = null;\r\n } else {\r\n var isactive = isactive.prop(\"checked\");\r\n }\r\n\r\n var description = host.find(\".imagedit-input[type='text']\");\r\n description = description.val();\r\n var data = \"\";\r\n if (changed.indexOf(\"image\") > -1) {\r\n var images = editor.find(\"img\");\r\n $.each(images, function (index, image) {\r\n data += \"!\" + $(image).attr(\"src\");\r\n });\r\n }\r\n\r\n if (data && data != \"\") {\r\n if (data.indexOf(\"!\") == 0) {\r\n data = data.substring(1);\r\n }\r\n data = data.replace(/\\+/g, \"#\");\r\n }\r\n\r\n var annote = editor.attr(\"annotation\");\r\n var width = editor.attr(\"annote-width\");\r\n var height = editor.attr(\"annote-height\");\r\n if (!annote) {\r\n var parentWindow = $(\"#\" + id + \"-window\").data(\"kendoWindow\");\r\n annote = parentWindow.Annotation;\r\n width = parentWindow.AnnotationWidth;\r\n height = parentWindow.AnnotationHeight;\r\n }\r\n if (annote) {\r\n annote = annote\r\n .replace(/\\[/g, \"%%_OPENBRACKET_%%\")\r\n .replace(/\\]/g, \"%%_CLOSEBRACKET_%%\")\r\n .replace(/\\{/g, \"%%_OPENCURL_%%\")\r\n .replace(/\\}/g, \"%%_CLOSECURL_%%\");\r\n }\r\n else {\r\n annote = \"\";\r\n }\r\n\r\n var url = VR.Common.GetRootURL(\"event/edit\") + \"data/imageupdate\";\r\n var selection =\r\n \"id=\" +\r\n id +\r\n \"|appfunc=\" +\r\n appfunc +\r\n \"|isactive=\" +\r\n isactive +\r\n \"|description=\" +\r\n description +\r\n \"|changed=\" +\r\n changed +\r\n \"|annote=\" +\r\n annote +\r\n \"|width=\" +\r\n width +\r\n \"|height=\" +\r\n height +\r\n \"|data=\" +\r\n data;\r\n VR.Common.SecurePost(\r\n url,\r\n selection,\r\n function (result) {\r\n if (result.Code != 0) {\r\n VR.Common.HandleInvalidResult(result, \"Image Update\", false);\r\n } else {\r\n result.Annotations = result.Image.Annotations;\r\n result.AnnotateWidth = result.Image.AnnotateWidth;\r\n result.AnnotateHeight = result.Image.AnnotateHeight;\r\n host.data(\"Image\", result);\r\n\r\n var list = $(\"#image-list\");\r\n list.find(\".image\").off(\"dblclick\");\r\n var index = -1;\r\n var images = self.ImageDataSource.data();\r\n if (images.length == 0) {\r\n images = [];\r\n } else {\r\n $.each(images, function (i, image) {\r\n if (image.ImageId == result.Image.ImageId) {\r\n index = i;\r\n return false;\r\n }\r\n });\r\n }\r\n\r\n if (index == -1) {\r\n images.push(result.Image);\r\n } else {\r\n images.splice(index, 1, result.Image);\r\n }\r\n\r\n self.ImageDataSource.data(images);\r\n\r\n var pager = $(\"#image-pager\").data(\"kendoPager\");\r\n if (pager) {\r\n pager.refresh();\r\n }\r\n var kendoList = list.data(\"kendoListView\");\r\n if (kendoList) {\r\n kendoList.refresh();\r\n\r\n list.find(\".image\").on(\"dblclick\", function (e) {\r\n self.ShowImageWindow(this.id);\r\n });\r\n }\r\n }\r\n },\r\n true,\r\n undefined,\r\n false,\r\n false\r\n );\r\n }; //UpdateImage\r\n\r\n self.ValidDate = function (field) {\r\n self.Validating = true;\r\n var elemModel = field.data(\"field\");\r\n var invalidMessage = \"\";\r\n\r\n function requirements() {\r\n invalidMessage = \"Required.\";\r\n return (\r\n (!elemModel.RequiredForTransmit &&\r\n !elemModel.RequiredForRegister) ||\r\n (elemModel.RequiredForTransmit &&\r\n elemModel.FieldType === \"Hidden\") ||\r\n field.val()\r\n );\r\n }\r\n function valDate() {\r\n invalidMessage = \"Enter a valid date.\";\r\n var isLeapYear = function (year) {\r\n return (year % 4 == 0 && year % 100 != 0) || year % 400 == 0;\r\n };\r\n var returnValue = false;\r\n\r\n var val = self.GetInputValue(field, true);\r\n if (val.length && elemModel.FieldType == \"DatePicker\") {\r\n let dateParts = val.split(\"/\");\r\n let month = parseInt(dateParts[0]);\r\n let day = parseInt(dateParts[1]);\r\n let year = parseInt(dateParts[2]);\r\n if (!isNaN(month) && !isNaN(day) && !isNaN(year) && isDate(val)) {\r\n if (month === 88 || month === 99) {\r\n returnValue = day <= 31 || day === 88 || day === 99;\r\n if (!returnValue) {\r\n invalidMessage = \"Enter a valid day.\";\r\n }\r\n }\r\n else {\r\n let daysInMonth = [31, isLeapYear(year) ? 29 : 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\r\n returnValue = month <= 12 && month > 0;\r\n if (returnValue) {\r\n returnValue = day <= daysInMonth[month - 1] || day === 88 || day === 99;\r\n if (!returnValue) {\r\n invalidMessage = \"Enter a valid day.\";\r\n }\r\n }\r\n else {\r\n invalidMessage = \"Enter a valid month.\";\r\n }\r\n }\r\n }\r\n } else {\r\n returnValue = true;\r\n }\r\n return returnValue;\r\n }\r\n function checkRequired() {\r\n invalidMessage = \"Required.\";\r\n if (elemModel.IsRequired && !field.val()) {\r\n elemModel.RequiredFlag = true;\r\n }\r\n return elemModel.IsRequired ? field.val() : true;\r\n }\r\n function validationSteps() {\r\n return (\r\n requirements() &&\r\n valDate()\r\n );\r\n }\r\n\r\n var valid = checkRequired() && validationSteps();\r\n\r\n if (!valid) {\r\n self.ErrorPanel.setError({\r\n field: field,\r\n model: elemModel,\r\n message: invalidMessage,\r\n location: null,\r\n isHardEdit: elemModel.isHardEdit,\r\n errorType: \"validation\"\r\n });\r\n self.TakeActionOnField(\"skipped\", invalidMessage, null, field, elemModel);\r\n self.AddErrorField(elemModel);\r\n }\r\n self.Validating = false;\r\n return valid;\r\n }; //ValidDate\r\n\r\n\r\n /*// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= \r\n /// \r\n /// Validates the current field.\r\n /// \r\n /// The sender.\r\n /// Alawys return false.*/\r\n self.ValidateField = function (sender, theState) {\r\n if (theState == undefined) {\r\n theState = self.State;\r\n }\r\n var field = $(sender);\r\n var value = field.val();\r\n var model = field.data(\"field\");\r\n if (!model && field[0].name) {\r\n model = $(\"#\" + field[0].name).data(\"field\");\r\n }\r\n \r\n if (!model) {\r\n return true;\r\n }\r\n\r\n self.editModel = model;\r\n self.editField = field;\r\n\r\n var state = field.data(\"state\");\r\n\r\n\r\n self.RemoveErrorField(model);\r\n\r\n if (model.FieldStatus != \"literal\" && (model.FieldStatus != \"overridden\" && model.FieldStatus != \"queried\")) {\r\n // Gets rid of leading zeros if a value is a number for better comparison\r\n if (!!model.PreviousValue && !!model.FieldValue && !Number.isNaN(model.PreviousValue) && !Number.isNaN(model.FieldValue)) {\r\n model.FieldStatus = (parseInt(model.PreviousValue) !== parseInt(model.FieldValue)) ? null : model.FieldStatus;\r\n }\r\n else {\r\n model.FieldStatus = null;\r\n }\r\n }\r\n\r\n if (model.FieldStatus == \"overridden\" || model.FieldStatus == \"queried\") {\r\n return true;\r\n }\r\n\r\n // when the field is a textbox type and data type of char then remove extra spaces\r\n if (model.FieldDataType === \"char\" && model.FieldType === \"TextBox\") {\r\n if (typeof value === \"string\") {\r\n // if value is a string check for multi-spaces\r\n var multispaces = RegExp(/\\s\\s+/g);\r\n if (multispaces.test(value)) {\r\n // replace multiple spaces with a single space\r\n field.val(value.replace(/\\s\\s+/g, \" \"));\r\n //VR.Script.MoveLit(model.FieldValue, model.FieldName);\r\n }\r\n }\r\n }\r\n\r\n //model.HasError = false;\r\n if ((model.Edits && model.ShouldRunEdits)|| model.IsRequired) {\r\n var parameter = {\r\n message: null,\r\n location: null,\r\n lastedit: null,\r\n edittype: null,\r\n errorat: null,\r\n state: state\r\n };\r\n\r\n if (model.FieldType !== \"Button\") {\r\n $.each(model.Edits, function (index, edit) {\r\n if (self.IsSaving() || !edit.EditOnSaveOnly) {\r\n var result = VR.Script.Validate(field, model, edit, parameter);\r\n if (!result) {\r\n return false;\r\n }\r\n }\r\n });\r\n }\r\n \r\n var isHard\r\n var isHardEdit = null;\r\n if (model.IsRequired && self.load) {\r\n parameter.message = \"Required.\"\r\n isHardEdit = true;\r\n }\r\n var message = parameter.message;\r\n var location = parameter.location;\r\n var edit = parameter.lastedit;\r\n if (edit && isHardEdit == null) {\r\n isHardEdit = edit.IsHardEdit;\r\n }\r\n if (model.FieldStatus !== \"literal\" && message == null || message == \"\") {\r\n if (model.FieldType != \"Grid\") {\r\n var msgID = \"#f\" + model.FieldId + \"-msg\";\r\n if ($(msgID).length == 0) self.ResetField(sender, true);\r\n }\r\n } else if (\r\n model.FieldStatus != null &&\r\n model.FieldStatus != \"\" &&\r\n model.FieldStatus != \"alerttrigger\" &&\r\n model.FieldStatus != \"skipped\" &&\r\n model.FieldStatus != \"forcequery\" &&\r\n model.FieldStatus != \"override\" \r\n ) {\r\n model.QueryLocation = location;\r\n model.ErrorMessage = message;\r\n } else {\r\n \r\n if (model.FieldType != \"Grid\" && parameter.edittype != \"alert\") {\r\n self.ErrorPanel.setError({\r\n field: field,\r\n model: model,\r\n message: message,\r\n location: location,\r\n isHardEdit: isHardEdit\r\n });\r\n\r\n self.TakeActionOnField(\"skipped\", message, location, field, model);\r\n\r\n self.AddErrorField(model);\r\n }\r\n }\r\n }\r\n if (model.FieldType == \"DatePicker\") {\r\n return self.ValidDate(field);\r\n }\r\n\r\n return true;\r\n }; //ValidateField\r\n\r\n self.PutFocusOnFirstWritableField = function () {\r\n //add focus to the first writeable control\r\n var topMostControls = $.grep(VR.Edit.Fields, function (field) {\r\n return (\r\n field.IsEditable &&\r\n field.IsEnabled &&\r\n field.FieldType != \"Hidden\" &&\r\n field.FieldType != \"Button\" &&\r\n field.FieldType != \"Label\"\r\n );\r\n });\r\n\r\n //if there are no writable controls select the first tab\r\n if (topMostControls.length === 0) {\r\n var tabs = $(\"a[role='tab']\").toArray();\r\n tabs[0].click();\r\n } else {\r\n self.FirstField = topMostControls[0];\r\n var gadget = null;\r\n var input = $(\"#f\" + self.FirstField.FieldId);\r\n switch (self.FirstField.FieldType) {\r\n case \"AutoComplete\":\r\n gadget = $(input).data(\"kendoAutoComplete\");\r\n break;\r\n case \"ComboBox\":\r\n gadget = $(input).data(\"kendoComboBox\");\r\n break;\r\n case \"MultiSelect\":\r\n gadget = $(input).data(\"kendoMultiSelect\");\r\n break;\r\n case \"NumericTextBox\":\r\n gadget = $(input).data(\"kendoNumericTextBox\");\r\n break;\r\n case \"RadioButton\":\r\n gadget = $(input).find(\"input:first\");\r\n break;\r\n }\r\n var tabId = input.closest(\"div[role='tabpanel']\").attr(\"id\");\r\n $(\"a[href='#\" + tabId + \"']\").click();\r\n if (gadget) {\r\n gadget.focus();\r\n } else {\r\n $(input).focus();\r\n }\r\n VR.Script.LastFocus = { input: input, model: self.FirstField };\r\n }\r\n }; //PutFocusOnFirstWritableField\r\n return self;\r\n})(); //VR.Edit\r\n\r\n// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=\r\n/// \r\n/// Document object ready event handler.\r\n/// \r\n/// \r\nwindow.editOnLoad = function () {\r\n if (window.location.href.indexOf(\"jsedit\") > -1) {\r\n VR.Common.Location = \"/jsedit\";\r\n } else if (window.location.href.indexOf(\"batch\") > -1) {\r\n VR.Common.Location = \"/event/batchupdate\";\r\n } else {\r\n VR.Common.Location = \"/event/edit\";\r\n }\r\n VR.Common.FieldPopup = VR.Edit.SetupPopupMenu;\r\n VR.Edit.Initialize();\r\n VR.Common.ValidateSession();\r\n VR.Common.CreateWorkQueueHandler();\r\n if (editPageData.ShowWorkQueues === true) {\r\n VR.Common.SetupWorkQueueCounts();\r\n }\r\n VR.Common.CreateMainMenus();\r\n VR.Common.CreatePopOverToolTop();\r\n VR.Common.SetupLogin();\r\n VR.Common.SetupTwoFactor();\r\n VR.Common.SetupLogout();\r\n VR.Common.SetupQuickSearch();\r\n VR.Common.SetupMessageRead();\r\n VR.Common.SetupOnResize(VR.Edit.ResizeWindow);\r\n VR.Common.SetupConnection();\r\n VR.Common.CreateAmendments();\r\n VR.Common.CreateDocuments();\r\n setTimeout(function () {\r\n VR.Edit.ExecuteOnDisplay();\r\n if (VR.Edit.IsDisplayOnly) {\r\n VR.Script.EnableField(\";a\", false);\r\n }\r\n if (VR.Script.FocusOnDisplay === null) {\r\n VR.Edit.PutFocusOnFirstWritableField();\r\n }\r\n else {\r\n nx.Focus(VR.Script.FocusOnDisplay);\r\n }\r\n }, 100);\r\n\r\n $(\"#backToTop\").hide();\r\n $('[data-toggle=\"popover\"]').popover();\r\n};\r\n","export function errorPanel() {\r\n let panelData = {};\r\n var panel = \"#validation-panel\";\r\n var actionKeys = {\r\n r: \"rekeyed\",\r\n o: \"overridden\",\r\n q: \"queried\"\r\n };\r\n function getData() {\r\n return panelData;\r\n }\r\n function setState(data) {\r\n panelData = data;\r\n var display = Object.keys(data).length && !VR.Common.IsMobile() ? \"block\" : \"none\";\r\n $(panel).css(\"display\", display);\r\n\r\n window.React.Render(\r\n document.getElementById(\"validation-panel\"),\r\n window.React.Components.ValidationPanel,\r\n {\r\n errorData: data\r\n }\r\n );\r\n }\r\n function showActionKey(k, isHardEdit, model, isValidationErr) {\r\n var show = false;\r\n if (isValidationErr) {\r\n show = k === \"R\";\r\n } else {\r\n if (k === \"R\") {\r\n show = true;\r\n } else if (k === \"Q\") {\r\n show = !(isHardEdit || model.ByPassValue);\r\n } else if (k === \"O\") {\r\n show = !(isHardEdit || model.ByPassValue) && model.CanOverride;\r\n }\r\n }\r\n return show;\r\n }\r\n function showBypassKey(bypass, isHardEdit, model, isValidationErr) {\r\n return (\r\n !isValidationErr &&\r\n (!model ||\r\n (!isHardEdit &&\r\n model.ByPassValue &&\r\n !model.AllowUnknown &&\r\n model.ByPassValue.indexOf(bypass.toString()) > -1))\r\n );\r\n }\r\n function resetError(FieldId) {\r\n let errorData = getData();\r\n delete errorData[FieldId];\r\n setState(errorData);\r\n }\r\n return {\r\n resetError,\r\n /*// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= \r\n /// \r\n /// Shows validation error section.\r\n /// Hard/Soft Edit - Hard: Allow rekey or temporarily skip; Soft: Shows rekey, skip, override and query -- however if bypass vars are present then override and query are not shown. \r\n /// \r\n /// The input element.\r\n /// The field model.\r\n /// The error message.\r\n /// The query location.\r\n /// The value to indicate if this is a hard edit.\r\n /// */\r\n setError: function (error) {\r\n var field = error.field;\r\n var model = error.model;\r\n var message =\r\n typeof error.message === \"string\"\r\n ? error.message\r\n : \"Unexpected error occured, please contact your administrator.\";\r\n var location = error.location;\r\n var isHardEdit = error.isHardEdit;\r\n var isValidationErr = error.errorType === \"validation\";\r\n\r\n var errorData = getData();\r\n var bypassButtons = [\r\n {\r\n title: \"Queried and verified\",\r\n txt: \"1\"\r\n },\r\n {\r\n title: \"Queried not verified\",\r\n txt: \"2\"\r\n },\r\n {\r\n title: \"Review needed\",\r\n txt: \"3\"\r\n },\r\n {\r\n title: \"Query needed\",\r\n txt: \"4\"\r\n }\r\n ].map(function (b) {\r\n return $.extend({}, b, {\r\n placement: \"bottom-end\",\r\n className: \"bypassBtn\",\r\n show: showBypassKey(b.txt, isHardEdit, model, isValidationErr)\r\n });\r\n });\r\n var actionButtons = [\r\n {\r\n title: \"Rekey\",\r\n txt: \"R\"\r\n },\r\n {\r\n title: \"Override\",\r\n txt: \"O\"\r\n },\r\n {\r\n title: \"Query\",\r\n txt: \"Q\"\r\n }\r\n ].map(function (b) {\r\n return $.extend({}, b, {\r\n placement: \"bottom-start\",\r\n className: \"btn\" + b.txt,\r\n show: showActionKey(b.txt, isHardEdit, model, isValidationErr)\r\n });\r\n });\r\n let timeAdded = errorData[model.FieldId]\r\n ? errorData[model.FieldId].timeAdded\r\n : new Date();\r\n errorData[model.FieldId] = {\r\n required: model.IsRequired,\r\n link: {\r\n breadCrumbs: [model.Tab, model.Section, model.FieldLabel],\r\n onclick: function () {\r\n resetError(model.FieldId);\r\n VR.Edit.TakeActionOnField(\r\n \"rekeyed\",\r\n message,\r\n location,\r\n field,\r\n model\r\n );\r\n }\r\n },\r\n location: location || \"\",\r\n message: message,\r\n actionButtons: {\r\n buttons: actionButtons,\r\n events: {\r\n onkeydown: VR.Edit.FieldKeyDown,\r\n onkeypress: function (e) {\r\n e.preventDefault();\r\n var key = actionKeys[e.key.toLowerCase()];\r\n if (\r\n key &&\r\n showActionKey(\r\n e.key.toUpperCase(),\r\n isHardEdit,\r\n model,\r\n isValidationErr\r\n )\r\n ) {\r\n resetError(model.FieldId);\r\n VR.Edit.TakeActionOnField(key, message, location, field, model);\r\n }\r\n },\r\n onclick: function (e, btn) {\r\n var txt = btn.txt;\r\n var key = actionKeys[txt.toLowerCase()];\r\n if (key) {\r\n resetError(model.FieldId);\r\n VR.Edit.TakeActionOnField(key, message, location, field, model);\r\n }\r\n }\r\n }\r\n },\r\n bypassButtons: {\r\n buttons: bypassButtons,\r\n events: {\r\n onclick: function (e, btn) {\r\n resetError(model.FieldId);\r\n var data = btn.txt;\r\n var inputs = VR.Edit.GetInputFields(model.FieldName + \"_BYPASS\");\r\n if (inputs.length > 0) {\r\n VR.Edit.SetFieldValue(inputs[0], data, true);\r\n }\r\n\r\n inputs = VR.Edit.GetInputFields(model.FieldName + \"_MVR\");\r\n if (inputs.length > 0) {\r\n VR.Edit.SetFieldValue(inputs[0], \"\", true);\r\n }\r\n\r\n var status = \"queried\";\r\n if (data == \"1\") {\r\n status = \"overridden\";\r\n }\r\n VR.Edit.TakeActionOnField(status, message, location, field, model);\r\n model.HasSaveError = false;\r\n VR.Script.FocusField(nx.LastFocus, true);\r\n }\r\n }\r\n },\r\n missingValues: {\r\n show: !!model.HasMissingVariable,\r\n value: \"Caption\",\r\n key: \"Key\",\r\n dataSource: VR.Edit.MissingValues,\r\n defaultValue: function () {\r\n return VR.Edit.GetFieldValue(model.FieldName + \"_MVR\");\r\n },\r\n events: {\r\n onChange: function (e) {\r\n var value = e.target.value;\r\n if (!value) {\r\n return;\r\n }\r\n var inputs = VR.Edit.GetInputFields(model.FieldName + \"_MVR\");\r\n if (inputs.length > 0) {\r\n VR.Edit.SetFieldValue(inputs[0], value, true);\r\n }\r\n VR.Edit.SetStatus(field, model, \"unknown\", message, location);\r\n VR.Script.FocusField(nx.LastFocus, true);\r\n }\r\n }\r\n },\r\n timeAdded\r\n };\r\n setState(errorData);\r\n }\r\n };\r\n}\r\n"],"sourceRoot":""}