{"version":3,"sources":["scripts/main.js","scripts/Auth/auth.js","scripts/Account/account.js","scripts/Components/FlexGridComponent.js","scripts/Components/GridComponentHelper.js","scripts/Components/GroepsdagstatusComponent.js","scripts/Components/GroepsperiodestatusComponent.js","scripts/Components/GroepsroosterComponent.js","scripts/Components/PeriodeOverzichtComponent.js","scripts/Components/WeekcalendarComponent.js","scripts/Components/WeekroosterComponent.js","scripts/Common/clipboard.js","scripts/Common/collapse.js","scripts/Common/common.js","scripts/Common/contract.js","scripts/Common/cookies.js","scripts/Common/dataCards.js","scripts/Common/documents.js","scripts/Common/downloadTable.js","scripts/Common/element.js","scripts/Common/expenses.js","scripts/Common/file.js","scripts/Common/filter.js","scripts/Common/form.js","scripts/Common/image.js","scripts/Common/introtext.js","scripts/Common/json.js","scripts/Common/language.js","scripts/Common/letter.js","scripts/Common/loader.js","scripts/Common/loonstroken.js","scripts/Common/messages.js","scripts/Common/modal.js","scripts/Common/Navigation.js","scripts/Common/notifications.js","scripts/Common/pdf.js","scripts/Common/picklist.js","scripts/Common/profilepicture.js","scripts/Common/report.js","scripts/Common/requestStatus.js","scripts/Common/search.js","scripts/Common/session.js","scripts/Common/Table.js","scripts/Common/tableOverview.js","scripts/Common/tasks.js","scripts/Common/time.js","scripts/Common/tooltip.js","scripts/Common/url.js","scripts/Common/util.js","scripts/Common/validator.js","scripts/Common/weekroosters.js","scripts/Common/werknemerdocumenten.js","scripts/Common/wizard.js","scripts/Configuration/configuration.js","scripts/Customer/customer.js","scripts/Dashboard/dashboard.js","scripts/Employees/employees.js","scripts/Services/DateService.js","scripts/Services/FormValidationService.js","scripts/Services/GroupOverviewService.js","scripts/Services/KeyFoldService.js","scripts/Services/ModalWizardService.js","scripts/Services/PersonalCalendarService.js","scripts/Services/VerlofDeviantDaysService.js","scripts/Services/WeekroosterService.js","scripts/Tools/tools.js","scripts/_core/APIcaller.js","scripts/_core/Main.js","scripts/Auth/ForgotPasswd/forgotpasswd.js","scripts/Auth/Session/session.js","scripts/Account/Profile/profile.js","scripts/Common/Time/dagstatusoverview.js","scripts/Common/Time/klokregistratie.js","scripts/Common/Time/periodeafsluiten.js","scripts/Common/Time/periodeafsluitenoverview.js","scripts/Common/Time/periodeoverzicht.js","scripts/Common/Time/periodestatusoverview.js","scripts/Common/Time/shared.js","scripts/Common/Time/weekplanning.js","scripts/Configuration/Absence/absence.js","scripts/Configuration/CompanyConfig/companyconfig.js","scripts/Configuration/Development/development.js","scripts/Configuration/Employment/employment.js","scripts/Configuration/Expenses/expenses.js","scripts/Configuration/Hours/hours.js","scripts/Configuration/Personnel/personnel.js","scripts/Configuration/Timeregistration/timeregistration.js","scripts/Customer/Absence/absence.js","scripts/Customer/Development/development.js","scripts/Customer/Expenses/expenses.js","scripts/Customer/Hours/hours.js","scripts/Customer/Personnel/personnel.js","scripts/Customer/Salary/salary.js","scripts/Customer/Timeregistration/timeregistration.js","scripts/Customer/Wizard/wizard.js","scripts/Dashboard/Index/Index.js","scripts/Employees/Absence/absence.js","scripts/Employees/Development/development.js","scripts/Employees/Employment/employment.js","scripts/Employees/Expenses/expenses.js","scripts/Employees/Hours/hours.js","scripts/Employees/Personnel/personnel.js","scripts/Employees/Salary/salary.js","scripts/Employees/Timeregistration/timeregistration.js","scripts/Tools/Tools/tools.js"],"names":["APPLOYED","UTIL","exec","area","controller","action","namespace","undefined","init","body","document","getAttribute","toLowerCase","$","ready","auth","account","FlexGridComponent","[object Object]","loadCols","loadRows","loadFooter","formatDataCell","formatHeaderCell","checkEdit","beginningEdit","endingEdit","rowRemoved","dataChanged","selectionChanged","keyDown","loadingRows","id","edit","withFooter","invalidKeys","this","wijmo","culture","Globalize","numberFormat","delbtnid","self","columns","loadColumns","data","showGridCopy","range","r","topRow","bottomRow","c","leftCol","rightCol","cell","grid","cells","getCellElement","addClass","clearGridCopy","reset","gridCopyRange","gridCopyApplied","removeClass","FlexGrid","alternatingRowStep","isReadOnly","autoGenerateColumns","allowDragging","AllowDragging","None","allowSorting","AllowSorting","itemsSource","selectionMode","SelectionMode","MultiRange","allowResizing","AllowResizing","headersVisibility","HeadersVisibility","Column","keyActionTab","keyActionEnter","cellEditEnding","s","e","activeEditor","off","stayInEditMode","lastKeyPressed","cancel","onEndingEdit","onBeginningEdit","lastEditValue","getCellValue","row","col","prepareCellForEdit","style","textAlign","defaultAlign","copied","selection","pasting","length","refreshed","selectionChanging","left","selectMargins","right","top","bottom","onSelectionChanged","select","CellRange","cellEditEnded","onDataChanged","getRange","deletedRow","rowAdded","pasted","onLoadingRows","handlers","formatItem","addHandler","onFormatDataCell","onFormatHeaderCell","hostElement","addEventListener","event","replaceChar","replaceWith","val","replace","processKeyup","key","includes","preventDefault","clearGridCells","toLastCol","onKeyDown","processKeydown","getDelBtnClass","on","ht","hitTest","removeRow","deferUpdate","footer","GroupRow","cssClassAll","columnFooters","rows","push","refresh","typename","constructor","name","removeAt","spliced","splice","removed","onRowRemoved","panel","columnHeaders","isEditing","finishEditing","override","focus","atIndex","collectionView","getColumns","column","binding","dataItem","getSelectRange","getData","colOffset","colprefix","beginUpdate","i","setCellData","endUpdate","colname","rowIndex","startCol","startRow","minCol","maxCol","rowData","getColumn","Math","min","index","max","headers","header","height","defaultSize","width","cols","frozenColumns","GridComponentHelper","wnid","overlapdagen","overlapInfo","dagen","dagnummer","getDayFromCol","filter","o","werknemerId","info","groepsnaam","planningsgroepNaam","content","formatOverlap","join","getOverlapInfo","value","startOpVorigeDag","time","formatTime","starttijd","eindtijd","classList","add","addTooltip","clearTooltip","tooltip","removeAttr","attr","trigger","boundary","placement","html","delay","show","verlofdagen","adjacentCells","backgroundColor","color","verlof","verlofdag","find","bgColor","verlofKleur","util","invertColor","colorToHex","isAanvraag","eerste","laatste","getVerlof","div","createElement","wh","element","getHeight","pos","paddingTop","paddingLeft","border","bs","getVerlofBorder","appendChild","parseInt","substr","overlapKleur","kleuren","vkleuren","vd","map","concat","od","unique","GroepsdagstatusComponent","loadDetail","groepsdagstatus","activeId","_groepsdagstatus","_activeId","groepId","naamCaption","options","month","day","startdatum","Date","DateService","AddDays","toLocaleDateString","locale","isLastCol","daycol","_getDayCol","werknemers","sort","w1","w2","naam","j","dagstatus","d","loadData","_formatDataCell","_gridComponent","reloadData","_getData","getVerlofKleuren","incomplete","dagstatusId","ds","maxLength","isRequired","dataValue","prefix","meerMinder","handmatig","prefixDiv","textContent","infoSpan","starteind","_getColumns","cellValue","_toCellValue","toggleClass","_isEmpty","hasClass","stopPropagation","highlightCell","bindClick","addCellVerlof","_dayTotalsVisible","addVerlof","_isEmptyRow","GroepsperiodestatusComponent","groepsperiodestatus","_groepsperiodestatus","captions","format","ps","periodestatusExtracts","periodestatusId","autorisatie","tijdregistratietype","functieuren","betaaldeMinuten","geplandeMinuten","verantwoordeMinuten","onbetaaldeMinuten","onbekendeMinuten","gesloten","_resetHighlightRow","psid","periodestatusid","childContent","formatContent","highlightRow","parent","GroepsroosterComponent","groepsrooster","showDayTotals","_edit","_groepsrooster","planningsgroepId","_withTotals","daytotalcol","_getTotalDayCol","_totalcol","_plusmincol","totalcol","totaalCaption","visible","dataType","DataType","Number","plusmincol","cellTemplate","ctx","_wndata","werkuren","tijdreg","tijdregtypes","dag","hours","_getHours","gepland","_createEmptyRow","rowtotals","_getRowTotals","totals","plusmin","trim","_checkCellEdit","rownum","_addRow","_removeWnData","_updateTotals","updateChangedRows","getCurrentCellElement","_handleKeyDown","_handleSelectionChanged","rightMargin","_getColTotals","updateColTotals","werknemer","pauzes","p","tijdregistratietypeId","addPauzes","wndagen","overlapdag","addOverlapdagen","addVerlofdagen","wnnaam","findIndex","getWnPosition","_toDataValue","wndag","updated","clearOverlapdagen","updates","rowUpdate","getRowUpdate","deletedRows","deleted","getDeletedRows","extraPlanningsdag","addRow","dailyHours","_getDailyHours","h","updateCol","coltotals","updateFooter","dayHours","Array","fill","overlap","parts","split","getTimeParts","calcHours","wnOverlapdagen","calcOverlapHours","duur","getVerlofHours","uren","tijdregtypeId","t","pauzebanden","urenMinPauzes","pauze","gewerkteUren","duurPauze","aantalMinuten","calcUrenMinPauzes","_formatContent","addCellOverlap","addOverlap","isCurrentCell","_addBtnPopup","mouseenter","mouseleave","_removeBtnPopup","bindCell","btn","divImg","className","img","src","createBtnPopup","append","bind","_showTimePopup","cellSelected","remove","showCellPopout","currentCell","selectRange","startdag","einddag","rangeData","editValue","getEditValue","getEditData","endRow","endCol","cellData","getRangeData","uniekeStarttijden","Set","el","uniekeEindtijden","uniekeVorige","uniekeExtra","vorige","extra","showWeekplanningTimePopup","values","setFocus","getUpdateRange","updateRange","setSelectRange","applyUpdate","PeriodeOverzichtComponent","periodeoverzicht","_periodeoverzicht","_captions","_locale","minWidth","maxWidth","toeslagen","toeslagResultaten","toeslag","categorieId","absenties","absentieResultaten","absentie","verlofregelingId","datum","_formatDate","_formatTime","tijdIn","tijdUit","betaaldeUren","verschilUren","_formatTimeRange","plantijdIn","plantijdUit","waarde","getValue","totaalPauze","totaalFunctieuren","totaalBetaaldeUren","totaalVerschilUren","_tooltips","dispose","_formatHeaderCell","Tooltip","position","PopupPosition","RightTop","showAtMouse","showDelay","cssClass","setFrozenColumns","date","weekday","slice","tijdin","tijduit","text","isWeekend","_isWeekend","offsetWidth","scrollWidth","setTooltip","getDay","WeekcalendarComponent","weekCaption","startDatum","urenPerDag","displayWeek","multiLine","getHeaders","week","urenCol","gridComponent","setHeaderHeight","headerHeight","hDate","updateHeaders","updateRow","WeekroosterComponent","weekrooster","withTotals","getDayCol","getTotalsWidth","weken","weeknummer","toCellValue","getTotals","checkCellEdit","averages","getAverages","addGridHandlers","toDataValue","total","gemiddeldCaption","updateAverages","addweekbutton","addGridRow","getFooter","setEdit","setColWidth","aantalDagen","changeType","isNumber","TimeWeekroosterComponent","super","handleKeyDown","handleSelectionChanged","String","toFixed","toString","getTimeHourParts","tijd","vorigeSpan","tijdSpan","urenSpan","hide","showTimePopup","aantalWeken","uniekeUren","uniekeTijden","showWeekroosterTimePopup","parseFloat","topLeft","bottomRight","clipboard","copy","tempInput","execCommand","removeChild","collapse","basicCollapse","container","btnClass","collapseId","css","common","Language","navigation","introtext","notifications","initFetcher","picklist","tasks","documents","search","report","letter","messages","display","$form","initValidation","initBindRequiredFields","profilepicture","form","initSearchDropdown","initMultiSelectDropdown","mdbLineControllerInit","session","modal","image","initSvg","initFilterStatus","FormValidationService","InitializeIntegerInputValidation","InitializeDecimalInputValidation","InitializeDateInputValidation","InitializeDatePicker","unbind","InitializeRequiredValidation","isTrue","getUsersessionId","getUserInfoCustomerId","contract","startdatumElement","enddateElement","setEnddateData","contractEinddatum","isOnbepaald","DisableEnddateCallback","disableEnddate","SetEnddateCallback","startElement","endElement","setEnddate","setStartDate","startDateEl","endDateEl","prop","modifyEndDateField","newDate","newMonth","getMonth","setMonth","setDate","getDate","getFullYear","closest","datepicker","cookies","AddUserSession","set","days","setGlobal","get","getGlobal","erase","eraseGlobal","expires","setTime","getTime","toUTCString","cookie","nameEQ","ca","charAt","substring","indexOf","dataCards","slideTime","checkHiddenStates","target","slideDown","slideUp","each","overview","load","loading","tableOnly","tofadein","tableName","params","recordId","Api","APIcaller","CallAction","CancelOptions","loader","ClearLoaderList","hideSidebar","modify","close","open","bindactions","elements","buttonCloseId","showSidebar","documentId","documentKey","filterSeq","documentid","parents","documentkey","deltaDocumentId","deltaDocumentType","deltaFilename","getdocument","title","one","delete","setTimeout","screenId","contentId","RecordId","files","validator","hasFileExtension","formDataTemp","FormData","file","getElementById","formData","fileTooLarge","CheckIfMaxFileSize","Main","displayNotify","WaitLoaderOff","node","WaitLoaderOn","ajax","url","type","contentType","processData","success","console","log","errorText","notifyText","message","error","overviewId","modifyId","showuploadimage","input","propDisable","filerdr","FileReader","onload","result","startsWith","readAsDataURL","buttonOpenId","CreateTaskOverviewDiv","insertBefore","GetCount","getCountSuccessHandler","response","count","jsoNresults","enableOpenButton","checkParameters","setParameters","downloadTable","selectAllCheckbox","checkboxItem","tableOptionsClass","selecAllCheckbox","checkAllSelectedCheckbox","isSelected","isSomethingSelected","DataTable","every","checkbox","is","item","window","location","href","resizeAttached","resizeList","scrollToElementInList","listId","elementToFind","extraOffsetIfNeeded","$s","optionTop","offset","selectTop","scrollTop","isInScrollView","rect","getBoundingClientRect","inView","innerHeight","documentElement","clientHeight","parentRect","dynamicHeight","heightFromElement","minHeight","setMaxHeight","resize","calcHeight","max-height","entry","addResizeElement","resizeElements","isNaN","expenses","downloadBon","declaratieid","declaratieRuleId","bindExpensesActionEvents","getUrlParam","splitted","currentYear","isChecked","bindExpensesActionButton","btnDeleteDeclaratieRegels","employeeId","years","recordid","employeeid","employees","showDocument","isImage","optionSelected","maxFileSizeDefault","maxFileSizeDeclaratieregel","exceedsMaxFileSize","filesize","isDeclaratieregel","size","redirectTo","checked","qs","matches","match","loadPartial","chkFilterStatusValues","CheckFilterVisibleItem","filtername","checkAllInit","checkAllSelected","allSelected","bindDropdown","selectfilter","animateLine","line","deActivateLine","isCreated","inputDiv","children","notchDiv","mdb","Input","replaceOptions","fromIndex","empty","$option","hidden","hiddenText","mousemove","pageX","scrollIntoView","keyCode","toggle","checkboxAll","amountClass","searchInput","transVal","amount","checkAllSelectedCheckBox","isAllSelected","updateAmountWithElement","amountEl","inputEl","outerWidth","setActiveClassAndValueOnMdbSelectInput","inputElement","removeActiveClassOnMdbSelectInput","inputElements","$img","jQuery","imgURL","attributes","$svg","step","json","stringify","context","JSON","language","languages","languageNL","languageEN","languageES","locales","TableDutchLanguage","sProcessing","sLengthMenu","sZeroRecords","sInfo","sInfoEmpty","sInfoFiltered","sSearch","sEmptyTable","sInfoThousands","sLoadingRecords","oPaginate","sFirst","sLast","sNext","sPrevious","oAria","sSortAscending","sSortDescending","TableEnglishLanguage","sInfoPostFix","TableSpainLanguage","first","last","next","previous","sortAscending","sortDescending","getTableLanguage","getUserLanguage","getUserLocale","letterSeq","letterName","initLetterCopyPopup","letterCopyName","initLetterEditPopup","lettertemplate","tinyMCE","getContent","obj","tinymce","cursorPosition","newValue","selector","plugins","init_instance_callback","editor","branding","statusbar","paste_data_images","block_unsupported_drop","images_upload_handler","blobInfo","failure","image_size","blob","max_size","base64","toolbar","menu","items","view","insert","tools","table","initLetterDeletePopup","initLetterRenamePopup","letterRename","initLetterRunPopup","validate","validated","WaitLoaderList","WaitLoaderIcon","loonstroken","year","exist","$box","loonstrookId","loonstrookKey","Modal","bindActionEvents","configuration","bindConfigHoursActionEvents","absence","bindConfigAbsenceActionEvents","bindEmployeesActionEvents","eval","deletebutton","initPopup","keyboard","backdrop","modalId","resetSize","myModalEl","closePopup","showPopup","fetchTimer","firstCall","notificationid","notificationId","dropdown","isOpen","arguments","callee","pdf","initDocumentViewer","pdfData","atob","pdfjsLib","GlobalWorkerOptions","workerSrc","getDocument","promise","then","getPage","page","viewport","getViewport","scale","canvas","getContext","renderContext","canvasContext","render","reason","relativeOrderChanged","field","fkrecordid","required","getLinkedPickList","typeId","naarEmAlsId","componentTypeId","typeid","invoerTypeId","callback","func","isFunction","callbacks","initPicklistDynamicPopup","usersession","dropdownId","escapeSelector","listName","curSelection","lastSelection","updateDropdownList","doSelect","hiddenInputFields","selected","valueseq","option","encode","prepend","sortable","clearInput","toggleInputActions","enable","togglePickListEdit","picklistItem","setSelected","handle","axis","containment","change","userSessionId","tablename","fieldname","clone","appendTo","newItem","addPickListItem","seq","initPicklistLinkedPopup","closeModal","dom","paging","ordering","searching","updateFkRecordId","dropdownid","clear","reader","reportSeq","ReportSeq","reportName","InitReportPopup","bindRequiredFields","exportType","checkRequiredFields","ParamName","ParamValue","paramsJson","filetype","reportParams","UpdateRecordId","requestStatus","bindChangeRequestStatus","allowRemark","showRemarkPopup","changeRequestStatus","loadElement","forceRemarks","opmerking","statusid","mustReload","remarks","dagregistratieId","statusId","reference","reden","aanvraagdatum","savefirst","group","notitie","isCustomer","transition","opmerkingen","defaultSuccessHandler","hasErrorText","initSearchMedewerker","initSearchOveriew","initSearchWithCheckBoxBtn","employeeName","baseUrl","searchResultItems","finished","dataTable","hasPaging","hasOrdering","hasInfo","hasSearch","columDefs","order","fn","ext","settings","api","nodes","td","columnDefs","selectTableClass","tableOverview","disableRowSelect","altUpdateEditLink","altUpdateDeleteAction","extraParentfunction","startDate","clickRow","rId","getQueryParam","forceToggle","isClosed","toggleClicked","openRow","closeRow","toggleRow","selectRow","tableGuid","tableId","keyName","keyValue","tableseq","tableid","updateEditLink","link","regexp","RegExp","updateCopyLink","updateDeleteAction","updateLetterAction","initCopyPopup","submitForm","submit","deleteEvent","section","parentId","returnFilter","parentid","checkboxes","btnid","checkEnableUitvoeren","checkIndeterminate","allCheckBoxes","allUnchecked","not","enabled","isEnabled","parentKeyName","parentKeyValue","hideAll","taskid","taskId","tableSeq","linkRecordId","linkRowGuid","model","serializeArray","guid","timeRegExpTH","timeRegExpTT","minutes","starthm","eindhm","einddatum","abs","validateHandler","updateHandler","checkInputs","validateInputs","getFieldValues","inputsValid","planningInit","results","decodeURI","URLSearchParams","setNewEmployeeUrl","newUrl","getYears","str","fillStyle","hex","bw","Error","g","b","padZero","len","arr","v","a","entityMap","&","<",">","\"","'","/","`","=","submitButton","disableButton","valid","isValidRequiredField","tagName","validateRequiredFields","isValid","isValidDate","validState","setRequired","fields","test","splitDate","parse","isValidYear","regex","hasFileExtensions","lastIndex","forEach","groupIndex","keepValueBetweenMinAndMax","elementId","isNumeric","weekroosters","weekroosterdefinities","withTime","selectedRecordId","weekroosterdefinitieId","current","LoadWeekrooster","bindWeekroostersSelect","weekroosterdefinitieedit","bindSave","getWeekroosterWeken","weekroosterdefinitie","loadWeekroosterComplete","BindWeekroostersDelete","werknemerdocumenten","initTable","targets","orderDataType","orderable","documentsList","DocumentId","DocumentKey","werknemerdocumentId","werknemerdocumentKey","categoryPopupInit","categoyId","wizard","curStep","minStep","maxStep","cancelLink","steps","allowAnyStep","wizardSteps","wizardStep","wizardContent","wizardContentItem","initValidated","helpers","calcMaxStep","getSteps","setStartStep","navigate","goto","navigated","inArray","stepstep","to","disabled","go","nextStep","isStep","stepName","customer","bindRefreshOverview","onsuccess","module","dashboard","dateString","isodate","fmt","ToDate","ToString","diff","d1","d2","round","weeks","msPerDay","CorrectDaylightSaving","months","startOfWeek","thurs","toThursday","ToStartOfWeek","ythurs","getUTCFullYear","calcWeek","getUTCDay","fromdate","todate","startOffset","getTimezoneOffset","endOffset","weekStart","todayBtn","clearBtn","daysOfWeekHighlighted","keyboardNavigation","autoclose","todayHighlight","immediateUpdates","oldValue","dates","GetDateFromString","CheckRequired","BindRequiredFields","BindComparisonFields","validationDecimal","$el","positive","validationInteger","formatted","formatDate","checkValidity","comprateTo","compareType","currentVal","currentDate","comprateToVal","comprateToDate","readyToSubmit","CheckTimeValidation","CheckDateValidation","GroupOverviewService","hidepopup","showDate","showdate","setFilters","constructCalendar","calendar","endDate","refreshLastStartdate","refreshLastEnddate","start","end","toDateString","removeAllEvents","localStorage","KeyFoldService","getSelectedGroepen","selectedGroepen","allResources","resource","getResourceById","getChildren","child","refetchResources","addResource","currentResources","addEventSource","allEvents","functieDagenEvent","bindChevHide","y","m","addMonthTranslation","removeMonthTranslation","calendarEl","nowDate","FullCalendar","Calendar","schedulerLicenseKey","getFullCalendarLicense","now","editable","selectable","aspectRatio","headerToolbar","center","initialView","customButtons","addButton","click","duration","removeButton","views","timeLineMonth","navLinks","resourceAreaWidth","resourceAreaHeaderContent","resourceOrder","eventClassNames","arg","textColor","isWaitingStatus","extendedProps","status","geenFunctieKleur","borderColor","GetResource","_resource","canView","resourceLaneClassNames","eventClick","_def","getOption","lastDayOfTheMonth","verlofId","selectedStartDate","selectedEndDate","resourceIds","OpenVerlof","dateClick","dateStr","datesSet","refreshData","jsEvent","unselect","resourceId","nofading","typeCalendar","storageEmployeeId","getSelectedEmployee","removeItem","ModalWizardService","initContentBinding","bindSaveButton","bindNextButton","checkSicknessItem","initializeDates","bindAfwijkendeDagenCheckBox","VerlofDeviantDaysService","bindDeviantDaysBtn","checkInitDatePicker","checkAfwijkendeDagenBtn","editing","setVerlofToekennenInDagen","verlofToekennenInDagen","checkAfwijkendeDagen","checkLoadAfwijkendeDagen","checkShowDuur","originalContent","$duur","clearNotify","GetDeviantDays","viewModel","verlofid","typecalendar","rowguid","selectedVerlofRegelingId","selectedReden","notities","selectedStartdate","selectedEnddate","Status","$startdate","$enddate","getRegelingen","selectedRegeling","jaar","checkRemoveDeviantDays","PersonalCalendarService","topleft","topright","bottomright","bottomleft","side","eventlength","kleurgecombineerd","kleurgeenfunctie","bindLegendAction","startJaar","eindJaar","onclick","startYear","minDate","maxDate","loadingTemplate","customDayRenderer","dataSource","renderEnd","customDataSourceRenderer","exclusedEvents","grep","ev","statusClass","freedayEvents","reduce","addBorder","addRoundBorder","canUpdate","clickDay","CheckRealAmountOfEvents","events","eventData","selectedstartDate","selectedendDate","isEmptyEndDate","isOpenEndDate","verlofRegelingNaam","yearChanged","_fetchDataSource","datasource","_dataSource","_initializeDatasourceColors","Promise","resolve","always","textStatus","getDataSource","catch","evenementen","werknemerdId","eindDatum","verlofSaldiId","deviantdaysrowid","triggerInputChange","allowTimeInput","rowid","backingField","startdatumValue","einddatumValue","deviantDatumValue","deviantDatum","deviantDays","ureningevuld","esdagdeel","esdagdeelCheckbox","CorrectDeviantDaysIndexes","dagurenIngevuld","huidigeDatum","ToInvariantDate","esDagdeel","inputChanged","WeekroosterService","weekroostersGebruiken","getWeekrooster","initWeekroosterOptions","createWeekrooster","createWeekcalendar","checkShowWeekrooster","emptyValueAndTriggerChangeOnThisElement","getWeekroosterDefinitie","updateWeekcalendar","weekroosterComponent","setWeekrooster","definiteId","complete","soortId","soortDefinitieId","definitieId","actueleUrenCaption","huidigeWeekCaption","eersteWeekCaption","actieveWeekCaption","weekroosterOptions","resetStart","resetStartweek","perdag","currentValue","currentLength","updateOptions","divStartweek","updateStartweekList","getWeekcalendarData","updateCalendarCaption","caption","weekcalendarComponent","updateData","startweek","displayweek","startHuidigeWeek","GetMonday","startFunctie","startFunctieWeek","diffWeken","GetDiffWeeks","getDataValue","elem","onpopstate","state","remoteAction","parameterData","method","successHandler","errorHandler","completeHandler","cancelOption","currentTarget","AjaxCalls","Object","freeze","All","OnAction","ExactMatch","HoldAllApiCalls","CancelPreviousActions","remoteData","lengte","idx","readyState","abort","apiurl","param","extend","noRepaint","async","responseHandler","errorThrown","responseErrorHandler","jqXHR","responseJSON","extendLoading","WaitFadeOut","WaitFadeIn","ajaxHandle","history","request","pushState","description","requestOK","defaultErrorHandler","hasRedirectUrl","defaultRedirectHandler","reloadPage","processNotify","reload","processHTMLresult","hasjQueryCallback","funcCall","jQueryCallback","ret","CancelAllTimers","hasNotifyText","redirectNewWindow","RedirectNewWindow","redirectUrl","responseText","getErrorText","statusText","getResponseHeader","errorTekst","hasHTMLresults","htmLresults","appendResult","placeholder","replaceResult","notifyTextJson","hasSuccessText","successText","scrollHeight","prototype","from","rest","apply","TimerHandles","Handle","clearInterval","isError","isSuccess","parseJSON","alertType","MessageType","getActualTicks","ResponseMessage","closeNotify","setCookie","c_name","exdays","path","domain","exdate","domainname","c_value","escape","serialize","withDisabled","forgotpasswd","forgotpwd","onSuccess","checkIfDataValid","resetToken","login","forgottenpassword","grecaptcha","getResponse","profile","checkPasswordMatch","time_dagstatusoverview","components","setHeight","inEditMode","reloadGroep","dagregels","dagtellers","verlofdagtellers","toeslageninfo","uitbetalenIds","legendHeight","getLegendHeight","time_shared","updateChipsByFilter","dagstatusLoad","updateHeight","bindToggles","bindGroepToggles","bindFilters","bindGroepFilters","loadGroepen","updateLegenda","fadein","groepIds","notLoadedGroepIds","dagstatusLoadGroepen","loadDagstatus","loadComplete","bindDateNavigator","openDetail","initDetail","gridId","component","cmp","enableEdit","initTabheights","tabname","editDagstatus","enableDagregelsEdit","enableDagtellersEdit","enableVerlofDagtellersEdit","closeDetail","containsDagstatus","getDagstatusGroepIds","heeftStatusOnbekend","outerHeight","editCancel","tab","editSave","toeslagfunctie","defaultToeslagfunctie","regelsAutomatisch","tellersAutomatisch","verlofAutomatisch","update","dagregel","getDagregels","dagteller","getDagtellers","verlofdagteller","getVerlofDagtellers","setEnabled","addDagregel","showDagregelEditPopup","editDagregel","isNew","bindEditButtons","toggleCheckbox","primary","secondary","startOpVolgendeDag","dagOffset","urenSoortId","urenSoort","getUpdate","getRowComplete","updateDagregel","deleteDagregel","addDagteller","showDagtellerEditPopup","editDagteller","isVasteToeslag","toeslagmethode","toeslagId","isUitbetalen","toeslagbedrag","toeslagtijd","categorieNaam","toeslagNaam","berekenmethodeNaam","verlofregelingNaam","toeslagnaam","berekenmethode","updateDagteller","bindInputs","categorien","tc","ct","toggleToeslagVelden","showBedrag","showVerlof","deleteDagteller","addVerlofDagteller","showVerlofDagtellerEditPopup","editVerlofDagteller","verlofregeling","afwijkend","updateVerlofDagteller","deleteVerlofDagteller","time_klokregistratie","klokregistratie","clockIdentificatieId","editlink","updateEditAction","draw","deleteKlokregistratie","klokregistratieedit","time_periodeafsluiten","periodeafsluiten","loondatum","periodeId","hasErrors","afsluiten","controle","overriden","validDatum","time_periodeafsluitenoverview","periodeafsluitenLoad","initPeriodes","getSelectedPeriodedefinitie","selperiode","prev","openPeriodedefinitie","periodeNaam","selperiodedefinitie","initSelectedPeriode","loadPeriode","warning","loadPeriodeAfsluitenOverview","periodeHeropenen","loadPeriodeOverview","enableHeropenen","bindYearNavigator","time_periodeoverzicht","periodeoverzichtLoad","loadPeriodeOverzicht","bindGroep","bindWerknemer","loadOverzicht","loadWerknemerOverzicht","getGroepen","oldPeriodeId","getWerknemers","setGroepCookie","toggleWnCursor","selectedIndex","exportPopup","overzicht","stickyHeaders","col2","autoSizeColumns","filename","fileName","showGrid","book","xlsx","FlexGridXlsxConverter","save","includeColumnHeaders","includeRowHeaders","sheets","bindDownload","time_periodestatusoverview","periodedagtellers","periodetoeslagtellers","periodeboekingtellers","meegenomen","meegenomenAutomatisch","normuren","normurenAutomatisch","periodestatus","periodestatusLoad","checkAutoriseren","loadPeriodestatusOverview","clearGroepen","periodestatusLoadGroepen","activateDeleteModal","showWarning","deletePeriode","getUnauthorizedGroepIds","visibleGroepIds","groepen","pop","unauthorizedGroepIds","hasUnauthorizedPeriodestatus","editPeriodestatus","geautoriseerd","enableToeslagEdit","enableBoekingEdit","containsPeriodestatus","getPeriodestatusGroepIds","toeslagAutomatisch","boekingAutomatisch","periodeToeslagtellers","pt","periodeBoekingtellers","bt","addToeslagteller","showToeslagtellerEditPopup","editToeslagteller","toeslagteller","periodetoeslagId","periodetoeslagNaam","updateToeslagteller","deleteToeslagteller","addBoekingteller","showBoekingtellerEditPopup","editBoekingteller","boekingteller","isTvtBoeking","boekingActie","heeftVerlofregeling","boekingtijd","boekingActieNaam","updateBoekingteller","toggleBoekingVelden","deleteBoekingteller","authorize","authorizeGroepen","toggleAction","icon","updateLayout","originalEvent","toStartOfWeek","ids","getCheckedFilterIds","chks","statusOnbekendOn","hasLegenda","showLegenda","time_weekplanning","planningedit","planningLoad","groupseq","planningSave","planning","enableCopy","planningsgroepIds","planningLoadGroepen","loadPlanning","handleDropEvent","ui","canDrop","addWerknemer","draggable","wn","roosterId","getWeekplanningWerknemerInfo","handleOverEvent","helper","handleOutEvent","containsWerknemer","zindex","cursor","droppable","drop","over","out","bindDragDrop","getDagen","updateOverlapdagen","notifyChange","saveUpdates","updateRoosters","groepUpdates","getUpdates","navigateTo","cancelEdit","copyWeekplanning","copyCurrentWeek","updateWeekNumber","lblName","label","weekNumber","GetWeekNumber","showOverlayPopup","showCurrentWeek","updateCopyForList","bindConfirm","showGroep","copyType","vanStartdatum","vanEinddatum","naarStartdatum","naarEinddatum","kopieerEvenWeken","kopieerOnevenWeken","copyForId","errors","showErrors","checkReloadGroep","confirmCopy","specificDagIntNumber","verlofregelingen","initConfigurationAbsence","absenceedit","enableVerlofUnits","languageId","usedFor","allowanceedit","allowanceextraedit","leeftijdEnDienstjarenId","isLeeftijdEnDienstjaren","SpecificDagIntNumber","verlofRegelingId","verlofregelingid","verlofopbouwid","verlofOpbouwId","isCaching","initVerlofRegelingModal","companyconfig","customerdocumenten","bibliotheek","documentcategorieen","updateLink","deletedocumentcategorie","passwordpolicy","users","userInitPassword","roleSeq","userSeq","useredit","showHoofdGebruiker","showWerknemer","showHrGebruiker","deleteUserEvent","newUser","passwd","roleedit","managersgroups","initAddWerknemer","groupId","updateActions","userseq","addgroup","enableAddButton","disableAddButton","GroupSeq","GroupName","HideEmployees","Active","profileSeq","newGroup","user_selected_option","profile_selected_option","editgroup","addmanager","checkSuccess","hasManager","checkAddButton","mainManager","initAddWerknemerPopup","userId","deleteGroupEvent","licenses","enableSave","modules","active","getModules","externalapi","externalapiBindEvent","externalApiKeySeq","externalapiGetView","initExternalAPiPermissionsPV","keyup","permissions","eq","initExternalApiAddPV","keyname","languageseq","initExternalApiModifyPV","initExternalApiAddModal","redirect","newId","navigator","writeText","securityprofiles","securityProfilesBindEvent","permissionId","securityProfilesGetView","profileId","tabContainer","profileName","ProfileId","initProfileList","templateProfileId","permission","initCategoryPermPV","CategorySeq","DisplayName","CanView","permissionContainer","ProfileSeq","Permissions","PermissionContainer","CategoryPermissionList","initAttachmentPermPV","TableSeq","CanViewDocs","CanUpdateDocs","CanDeleteDocs","AttachmentPermissionList","initConfigItemPermPV","ConfigurationItemSeq","OwnerName","CanOpen","ConfigItemPermissionList","initLetterPermPV","LetterSeq","CanEdit","LetterPermissionList","initReportPermPV","ReportPermissionList","initScreenPermPV","CanViewData","CanUpdateData","CanDeleteData","CanUpdatePicklists","ScreenPermissionList","initProfilesPV","ProfileName","development","gespreksformulieren","selectItem","selectedId","gespreksformulieredit","onderdeel","GespreksformulierOnderdeelId","Delete","blacklistIds","blacklistJson","initCriteriaPopup","gesprekscriteria","gesprekscriteriaid","behavior","block","optionsConfig","criteriaWaardenDelete","gespreksdefinities","functiedefinitiesId","gespreksdefinitieDelete","functiedefinitieId","employment","contracten","contractduur","contractcyclus","salarisschalen","getSelectedJaar","selschaal","openJaar","seljaar","initSelectedSchaal","tredeId","seltrede","initSelectedTrede","salarisschalenId","bindSalarisTreden","salarisschaaledit","minMaxEnabled","minmaxvelden","salarisschaalloaded","bindSalarisSchaalDelete","bindSalarisTredeDelete","selId","salaristredenId","looncomponentenedit","EmptyDeltaLoonComponent","declaratiedefinities","declaratiedefinitiesedit","ShowHideVergoedingContainer","projecten","projectId","projectid","deelprojectid","deelProjectId","weekregistratieinstellingen","personnel","cookieSettingName","updateChildrenLink","aanvraagedit","initEditMessage","taakedit","taakcopy","aanvraagcopy","messagecenter","searchable","cook","updateRelatedActions","isTaak","HideShowFixedEmail","requestmodule","acsvvglobaal","SettingsBindEvent","settingsId","GetSettingsView","deleteTask","afdelingen","afdelingenedit","stripped","vestigingen","externerelaties","bedrijfsvrijedagen","bedrijfId","configuraties","configuratie","bedrijfid","getConfiguratie","initConfiguraties","serialized","initImportJaar","settingsContainer","initAlgemeneInstellingPV","permissionsCanModifyRecords","acsvvGlobaalId","CanModifyRecords","x","Captions","Key","Value","Required","initSmoelenboekPV","visibleTab","smoelenboekField","updateSmoelenboek","web","mobile","orderBy","fieldName","timeregistration","planningsgroepen","loadPlanningsgroep","bindPlanningsgroepDelete","bindPlanningsgroepToeslagDelete","tijdregistratietypes","loadTijdregistratietype","activeTab","bindTijdregistratietypeDelete","bindPauzeDelete","bindTijdregistratietypeToeslagDelete","loadToeslag","bindToeslagDelete","toeslagedit","methodeId","overwerkId","dagtypeId","datumId","feestdagenId","methode","orgMethode","heeftToeslagregels","toeslagregeledit","tvt","rekenmethode","toonverlof","bindToeslagregelDelete","periodetoeslagen","loadPeriodetoeslag","bindPeriodetoeslagDelete","bindPeriodetoeslagregelDelete","periodetoeslagboekingedit","tvtuitbetalen","boekingsactie","toonlooncomponent","bindPeriodetoeslagBoekingDelete","periodedefinities","loadPeriodedefinitie","periodedefinitieId","bindPeriodedefinitieDelete","bindPeriodedefinitieregelDelete","periodedefinitieedit","periodedefinitieregeledit","savedEinddatum","ja","nee","eenheiddag","eenheidweek","eenheidmaand","saveEinddatum","calcEinddatum","aantal","eenheid","enddate","AddWeeks","AddMonths","isDoorlopend","urensoorten","canModify","deleteAction","canDelete","categorieedit","groupCalendarService","yearparam","extraParam","controlle","actio","parameters","canaddprojectonpage","canAddProjectOnPage","approve","groupoverview","initCalendar","gesprekscyclus","criterium","applyFilter","getDeclaratieDocumentCounts","declaraties","employeeQS","weekregistratie","initoveruren","overuren","werknemeroverzicht","redrawTable","pattern","deleteWerknemerEvent","customerid","zelfinvullenwerknemers","viewaction","updateViewAction","zelfinvullenwerknemersedit","initZelfInvullenForm","zelfinvullenwerknemersingediend","zelfinvullenwerknemersview","readOnly","hasValidation","validateStep","updateCheckBoxValue","checkEnableDocuments","nummer","isNewRecord","email","nieuweStatus","editDocument","showDocumentsOverview","fileTooLargeTemp","saveDocument","updateDocumentenToegevoegd","deleteDocument","doLogoff","hasDocs","unvalidated","logoff","showLogoff","salary","salarisperiodes","getHasDocuments","salaryPeriodId","DownloadSalarisPeriodDocumentsFinished","downloadZipFile","newNote","note","salarisaanleveren","eenmaligemutaties","svloon","svloon_importeren","eenmalige_mutaties_importeren","mutatie_aanvragen_verwerken","documentenportaal","filterviews","curtarget","toggleSwitch","firstSwitch","secondSwitch","isYearBased","firstInputs","secondInputs","isYearBasedEl","firstInputEls","secondInputEls","updateFilter","navlink","datatableInit","columnTargets","getDownloadLink","downloadSingle","ajaxCall","parentTableRow","documentName","getBase64Document","deltaDocClass","GetZippedLink","ajaxCallSingle","ajaxCallMulti","documentIds","btnImg","verwerking","documentView","downloadZip","loon","sParam","sParameterName","sURLVariables","decodeURIComponent","getUrlParameter","verwerkingsDocumentportaalViewer","documentname","loonDocumentportaalViewer","verwerkingen","verwerkingenView","verwerkingtableInit","verwerkingplanningView","idTable","isDataTable","destroy","filterPeriodProduction","records","filterInput","period","production","dagstatusoverview","periodestatusoverview","periodeafsluitenoverview","initFunctieDefinitiesWizard","initAfdelingenWizard","initInvullenwerknemersWizard","initZelfInvullenwerknemersWizard","stepNames","stepNameItem","succes","functies","Step","TableName","StepNames","BedrijfId","FunctiedefinitieList","AfdelingList","WerknemerList","validateRecord","orgData","getModel","resetFields","dataJson","username","reasonInvalid","found","editingId","notificationLinkId","introductionText","currentStep","ProcessCall","nextOrNot","finalStep","succesNext","dontShowAnymore","initReleasenotesModal","becomecustomer","calculatePrice","elemToSearch","NoE","typeSal","iNoE","iStandardPrice","iSalaryPrice","finalPrice","personnalCalendarService","afwezigheidsprofiel","reintegratiedossier","reintegratiedossierId","getDossieropbouw","werknemerid","dossierOpbouwDelete","reintegratiedossierid","personaloverview","getPersonaloverviewList","setActive","getAfwezigheidRegistratieSaldi","updateLetterDropdown","toggleVerlofItem","updateActionContainer","getAfwezigheidRegistratieDetail","regelingActive","verlofActive","isVerlof","letterId","isVerlofLetter","restant","hidechevron","verlofsaldiId","verlofregelinid","deleteverlofregelingsaldi","initMutatieBetaling","brontype","redirectToEditPage","initVerlofCheck","initVerlofFinalCheck","initVerlofRegelingPopup","opbouwedit","saveaanvraagedit","startdate","getVerlofRegelingen","deleteEventOpbouw","verlofsaldiid","deleteEventMutatie","mutatieedit","enableVerlofOpbouw","initPersonaloverviewList","endYear","yearTitleStartYear","buildYearSelector","clickedYear","gesprekken","ontwikkelingsprofiel","InitAddGespreksformulierPopup","gesprekscyclusedit","selectedType","changedFields","exit","parentValue","changedValues","isEmptyObject","getNewData","weekroosterService","tijdregistratieChanged","dienstverbandgegevens","updateLooncomponenten","referenceDate","dropdownElement","dropdownContent","inhvergoedingen","inhvergoedingenedit","initNewInhvergoedingenRecord","salfuncties","salfunctiesedit","GetCalculatedSalaris","FulltimeSalaris","SalarisSchaal","SalarisTrede","BetalingsBasis","BetalingsPeriode","VakantiePerc","TotaalUren","newValues","perodiekSalaris","jaarSalaris","uurtarief","jaarSalarisIncl","validateContract","saveWeekrooster","totaalUren","GetCalculatedFte","CheckTijdregistratie","tijdregtype","UpdateTijdregistratie","klokken","initTijdregistratie","contractenedit","initSalfunctieWizardPopup","typeSelected","startdateCorrect","autogebruikedit","autoId","initEmployeesExpenses","employeeBaseUrl","saveFirstTimeDeclaratie","declaratieId","sendFileInput","showUploadImage","expensesedit","declaratiesid","saveBeforeCreate","calculateTableTotal","addcolumnoffset","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday","columnOffset","$tds","initWeekregistratie","weekregistratieId","removeData","bindaddprojecthours","yearId","weekId","IsCopy","existingRecordId","hoursedit","bindaddprojecthoursline","projectenId","deelprojectenId","activiteitenId","initEmployeesOvertime","overurenedit","refreshDDLDeelProject","refreshDDLActiviteit","refreshDDLWeek","refreshDDLCopyWeek","yearCopyId","stamgegevens","employeeedit","contactgegevens","werknemeredit","addUser","wizardComponents","submitContainer","modifyDate","initInhoudingenWizard","initVergoedingenWizard","initVerzekeringenWizard","initBankgegevensWizard","initContractWizardPopup","eenmaligemutatiesedit","looncomponentId","checkDownloadBtn","initDeltaDocumentViewer","initApployedDocumentViewer","initLoonstrokenAddNewYear","instellingenedit","werknemersuitdienstwizard","checkRemarks","updatedRows","newLine","datumUitDienst","redenUitDienstId","werknemersuitdienstwizardNext","verlofjaaraanmaken","yearValue","isOk","selectedItems","YearId","VerlofRegelingIds","verlofjaaraanmakenresult","verlofjaaropensamenvattinginit","verlofjaarafsluiten","Year","verlofjaarafsluitenresult","verlofjaarafsluiteenableafsluitenbtn","smoelenboek","salarisophogen","enableBerekenenOff","ingangsdatum","verhoging","caoId","minMaxVerhogingMethode","minMaxVerhoging","huidigeTermijn","volgendeTermijn","bindBerekenInputs","salarisophogenoptions","canSelectTerms","enableBerekenenOn","salarisophogentermoptions","salarisophogenresults","checkAll","checkRow","rowId","schaal","tredenPerSchaal","textName","textValue","getSelectOptions","bedrag","allChecked","ophogingen","werknemerNaam","ophoging","salfunctieId","nieuweSchaalId","nieuweTredeId","nieuwSalaris","salaris","getOphogingen","errorMelding","checkEnableBerekenen","rowResult","idList","canEnableBerekenen","schaaltredeophogen","bindResultButtons","berekenOphoging","opslaanOphoging","optionsChange","checkEnableOpslaan","aanmaakChange","tijdvak","afronding","decimalen","isBerekend","parms","getOphogenParms","isAanmaken","verhogingMethode","aanmaakJaar","aanmaakTijdvak","caos","jctperjaar","cao","getCaoOptions","tijdvakken","getTijdvakkenOptions","completed","getSchalenEnTreden","exportdata","exportQueryFieldSeq","fieldOrder","updateFields","exportQuerySeq","fixHelper","getFields","getSelectedQueryItem","initQueryPopup","category","initRunQueryPopup","queryParams","initDeletePopup","exportQueryCategory","initExportQueryGrid","getFilename","cIndex","dIndex","afwezigheidsviewer","initAfwezigheidsviewerGrid","peildatum","groups","getOverview","referenceDateText","FlexGridPdfConverter","export","exportMode","ExportMode","scaleMode","ScaleMode","ActualSize","documentOptions","pageSettings","layout","PdfPageOrientation","Landscape","declarative","styles","cellStyle","altCellStyle","groupCellStyle","headerCellStyle","werknemersuitnodigengebruikers","userIds","getUserIds","uitnodigen","algemeenverlofboeken","changePeriode","checkLoadData","getAlgemeenVerlofBoekenWerknemers","checkAlgemeenVerlofUitvoerenEnabled","bindInputFields","algemeenverlofboekenwerknemers","afwijkendeUren","getAlgemeenVerlofBoekenAfwijkendeUren","redenId","updateChecktWerknemers","algemeenverlofboekenresults","werknemerziekmelden","initDeviantDays","getAbsenceScreen"],"mappings":"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","file":"site.min.js","sourcesContent":["/* https://gist.github.com/danielgreen/5677251#file-garberirish-js-L20 */\r\n\r\nAPPLOYED = {}, \r\nUTIL = {\r\n exec: function (area, controller, action) {\r\n var namespace = APPLOYED;\r\n\r\n // overwrite action with init if empty\r\n action = (action === undefined) ? \"init\" : action;\r\n\r\n // exec controller action/init or area init\r\n if (area !== \"\" && (controller === \"\" || controller === undefined) &&\r\n namespace[area] &&\r\n typeof namespace[area][action] == \"function\") {\r\n\r\n namespace[area][action]();\r\n } else if (controller !== \"\" &&\r\n controller !== undefined &&\r\n namespace[area] &&\r\n namespace[area][controller] &&\r\n typeof namespace[area][controller][action] == \"function\") {\r\n\r\n namespace[area][controller][action]();\r\n }\r\n },\r\n\r\n init: function () {\r\n var body = document.body;\r\n\r\n /* Get all sections in lowercase */\r\n var area = body.getAttribute(\"data-area\").toLowerCase();\r\n var controller = body.getAttribute(\"data-controller\").toLowerCase();\r\n var action = body.getAttribute(\"data-action\").toLowerCase();\r\n\r\n UTIL.exec(\"common\"); // exec common init\r\n UTIL.exec(area); // exec area init\r\n UTIL.exec(area, controller); // exec controller init\r\n UTIL.exec(area, controller, action); // exec action init\r\n }\r\n};\r\n\r\n/* Init application when page done loading */\r\n$(document).ready(UTIL.init);","APPLOYED.auth = { }","APPLOYED.account = { }","class FlexGridComponent {\r\n id = '#flexgrid';\r\n grid = null;\r\n edit = false;\r\n defaultAlign = 'right';\r\n selectMargins = {};\r\n withFooter = false;\r\n invalidKeys = null;\r\n\r\n handlers = {\r\n loadCols: null,\r\n loadRows: null,\r\n loadFooter: null,\r\n formatDataCell: null,\r\n formatHeaderCell: null,\r\n checkEdit: null,\r\n beginningEdit: null,\r\n endingEdit: null,\r\n rowRemoved: null,\r\n dataChanged: null,\r\n selectionChanged: null,\r\n keyDown: null,\r\n loadingRows: null\r\n }\r\n\r\n lastKeyPressed = null;\r\n lastEditValue = null;\r\n gridCopyRange = null;\r\n gridCopyApplied = null;\r\n\r\n constructor(id, edit, withFooter = false, invalidKeys = ['-']) {\r\n this.id = id;\r\n this.edit = edit;\r\n this.withFooter = withFooter;\r\n this.invalidKeys = invalidKeys;\r\n\r\n if (edit) {\r\n wijmo.culture.Globalize.numberFormat[','] = ',';\r\n wijmo.culture.Globalize.numberFormat['.'] = '.';\r\n }\r\n }\r\n\r\n init() {\r\n var self = this;\r\n\r\n var columns = self.loadColumns(self.edit);\r\n var data = self.loadRows(self.edit);\r\n\r\n self.grid = new wijmo.grid.FlexGrid(self.id, {\r\n alternatingRowStep: 0,\r\n isReadOnly: !self.edit,\r\n autoGenerateColumns: false,\r\n allowDragging: wijmo.grid.AllowDragging.None,\r\n allowSorting: wijmo.grid.AllowSorting.None,\r\n columns: columns,\r\n itemsSource: data,\r\n selectionMode: self.edit ? wijmo.grid.SelectionMode.MultiRange : wijmo.grid.SelectionMode.None,\r\n allowResizing: wijmo.grid.AllowResizing.None,\r\n headersVisibility: wijmo.grid.HeadersVisibility.Column,\r\n keyActionTab: 5, // CycleEditable\r\n keyActionEnter: 0, // None\r\n cellEditEnding: (s, e) => {\r\n $(s.activeEditor).off('keypress');\r\n if (!self.checkEdit(s, e)) {\r\n e.stayInEditMode = self.lastKeyPressed != \"Escape\" && !e.cancel;\r\n }\r\n\r\n if (!e.stayInEditMode) {\r\n self.onEndingEdit(s, e);\r\n }\r\n },\r\n beginningEdit: (s, e) => {\r\n if (!self.onBeginningEdit(s, e)) {\r\n e.cancel = true;\r\n return;\r\n }\r\n\r\n self.lastKeyPressed = null;\r\n self.lastEditValue = self.getCellValue(e.row, e.col);\r\n clearGridCopy();\r\n },\r\n prepareCellForEdit: (s, e) => {\r\n s.activeEditor.style.textAlign = self.grid.columns[e.col].textAlign || self.defaultAlign;\r\n },\r\n copied: (s, e) => {\r\n applyGridCopy();\r\n },\r\n pasting: (s, e) => {\r\n var cells = $('.wj-copied');\r\n if (cells.length == 0) {\r\n e.cancel = true;\r\n }\r\n },\r\n refreshed: (s, e) => {\r\n showGridCopy(self.gridCopyRange);\r\n },\r\n selectionChanging: (s, e) => {\r\n if (e.range.col < 0 || e.range.row < 0) {\r\n return;\r\n }\r\n\r\n var left = self.selectMargins.left || 0;\r\n var right = self.selectMargins.right || 0;\r\n var top = self.selectMargins.top || 0;\r\n var bottom = self.selectMargins.bottom || 0;\r\n\r\n if (e.range.col < left || e.range.col > self.grid.columns.length - 1 - right ||\r\n e.range.row < top || e.range.row > self.grid.itemsSource.length - 1 - bottom) {\r\n e.cancel = true;\r\n }\r\n },\r\n selectionChanged: (s, e) => {\r\n self.onSelectionChanged(e);\r\n\r\n if (self.gridCopyRange == null || !self.gridCopyApplied) {\r\n return;\r\n }\r\n\r\n self.gridCopyApplied = false;\r\n if (e.range.leftCol != e.range.rightCol || e.range.topRow != e.range.bottomRow) {\r\n return;\r\n }\r\n\r\n if (e.range.col > self.gridCopyRange.leftCol && e.range.col <= self.gridCopyRange.rightCol) {\r\n if (e.range.row > self.gridCopyRange.bottomRow || e.range.row < self.gridCopyRange.topRow) {\r\n self.grid.select(new wijmo.grid.CellRange(e.range.row, self.gridCopyRange.leftCol));\r\n }\r\n }\r\n },\r\n cellEditEnded: (s, e) => {\r\n if (!e.cancel && self.lastEditValue != self.getCellValue(e.row, e.col)) {\r\n self.onDataChanged(self.getRange(e));\r\n }\r\n self.lastEditValue = null;\r\n },\r\n deletedRow: (s, e) => { self.onDataChanged({ }); },\r\n rowAdded: (s, e) => { self.onDataChanged(self.getRange(e)); },\r\n pasted: (s, e) => { self.onDataChanged(self.getRange(e)); },\r\n loadingRows: () => { self.onLoadingRows(); },\r\n });\r\n\r\n if (self.handlers.formatDataCell) {\r\n self.grid.formatItem.addHandler(function (s, e) {\r\n self.onFormatDataCell(s, e);\r\n });\r\n };\r\n\r\n if (self.handlers.formatHeaderCell) {\r\n self.grid.formatItem.addHandler(function (s, e) {\r\n self.onFormatHeaderCell(s, e);\r\n });\r\n };\r\n\r\n self.grid.hostElement.addEventListener('keyup', function (event) {\r\n processKeyup(event);\r\n });\r\n\r\n self.grid.hostElement.addEventListener('keydown', function (event) {\r\n processKeydown(event);\r\n }, true);\r\n\r\n bindRowDelete();\r\n\r\n self.grid.deferUpdate(() => {\r\n if (this.withFooter) {\r\n var footer = self.loadFooter(data);\r\n if (footer) {\r\n let row = new wijmo.grid.GroupRow(footer);\r\n row.cssClassAll = 'wj-footer';\r\n self.grid.columnFooters.rows.push(row);\r\n }\r\n }\r\n\r\n self.grid.select(-1, -1);\r\n });\r\n\r\n function processKeyup(event) {\r\n if (self.grid.activeEditor) {\r\n var replaceChar = wijmo.culture.Globalize.numberFormat[','];\r\n var replaceWith = wijmo.culture.Globalize.numberFormat['.'];\r\n let val = $(self.grid.activeEditor).val().replace(replaceChar, replaceWith);\r\n $(self.grid.activeEditor).val(val);\r\n }\r\n }\r\n\r\n function processKeydown(event) {\r\n self.lastKeyPressed = event.key;\r\n var key = event.key;\r\n\r\n var cancel = self.invalidKeys && (self.invalidKeys.includes(key));\r\n if (cancel) {\r\n event.preventDefault();\r\n }\r\n\r\n if (key == \"Escape\") {\r\n if (self.gridCopyRange != null) {\r\n clearGridCopy();\r\n event.preventDefault();\r\n }\r\n }\r\n\r\n if (key == \"Delete\" && self.grid.activeEditor == null) {\r\n event.preventDefault();\r\n clearGridCopy();\r\n self.clearGridCells(self.grid.selection);\r\n }\r\n\r\n if (key == \"Home\" && self.grid.activeEditor == null) {\r\n event.preventDefault();\r\n toFirstCol();\r\n }\r\n\r\n if (key == \"End\" && self.grid.activeEditor == null) {\r\n event.preventDefault();\r\n toLastCol();\r\n }\r\n\r\n if (self.onKeyDown(event)) {\r\n event.preventDefault();\r\n }\r\n }\r\n\r\n function applyGridCopy() {\r\n clearGridCopy(false);\r\n self.gridCopyRange = self.grid.selection;\r\n self.gridCopyApplied = true;\r\n\r\n showGridCopy(self.grid.selection);\r\n }\r\n\r\n function showGridCopy(range) {\r\n if (range == null) {\r\n return;\r\n }\r\n for (var r = range.topRow; r <= range.bottomRow; r++) {\r\n for (var c = range.leftCol; c <= range.rightCol; c++) {\r\n var cell = self.grid.cells.getCellElement(r, c);\r\n $(cell).addClass('wj-copied');\r\n\r\n }\r\n }\r\n }\r\n\r\n function clearGridCopy(reset = true) {\r\n if (reset) {\r\n self.gridCopyRange = null;\r\n self.gridCopyApplied = false;\r\n }\r\n $('.wj-copied').removeClass('wj-copied');\r\n }\r\n\r\n function bindRowDelete() {\r\n var delbtnid = '.' + FlexGridComponent.getDelBtnClass(self.id);\r\n\r\n $(document).off('click', delbtnid);\r\n $(document).on('click', delbtnid, function (event) {\r\n var ht = self.grid.hitTest(event);\r\n self.removeRow(ht.row);\r\n });\r\n }\r\n\r\n function toFirstCol() {\r\n var row = self.grid.selection.row;\r\n var col = self.selectMargins.left || 0;\r\n self.grid.select(row, col);\r\n }\r\n\r\n function toLastCol() {\r\n var row = self.grid.selection.row;\r\n var col = self.grid.columns.length - 1 - self.selectMargins.right || 0;\r\n self.grid.select(row, col);\r\n }\r\n }\r\n\r\n static getDelBtnClass(id) {\r\n var ref = (`${id}-row-delete`).replace('#', '');\r\n return ref;\r\n }\r\n\r\n reloadData() {\r\n var self = this;\r\n\r\n var data = self.loadRows(self.edit);\r\n self.grid.itemsSource = data;\r\n self.grid.refresh();\r\n }\r\n\r\n getRange(e) {\r\n var self = this;\r\n\r\n var typename = e.constructor?.name;\r\n if (typename == 'CellEditEndingEventArgs') {\r\n return { topRow: e.row, bottomRow: e.row, leftCol: e.col, rightCol: e.col };\r\n }\r\n\r\n if (typename == 'CellRangeEventArgs') {\r\n return self.getRange(e.range);\r\n }\r\n\r\n if (typename == 'CellRange') {\r\n return { topRow: e.topRow, bottomRow: e.bottomRow, leftCol: e.leftCol, rightCol: e.rightCol }\r\n }\r\n\r\n return {};\r\n }\r\n\r\n loadColumns(edit) {\r\n if (!this.handlers.loadCols || typeof this.handlers.loadCols != 'function') {\r\n return [];\r\n }\r\n\r\n return this.handlers.loadCols(edit);\r\n }\r\n\r\n loadRows(edit) {\r\n if (!this.handlers.loadRows || typeof this.handlers.loadRows != 'function') {\r\n return [];\r\n }\r\n\r\n return this.handlers.loadRows(edit);\r\n }\r\n\r\n loadFooter(data) {\r\n if (!this.handlers.loadFooter || typeof this.handlers.loadFooter != 'function') {\r\n return null;\r\n }\r\n\r\n return this.handlers.loadFooter(data);\r\n }\r\n\r\n checkEdit(s, e) {\r\n if (!this.handlers.checkEdit || typeof this.handlers.checkEdit != 'function') {\r\n return true;\r\n }\r\n\r\n return this.handlers.checkEdit(s, e);\r\n }\r\n\r\n removeRow(row) {\r\n this.grid.rows.removeAt(row);\r\n\r\n var spliced = this.grid.itemsSource.splice(row, 1);\r\n var removed = spliced && spliced.length > 0 ? spliced[0] : null;\r\n\r\n this.onRowRemoved(row, this.grid.itemsSource, removed);\r\n this.onDataChanged({ removed: removed });\r\n }\r\n\r\n onRowRemoved(row, itemsSource, removed) {\r\n if (!this.handlers.rowRemoved || typeof this.handlers.rowRemoved != 'function') {\r\n return;\r\n }\r\n\r\n return this.handlers.rowRemoved(row, itemsSource, removed);\r\n }\r\n\r\n onDataChanged(range) {\r\n if (!this.handlers.dataChanged || typeof this.handlers.dataChanged != 'function') {\r\n return;\r\n }\r\n\r\n this.handlers.dataChanged(range);\r\n }\r\n\r\n onLoadingRows() {\r\n if (!this.handlers.loadingRows || typeof this.handlers.loadingRows != 'function') {\r\n return;\r\n }\r\n\r\n this.handlers.loadingRows();\r\n }\r\n\r\n onFormatDataCell(s, e) {\r\n if (!this.handlers.formatDataCell || typeof this.handlers.formatDataCell != 'function') {\r\n return;\r\n }\r\n\r\n if (this.grid.activeEditor) {\r\n return;\r\n }\r\n\r\n if (e.panel == s.cells) {\r\n this.handlers.formatDataCell(e.row, e.col, e.cell);\r\n }\r\n }\r\n\r\n onFormatHeaderCell(s, e) { \r\n if (!this.handlers.formatHeaderCell || typeof this.handlers.formatHeaderCell != 'function') {\r\n return;\r\n }\r\n\r\n if (e.panel == s.columnHeaders) {\r\n this.handlers.formatHeaderCell(e.row, e.col, e.cell);\r\n }\r\n }\r\n\r\n onSelectionChanged(e) {\r\n if (!this.handlers.selectionChanged || typeof this.handlers.selectionChanged != 'function') {\r\n return;\r\n }\r\n\r\n this.handlers.selectionChanged(e);\r\n }\r\n\r\n isEditing() {\r\n return this.grid.activeEditor != null;\r\n }\r\n\r\n getEditValue() {\r\n if (this.isEditing()) {\r\n return $(this.grid.activeEditor).val();\r\n }\r\n }\r\n\r\n finishEditing(cancel) {\r\n this.grid.finishEditing(cancel);\r\n }\r\n\r\n setFocus(override) {\r\n this.grid.focus(override);\r\n }\r\n\r\n onKeyDown(event) {\r\n if (!this.handlers.keyDown || typeof this.handlers.keyDown != 'function') {\r\n return false;\r\n }\r\n\r\n return this.handlers.keyDown(event);\r\n }\r\n\r\n onBeginningEdit(s, e) {\r\n if (!this.handlers.beginningEdit || typeof this.handlers.beginningEdit != 'function') {\r\n return true;\r\n }\r\n\r\n return this.handlers.beginningEdit(s, e);\r\n }\r\n\r\n onEndingEdit(s, e) {\r\n if (!this.handlers.endingEdit || typeof this.handlers.endingEdit != 'function') {\r\n return true;\r\n }\r\n\r\n return this.handlers.endingEdit(s, e);\r\n }\r\n\r\n addRow(row, atIndex = null) {\r\n var self = this; \r\n\r\n if (atIndex == null) {\r\n atIndex = this.grid.rows.length;\r\n }\r\n\r\n this.grid.itemsSource.splice(atIndex, 0, row);\r\n this.grid.collectionView.refresh(true);\r\n this.onDataChanged({ topRow: atIndex, bottomRow: atIndex, leftCol: 0, rightCol: self.getColumns().length - 1 });\r\n }\r\n\r\n clearGridCells(range) {\r\n var self = this;\r\n\r\n var columns = self.getColumns();\r\n for (var r = range.topRow; r <= range.bottomRow; r++) {\r\n var row = self.grid.itemsSource[r];\r\n for (var c = range.leftCol; c <= range.rightCol; c++) {\r\n var column = columns[c];\r\n if (!column.isReadOnly) {\r\n row[column.binding] = null;\r\n }\r\n }\r\n }\r\n\r\n self.grid.refresh(true);\r\n self.onDataChanged(self.getRange(range));\r\n }\r\n\r\n refresh() {\r\n this.grid.refresh();\r\n }\r\n\r\n getColumns() {\r\n return this.grid.columns;\r\n }\r\n\r\n getRows() {\r\n return this.grid.rows;\r\n }\r\n\r\n getData() {\r\n return this.grid.itemsSource;\r\n }\r\n\r\n setData(data) {\r\n this.grid.itemsSource = data;\r\n }\r\n\r\n getFooter() {\r\n if (this.grid.columnFooters.rows.length > 0) {\r\n return this.grid.columnFooters.rows[0].dataItem;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n getSelectRange() {\r\n return this.grid.selection;\r\n }\r\n\r\n setSelectRange(range) {\r\n this.grid.select(new wijmo.grid.CellRange(range.topRow, range.leftCol, range.bottomRow, range.rightCol));\r\n }\r\n\r\n cellSelected(row, col) {\r\n var selection = this.getSelectRange();\r\n\r\n var isSelected =\r\n row >= selection.topRow && row <= selection.bottomRow &&\r\n col >= selection.leftCol && col <= selection.rightCol;\r\n\r\n return isSelected;\r\n }\r\n\r\n isCurrentCell(row, col) {\r\n var selection = this.getSelectRange();\r\n\r\n var isCurrent =\r\n row == selection.row && col == selection.col;\r\n\r\n return isCurrent;\r\n }\r\n\r\n getCellValue(row, col) {\r\n var data = this.getData();\r\n var column = this.grid.columns[col];\r\n return data[row][column.binding];\r\n }\r\n\r\n getCellElement(row, col) {\r\n return this.grid.cells.getCellElement(row, col);\r\n }\r\n\r\n getCurrentCellElement() {\r\n var selection = this.getSelectRange();\r\n return this.getCellElement(selection.row, selection.col);\r\n }\r\n\r\n updateFooter(footer, colOffset, colprefix = null) {\r\n if (this.grid.columnFooters.rows.length > 0) {\r\n this.grid.beginUpdate();\r\n try {\r\n for (var i = 0; i < footer.length; i++) {\r\n var col = colprefix == null ? (i + colOffset) : `${colprefix}${i}`\r\n this.grid.columnFooters.setCellData(0, col, footer[i], true, true);\r\n }\r\n }\r\n finally {\r\n this.grid.endUpdate();\r\n }\r\n }\r\n }\r\n\r\n updateCol(data, colOffset, colname = null) {\r\n this.grid.beginUpdate();\r\n try {\r\n for (var i = 0; i < data.length; i++) {\r\n this.grid.setCellData(i, colname || colOffset, data[i], true, true);\r\n }\r\n }\r\n finally {\r\n this.grid.endUpdate();\r\n }\r\n }\r\n\r\n updateRow(data, colOffset, rowIndex) {\r\n this.grid.beginUpdate();\r\n try {\r\n for (var i = 0; i < data.length; i++) {\r\n this.grid.setCellData(rowIndex, colOffset + i, data[i], true, true);\r\n }\r\n }\r\n finally {\r\n this.grid.endUpdate();\r\n }\r\n }\r\n\r\n updateRange(data, startCol, startRow, colprefix = null) {\r\n this.grid.beginUpdate();\r\n try {\r\n var minCol = null;\r\n var maxCol = null;\r\n\r\n for (var r = 0; r < data.length; r++) {\r\n var rowData = data[r];\r\n for (var c = 0; c < rowData.length; c++) {\r\n var col = colprefix == null ? (startCol + c) : `${colprefix}${startCol + c}`\r\n this.grid.setCellData(startRow + r, col, rowData[c], true, true);\r\n\r\n var column = this.grid.getColumn(col);\r\n if (column) {\r\n minCol = Math.min(minCol || column.index, column.index);\r\n maxCol = Math.max(maxCol || column.index, column.index);\r\n }\r\n }\r\n }\r\n\r\n this.onDataChanged({ topRow: startRow, bottomRow: startRow + data.length - 1, leftCol: minCol, rightCol: maxCol });\r\n }\r\n finally {\r\n this.grid.endUpdate();\r\n }\r\n }\r\n\r\n updateHeaders(headers, colOffset) {\r\n var columns = this.grid.columns;\r\n columns.beginUpdate();\r\n try {\r\n for (var i = 0; i < headers.length; i++) {\r\n columns[i + colOffset].header = headers[i];\r\n }\r\n }\r\n finally {\r\n columns.endUpdate();\r\n }\r\n }\r\n\r\n beginUpdate() {\r\n this.grid.beginUpdate();\r\n }\r\n\r\n endUpdate() {\r\n this.grid.endUpdate();\r\n }\r\n\r\n setEdit(edit) {\r\n if (this.edit == edit) {\r\n return;\r\n }\r\n\r\n this.edit = edit;\r\n this.grid.isReadOnly = !edit;\r\n this.grid.selectionMode = this.edit ? wijmo.grid.SelectionMode.MultiRange : wijmo.grid.SelectionMode.None;\r\n\r\n this.grid.collectionView.refresh(true);\r\n }\r\n\r\n setHeaderHeight(height) {\r\n this.grid.columnHeaders.rows.defaultSize = height;\r\n }\r\n\r\n setColWidth(width, colOffset) {\r\n var columns = this.grid.columns;\r\n columns[colOffset].width = width;\r\n }\r\n\r\n setFrozenColumns(cols) {\r\n this.grid.frozenColumns = cols;\r\n }\r\n}\r\n","class GridComponentHelper {\r\n static addCellOverlap(wnid, overlapdagen, column, cell) {\r\n var self = this;\r\n\r\n var overlapInfo = getOverlapInfo(wnid, overlapdagen, column);\r\n if (overlapInfo) {\r\n cell.classList.add('overlap');\r\n self.addTooltip(cell, overlapInfo);\r\n } else {\r\n self.clearTooltip(cell);\r\n }\r\n\r\n // #region Local\r\n function getOverlapInfo(wnid, overlapdagen, column) {\r\n if (!overlapdagen || overlapdagen.length == 0) {\r\n return null;\r\n }\r\n\r\n var dagen = null;\r\n if (wnid && column.binding[0] == 'd') {\r\n var dagnummer = self.getDayFromCol(column);\r\n var dagen = overlapdagen.filter(o => o.dagnummer == dagnummer && o.werknemerId == wnid);\r\n\r\n if (dagen && dagen.length > 0) {\r\n var info = [];\r\n for (var i = 0; i < dagen.length; i++) {\r\n var groepsnaam = dagen[i].planningsgroepNaam;\r\n var content = formatOverlap(dagen[i]);\r\n info.push(`
${groepsnaam}   ${content}
`);\r\n }\r\n\r\n return info.join('');\r\n }\r\n }\r\n\r\n return null;\r\n }\r\n\r\n function formatOverlap(value) {\r\n if (!value) {\r\n return '';\r\n }\r\n\r\n var vorige = value.startOpVorigeDag ? \"<\" : \" \";\r\n var starttijd = APPLOYED.time.formatTime(value.starttijd);\r\n var eindtijd = APPLOYED.time.formatTime(value.eindtijd);\r\n return vorige + starttijd + '-' + eindtijd;\r\n }\r\n // #endregion\r\n }\r\n\r\n static clearTooltip(cell) {\r\n $(cell).tooltip(\"hide\");\r\n $(cell).removeAttr('data-toggle');\r\n $(cell).removeAttr('data-original-title');\r\n }\r\n\r\n static addTooltip(cell, info) {\r\n $(cell).attr('data-toggle', 'tooltip');\r\n $(cell).attr('data-original-title', info);\r\n $(cell).tooltip({\r\n trigger: 'hover',\r\n boundary: 'window',\r\n placement: 'bottom',\r\n html: true,\r\n delay: { \"show\": 500 }\r\n });\r\n }\r\n\r\n static addCellVerlof(wnid, verlofdagen, column, cell, adjacentCells) {\r\n var self = this;\r\n\r\n // Reset the colors. Cells are reused by the grid when showing / hiding columns, and can keep their old (now invalid) colors\r\n cell.style.backgroundColor = null;\r\n cell.style.color = null;\r\n\r\n var verlof = getVerlof(wnid, verlofdagen, column);\r\n\r\n if (verlof) {\r\n if (!verlof.isAanvraag) {\r\n cell.style.backgroundColor = verlof.bgColor;\r\n cell.style.color = verlof.color;\r\n } else {\r\n var div = document.createElement('div');\r\n\r\n var wh = `width: ${cell.style.width}; height: ${APPLOYED.element.getHeight(cell) - 1}px`;\r\n var pos = `position: absolute; top: ${-cell.style.paddingTop}; left: ${-cell.style.paddingLeft}`;\r\n var border = getVerlofBorder(verlof, adjacentCells);\r\n\r\n div.style = `${pos}; ${wh}; ${border};`;\r\n cell.appendChild(div);\r\n }\r\n }\r\n\r\n return verlof;\r\n\r\n // #region Local\r\n function getVerlofBorder(verlof, adjacentCells) {\r\n var bs = `2px ${verlof.isAanvraag ? 'dashed' : 'solid'} ${verlof.bgColor}`;\r\n border = `border-top: ${bs}; border-bottom: ${bs}`;\r\n\r\n if (verlof.eerste || !adjacentCells) {\r\n border = `${border}; border-left: ${bs}`\r\n }\r\n\r\n if (verlof.laatste || !adjacentCells) {\r\n border = `${border}; border-right: ${bs}`\r\n }\r\n\r\n return border;\r\n }\r\n\r\n function getVerlof(wnid, verlofdagen, column) {\r\n if (!verlofdagen || verlofdagen.length == 0) {\r\n return null;\r\n }\r\n\r\n if (wnid && column.binding[0] == 'd') {\r\n var dagnummer = self.getDayFromCol(column);\r\n var verlofdag = verlofdagen.find(o => o.dagnummer == dagnummer && o.werknemerId == wnid);\r\n\r\n if (verlofdag) {\r\n return {\r\n bgColor: verlofdag.verlofKleur,\r\n color: APPLOYED.util.invertColor(APPLOYED.util.colorToHex(verlofdag.verlofKleur), true),\r\n isAanvraag: verlofdag.isAanvraag,\r\n eerste: verlofdag.eerste,\r\n laatste: verlofdag.laatste\r\n };\r\n }\r\n }\r\n\r\n return null;\r\n }\r\n // #endregion\r\n }\r\n\r\n static getDayFromCol(column) {\r\n return parseInt(column.binding.substr(1)) + 1;\r\n }\r\n\r\n static getVerlofKleuren(data, verlofdagen, overlapdagen, overlapKleur) {\r\n var kleuren = [];\r\n\r\n for (var i = 0; i < data.length; i++) {\r\n var wnid = data[i]['wnid'];\r\n var vkleuren = verlofdagen.filter(vd => vd.werknemerId == wnid).map(vd => vd.verlofKleur);\r\n kleuren = kleuren.concat(vkleuren);\r\n\r\n if (overlapdagen.find(od => od.werknemerId == wnid)) {\r\n kleuren.push(overlapKleur);\r\n }\r\n }\r\n\r\n return APPLOYED.util.unique(kleuren);\r\n }\r\n}","class GroepsdagstatusComponent {\r\n _gridComponent = null;\r\n _groepsdagstatus = null;\r\n _wndata = {};\r\n _activeId = null;\r\n\r\n id = '#groepsdagstatus-grid';\r\n groepId = null;\r\n\r\n handlers = {\r\n dataChanged: null,\r\n loadDetail: null\r\n }\r\n\r\n constructor(id, groepsdagstatus, activeId = null) {\r\n this.id = id;\r\n this._groepsdagstatus = groepsdagstatus;\r\n this._activeId = activeId;\r\n this.groepId = groepsdagstatus.groepId;\r\n }\r\n\r\n // #region Public\r\n init() {\r\n var self = this;\r\n\r\n var grid = new FlexGridComponent(self.id, false);\r\n grid.handlers.loadCols = (edit) => loadColumns();\r\n grid.handlers.loadRows = (edit) => loadData();\r\n grid.handlers.formatDataCell = (row, col, cell) => self._formatDataCell(row, col, cell);\r\n\r\n var rightMargin = 0;\r\n grid.selectMargins = { left: 1, right: rightMargin };\r\n\r\n self._gridComponent = grid;\r\n self._gridComponent.init();\r\n\r\n // #region Local\r\n function loadColumns() {\r\n var naamCaption = self._groepsdagstatus.naamCaption;\r\n var columns = [\r\n { binding: 'wnnaam', header: naamCaption, cssClassAll: 'colhdr-cell-left pl-2', isReadOnly: true, width: '16*' }\r\n ];\r\n\r\n var options = { month: '2-digit', day: '2-digit' };\r\n var startdatum = new Date(self._groepsdagstatus.startdatum);\r\n\r\n for (var i = 0; i < self._groepsdagstatus.dagen.length; i++) {\r\n var hDate = DateService.AddDays(startdatum, i);\r\n var day = hDate.toLocaleDateString(self._groepsdagstatus.locale, options).replace('/', '-');\r\n\r\n var isLastCol = i == self._groepsdagstatus.dagen.length - 1;\r\n var daycol = self._getDayCol('d' + i, `${self._groepsdagstatus.dagen[i]} ${day}`, isLastCol);\r\n columns.push(daycol)\r\n }\r\n\r\n return columns;\r\n }\r\n\r\n function loadData() {\r\n if (self._groepsdagstatus.werknemers.length == 0) {\r\n return [{}];\r\n }\r\n\r\n var werknemers = [...self._groepsdagstatus.werknemers];\r\n werknemers.sort((w1, w2) => w1.naam < w2.naam ? -1 : w1.naam > w2.naam ? 1 : 0);\r\n\r\n var data = [];\r\n for (var i = 0; i < werknemers.length; i++) {\r\n var row = {};\r\n row['wnid'] = werknemers[i].werknemerId;\r\n row['wnnaam'] = werknemers[i].naam;\r\n\r\n for (var j = 0; j < self._groepsdagstatus.dagen.length; j++) {\r\n var dagstatus = werknemers[i].dagen.find(d => d.dagnummer == j + 1);\r\n row['d' + j] = null;\r\n row['ds' + j] = dagstatus;\r\n }\r\n\r\n data.push(row);\r\n }\r\n\r\n return data;\r\n }\r\n // #endregion\r\n }\r\n\r\n reloadData(groepsdagstatus) {\r\n var self = this;\r\n\r\n self._groepsdagstatus = groepsdagstatus;\r\n self._gridComponent.reloadData();\r\n }\r\n\r\n getVerlofKleuren() {\r\n var data = this._getData();\r\n var verlofdagen = this._groepsdagstatus.verlofdagen;\r\n var overlapKleur = $('#OverlapKleur').val();\r\n\r\n return GridComponentHelper.getVerlofKleuren(data, verlofdagen, [], overlapKleur);\r\n }\r\n\r\n heeftStatusOnbekend() {\r\n var self = this;\r\n\r\n var data = self._getData();\r\n\r\n for (var i = 0; i < data.length; i++) {\r\n var row = data[i];\r\n for (var j = 0; j < self._groepsdagstatus.dagen.length; j++) {\r\n var dagstatus = row['ds' + j];\r\n if (!!dagstatus && dagstatus.incomplete) {\r\n return true;\r\n }\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n containsDagstatus(dagstatusId) {\r\n var self = this;\r\n\r\n var data = self._getData();\r\n for (var i = 0; i < data.length; i++) {\r\n var row = data[i];\r\n for (var j = 0; j < self._groepsdagstatus.dagen.length; j++) {\r\n var ds = row['ds' + j];\r\n if (ds && ds.dagstatusId == dagstatusId) {\r\n return true;\r\n }\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n // #endregion\r\n\r\n // #region Private\r\n _getColumns() {\r\n return this._gridComponent.getColumns();\r\n }\r\n\r\n _getData() {\r\n return this._gridComponent.getData();\r\n }\r\n\r\n _getDayCol(binding, header, isLastCol) {\r\n return {\r\n binding: binding,\r\n header: header,\r\n cssClassAll: 'text-left' + (isLastCol ? \"\" : \" border-right pl-8\"),\r\n width: '8*',\r\n maxLength: 15,\r\n isRequired: false\r\n };\r\n }\r\n\r\n _toCellValue(dataValue) {\r\n var div = document.createElement('div');\r\n div.style = \"position: relative; height: 100%\";\r\n\r\n if (dataValue != null) {\r\n var prefix = dataValue.startOpVorigeDag ? '<' : '';\r\n var starttijd = APPLOYED.time.formatTime(dataValue.starttijd) || \"--:--\";\r\n var eindtijd = APPLOYED.time.formatTime(dataValue.eindtijd) || \"--:--\";\r\n var meerMinder = ` (${dataValue.meerMinder})`;\r\n var handmatig = dataValue.handmatig ? ' *' : '';\r\n\r\n let prefixDiv = document.createElement('div');\r\n prefixDiv.textContent = prefix;\r\n prefixDiv.style = \"position: relative; width: 0px; left: -8px; display: inline-block;\"\r\n\r\n let infoSpan = document.createElement('span');\r\n var starteind = starttijd && eindtijd ? starttijd + ' - ' + eindtijd : \"\";\r\n infoSpan.textContent = starteind + meerMinder + handmatig;\r\n\r\n div.appendChild(prefixDiv);\r\n div.appendChild(infoSpan);\r\n }\r\n\r\n return div;\r\n }\r\n\r\n _formatDataCell(row, col, cell) {\r\n var self = this;\r\n\r\n var cols = self._getColumns();\r\n var column = cols[col];\r\n\r\n if (column.isReadOnly) {\r\n return;\r\n }\r\n\r\n var data = self._getData();\r\n var dataValue = data[row]['ds' + (GridComponentHelper.getDayFromCol(column) - 1)];\r\n var cellValue = self._toCellValue(dataValue);\r\n\r\n cell.appendChild(cellValue);\r\n\r\n $(cell).toggleClass('bg-empty', !dataValue && !self._isEmpty(data));\r\n $(cell).toggleClass('hov-pointer', !!dataValue);\r\n bindClick(cell, dataValue);\r\n\r\n GridComponentHelper.clearTooltip(cell);\r\n\r\n if (!!dataValue && dataValue.incomplete) {\r\n cell.style.backgroundColor = null;\r\n cell.style.color = null;\r\n\r\n cell.style.backgroundColor = \"red\";\r\n cell.style.color = \"white\";\r\n }\r\n else {\r\n addVerlof(row, col, cell);\r\n }\r\n\r\n if (dataValue && dataValue.dagstatusId == self._activeId) {\r\n highlightCell(cell, self._activeId);\r\n }\r\n\r\n // #region Local\r\n function addVerlof(row, col, cell) {\r\n var wnid = self._getData()[row].wnid;\r\n var verlofdagen = self._groepsdagstatus.verlofdagen;\r\n var column = self._getColumns()[col];\r\n\r\n GridComponentHelper.addCellVerlof(wnid, verlofdagen, column, cell, !self._dayTotalsVisible);\r\n }\r\n\r\n function bindClick(cell, dagstatus) {\r\n if ($(cell).hasClass('hov-pointer')) {\r\n $(cell).off('click');\r\n $(cell).on('click', function (e) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n\r\n highlightCell(cell, dagstatus.dagstatusId);\r\n\r\n if (self.handlers.loadDetail) {\r\n self.handlers.loadDetail(cell, dagstatus.dagstatusId, self.groepId);\r\n }\r\n\r\n return false;\r\n });\r\n }\r\n }\r\n\r\n function highlightCell(cell, dagstatusId) {\r\n self._activeId = dagstatusId;\r\n $('.grid .wj-cell.bd-selected').removeClass('bd-selected');\r\n $(cell).addClass('bd-selected');\r\n }\r\n // #endregion\r\n }\r\n\r\n _isEmpty(data = null) {\r\n var self = this;\r\n\r\n if (!data) {\r\n data = self._getData();\r\n }\r\n\r\n if (data.length == 0 || (data.length == 1 && self._isEmptyRow(data[0]))) {\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n _isEmptyRow(row) {\r\n return !row || row.id == null;\r\n }\r\n // #endregion Private\r\n}\r\n","class GroepsperiodestatusComponent {\r\n _gridComponent = null;\r\n _groepsperiodestatus = null;\r\n _wndata = {};\r\n _activeId = null;\r\n\r\n id = '#groepsperiodestatus-grid';\r\n groepId = null;\r\n\r\n handlers = {\r\n dataChanged: null,\r\n loadDetail: null\r\n }\r\n\r\n constructor(id, groepsperiodestatus, activeId = null) {\r\n this.id = id;\r\n this._groepsperiodestatus = groepsperiodestatus;\r\n this._activeId = activeId;\r\n this.groepId = groepsperiodestatus.groepId;\r\n }\r\n\r\n // #region Public\r\n init() {\r\n var self = this;\r\n\r\n var grid = new FlexGridComponent(self.id, false);\r\n grid.handlers.loadCols = (edit) => loadColumns();\r\n grid.handlers.loadRows = (edit) => loadData();\r\n grid.handlers.formatDataCell = (row, col, cell) => self._formatDataCell(row, col, cell);\r\n\r\n var rightMargin = 0;\r\n grid.selectMargins = { left: 1, right: rightMargin };\r\n\r\n self._gridComponent = grid;\r\n self._gridComponent.init();\r\n\r\n // #region Local\r\n function loadColumns() {\r\n var captions = self._groepsperiodestatus.captions;\r\n var columns = [\r\n { binding: 'wnnaam', header: captions[\"wnnaam\"], cssClassAll: 'colhdr-cell-left pl-2', isReadOnly: true, width: '20*' },\r\n { binding: 'trnaam', header: captions[\"trnaam\"], cssClassAll: 'colhdr-cell-left pl-2', isReadOnly: true, width: '16*' },\r\n { binding: 'fnuren', header: captions[\"functieuren\"], cssClassAll: 'text-right colhdr-cell-left pl-2', isReadOnly: true, width: '8*', format: 'F2' },\r\n { binding: 'betaald', header: captions[\"betaald\"], cssClassAll: 'text-right colhdr-cell-left pl-2', isReadOnly: true, width: '8*', format: 'F2' },\r\n { binding: 'gepland', header: captions[\"gepland\"], cssClassAll: 'text-right colhdr-cell-left pl-2', isReadOnly: true, width: '8*', format: 'F2' },\r\n { binding: 'verantwoord', header: captions[\"verantwoord\"], cssClassAll: 'text-right colhdr-cell-left pl-2', isReadOnly: true, width: '8*', format: 'F2' },\r\n { binding: 'onbetaald', header: captions[\"onbetaald\"], cssClassAll: 'text-right colhdr-cell-left pl-2', isReadOnly: true, width: '8*', format: 'F2' },\r\n { binding: 'onbekend', header: captions[\"onbekend\"], cssClassAll: 'text-right colhdr-cell-left pl-2', isReadOnly: true, width: '8*', format: 'F2' },\r\n { binding: 'autorisatie', header: captions[\"autorisatie\"], cssClassAll: 'colhdr-cell-left pl-2', isReadOnly: true, width: '20*' }\r\n ];\r\n\r\n return columns;\r\n }\r\n\r\n function loadData() {\r\n if (self._groepsperiodestatus.werknemers.length == 0) {\r\n return [{}];\r\n }\r\n\r\n var werknemers = [...self._groepsperiodestatus.werknemers];\r\n werknemers.sort((w1, w2) => w1.naam < w2.naam ? -1 : w1.naam > w2.naam ? 1 : 0);\r\n\r\n var data = [];\r\n for (var i = 0; i < werknemers.length; i++) {\r\n var ps = werknemers[i].periodestatusExtracts;\r\n if (ps.length == 0) {\r\n var row = {};\r\n row['wnid'] = werknemers[i].werknemerId;\r\n row['wnnaam'] = werknemers[i].naam;\r\n data.push(row);\r\n }\r\n else {\r\n for (var j = 0; j < ps.length; j++) {\r\n var row = {};\r\n row['wnid'] = werknemers[i].werknemerId;\r\n row['wnnaam'] = werknemers[i].naam;\r\n\r\n row['psid'] = ps[j].periodestatusId;\r\n row['autorisatie'] = ps[j].autorisatie;\r\n row['trnaam'] = ps[j].tijdregistratietype;\r\n row['fnuren'] = ps[j].functieuren;\r\n row['betaald'] = ps[j].betaaldeMinuten / 60;\r\n row['gepland'] = ps[j].geplandeMinuten / 60;\r\n row['verantwoord'] = ps[j].verantwoordeMinuten / 60;\r\n row['onbetaald'] = ps[j].onbetaaldeMinuten / 60;\r\n row['onbekend'] = ps[j].onbekendeMinuten / 60;\r\n row['gesloten'] = ps[j].gesloten;\r\n\r\n data.push(row);\r\n }\r\n }\r\n }\r\n\r\n return data;\r\n }\r\n // #endregion\r\n }\r\n\r\n reloadData(groepsperiodestatus) {\r\n var self = this;\r\n\r\n self._resetHighlightRow();\r\n self._groepsperiodestatus = groepsperiodestatus;\r\n self._gridComponent.reloadData();\r\n }\r\n\r\n containsPeriodestatus(periodestatusId) {\r\n var self = this;\r\n\r\n var data = self._getData();\r\n for (var i = 0; i < data.length; i++) {\r\n var psid = data[i]['psid'];\r\n if (psid && psid == periodestatusId) {\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n hasUnauthorizedPeriodestatus() {\r\n var self = this;\r\n\r\n var data = self._getData();\r\n for (var i = 0; i < data.length; i++) {\r\n var psid = data[i]['psid'];\r\n var autorisatie = data[i]['autorisatie'];\r\n var gesloten = data[i]['gesloten'];\r\n\r\n if (psid && !autorisatie && !gesloten) {\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n // #endregion\r\n\r\n // #region Private\r\n _getColumns() {\r\n return this._gridComponent.getColumns();\r\n }\r\n\r\n _getData() {\r\n return this._gridComponent.getData();\r\n }\r\n\r\n _formatDataCell(row, col, cell) {\r\n var self = this;\r\n\r\n var cols = self._getColumns();\r\n var column = cols[col];\r\n\r\n var data = self._getData();\r\n var dataValue = data[row][column.binding];\r\n var periodestatusid = data[row]['psid'];\r\n var childContent = formatContent(cell.textContent);\r\n\r\n cell.textContent = '';\r\n cell.appendChild(childContent);\r\n\r\n $(cell).toggleClass('bg-empty', !dataValue && dataValue != 0 && !self._isEmpty(data));\r\n $(cell).toggleClass('hov-pointer', !!periodestatusid);\r\n\r\n bindClick(cell, periodestatusid);\r\n\r\n if (periodestatusid && periodestatusid == self._activeId) {\r\n highlightRow(cell, self._activeId);\r\n }\r\n\r\n function formatContent(value) {\r\n var div = document.createElement('div');\r\n div.style = \"position: relative; height: 100%; width: 100%\";\r\n div.textContent = value;\r\n return div;\r\n }\r\n\r\n function bindClick(cell, periodestatusid) {\r\n $(cell).off('click');\r\n if ($(cell).hasClass('hov-pointer')) {\r\n $(cell).on('click', function (e) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n\r\n highlightRow(cell, periodestatusid);\r\n\r\n if (self.handlers.loadDetail) {\r\n self.handlers.loadDetail(cell, periodestatusid, self.groepId);\r\n }\r\n\r\n return false;\r\n });\r\n }\r\n }\r\n\r\n function highlightRow(cell, periodestatusid) {\r\n var row = $(cell).parent();\r\n if (!$(row).hasClass('bg-selected')) {\r\n self._resetHighlightRow();\r\n $(row).addClass('bg-selected');\r\n self._activeId = periodestatusid;\r\n }\r\n }\r\n // #endregion\r\n }\r\n\r\n _isEmpty(data = null) {\r\n var self = this;\r\n\r\n if (!data) {\r\n data = self._getData();\r\n }\r\n\r\n if (data.length == 0 || (data.length == 1 && self._isEmptyRow(data[0]))) {\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n _isEmptyRow(row) {\r\n return !row || row.id == null;\r\n }\r\n\r\n _resetHighlightRow() {\r\n this._activeId = null;\r\n $('.grid .wj-row.bg-selected').removeClass('bg-selected');\r\n }\r\n\r\n // #endregion Private\r\n}\r\n","class GroepsroosterComponent {\r\n _edit = false;\r\n _gridComponent = null;\r\n _groepsrooster = null;\r\n _withTotals = true;\r\n _dayTotalsVisible = true;\r\n _totalcol = '';\r\n _plusmincol = '';\r\n _wndata = {};\r\n\r\n id = '#groepsrooster-grid';\r\n planningsgroepId = null;\r\n\r\n handlers = {\r\n dataChanged: null\r\n }\r\n\r\n constructor(id, edit, groepsrooster, showDayTotals = true) {\r\n this.id = id;\r\n this._edit = edit;\r\n this._groepsrooster = groepsrooster;\r\n this._dayTotalsVisible = showDayTotals;\r\n this.planningsgroepId = groepsrooster.planningsgroepId;\r\n }\r\n\r\n // #region Public\r\n init() {\r\n var self = this;\r\n\r\n var grid = new FlexGridComponent(self.id, self._edit, self._withTotals, []);\r\n grid.handlers.loadCols = (edit) => loadColumns(edit);\r\n grid.handlers.loadRows = (edit) => loadData(edit);\r\n grid.handlers.formatDataCell = (row, col, cell) => self._formatDataCell(row, col, cell);\r\n grid.handlers.checkEdit = checkCellEdit;\r\n grid.handlers.rowRemoved = rowRemoved;\r\n grid.handlers.dataChanged = dataChanged;\r\n grid.handlers.beginningEdit = beginningEdit;\r\n grid.handlers.keyDown = (event) => self._handleKeyDown(event);\r\n grid.handlers.selectionChanged = (event) => self._handleSelectionChanged(event);\r\n\r\n var rightMargin = 1;\r\n if (self._withTotals) {\r\n rightMargin += 2;\r\n }\r\n grid.selectMargins = { left: 1, right: rightMargin };\r\n\r\n if (self._withTotals) {\r\n grid.handlers.loadFooter = (data) => loadFooter(data);\r\n }\r\n\r\n self._gridComponent = grid;\r\n self._gridComponent.init();\r\n\r\n // #region Local\r\n function loadColumns(edit) {\r\n var naamCaption = self._groepsrooster.naamCaption;\r\n var columns = [\r\n { binding: 'wnnaam', header: naamCaption, cssClassAll: 'colhdr-cell-left pl-2', isReadOnly: true, width: '15*' }\r\n ];\r\n\r\n var options = { month: '2-digit', day: '2-digit' };\r\n var startdatum = new Date(self._groepsrooster.startdatum);\r\n\r\n for (var i = 0; i < self._groepsrooster.dagen.length; i++) {\r\n var hDate = DateService.AddDays(startdatum, i);\r\n var day = hDate.toLocaleDateString(self._groepsrooster.locale, options).replace('/', '-');\r\n\r\n var daycol = self._getDayCol('d' + i, `${self._groepsrooster.dagen[i]} ${day}`, i + 1);\r\n columns.push(daycol)\r\n\r\n if (self._withTotals) {\r\n var daytotalcol = self._getTotalDayCol('t' + i, ' ', i + 1);\r\n columns.push(daytotalcol);\r\n }\r\n }\r\n\r\n if (self._withTotals) {\r\n self._totalcol = 't' + self._groepsrooster.dagen.length;\r\n self._plusmincol = 't' + (self._groepsrooster.dagen.length + 1);\r\n\r\n var totalcol = {\r\n binding: self._totalcol,\r\n header: self._groepsrooster.totaalCaption,\r\n isReadOnly: true,\r\n cssClassAll: 'total-cell bg-total',\r\n width: \"4*\",\r\n isRequired: false,\r\n format: 'F2',\r\n visible: true,\r\n dataType: wijmo.DataType.Number\r\n };\r\n columns.push(totalcol)\r\n\r\n var plusmincol = {\r\n binding: self._plusmincol,\r\n header: \"+/-\",\r\n isReadOnly: true,\r\n cssClassAll: 'total-cell bg-total',\r\n width: \"4*\",\r\n isRequired: false,\r\n format: 'F2',\r\n visible: true,\r\n dataType: wijmo.DataType.Number\r\n };\r\n columns.push(plusmincol)\r\n }\r\n\r\n columns.push({\r\n binding: 'x-del',\r\n header: ' ',\r\n cssClassAll: 'colhdr-del pl-2',\r\n isReadOnly: true,\r\n visible: edit,\r\n width: 30,\r\n cellTemplate: (ctx) => ``\r\n });\r\n\r\n return columns;\r\n }\r\n\r\n function loadData(edit) {\r\n if (self._groepsrooster.werknemers.length == 0) {\r\n if (!edit) {\r\n return [{}];\r\n }\r\n }\r\n\r\n var werknemers = [...self._groepsrooster.werknemers];\r\n werknemers.sort((w1, w2) => w1.naam < w2.naam ? -1 : w1.naam > w2.naam ? 1 : 0);\r\n\r\n var data = [];\r\n for (var i = 0; i < werknemers.length; i++) {\r\n var row = {};\r\n row['id'] = werknemers[i].id;\r\n row['wnid'] = werknemers[i].werknemerId;\r\n row['wnnaam'] = werknemers[i].naam;\r\n row['modified'] = false;\r\n\r\n self._wndata[werknemers[i].werknemerId] = {\r\n \"werkuren\": werknemers[i].werkuren || 0,\r\n \"tijdreg\": werknemers[i].tijdregtypes\r\n };\r\n\r\n for (var j = 0; j < self._groepsrooster.dagen.length; j++) {\r\n var dag = werknemers[i].dagen.find(d => d.dagnummer == j + 1);\r\n row['d' + j] = self._toCellValue(dag);\r\n\r\n var hours = self._getHours(werknemers[i].werknemerId, j + 1, dag, werknemers[i].tijdregtypes);\r\n row['h' + j] = hours;\r\n row['t' + j] = Math.max(0, hours.gepland - hours.verlof);\r\n }\r\n\r\n data.push(row);\r\n }\r\n\r\n if (edit && data.length == 0) {\r\n var row = self._createEmptyRow();\r\n data.push(row);\r\n }\r\n\r\n if (self._withTotals && !self._isEmpty(data)) {\r\n var rowtotals = self._getRowTotals(data);\r\n for (var i = 0; i < rowtotals.totals.length; i++) {\r\n var row = data[i];\r\n row[self._totalcol] = rowtotals.totals[i];\r\n row[self._plusmincol] = rowtotals.plusmin[i];\r\n }\r\n }\r\n\r\n return data;\r\n }\r\n\r\n function loadFooter(data) {\r\n var footer = {};\r\n\r\n footer['wnnaam'] = self._groepsrooster.totaalCaption;\r\n footer[self._totalcol] = 0;\r\n\r\n for (var j = 0; j < self._groepsrooster.dagen.length; j++) {\r\n footer['t' + j] = 0;\r\n }\r\n\r\n updateColTotals(footer);\r\n return footer;\r\n }\r\n\r\n function updateColTotals(footer) {\r\n var totals = self._getColTotals();\r\n\r\n for (var j = 0; j < totals.length; j++) {\r\n footer['t' + j] = totals[j];\r\n }\r\n }\r\n\r\n function checkCellEdit(s, e) {\r\n let col = s.columns[e.col];\r\n if (col.binding == 'wnnaam' || col.binding.substr(0, 1) == 't') {\r\n return true;\r\n }\r\n\r\n var cellValue = !s.activeEditor ? \"\" : s.activeEditor.value;\r\n if (cellValue.trim() == \"\") {\r\n return true;\r\n }\r\n\r\n return self._checkCellEdit(col, cellValue);\r\n }\r\n\r\n function rowRemoved(rownum, itemsSource, removed) {\r\n if (itemsSource.length == 0) {\r\n var row = self._createEmptyRow();\r\n self._addRow(row);\r\n }\r\n\r\n var wnid = removed['wnid'];\r\n self._removeWnData(wnid);\r\n }\r\n\r\n function dataChanged(range) {\r\n self._updateTotals();\r\n\r\n updateChangedRows(range);\r\n\r\n if (!self.handlers.dataChanged || typeof self.handlers.dataChanged != 'function') {\r\n return;\r\n }\r\n\r\n self.handlers.dataChanged(self._groepsrooster.planningsgroepId, self, range);\r\n }\r\n\r\n function updateChangedRows(range) {\r\n if (typeof range.topRow == 'undefined' || typeof range.bottomRow == 'undefined') {\r\n return\r\n }\r\n\r\n var data = self._getData();\r\n for (var i = range.topRow; i <= range.bottomRow; i++) {\r\n if (!self._isEmptyRow(data[i])) {\r\n data[i]['modified'] = true;\r\n }\r\n }\r\n }\r\n\r\n\r\n function beginningEdit(s, e) {\r\n let col = s.columns[e.col];\r\n var data = self._getData();\r\n var wnid = data[e.row]['wnid'];\r\n\r\n if (wnid && (col.binding[0] == 'd')) {\r\n var cell = self._gridComponent.getCurrentCellElement();\r\n GridComponentHelper.clearTooltip(cell);\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n // #endregion\r\n }\r\n\r\n showDayTotals(show) {\r\n var self = this;\r\n\r\n if (self._dayTotalsVisible == show) {\r\n return;\r\n }\r\n\r\n self._gridComponent.beginUpdate();\r\n try {\r\n self._dayTotalsVisible = show;\r\n var columns = self._getColumns();\r\n for (var i = 0; i < self._groepsrooster.dagen.length; i++) {\r\n columns.getColumn(['t' + i]).visible = show;\r\n }\r\n }\r\n finally {\r\n self._gridComponent.endUpdate();\r\n }\r\n }\r\n\r\n addWerknemer(werknemer) {\r\n var self = this;\r\n\r\n if (!self._wndata[werknemer.id]) {\r\n self._wndata[werknemer.id] = {\r\n \"werkuren\": werknemer.werkuren || 0,\r\n \"tijdreg\": werknemer.tijdregtypes || []\r\n };\r\n }\r\n\r\n addPauzes(werknemer.pauzes);\r\n addOverlapdagen(werknemer.id, werknemer.overlapdagen);\r\n addVerlofdagen(werknemer.id, werknemer.verlofdagen)\r\n\r\n var row = {\r\n 'id': 0,\r\n 'wnid': werknemer.id,\r\n 'wnnaam': werknemer.naam\r\n };\r\n for (var j = 0; j < self._groepsrooster.dagen; j++) {\r\n row['d' + j] = null;\r\n row['t' + j] = null;\r\n }\r\n\r\n var data = self._getData();\r\n if (data.length == 1 && data[0]['id'] == null) {\r\n self._addRow(row, 1);\r\n self._gridComponent.removeRow(0);\r\n }\r\n else {\r\n var index = getWnPosition(werknemer.naam);\r\n self._addRow(row, index);\r\n }\r\n\r\n // #region Local\r\n function getWnPosition(wnnaam) {\r\n var data = self._getData();\r\n var index = data.findIndex((row) => row['wnnaam'] > wnnaam);\r\n index = index < 0 ? data.length : index;\r\n return index;\r\n }\r\n\r\n function addPauzes(pauzes) {\r\n if (!pauzes || pauzes.length == 0) {\r\n return;\r\n }\r\n\r\n for (var i = 0; i < pauzes.length; i++) {\r\n var pauze = self._groepsrooster.pauzes.find(p => p.tijdregistratietypeId == pauzes[i].tijdregistratietypeId);\r\n if (!pauze) {\r\n self._groepsrooster.pauzes.push(pauzes[i]);\r\n }\r\n }\r\n }\r\n\r\n function addOverlapdagen(wnid, wndagen) {\r\n var overlapdagen = self._groepsrooster.overlapdagen;\r\n if (!overlapdagen) {\r\n overlapdagen = [];\r\n }\r\n\r\n for (var i = 0; i < wndagen.length; i++) {\r\n var overlapdag = {\r\n werknemerId: wnid,\r\n planningsgroepId: wndagen[i].planningsgroepId,\r\n planningsgroepNaam: wndagen[i].planningsgroepNaam,\r\n dagnummer: wndagen[i].dagnummer,\r\n starttijd: wndagen[i].starttijd,\r\n eindtijd: wndagen[i].eindtijd,\r\n startOpVorigeDag: wndagen[i].startOpVorigeDag\r\n }\r\n\r\n overlapdagen.push(overlapdag);\r\n }\r\n\r\n self._groepsrooster.overlapdagen = overlapdagen;\r\n }\r\n\r\n function addVerlofdagen(wnid, wndagen) {\r\n var verlofdagen = self._groepsrooster.verlofdagen;\r\n if (!verlofdagen) {\r\n verlofdagen = [];\r\n }\r\n\r\n if (verlofdagen.find(vd => vd.werknemerId == wnid)) {\r\n verlofdagen = verlofdagen.filter(vd => vd.werknemerId != wnid);\r\n }\r\n\r\n for (var i = 0; i < wndagen.length; i++) {\r\n verlofdagen.push(wndagen[i]);\r\n }\r\n\r\n self._groepsrooster.verlofdagen = verlofdagen;\r\n }\r\n // #endregion\r\n }\r\n\r\n containsWerknemer(wnid) {\r\n var data = this._getData();\r\n var row = data.find(r => r['wnid'] == wnid);\r\n return !!row;\r\n }\r\n\r\n getDagen(range) {\r\n var self = this;\r\n\r\n var dagen = [];\r\n if (typeof range.topRow != 'undefined') {\r\n var data = self._getData();\r\n for (var r = range.topRow; r <= range.bottomRow; r++) {\r\n var row = data[r];\r\n var wndagen = {\r\n werknemerId: row.wnid,\r\n dagen: []\r\n }\r\n\r\n for (var d = 0; d < self._groepsrooster.dagen.length; d++) {\r\n var cellValue = row[`d${d}`];\r\n if (cellValue) {\r\n var dataValue = self._toDataValue(d + 1, cellValue);\r\n var wndag = {\r\n planningsgroepId: self._groepsrooster.planningsgroepId,\r\n planningsgroepNaam: self._groepsrooster.planningsgroepNaam,\r\n dagnummer: dataValue.dagnummer,\r\n starttijd: dataValue.starttijd,\r\n eindtijd: dataValue.eindtijd,\r\n startOpVorigeDag: dataValue.startOpVorigeDag\r\n }\r\n wndagen.dagen.push(wndag);\r\n }\r\n }\r\n\r\n dagen.push(wndagen);\r\n }\r\n }\r\n\r\n if (typeof range.removed != 'undefined') {\r\n var wndagen = {\r\n werknemerId: range.removed.wnid,\r\n dagen: []\r\n };\r\n dagen.push(wndagen);\r\n }\r\n\r\n return dagen;\r\n }\r\n\r\n updateOverlapdagen(groepId, overlapdagen) {\r\n var self = this;\r\n\r\n var updated = false;\r\n var data = self._getData();\r\n for (var i = 0; i < overlapdagen.length; i++) {\r\n var wnid = overlapdagen[i].werknemerId;\r\n var row = data.find(r => r.wnid == wnid);\r\n if (row) {\r\n clearOverlapdagen(groepId, wnid);\r\n addOverlapdagen(groepId, wnid, overlapdagen[i].dagen);\r\n updated = true;\r\n }\r\n }\r\n\r\n if (updated) {\r\n self._gridComponent.refresh();\r\n self._updateTotals();\r\n }\r\n\r\n function clearOverlapdagen(groepId, wnid) {\r\n var overlapdagen = self._groepsrooster.overlapdagen;\r\n if (!overlapdagen || overlapdagen.length == 0) {\r\n return;\r\n }\r\n\r\n self._groepsrooster.overlapdagen = overlapdagen.filter(d => d.werknemerId != wnid || d.planningsgroepId != groepId);\r\n }\r\n\r\n // #region Local\r\n function addOverlapdagen(groepId, wnid, wndagen) {\r\n var overlapdagen = self._groepsrooster.overlapdagen;\r\n if (!overlapdagen) {\r\n overlapdagen = [];\r\n }\r\n\r\n for (var i = 0; i < wndagen.length; i++) {\r\n var overlapdag = {\r\n werknemerId: wnid,\r\n planningsgroepId: groepId,\r\n planningsgroepNaam: wndagen[i].planningsgroepNaam,\r\n dagnummer: wndagen[i].dagnummer,\r\n starttijd: wndagen[i].starttijd,\r\n eindtijd: wndagen[i].eindtijd,\r\n startOpVorigeDag: wndagen[i].startOpVorigeDag\r\n }\r\n\r\n overlapdagen.push(overlapdag);\r\n }\r\n\r\n self._groepsrooster.overlapdagen = overlapdagen;\r\n }\r\n // #endregion\r\n }\r\n\r\n getUpdates() {\r\n var self = this;\r\n\r\n var updates = [];\r\n var data = self._getData();\r\n for (var i = 0; i < data.length; i++) {\r\n var row = data[i];\r\n if (row['modified'] && !self._isEmptyRow(row)) {\r\n var rowUpdate = getRowUpdate(row);\r\n updates.push(rowUpdate);\r\n }\r\n }\r\n\r\n var deletedRows = getDeletedRows();\r\n updates.push(...deletedRows);\r\n\r\n return updates;\r\n\r\n // #region Local\r\n function getRowUpdate(row) {\r\n var data = {\r\n id: row['id'],\r\n werknemerId: row['wnid'],\r\n planningsgroepId: self._groepsrooster.planningsgroepId,\r\n startdatum: self._groepsrooster.startdatum,\r\n dagen: [],\r\n deleted: false\r\n };\r\n\r\n for (var i = 0; i < self._groepsrooster.dagen.length; i++) {\r\n var cellValue = row[`d${i}`];\r\n var dataValue = self._toDataValue(i + 1, cellValue);\r\n if (dataValue) {\r\n var dag = {\r\n dagnummer: dataValue.dagnummer,\r\n starttijd: APPLOYED.time.formatTime(dataValue.starttijd),\r\n eindtijd: APPLOYED.time.formatTime(dataValue.eindtijd),\r\n startOpVorigeDag: dataValue.startOpVorigeDag,\r\n extraPlanningsdag: dataValue.extraPlanningsdag\r\n }\r\n data.dagen.push(dag);\r\n }\r\n }\r\n\r\n return data;\r\n }\r\n\r\n function getDeletedRows() {\r\n var data = self._getData();\r\n\r\n var deletedRows = [];\r\n for (var i = 0; i < self._groepsrooster.werknemers.length; i++) {\r\n var id = self._groepsrooster.werknemers[i].id;\r\n var row = data.find(r => r.id == id);\r\n if (!row) {\r\n var deletedRow = {\r\n id: id,\r\n werknemerId: self._groepsrooster.werknemers[i].werknemerId,\r\n deleted: true\r\n };\r\n deletedRows.push(deletedRow);\r\n }\r\n }\r\n\r\n return deletedRows;\r\n }\r\n // #endregion\r\n }\r\n\r\n getVerlofKleuren() {\r\n var data = this._getData();\r\n var verlofdagen = this._groepsrooster.verlofdagen;\r\n var overlapdagen = this._groepsrooster.overlapdagen;\r\n var overlapKleur = $('#OverlapKleur').val();\r\n\r\n return GridComponentHelper.getVerlofKleuren(data, verlofdagen, overlapdagen, overlapKleur);\r\n }\r\n\r\n getVerlofKleuren_() {\r\n var self = this;\r\n\r\n var kleuren = [];\r\n var overlapKleur = $('#OverlapKleur').val();\r\n\r\n var data = self._getData();\r\n for (var i = 0; i < data.length; i++) {\r\n var wnid = data[i]['wnid'];\r\n var vkleuren = self._groepsrooster.verlofdagen.filter(vd => vd.werknemerId == wnid).map(vd => vd.verlofKleur);\r\n kleuren = kleuren.concat(vkleuren);\r\n\r\n if (self._groepsrooster.overlapdagen.find(od => od.werknemerId == wnid)) {\r\n kleuren.push(overlapKleur);\r\n }\r\n }\r\n\r\n return APPLOYED.util.unique(kleuren);\r\n }\r\n // #endregion\r\n\r\n // #region Private\r\n _getColumns() {\r\n return this._gridComponent.getColumns();\r\n }\r\n\r\n _getData() {\r\n return this._gridComponent.getData();\r\n }\r\n\r\n _addRow(row, atIndex) {\r\n this._gridComponent.addRow(row, atIndex);\r\n }\r\n\r\n _getDayCol(binding, header) {\r\n return {\r\n binding: binding,\r\n header: header,\r\n cssClassAll: 'text-right',\r\n width: '8*',\r\n maxLength: 15,\r\n isRequired: false\r\n };\r\n }\r\n\r\n _getTotalDayCol(binding, header) {\r\n return {\r\n binding: binding,\r\n header: header,\r\n isReadOnly: true,\r\n cssClassAll: 'col-total-cell bg-total',\r\n width: '4*',\r\n maxLength: 5,\r\n isRequired: false,\r\n visible: this._dayTotalsVisible,\r\n format: 'F2',\r\n dataType: wijmo.DataType.Number\r\n };\r\n }\r\n\r\n _createEmptyRow() {\r\n var self = this;\r\n\r\n var row = {};\r\n\r\n row['id'] = null;\r\n row['wnid'] = null;\r\n row['wnnaam'] = null;\r\n\r\n for (var j = 0; j < self._groepsrooster.dagen.length; j++) {\r\n row['d' + j] = null;\r\n row['t' + j] = null;\r\n }\r\n\r\n return row;\r\n }\r\n\r\n _isEmpty(data = null) {\r\n var self = this;\r\n\r\n if (!data) {\r\n data = self._getData();\r\n }\r\n\r\n if (data.length == 0 || (data.length == 1 && self._isEmptyRow(data[0]))) {\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n _isEmptyRow(row) {\r\n return !row || row.id == null;\r\n }\r\n\r\n _updateTotals() {\r\n var self = this;\r\n\r\n if (self._withTotals) {\r\n if (!self._isEmpty()) {\r\n var dailyHours = self._getDailyHours();\r\n for (var i = 0; i < dailyHours.length; i++) {\r\n var hours = dailyHours[i].map(h => Math.max(0, h.gepland - h.verlof));\r\n self._gridComponent.updateCol(hours, null, `t${i}`);\r\n }\r\n\r\n var rowtotals = self._getRowTotals();\r\n self._gridComponent.updateCol(rowtotals.totals, null, self._totalcol);\r\n self._gridComponent.updateCol(rowtotals.plusmin, null, self._plusmincol);\r\n }\r\n\r\n var coltotals = self._getColTotals();\r\n self._gridComponent.updateFooter(coltotals, 1, 't');\r\n }\r\n }\r\n\r\n _getDailyHours() {\r\n var self = this;\r\n\r\n var dailyHours = [];\r\n\r\n var data = self._getData();\r\n for (var j = 0; j < self._groepsrooster.dagen.length; j++) {\r\n var dayHours = [];\r\n for (var i = 0; i < data.length; i++) {\r\n var row = data[i];\r\n\r\n var cellValue = row[`d${j}`];\r\n var value = self._toDataValue(j + 1, cellValue);\r\n\r\n var wnid = row['wnid'];\r\n var tijdregtypes = wnid ? self._wndata[wnid].tijdreg : null;\r\n\r\n var hours = self._getHours(wnid, j + 1, value, tijdregtypes);\r\n row['h' + j] = hours;\r\n dayHours.push(hours);\r\n }\r\n dailyHours.push(dayHours);\r\n }\r\n\r\n return dailyHours;\r\n }\r\n\r\n _getRowTotals(data = null) {\r\n var self = this;\r\n\r\n if (data == null) {\r\n data = self._getData();\r\n }\r\n\r\n var totals = new Array(data.length).fill(0);\r\n var plusmin = new Array(data.length).fill(0);\r\n\r\n for (var i = 0; i < data.length; i++) {\r\n var row = data[i];\r\n for (var j = 0; j < self._groepsrooster.dagen.length; j++) {\r\n var hours = row['h' + j];\r\n totals[i] += (hours?.gepland || 0) + (hours?.overlap || 0);\r\n\r\n var wnid = row['wnid'];\r\n var werkuren = wnid ? self._wndata[wnid].werkuren : 0;\r\n plusmin[i] = totals[i] - werkuren;\r\n }\r\n }\r\n\r\n var result = { totals, plusmin };\r\n return result;\r\n }\r\n\r\n _getColTotals() {\r\n var self = this;\r\n\r\n var totals = new Array(self._groepsrooster.dagen.length + 2).fill(0);\r\n\r\n var data = self._getData();\r\n for (var i = 0; i < data.length; i++) {\r\n var row = data[i];\r\n for (var j = 0; j < totals.length; j++) {\r\n var value = row['t' + j];\r\n totals[j] += value || 0;\r\n }\r\n }\r\n\r\n return totals;\r\n }\r\n\r\n _checkCellEdit(col, cellValue) {\r\n var dataValue = this._toDataValue(col, cellValue);\r\n\r\n if (dataValue == null || dataValue.starttijd == null || dataValue.eindtijd == null) {\r\n return false;\r\n }\r\n\r\n // Check uren / minuten <= 23:59\r\n var starttijd = dataValue.starttijd;\r\n var parts = APPLOYED.time.formatTime(starttijd).split(':');\r\n if (parseInt(parts[0]) >= 24 || parseInt(parts[1]) >= 60) {\r\n return false;\r\n }\r\n\r\n var eindtijd = dataValue.starttijd;\r\n parts = APPLOYED.time.formatTime(eindtijd).split(':');\r\n if (parseInt(parts[0]) >= 24 || parseInt(parts[1]) >= 60) {\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n _toCellValue(dataValue) {\r\n if (!dataValue) {\r\n return null;\r\n }\r\n\r\n var starttijd = APPLOYED.time.formatTime(dataValue.starttijd);\r\n var eindtijd = APPLOYED.time.formatTime(dataValue.eindtijd);\r\n var prefix = dataValue.startOpVorigeDag ? '<' : '';\r\n var extra = dataValue.extraPlanningsdag ? '# ' : '';\r\n return extra + prefix + starttijd + '-' + eindtijd;\r\n }\r\n\r\n _toDataValue(dagnummer, cellValue) {\r\n var parts = APPLOYED.time.getTimeParts(cellValue);\r\n\r\n if (parts == null) {\r\n return null;\r\n }\r\n\r\n return {\r\n dagnummer: dagnummer,\r\n starttijd: parts.starttijd,\r\n eindtijd: parts.eindtijd,\r\n startOpVorigeDag: parts.startOpVorigeDag,\r\n extraPlanningsdag: parts.extraPlanningsdag\r\n }\r\n }\r\n\r\n _getHours(wnid, dagnummer, dataValue, tijdregtypes) {\r\n var self = this;\r\n\r\n var gepland = !dataValue ? 0 : calcHours(dagnummer, dataValue.starttijd, dataValue.eindtijd, tijdregtypes);\r\n var overlap = calcOverlapHours(wnid, dagnummer, tijdregtypes);\r\n var verlof = getVerlofHours(wnid, dagnummer);\r\n\r\n return {\r\n gepland,\r\n overlap,\r\n verlof\r\n }\r\n\r\n // #region Local\r\n function calcHours(dagnummer, starttijd, eindtijd, tijdregtypes) {\r\n starttijd = APPLOYED.time.formatTime(starttijd);\r\n eindtijd = APPLOYED.time.formatTime(eindtijd);\r\n var uren = APPLOYED.time.calcHours(starttijd, eindtijd);\r\n\r\n var tijdregtypeId = tijdregtypes?.find(t => t.dagnummer == dagnummer)?.tijdregistratietypeId;\r\n var pauzes = self._groepsrooster.pauzes.filter(p => p.tijdregistratietypeId == tijdregtypeId);\r\n var urenMinPauzes = calcUrenMinPauzes(uren, pauzes);\r\n\r\n return urenMinPauzes\r\n }\r\n\r\n function calcOverlapHours(wnid, dagnummer, tijdregtypes) {\r\n var overlapdagen = self._groepsrooster.overlapdagen;\r\n if (!overlapdagen || overlapdagen.length == 0) {\r\n return 0;\r\n }\r\n\r\n var hours = 0;\r\n var wnOverlapdagen = overlapdagen.filter(d => d.werknemerId == wnid && d.dagnummer == dagnummer);\r\n for (var i = 0; i < wnOverlapdagen.length; i++) {\r\n var dag = wnOverlapdagen[i];\r\n hours = hours + calcHours(dagnummer, dag.starttijd, dag.eindtijd, tijdregtypes);\r\n }\r\n\r\n return hours;\r\n }\r\n\r\n function calcUrenMinPauzes(uren, pauzes) {\r\n if (!pauzes || pauzes.length == 0 || !pauzes[0].pauzebanden || pauzes[0].pauzebanden.length == 0) {\r\n return uren;\r\n }\r\n\r\n var urenMinPauzes = uren;\r\n for (var i = 0; i < pauzes[0].pauzebanden.length; i++) {\r\n var pauze = pauzes[0].pauzebanden[i];\r\n if (urenMinPauzes > pauze.gewerkteUren) {\r\n var duurPauze = pauze.aantalMinuten / 60;\r\n urenMinPauzes = Math.max(pauze.gewerkteUren, urenMinPauzes - duurPauze);\r\n }\r\n }\r\n\r\n return urenMinPauzes;\r\n }\r\n\r\n function getVerlofHours(wnid, dagnummer) {\r\n var verlof = self._groepsrooster.verlofdagen.find(vd => vd.werknemerId == wnid && vd.dagnummer == dagnummer);\r\n return verlof?.duur || 0;\r\n }\r\n // #endregion\r\n }\r\n\r\n _formatDataCell(row, col, cell) {\r\n var self = this;\r\n\r\n var cols = self._getColumns();\r\n var column = cols[col];\r\n\r\n if (column.isReadOnly) {\r\n return;\r\n }\r\n\r\n var data = self._getData();\r\n var cellValue = data[row][column.binding];\r\n\r\n var dataValue = null;\r\n if (cellValue != null && typeof cellValue != 'undefined') {\r\n dataValue = self._toDataValue(col, cellValue);\r\n }\r\n\r\n var content = self._formatContent(dataValue);\r\n cell.textContent = content;\r\n\r\n GridComponentHelper.clearTooltip(cell);\r\n\r\n var verlof = addVerlof(row, col, cell);\r\n\r\n if (!!content) {\r\n if (!verlof || verlof.isAanvraag) {\r\n addOverlap(row, col, cell);\r\n }\r\n }\r\n\r\n if (self._edit) {\r\n bindCell(cell, row, col);\r\n }\r\n\r\n // #region Local\r\n function bindCell(cell, row, col) {\r\n if (!self._edit) {\r\n return;\r\n }\r\n\r\n if (self._gridComponent.isCurrentCell(row, col)) {\r\n self._addBtnPopup(cell, row, col);\r\n }\r\n\r\n $(cell).mouseenter(() => {\r\n if (self._gridComponent.isEditing()) {\r\n return;\r\n }\r\n\r\n self._addBtnPopup(cell, row, col);\r\n });\r\n\r\n $(cell).mouseleave(() => {\r\n if (!self._gridComponent.isCurrentCell(row, col)) {\r\n self._removeBtnPopup(cell);\r\n }\r\n });\r\n }\r\n\r\n function addOverlap(row, col, cell) {\r\n var wnid = self._getData()[row].wnid;\r\n var overlapdagen = self._groepsrooster.overlapdagen;\r\n var column = self._getColumns()[col];\r\n\r\n GridComponentHelper.addCellOverlap(wnid, overlapdagen, column, cell);\r\n }\r\n\r\n function addVerlof(row, col, cell) {\r\n var wnid = self._getData()[row].wnid;\r\n var verlofdagen = self._groepsrooster.verlofdagen;\r\n var column = self._getColumns()[col];\r\n\r\n GridComponentHelper.addCellVerlof(wnid, verlofdagen, column, cell, !self._dayTotalsVisible);\r\n }\r\n\r\n // #endregion\r\n }\r\n\r\n _formatContent(value) {\r\n if (!value) {\r\n return '';\r\n }\r\n\r\n var extra = value.extraPlanningsdag ? \"# \" : \"\";\r\n var vorige = value.startOpVorigeDag ? \"<\" : \"\";\r\n var starttijd = APPLOYED.time.formatTime(value.starttijd);\r\n var eindtijd = APPLOYED.time.formatTime(value.eindtijd);\r\n return extra + vorige + starttijd + '-' + eindtijd;\r\n }\r\n\r\n _removeWnData(wnid) {\r\n var self = this;\r\n\r\n self._groepsrooster.verlofdagen = self._groepsrooster.verlofdagen.filter(vd => vd.werknemerId != wnid);\r\n self._groepsrooster.overlapdagen = self._groepsrooster.overlapdagen.filter(od => od.werknemerId != wnid);\r\n }\r\n\r\n _addBtnPopup(cell, row, col) {\r\n var self = this;\r\n\r\n var column = self._getColumns()[col];\r\n if (column.isReadOnly) {\r\n return;\r\n }\r\n\r\n var btn = $(cell).find('.btn-time-popup');\r\n if (btn && btn.length > 0) {\r\n $(btn).show();\r\n return;\r\n }\r\n\r\n btn = createBtnPopup();\r\n $(cell).append(btn);\r\n\r\n $(cell).find('.btn-time-popup').bind('click', function (e) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n\r\n self._showTimePopup();\r\n return true;\r\n });\r\n\r\n $(cell).find('.btn-time-popup img').bind('mousedown', function (e) {\r\n if (self._gridComponent.cellSelected(row, col)) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n }\r\n });\r\n\r\n // #region Local\r\n function createBtnPopup() {\r\n var divImg = document.createElement('div');\r\n divImg.className = \"btn-time-popup\";\r\n divImg.style = \"position: absolute; right: 0px; bottom: -3px; cursor: pointer; z-index: 1;\"\r\n\r\n var img = document.createElement('img');\r\n img.src = \"/content/images/popout-br.png\"\r\n divImg.appendChild(img);\r\n\r\n return divImg;\r\n }\r\n // #endregion\r\n }\r\n\r\n _removeBtnPopup(cell) {\r\n $(cell).find('.btn-time-popup').remove()\r\n }\r\n\r\n _handleKeyDown(event) {\r\n if (!this._edit) {\r\n return false;\r\n }\r\n\r\n if (event.key == 'F2') {\r\n this._showTimePopup();\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n _handleSelectionChanged(event) {\r\n var self = this;\r\n\r\n var selection = this._gridComponent.getSelectRange();\r\n\r\n if (this.currentCell) {\r\n showCellPopout(this.currentCell.row, this.currentCell.col, false);\r\n }\r\n\r\n this.currentCell = {\r\n row: selection.row,\r\n col: selection.col\r\n }\r\n\r\n showCellPopout(this.currentCell.row, this.currentCell.col, true);\r\n\r\n // #region Local\r\n function showCellPopout(row, col, show) {\r\n var cell = self._gridComponent.getCellElement(row, col);\r\n if (cell) {\r\n if (show) {\r\n self._addBtnPopup(cell, row, col);\r\n } else {\r\n self._removeBtnPopup(cell);\r\n }\r\n }\r\n }\r\n // #endregion\r\n }\r\n\r\n _showTimePopup() {\r\n var self = this;\r\n\r\n var data = self._getData();\r\n var selectRange = self._gridComponent.getSelectRange();\r\n\r\n var columns = self._getColumns();\r\n var startdag = `${GridComponentHelper.getDayFromCol(columns[selectRange.leftCol])}`;\r\n var einddag = `${GridComponentHelper.getDayFromCol(columns[selectRange.rightCol])}`;\r\n\r\n var rangeData = [];\r\n if (self._gridComponent.isEditing()) {\r\n rangeData = getEditData(selectRange.topRow, selectRange.leftCol - 1);\r\n }\r\n\r\n if (rangeData.length == 0) {\r\n rangeData = getRangeData(data, selectRange.topRow, selectRange.leftCol, selectRange.bottomRow, selectRange.rightCol);\r\n }\r\n\r\n var uniekeStarttijden = [...new Set(rangeData.map(r => r.starttijd).filter(el => el).map(t => APPLOYED.time.formatTime(t)))];\r\n var uniekeEindtijden = [...new Set(rangeData.map(r => r.eindtijd).filter(el => el).map(t => APPLOYED.time.formatTime(t)))];\r\n var uniekeVorige = [...new Set(rangeData.map(r => r.startOpVorigeDag).filter(el => el))];\r\n var uniekeExtra = [...new Set(rangeData.map(r => r.extraPlanningsdag).filter(el => el))];\r\n\r\n var starttijd = uniekeStarttijden.length == 1 ? uniekeStarttijden[0] : null;\r\n var eindtijd = uniekeEindtijden.length == 1 ? uniekeEindtijden[0] : null;\r\n var vorige = uniekeVorige.length == 1 ? uniekeVorige[0] : null;\r\n var extra = uniekeExtra.length == 1 ? uniekeExtra[0] : null;\r\n\r\n APPLOYED.time.showWeekplanningTimePopup(validateUpdate, (values) => applyUpdate(selectRange, values), startdag, einddag, starttijd, eindtijd, vorige, extra);\r\n\r\n // #region Local\r\n function getEditData(startRow, startCol) {\r\n var editValue = self._gridComponent.getEditValue();\r\n var dataValue = APPLOYED.time.getTimeParts(editValue.trim());\r\n\r\n var data = [];\r\n if (dataValue == null) {\r\n data.push({});\r\n } else {\r\n data.push(dataValue);\r\n }\r\n\r\n return data;\r\n }\r\n\r\n function getRangeData(data, startRow, startCol, endRow, endCol) {\r\n var rangeData = [];\r\n\r\n var columns = self._getColumns();\r\n\r\n for (var i = startRow; i <= endRow; i++) {\r\n var row = data[i];\r\n for (var j = startCol; j <= endCol; j++) {\r\n var column = columns[j];\r\n if (column.binding[0] == 'd') {\r\n var value = row[column.binding];\r\n if (value) {\r\n var cellData = self._toDataValue(GridComponentHelper.getDayFromCol(column), value);\r\n rangeData.push(cellData);\r\n }\r\n }\r\n }\r\n }\r\n\r\n return rangeData;\r\n }\r\n\r\n function validateUpdate(values) {\r\n var dataValue = { starttijd: values.starttijd, eindtijd: values.eindtijd, startOpVorigeDag: values.startOpVorigeDag }\r\n var cellValue = self._toCellValue(dataValue);\r\n return self._checkCellEdit(1, cellValue);\r\n }\r\n\r\n function applyUpdate(selectRange, values) {\r\n if (!values) {\r\n self._gridComponent.setFocus(true);\r\n return;\r\n }\r\n\r\n if (self._gridComponent.isEditing()) {\r\n self._gridComponent.finishEditing(true);\r\n }\r\n\r\n var range = getUpdateRange(selectRange, values);\r\n self._gridComponent.updateRange(range.data, range.startdag - 1, range.topRow, 'd');\r\n\r\n self._gridComponent.setFocus(true);\r\n self._gridComponent.setSelectRange(range);\r\n\r\n function getUpdateRange(selectRange, values) {\r\n var startdag = parseInt(values.startdag);\r\n var einddag = parseInt(values.einddag);\r\n\r\n var dataValue = { starttijd: values.starttijd, eindtijd: values.eindtijd, startOpVorigeDag: values.startOpVorigeDag, extraPlanningsdag: values.extraPlanningsdag }\r\n var cellValue = self._toCellValue(dataValue);\r\n\r\n var data = [];\r\n for (var r = selectRange.topRow; r <= selectRange.bottomRow; r++) {\r\n var row = [];\r\n for (var c = startdag; c <= einddag; c++) {\r\n row.push(cellValue);\r\n }\r\n data.push(row);\r\n }\r\n\r\n return {\r\n data: data,\r\n topRow: selectRange.topRow,\r\n bottomRow: selectRange.bottomRow,\r\n leftCol: self._getColumns().find(c => c.binding == `d${startdag - 1}`)?.index || selectRange.leftCol,\r\n rightCol: self._getColumns().find(c => c.binding == `d${einddag - 1}`)?.index || selectRange.rightCol,\r\n startdag: startdag\r\n };\r\n }\r\n }\r\n // #endregion\r\n }\r\n // #endregion Private\r\n}\r\n","class PeriodeOverzichtComponent {\r\n _gridComponent = null;\r\n _periodeoverzicht = null;\r\n _captions = null;\r\n _locale = null;\r\n _tooltips = null;\r\n\r\n id = '#periodeoverzicht-grid';\r\n\r\n handlers = {\r\n dataChanged: null,\r\n loadDetail: null\r\n }\r\n\r\n constructor(id, periodeoverzicht, captions, locale) {\r\n this.id = id;\r\n this._periodeoverzicht = periodeoverzicht;\r\n this._captions = captions;\r\n this._locale = locale;\r\n }\r\n\r\n // #region Public\r\n init() {\r\n var self = this;\r\n\r\n var grid = new FlexGridComponent(self.id, false, true);\r\n grid.handlers.loadCols = (edit) => loadColumns();\r\n grid.handlers.loadRows = (edit) => loadData();\r\n grid.handlers.loadFooter = (edit) => loadFooter();\r\n grid.handlers.loadingRows = () => loadingRows();\r\n grid.handlers.formatDataCell = (row, col, cell) => self._formatDataCell(row, col, cell);\r\n grid.handlers.formatHeaderCell = (row, col, cell) => self._formatHeaderCell(row, col, cell);\r\n\r\n var rightMargin = 0;\r\n grid.selectMargins = { left: 1, right: rightMargin };\r\n\r\n self._tooltips = new wijmo.Tooltip({\r\n position: wijmo.PopupPosition.RightTop,\r\n showAtMouse: true,\r\n showDelay: 600,\r\n cssClass: 'hdr-tip'\r\n });\r\n\r\n self._gridComponent = grid;\r\n self._gridComponent.init();\r\n self._gridComponent.setFrozenColumns(1);\r\n\r\n // #region Local\r\n function loadColumns() {\r\n var minWidth = 60;\r\n var maxWidth = 80;\r\n var captions = self._captions;\r\n var columns = [\r\n { binding: 'datum', header: captions[\"datum\"], cssClassAll: 'text-right colhdr-cell-left pl-2 cell-width', isReadOnly: true, width: '2*', minWidth: minWidth, maxWidth: maxWidth },\r\n { binding: 'tijdin', header: captions[\"tijdin\"], cssClassAll: 'text-right colhdr-cell-left pl-2 cell-width', isReadOnly: true, width: '2*', minWidth: minWidth, maxWidth: maxWidth },\r\n { binding: 'tijduit', header: captions[\"tijduit\"], cssClassAll: 'text-right colhdr-cell-left pl-2 cell-width', isReadOnly: true, width: '2*', minWidth: minWidth, maxWidth: maxWidth },\r\n { binding: 'pauze', header: captions[\"pauze\"], cssClassAll: 'text-right colhdr-cell-left pl-2 cell-width', isReadOnly: true, width: '2*', minWidth: minWidth, maxWidth: maxWidth, format: 'F2' },\r\n { binding: 'functieuren', header: captions[\"functieuren\"], cssClassAll: 'text-right colhdr-cell-left pl-2 cell-width', isReadOnly: true, width: '2*', minWidth: minWidth, maxWidth: maxWidth, format: 'F2' },\r\n { binding: 'betaald', header: captions[\"betaald\"], cssClassAll: 'text-right colhdr-cell-left pl-2 cell-width', isReadOnly: true, width: '2*', minWidth: minWidth, maxWidth: maxWidth, format: 'F2' },\r\n { binding: 'verschil', header: captions[\"verschil\"], cssClassAll: 'text-right colhdr-cell-left pl-2 cell-width', isReadOnly: true, width: '2*', minWidth: minWidth, maxWidth: maxWidth, format: 'F2' },\r\n { binding: 'rooster', header: captions[\"rooster\"], cssClassAll: 'colhdr-cell-left pl-2 cell-width', isReadOnly: true, width: '2*', minWidth: minWidth, maxWidth: maxWidth },\r\n ];\r\n\r\n var toeslagen = self._periodeoverzicht.toeslagResultaten;\r\n for (var i = 0; i < toeslagen.length; i++) {\r\n var toeslag = toeslagen[i];\r\n columns.push({\r\n binding: 't-' + toeslag.categorieId, header: toeslag.naam, cssClassAll: 'text-right colhdr-cell-left pl-2 cell-minwidth cell-maxwidth', isReadOnly: true, width: '3*', minWidth: maxWidth, maxWidth: 2 * minWidth, format: 'F2'\r\n });\r\n }\r\n\r\n var absenties = self._periodeoverzicht.absentieResultaten;\r\n for (var i = 0; i < absenties.length; i++) {\r\n var absentie = absenties[i];\r\n columns.push({\r\n binding: 'v-' + absentie.verlofregelingId, header: absentie.naam, cssClassAll: 'text-right colhdr-cell-left pl-2 cell-minwidth', isReadOnly: true, width: '3*', minWidth: maxWidth, maxWidth: 2 * minWidth, format: 'F2'\r\n });\r\n }\r\n\r\n return columns;\r\n }\r\n\r\n function loadData() {\r\n if (self._periodeoverzicht.dagen.length == 0) {\r\n return [{}];\r\n }\r\n\r\n var dagen = [...self._periodeoverzicht.dagen];\r\n var data = [];\r\n\r\n for (var i = 0; i < dagen.length; i++) {\r\n var row = {};\r\n row['val-date'] = dagen[i].datum;\r\n row['datum'] = self._formatDate(dagen[i].datum);\r\n row['tijdin'] = self._formatTime(dagen[i].tijdIn);\r\n row['tijduit'] = self._formatTime(dagen[i].tijdUit);\r\n row['pauze'] = dagen[i].pauze;\r\n row['functieuren'] = dagen[i].functieuren;\r\n row['betaald'] = dagen[i].betaaldeUren;\r\n row['verschil'] = dagen[i].verschilUren;\r\n row['rooster'] = self._formatTimeRange(dagen[i].plantijdIn, dagen[i].plantijdUit);\r\n\r\n // Toeslag cols toevoegen\r\n var toeslagen = dagen[i].toeslagen;\r\n for (var j = 0; j < toeslagen.length; j++) {\r\n var toeslag = toeslagen[j];\r\n row['t-' + toeslag.categorieId] = toeslag.waarde;\r\n }\r\n\r\n // Absentie cols toevoegen\r\n var absenties = dagen[i].absenties;\r\n for (var j = 0; j < absenties.length; j++) {\r\n var absentie = absenties[j];\r\n row['v-' + absentie.verlofregelingId] = absentie.waarde;\r\n }\r\n\r\n data.push(row);\r\n }\r\n\r\n return data;\r\n }\r\n\r\n function loadFooter() {\r\n var footer = {};\r\n\r\n footer['pauze'] = getValue(self._periodeoverzicht.totaalPauze);\r\n footer['functieuren'] = getValue(self._periodeoverzicht.totaalFunctieuren);\r\n footer['betaald'] = getValue(self._periodeoverzicht.totaalBetaaldeUren);\r\n footer['verschil'] = getValue(self._periodeoverzicht.totaalVerschilUren);\r\n\r\n var toeslagen = self._periodeoverzicht.toeslagResultaten;\r\n for (var i = 0; i < toeslagen.length; i++) {\r\n var toeslag = toeslagen[i];\r\n footer['t-' + toeslag.categorieId] = getValue(toeslag.waarde);\r\n }\r\n\r\n var absenties = self._periodeoverzicht.absentieResultaten;\r\n for (var i = 0; i < absenties.length; i++) {\r\n var absentie = absenties[i];\r\n footer['v-' + absentie.verlofregelingId] = getValue(absentie.waarde);\r\n }\r\n\r\n return footer;\r\n\r\n function getValue(waarde) {\r\n return !!waarde ? waarde : null;\r\n }\r\n }\r\n\r\n function loadingRows() {\r\n self._tooltips.dispose();\r\n }\r\n // #endregion\r\n }\r\n // #endregion\r\n\r\n // #region Private\r\n _formatDate(date) {\r\n var self = this;\r\n var hDate = new Date(date)\r\n var options = { weekday: \"short\", month: '2-digit', day: '2-digit' };\r\n return hDate.toLocaleDateString(self._locale, options).replace('/', '-');\r\n }\r\n\r\n _formatTime(time) {\r\n if (!time) {\r\n return time;\r\n }\r\n\r\n return time.slice(0, -3);\r\n }\r\n\r\n _formatTimeRange(tijdin, tijduit) {\r\n var self = this;\r\n\r\n if (!tijdin || !tijduit) {\r\n return null;\r\n }\r\n\r\n return `${self._formatTime(tijdin)}-${self._formatTime(tijduit)}`;\r\n }\r\n\r\n _getColumns() {\r\n return this._gridComponent.getColumns();\r\n }\r\n\r\n _getData() {\r\n return this._gridComponent.getData();\r\n }\r\n\r\n _formatDataCell(row, col, cell) {\r\n var self = this;\r\n\r\n var cols = self._getColumns();\r\n var column = cols[col];\r\n var data = self._getData();\r\n var dataValue = data[row][column.binding];\r\n\r\n if (!dataValue) {\r\n $(cell).text('');\r\n }\r\n\r\n var date = data[row]['val-date']\r\n var isWeekend = self._isWeekend(date);\r\n\r\n if (col == 0) {\r\n $(cell).toggleClass('bg-fixed', true);\r\n }\r\n else {\r\n $(cell).toggleClass('bg-empty', isWeekend);\r\n }\r\n }\r\n\r\n _formatHeaderCell(row, col, cell) {\r\n var self = this;\r\n\r\n var cols = self._getColumns();\r\n var column = cols[col];\r\n\r\n if (cell.offsetWidth + 2 < cell.scrollWidth) {\r\n self._tooltips.setTooltip(cell, `${column.header}`);\r\n }\r\n }\r\n\r\n _isWeekend(date) {\r\n var hDate = new Date(date)\r\n var day = hDate.getDay();\r\n return day == 0 || day == 6;\r\n\r\n }\r\n // #endregion Private\r\n}\r\n","class WeekcalendarComponent {\r\n id = '#weekcalendar-grid';\r\n gridComponent = null;\r\n startDatum = null;\r\n urenPerDag = null;\r\n displayWeek = null;\r\n dagen = null;\r\n weekCaption = null;\r\n locale = \"nl-NL\";\r\n\r\n headerHeight = 52;\r\n\r\n constructor(id, data, weekCaption, dagen, locale) {\r\n this.id = id;\r\n this.startDatum = data.startDatum;\r\n this.urenPerDag = data.urenPerDag;\r\n this.displayWeek = data.displayWeek;\r\n this.weekCaption = (weekCaption || '').replace(' ', '\\n');\r\n this.dagen = dagen;\r\n this.locale = locale;\r\n }\r\n\r\n init() {\r\n var self = this;\r\n\r\n var grid = new FlexGridComponent(self.id, false);\r\n grid.handlers.loadCols = (edit) => loadColumns(self.startDatum, self.dagen);\r\n grid.handlers.loadRows = (edit) => loadData(self.urenPerDag);\r\n grid.handlers.formatDataCell = (row, col, element) => formatDataCell(row, col, element);\r\n\r\n self.gridComponent = grid;\r\n self.gridComponent.init();\r\n self.gridComponent.setHeaderHeight(self.headerHeight);\r\n\r\n function loadColumns(startDatum, dagen) {\r\n var columns = [\r\n { binding: 'week', header: self.weekCaption, cssClassAll: 'text-center border-left border-right', isReadOnly: true, multiLine: true, width: '12*' }\r\n ];\r\n\r\n var headers = self.getHeaders(startDatum, dagen);\r\n\r\n for (var i = 0; i < dagen.length; i++) {\r\n var border = \"border-left\" + (i == 6 ? \" border-right\" : \"\");\r\n var daycol = {\r\n binding: 'd' + i,\r\n header: headers[i],\r\n cssClassAll: 'text-center ' + border,\r\n multiLine: true,\r\n width: '12*',\r\n isRequired: false,\r\n format: 'F2'\r\n };\r\n columns.push(daycol)\r\n }\r\n\r\n return columns;\r\n }\r\n\r\n function loadData(urenPerDag) {\r\n var data = [];\r\n if (urenPerDag && urenPerDag.length > 0) {\r\n var row = {};\r\n\r\n row['week'] = self.displayWeek;\r\n\r\n for (var i = 0; i < urenPerDag.length; i++) {\r\n for (var j = 0; j < urenPerDag.length; j++) {\r\n var uren = urenPerDag[j];\r\n if (!!uren) {\r\n row['d' + j] = uren;\r\n } else {\r\n row['d' + j] = null;\r\n }\r\n }\r\n }\r\n\r\n data.push(row);\r\n }\r\n\r\n if (data.length == 0) {\r\n var row = {};\r\n row['week'] = null;\r\n\r\n for (var j = 0; j < 7; j++) {\r\n row['d' + j] = null;\r\n }\r\n\r\n data.push(row);\r\n }\r\n\r\n return data;\r\n }\r\n\r\n function formatDataCell(row, col, element) {\r\n var urenCol = col - 1;\r\n if (row == 0 && urenCol >= 0 && urenCol < self.urenPerDag.length) {\r\n if (!self.urenPerDag[urenCol]) {\r\n $(element).text('-');\r\n $(element).toggleClass('bg-empty', true);\r\n }\r\n else {\r\n $(element).toggleClass('bg-active', true);\r\n }\r\n }\r\n }\r\n }\r\n\r\n getHeaders(startDatum, dagen) {\r\n var options = { month: '2-digit', day: '2-digit' };\r\n var headers = new Array(dagen.length);\r\n\r\n for (var i = 0; i < dagen.length; i++) {\r\n var hDate = DateService.AddDays(startDatum, i);\r\n headers[i] = dagen[i] + '\\n' + hDate.toLocaleDateString(this.locale, options).replace('/', '-');\r\n }\r\n\r\n return headers;\r\n }\r\n\r\n updateData(data) {\r\n this.startDatum = data.startDatum;\r\n var headers = this.getHeaders(this.startDatum, this.dagen);\r\n this.gridComponent.updateHeaders(headers, 1);\r\n\r\n this.displayWeek = data.displayWeek;\r\n this.urenPerDag = data.urenPerDag;\r\n var row = this.urenPerDag.slice(0, this.urenPerDag.length);\r\n row.splice(0, 0, this.displayWeek);\r\n this.gridComponent.updateRow(row, 0, 0);\r\n }\r\n}\r\n","// TimeWeekroosterComponent extends WeekroosterComponent below\r\nclass WeekroosterComponent {\r\n id = '#weekrooster-grid';\r\n edit = false;\r\n gridComponent = null;\r\n weekrooster = null;\r\n addweekbutton = '.addweekroosterweek';\r\n withTotals = false;\r\n invalidKeys = ['-'];\r\n\r\n handlers = {\r\n dataChanged: null\r\n }\r\n\r\n constructor(id, edit, weekrooster, withTotals = false) {\r\n this.id = id;\r\n this.edit = edit;\r\n this.weekrooster = weekrooster;\r\n this.withTotals = withTotals;\r\n }\r\n\r\n init() {\r\n var self = this;\r\n\r\n var grid = new FlexGridComponent(self.id, self.edit, self.withTotals, self.invalidKeys);\r\n grid.handlers.loadCols = (edit) => loadColumns(self.weekrooster, edit);\r\n grid.handlers.loadRows = (edit) => loadData(self.weekrooster, edit);\r\n grid.handlers.checkEdit = checkCellEdit;\r\n grid.handlers.rowRemoved = rowRemoved;\r\n grid.handlers.dataChanged = dataChanged;\r\n self.addGridHandlers(grid);\r\n\r\n var rightMargin = 1;\r\n if (self.withTotals) {\r\n rightMargin += 1;\r\n }\r\n grid.selectMargins = { left: 1, right: rightMargin };\r\n\r\n if (self.withTotals) {\r\n grid.handlers.loadFooter = (data) => loadFooter(self.weekrooster, data);\r\n }\r\n\r\n self.gridComponent = grid;\r\n self.gridComponent.init();\r\n\r\n bindAddWeekButton();\r\n\r\n function bindAddWeekButton() {\r\n $(self.addweekbutton).off('click');\r\n $(self.addweekbutton).on('click', function () {\r\n if (self.edit) {\r\n addGridRow();\r\n }\r\n });\r\n\r\n function addGridRow() {\r\n var row = {};\r\n\r\n row['week'] = self.getData().length + 1;\r\n for (var j = 0; j < self.getColumns().length; j++) {\r\n row['d' + j] = null;\r\n }\r\n\r\n self.addRow(row);\r\n }\r\n }\r\n\r\n function loadColumns(weekrooster, edit) {\r\n var weekCaption = weekrooster.weekCaption;\r\n var columns = [\r\n { binding: 'week', header: weekCaption, cssClassAll: 'colhdr-cell pl-2', isReadOnly: true, width: '12*' }\r\n ];\r\n\r\n for (var i = 0; i < weekrooster.dagen.length; i++) {\r\n var daycol = self.getDayCol('d' + i, weekrooster.dagen[i]);\r\n columns.push(daycol)\r\n }\r\n\r\n if (self.withTotals) {\r\n var daycol = {\r\n binding: 'total',\r\n header: weekrooster.totaalCaption,\r\n cssClassAll: 'total-cell',\r\n width: self.getTotalsWidth(),\r\n isRequired: false,\r\n format: 'F2',\r\n dataType: wijmo.DataType.Number\r\n };\r\n columns.push(daycol)\r\n }\r\n\r\n columns.push({\r\n binding: 'del',\r\n header: ' ',\r\n cssClassAll: 'colhdr-del pl-2',\r\n isReadOnly: true,\r\n visible: edit,\r\n width: 40,\r\n cellTemplate: (ctx) => ``\r\n });\r\n\r\n return columns;\r\n }\r\n\r\n function loadData(weekrooster, edit) {\r\n if (weekrooster.weken.length == 0) {\r\n if (!edit) {\r\n return [{}];\r\n }\r\n }\r\n\r\n var weken = weekrooster.weken;\r\n\r\n var data = [];\r\n for (var i = 0; i < weken.length; i++) {\r\n var row = {};\r\n row['week'] = weken[i].weeknummer;\r\n\r\n for (var j = 0; j < weekrooster.dagen.length; j++) {\r\n var dag = weken[i].dagen.find(d => d.dagnummer == j + 1);\r\n row['d' + j] = self.toCellValue(dag);\r\n }\r\n\r\n data.push(row);\r\n }\r\n\r\n if (edit && data.length == 0) {\r\n var row = {};\r\n row['week'] = data.length + 1;\r\n for (var j = 0; j < weekrooster.dagen.length; j++) {\r\n row['d' + j] = null;\r\n }\r\n\r\n data.push(row);\r\n }\r\n\r\n if (self.withTotals) {\r\n var totals = getTotals(data);\r\n for (var i = 0; i < totals.length; i++) {\r\n var row = data[i];\r\n row['total'] = totals[i];\r\n }\r\n }\r\n\r\n return data;\r\n }\r\n\r\n function loadFooter(weekrooster, data) {\r\n var footer = {};\r\n\r\n footer['week'] = weekrooster.gemiddeldCaption;\r\n footer['totals'] = 0;\r\n\r\n for (var j = 0; j < weekrooster.dagen.length; j++) {\r\n footer['d' + j] = 0;\r\n }\r\n\r\n updateAverages(weekrooster, data, footer);\r\n return footer;\r\n }\r\n\r\n function updateAverages(weekrooster, data, footer) {\r\n var averages = getAverages(weekrooster, data);\r\n\r\n for (var j = 0; j < averages.length - 1; j++) {\r\n footer['d' + j] = averages[j];\r\n }\r\n\r\n footer['total'] = averages[averages.length - 1];\r\n }\r\n\r\n function getAverages() {\r\n var averages = new Array(self.weekrooster.dagen.length + 1).fill(0);\r\n\r\n var data = self.getData();\r\n for (var i = 0; i < data.length; i++) {\r\n var row = data[i];\r\n for (var j = 0; j < averages.length - 1; j++) {\r\n var value = row['d' + j];\r\n if (value || value == 0) {\r\n var cellData = self.toDataValue(j + 1, value);\r\n if (cellData != null) {\r\n averages[j] += cellData.werkuren || 0;\r\n }\r\n }\r\n }\r\n }\r\n\r\n var total = 0;\r\n if (data.length > 0) {\r\n for (var i = 0; i < averages.length - 1; i++) {\r\n averages[i] = averages[i] / data.length;\r\n total += averages[i];\r\n }\r\n }\r\n\r\n averages[averages.length - 1] = total;\r\n return averages;\r\n }\r\n\r\n function checkCellEdit(s, e) {\r\n let col = s.columns[e.col];\r\n if (col.binding == 'week') {\r\n return true;\r\n }\r\n\r\n var cellValue = !s.activeEditor ? \"\" : s.activeEditor.value;\r\n if (cellValue.trim() == \"\") {\r\n return true;\r\n }\r\n\r\n return self.checkCellEdit(col, cellValue);\r\n }\r\n\r\n function rowRemoved(rownum, itemsSource, removed) {\r\n for (var i = 0; i < itemsSource.length; i++) {\r\n var row = itemsSource[i];\r\n row['week'] = i + 1;\r\n }\r\n }\r\n\r\n function dataChanged() {\r\n if (self.withTotals) {\r\n var totals = getTotals();\r\n self.gridComponent.updateCol(totals, 8);\r\n\r\n var averages = getAverages();\r\n self.gridComponent.updateFooter(averages, 1);\r\n }\r\n\r\n if (!self.handlers.dataChanged || typeof self.handlers.dataChanged != 'function') {\r\n return;\r\n }\r\n\r\n self.handlers.dataChanged();\r\n }\r\n\r\n function getTotals(data = null) {\r\n if (data == null) {\r\n data = self.getData();\r\n }\r\n\r\n var totals = new Array(data.length).fill(0);\r\n\r\n for (var i = 0; i < data.length; i++) {\r\n var row = data[i];\r\n for (var j = 0; j < self.weekrooster.dagen.length; j++) {\r\n var value = row['d' + j];\r\n if (value || value == 0) {\r\n var cellData = self.toDataValue(j + 1, value);\r\n if (cellData != null) {\r\n totals[i] += cellData.werkuren;\r\n }\r\n }\r\n }\r\n }\r\n\r\n return totals;\r\n }\r\n }\r\n\r\n getTotalsWidth() {\r\n if (!this.withTotals) {\r\n return 0;\r\n }\r\n\r\n return \"10*\"\r\n }\r\n\r\n getColumns() {\r\n return this.gridComponent.getColumns();\r\n }\r\n\r\n getData() {\r\n return this.gridComponent.getData();\r\n }\r\n\r\n addRow(row) {\r\n this.gridComponent.addRow(row);\r\n }\r\n\r\n getFooter() {\r\n return this.gridComponent.getFooter();\r\n }\r\n\r\n setEdit(edit) {\r\n if (this.edit == edit) {\r\n return;\r\n }\r\n\r\n this.edit = edit;\r\n var columns = this.getColumns();\r\n columns[columns.length - 1].visible = edit;\r\n this.gridComponent.setEdit(edit);\r\n\r\n if (this.withTotals) {\r\n this.gridComponent.setColWidth(this.getTotalsWidth(), columns.length - 2);\r\n }\r\n }\r\n\r\n getWeekroosterWeken() {\r\n var self = this;\r\n\r\n var data = this.getData();\r\n if ((!data) || (data.length == 0) || (typeof data[0].week == 'undefined')) {\r\n return [];\r\n }\r\n\r\n var weken = [];\r\n for (var i = 0; i < data.length; i++) {\r\n var row = data[i];\r\n\r\n var week = {\r\n weeknummer: row['week'],\r\n dagen: []\r\n };\r\n\r\n var aantalDagen = this.getColumns().length;\r\n for (var j = 0; j < aantalDagen; j++) {\r\n var value = row['d' + j];\r\n if (value || value == 0) {\r\n var dataValue = self.toDataValue(j + 1, value);\r\n if (!!dataValue) {\r\n var dag = {\r\n dagnummer: dataValue.dagnummer,\r\n werkuren: dataValue.werkuren,\r\n starttijd: APPLOYED.time.formatTime(dataValue.starttijd),\r\n startOpVorigeDag: dataValue.startOpVorigeDag\r\n }\r\n week.dagen.push(dag);\r\n }\r\n }\r\n }\r\n\r\n weken.push(week);\r\n }\r\n\r\n return weken;\r\n }\r\n\r\n getDataValue(dagnummer, value) {\r\n if (value || value == 0) {\r\n return this.toDataValue(dagnummer, value);\r\n }\r\n\r\n return null;\r\n }\r\n\r\n // virtual\r\n addGridHandlers(grid) {\r\n // No additional handlers for standard Weekrooster\r\n }\r\n\r\n // virtual\r\n getDayCol(binding, header) {\r\n return {\r\n binding: binding,\r\n header: header,\r\n cssClassAll: 'text-right',\r\n width: '12*',\r\n maxLength: 5,\r\n isRequired: false,\r\n format: 'F2',\r\n dataType: wijmo.DataType.Number\r\n };\r\n }\r\n\r\n // virtual\r\n checkCellEdit(col, cellValue) {\r\n var value = wijmo.changeType(cellValue, wijmo.DataType.Number, col.format);\r\n\r\n if (cellValue != \"\" && (!wijmo.isNumber(value) || value < 0)) {\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n // virtual\r\n toCellValue(dataValue) {\r\n if (!dataValue) {\r\n return null;\r\n }\r\n\r\n return dataValue.werkuren;\r\n }\r\n\r\n // virtual\r\n toDataValue(dagnummer, cellValue) {\r\n return { dagnummer: dagnummer, werkuren: cellValue, starttijd: null, startOpVorigeDag: null }\r\n }\r\n}\r\n\r\nclass TimeWeekroosterComponent extends WeekroosterComponent {\r\n currentCell = null;\r\n\r\n constructor(id, edit, weekrooster, withTotals = false) {\r\n super(id, edit, weekrooster, withTotals);\r\n this.invalidKeys = null;\r\n }\r\n\r\n // override\r\n addGridHandlers(grid) {\r\n var self = this;\r\n\r\n grid.handlers.formatDataCell = (row, col, cell) => this.formatDataCell(row, col, cell);\r\n grid.handlers.keyDown = (event) => this.handleKeyDown(event);\r\n grid.handlers.selectionChanged = (event) => this.handleSelectionChanged(event);\r\n }\r\n\r\n // override\r\n getDayCol(binding, header) {\r\n return {\r\n binding: binding,\r\n header: header,\r\n cssClassAll: 'text-right',\r\n width: '12*',\r\n maxLength: 15,\r\n isRequired: false,\r\n format: 'F2',\r\n dataType: wijmo.DataType.String\r\n };\r\n }\r\n\r\n // override\r\n checkCellEdit(col, cellValue) {\r\n var dataValue = this.toDataValue(col, cellValue);\r\n\r\n if (dataValue == null || dataValue.starttijd == null || dataValue.werkuren == null) {\r\n return false;\r\n }\r\n\r\n // Check uren / minuten <= 23:59\r\n var starttijd = dataValue.starttijd;\r\n var parts = APPLOYED.time.formatTime(starttijd).split(':');\r\n return parseInt(parts[0]) < 24 && parseInt(parts[1]) < 60;\r\n }\r\n\r\n // override\r\n toCellValue(dataValue) {\r\n if (!dataValue) {\r\n return null;\r\n }\r\n\r\n var werkuren = dataValue.werkuren.toFixed(2).toString();\r\n var starttijd = APPLOYED.time.formatTime(dataValue.starttijd);\r\n var prefix = dataValue.startOpVorigeDag ? '<' : '';\r\n return prefix + starttijd + '-' + werkuren;\r\n }\r\n\r\n // override\r\n toDataValue(dagnummer, cellValue) {\r\n var self = this;\r\n\r\n var parts = APPLOYED.time.getTimeHourParts(cellValue);\r\n\r\n if (parts == null) {\r\n return null;\r\n }\r\n\r\n return { dagnummer: dagnummer, werkuren: parts.werkuren, starttijd: parts.starttijd, startOpVorigeDag: parts.startOpVorigeDag }\r\n }\r\n\r\n formatDataCell(row, col, cell) {\r\n var self = this;\r\n\r\n if (col < 1 || col > this.weekrooster.dagen.length) {\r\n return;\r\n }\r\n\r\n var data = self.getData();\r\n var cellValue = data[row]['d' + (col - 1)];\r\n\r\n var dataValue = null;\r\n if (cellValue != null && typeof cellValue != 'undefined') {\r\n dataValue = self.toDataValue(col, cellValue);\r\n }\r\n\r\n var childContent = formatContent(dataValue);\r\n cell.textContent = '';\r\n cell.appendChild(childContent);\r\n\r\n if (self.edit) {\r\n bindCell(cell, row, col);\r\n }\r\n\r\n function formatContent(dataValue) {\r\n var div = document.createElement('div');\r\n div.style = \"position: relative; height: 100%\";\r\n\r\n if (dataValue != null) {\r\n var vorige = dataValue.startOpVorigeDag ? \"<\" : \"\";\r\n var tijd = APPLOYED.time.formatTime(dataValue.starttijd) + '-';\r\n var uren = wijmo.Globalize.format(dataValue.werkuren, 'f2');\r\n\r\n let vorigeSpan = document.createElement('span');\r\n vorigeSpan.textContent = vorige;\r\n vorigeSpan.style = \"font-size: x-small; position: relative; top: -1px;\"\r\n\r\n let tijdSpan = document.createElement('span');\r\n tijdSpan.textContent = tijd;\r\n\r\n let urenSpan = document.createElement('span');\r\n urenSpan.textContent = uren;\r\n urenSpan.className = \"time-hours\";\r\n\r\n div.appendChild(vorigeSpan);\r\n div.appendChild(tijdSpan);\r\n div.appendChild(urenSpan);\r\n }\r\n\r\n if (self.edit) {\r\n var divImg = document.createElement('div');\r\n divImg.className = \"btn-time-popup\";\r\n divImg.style = \"position: absolute; right: -5px; bottom: -4px; display: none; cursor: pointer;\"\r\n\r\n var img = document.createElement('img');\r\n img.src = \"/content/images/popout-br.png\"\r\n divImg.appendChild(img);\r\n\r\n div.appendChild(divImg);\r\n }\r\n\r\n return div;\r\n }\r\n\r\n function bindCell(cell, row, col) {\r\n if (self.gridComponent.isCurrentCell(row, col)) {\r\n $(cell).find('.btn-time-popup').show();\r\n }\r\n\r\n $(cell).mouseenter(() => {\r\n if (self.gridComponent.isEditing()) {\r\n return;\r\n }\r\n\r\n $(cell).find('.btn-time-popup').show();\r\n });\r\n\r\n $(cell).mouseleave(() => {\r\n if (!self.gridComponent.isCurrentCell(row, col)) {\r\n $(cell).find('.btn-time-popup').hide();\r\n }\r\n });\r\n\r\n $(cell).find('.btn-time-popup').bind('click', function (e) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n\r\n self.showTimePopup();\r\n return true;\r\n });\r\n\r\n $(cell).find('.btn-time-popup img').bind('mousedown', function (e) {\r\n if (self.gridComponent.cellSelected(row, col)) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n }\r\n });\r\n }\r\n }\r\n\r\n handleKeyDown(event) {\r\n if (!this.edit) {\r\n return false;\r\n }\r\n\r\n if (event.key == 'F2') {\r\n this.showTimePopup();\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n handleSelectionChanged(event) {\r\n var self = this;\r\n\r\n var selection = this.gridComponent.getSelectRange();\r\n\r\n if (this.currentCell) {\r\n showCellPopout(this.currentCell.row, this.currentCell.col, false);\r\n }\r\n\r\n this.currentCell = {\r\n row: selection.row,\r\n col: selection.col\r\n }\r\n\r\n showCellPopout(this.currentCell.row, this.currentCell.col, true);\r\n\r\n function showCellPopout(row, col, show) {\r\n var cell = self.gridComponent.getCellElement(row, col);\r\n if (cell) {\r\n if (show) {\r\n $(cell).find('.btn-time-popup').show();\r\n } else {\r\n $(cell).find('.btn-time-popup').hide();\r\n }\r\n }\r\n }\r\n }\r\n\r\n showTimePopup() {\r\n var self = this;\r\n\r\n var data = self.getData();\r\n var aantalWeken = data.length;\r\n var selectRange = self.gridComponent.getSelectRange();\r\n\r\n var startdag = `${selectRange.topRow + 1}-${selectRange.leftCol}`;\r\n var einddag = `${selectRange.bottomRow + 1}-${selectRange.rightCol}`;\r\n\r\n var rangeData = [];\r\n if (self.gridComponent.isEditing()) {\r\n rangeData = getEditData(selectRange.topRow, selectRange.leftCol - 1);\r\n }\r\n\r\n if (rangeData.length == 0) {\r\n rangeData = getRangeData(data, selectRange.topRow, selectRange.leftCol - 1, selectRange.bottomRow, selectRange.rightCol - 1);\r\n }\r\n\r\n var uniekeUren = [...new Set(rangeData.map(r => r.werkuren).filter(el => el || el == 0))];\r\n var uniekeTijden = [...new Set(rangeData.map(r => r.starttijd).filter(el => el).map(t => APPLOYED.time.formatTime(t)))];\r\n var uniekeVorige = [...new Set(rangeData.map(r => r.startOpVorigeDag).filter(el => el))];\r\n\r\n var uren = uniekeUren.length == 1 ? uniekeUren[0] : null;\r\n var starttijd = uniekeTijden.length == 1 ? uniekeTijden[0] : null;\r\n var vorige = uniekeVorige.length == 1 ? uniekeVorige[0] : null;\r\n\r\n APPLOYED.time.showWeekroosterTimePopup(validateUpdate, applyUpdate, aantalWeken, startdag, einddag, starttijd, uren, vorige);\r\n\r\n function getEditData(startRow, startCol) {\r\n var editValue = self.gridComponent.getEditValue();\r\n var dataValue = APPLOYED.time.getTimeHourParts(editValue.trim());\r\n\r\n var data = [];\r\n if (dataValue == null) {\r\n data.push({});\r\n } else {\r\n data.push(dataValue);\r\n }\r\n\r\n return data;\r\n }\r\n\r\n function getRangeData(data, startRow, startCol, endRow, endCol) {\r\n var rangeData = [];\r\n\r\n for (var i = startRow; i <= endRow; i++) {\r\n var row = data[i];\r\n for (var j = startCol; j <= endCol; j++) {\r\n var value = row['d' + j];\r\n if (value || value == 0) {\r\n var cellData = self.toDataValue(j + 1, value);\r\n rangeData.push(cellData);\r\n }\r\n }\r\n }\r\n\r\n return rangeData;\r\n }\r\n\r\n function validateUpdate(values) {\r\n var dataValue = { starttijd: values.starttijd, werkuren: parseFloat(values.werkuren), startOpVorigeDag: values.startOpVorigeDag }\r\n var cellValue = self.toCellValue(dataValue);\r\n return self.checkCellEdit(1, cellValue);\r\n }\r\n\r\n function applyUpdate(values) {\r\n if (!values) {\r\n self.gridComponent.setFocus(true);\r\n return;\r\n }\r\n\r\n if (self.gridComponent.isEditing()) {\r\n self.gridComponent.finishEditing(true);\r\n }\r\n\r\n var range = getUpdateRange(values);\r\n self.gridComponent.updateRange(range.data, range.startCol, range.startRow);\r\n\r\n self.gridComponent.setFocus(true);\r\n\r\n function getUpdateRange(values) {\r\n var topLeft = values.startdag.split('-').map(el => parseInt(el));\r\n var bottomRight = values.einddag.split('-').map(el => parseInt(el));\r\n\r\n var dataValue = { starttijd: values.starttijd, werkuren: parseFloat(values.werkuren), startOpVorigeDag: values.startOpVorigeDag }\r\n var cellValue = self.toCellValue(dataValue);\r\n\r\n var data = [];\r\n for (var r = topLeft[0]; r <= bottomRight[0]; r++) {\r\n var row = [];\r\n for (var c = topLeft[1]; c <= bottomRight[1]; c++) {\r\n\r\n row.push(cellValue);\r\n }\r\n data.push(row);\r\n }\r\n\r\n return {\r\n data: data, startRow: topLeft[0] - 1, startCol: topLeft[1]\r\n };\r\n }\r\n }\r\n }\r\n}\r\n","APPLOYED.clipboard = {\r\n copy: function (value) {\r\n var tempInput = document.createElement(\"textarea\");\r\n\r\n tempInput.style = \"position: absolute; left: -10000px; top: -10000px\";\r\n tempInput.value = value;\r\n\r\n document.body.appendChild(tempInput);\r\n\r\n tempInput.select();\r\n tempInput.focus();\r\n\r\n document.execCommand(\"copy\");\r\n document.body.removeChild(tempInput);\r\n }\r\n}","APPLOYED.collapse = {\r\n basicCollapse: function (container ,btnClass, collapseId) {\r\n var btn = $(container).find(btnClass);\r\n\r\n if ($(collapseId).hasClass('show')) {\r\n $(btn).css('transform', 'rotate(180deg)');\r\n };\r\n\r\n // toggle events\r\n $(collapseId).on('show.bs.collapse', function () {\r\n $(btn).css('transform', 'rotate(180deg)');\r\n });\r\n\r\n $(collapseId).on('hide.bs.collapse', function () {\r\n $(btn).css('transform', 'rotate(0deg)');\r\n });\r\n }\r\n}","APPLOYED.common = {\r\n /* Zet hier geen losse functies in!\r\n * Deze kunnen altijd in een categorie ingedeeld worden in een ander bestand onder common. */\r\n Language: \"\",\r\n init: function () {\r\n var body = document.body;\r\n\r\n /* Get all sections in lowercase */\r\n var area = body.getAttribute(\"data-area\").toLowerCase();\r\n var action = body.getAttribute(\"data-action\").toLowerCase();\r\n\r\n APPLOYED.common.Language = $('#ApplContext_UserLanguage').val();\r\n\r\n if (area != \"auth\" && !(area == \"dashboard\" && action == \"becomecustomer\")) {\r\n /* Init NavBar */\r\n APPLOYED.navigation.init();\r\n\r\n /* Init IntroText Button */\r\n APPLOYED.introtext.init();\r\n\r\n /* Init notifications */\r\n APPLOYED.notifications.init();\r\n APPLOYED.notifications.initFetcher();\r\n\r\n /* Init picklist */\r\n APPLOYED.picklist.init();\r\n\r\n /* Init tasks */\r\n APPLOYED.tasks.init();\r\n\r\n /* Init documents */\r\n APPLOYED.documents.init();\r\n\r\n /* Search */\r\n APPLOYED.search.init();\r\n\r\n /* Report*/\r\n APPLOYED.report.init();\r\n\r\n /* Letter */\r\n APPLOYED.letter.init();\r\n\r\n /* Init Display Messages */\r\n APPLOYED.messages.display();\r\n\r\n /* Init tooltips */\r\n APPLOYED.tooltip.init();\r\n\r\n var $form = $('form');\r\n\r\n if ($form.length > 0) {\r\n /* Init Form Validation */\r\n APPLOYED.common.initValidation();\r\n }\r\n\r\n var $elements = $form.find('div#wizardContent');\r\n\r\n if ($elements.length == 0) {\r\n APPLOYED.common.initBindRequiredFields();\r\n }\r\n\r\n /* Init change profile picture */\r\n APPLOYED.profilepicture.init();\r\n\r\n /* Unit search dropdown */\r\n APPLOYED.form.initSearchDropdown();\r\n\r\n /* Unit multiple select dropdown */\r\n APPLOYED.form.initMultiSelectDropdown();\r\n\r\n /* MDB line animation*/\r\n APPLOYED.form.mdbLineControllerInit();\r\n }\r\n\r\n if (area != \"auth\") {\r\n /* Init session checker */\r\n APPLOYED.session.initFetcher();\r\n }\r\n\r\n // old custom.js inits\r\n APPLOYED.modal.init();\r\n APPLOYED.image.initSvg();\r\n APPLOYED.element.init();\r\n APPLOYED.filter.init();\r\n APPLOYED.filter.initFilterStatus();\r\n },\r\n initValidation: function () {\r\n FormValidationService.InitializeIntegerInputValidation();\r\n FormValidationService.InitializeDecimalInputValidation();\r\n FormValidationService.InitializeDateInputValidation();\r\n FormValidationService.InitializeDatePicker();\r\n },\r\n initBindRequiredFields: function (unbind = false) {\r\n FormValidationService.InitializeRequiredValidation(unbind);\r\n //APPLOYED.validator.bindRequiredFields(\"form\", \"button[type='submit']\", unbind);\r\n },\r\n isTrue: function (val) {\r\n if (val === true || val === 'True' || val === 'true') {\r\n return true;\r\n }\r\n\r\n return false;\r\n },\r\n getUsersessionId: function () {\r\n return $('#ApplContext_UserSessionId').val();\r\n },\r\n getUserInfoCustomerId: function () {\r\n return $('#ApplContext_UserInfo_CustomerId').val();\r\n }\r\n}","APPLOYED.contract = {\r\n startdatumElement: null,\r\n enddateElement: null,\r\n setEnddateData: null,\r\n contractEinddatum: null,\r\n isOnbepaald: false,\r\n init: function (startdatumElement, enddateElement) {\r\n APPLOYED.contract.startdatumElement = startdatumElement;\r\n APPLOYED.contract.enddateElement = enddateElement;\r\n },\r\n DisableEnddateCallback: function (data) {\r\n const element = $(APPLOYED.contract.enddateElement);\r\n\r\n APPLOYED.contract.disableEnddate(element, data);\r\n },\r\n SetEnddateCallback: function (data) {\r\n const startElement = $(APPLOYED.contract.startdatumElement);\r\n const endElement = $(APPLOYED.contract.enddateElement);\r\n\r\n APPLOYED.contract.setEnddate(startElement, endElement, data);\r\n },\r\n /**\r\n * Tis function is for the start date input onchange.\r\n * @param {any} startDateEl\r\n * @param {any} endDateEl\r\n */\r\n setStartDate: function (startDateEl, endDateEl) {\r\n APPLOYED.contract.setEnddate(startDateEl, endDateEl, APPLOYED.contract.setEnddateData);\r\n },\r\n /**\r\n * Disable enddate input field.\r\n * @param {any} data\r\n */\r\n disableEnddate: function (element, data) {\r\n switch (data[0]) {\r\n case \"Onbepaalde tijd\":\r\n $(element).prop(\"disabled\", true);\r\n APPLOYED.contract.isOnbepaald = true;\r\n break;\r\n case \"Bepaalde tijd\":\r\n $(element).prop(\"disabled\", false);\r\n APPLOYED.contract.isOnbepaald = false;\r\n break;\r\n }\r\n\r\n APPLOYED.contract.modifyEndDateField($(element));\r\n },\r\n /**\r\n * Set the enddate.\r\n * @param {any} startDateEl\r\n * @param {any} endDateEl\r\n * @param {any} data\r\n * @returns if the contract type is \"onbepaald\".\r\n */\r\n setEnddate: function (startDateEl, endDateEl, data) {\r\n APPLOYED.contract.setEnddateData = data;\r\n if (data == null) {\r\n return;\r\n }\r\n\r\n if (data[1] == \"\") {\r\n APPLOYED.contract.contractEinddatum = null;\r\n }\r\n else if ($(startDateEl).val() == \"\") {\r\n APPLOYED.contract.contractEinddatum = null;\r\n }\r\n else {\r\n let date = $(startDateEl).val().split(\"-\");\r\n \r\n let newDate = new Date(date[2], (date[1] - 1), date[1]);\r\n let newMonth = newDate.getMonth() + parseInt(data[1]);\r\n\r\n newDate.setMonth(newMonth);\r\n newDate.setDate(date[0] - 1);\r\n\r\n var datum = (\"0\" + (newDate.getDate())).slice(-2) + '-' + (\"0\" + (newDate.getMonth() + 1)).slice(-2) + '-' + newDate.getFullYear();\r\n\r\n APPLOYED.contract.contractEinddatum = datum;\r\n }\r\n\r\n APPLOYED.contract.modifyEndDateField($(endDateEl));\r\n },\r\n /**\r\n * Set endDate input value.\r\n * @param {any} element\r\n */\r\n modifyEndDateField: function (element) {\r\n if (APPLOYED.contract.isOnbepaald) {\r\n $(element).val(null);\r\n $(element).attr('value', null);\r\n $(element).removeClass('active');\r\n $(element).closest('.mdb-input-group').find('.date').datepicker(\"setDate\", null);\r\n $(element).closest('.form-outline').addClass('form-outline--disabled');\r\n }\r\n else {\r\n $(element).val(APPLOYED.contract.contractEinddatum);\r\n $(element).attr('value', APPLOYED.contract.contractEinddatum);\r\n $(element).addClass('active');\r\n $(element).closest('.mdb-input-group').find('.date').datepicker(\"setDate\", APPLOYED.contract.contractEinddatum);\r\n $(element).closest('.form-outline').removeClass('form-outline--disabled');\r\n }\r\n }\r\n}\r\n","APPLOYED.cookies = {\r\n AddUserSession: \"_\" + APPLOYED.common.getUsersessionId(),\r\n set: function (name, value, days) {\r\n name += APPLOYED.cookies.AddUserSession;\r\n APPLOYED.cookies.setGlobal(name, value, days);\r\n },\r\n get: function (name) {\r\n name += APPLOYED.cookies.AddUserSession;\r\n return APPLOYED.cookies.getGlobal(name);\r\n },\r\n erase: function (name) {\r\n name += APPLOYED.cookies.AddUserSession;\r\n APPLOYED.cookies.eraseGlobal(name);\r\n },\r\n setGlobal: function (name, value, days) {\r\n var expires = \"\";\r\n if (days) {\r\n var date = new Date();\r\n date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));\r\n expires = \"; expires=\" + date.toUTCString();\r\n }\r\n document.cookie = name + \"=\" + (value || \"\") + expires + \"; path=/; sameSite=Strict\";\r\n },\r\n getGlobal: function (name) {\r\n var nameEQ = name + \"=\";\r\n var ca = document.cookie.split(';');\r\n\r\n for (var i = 0; i < ca.length; i++) {\r\n var c = ca[i];\r\n while (c.charAt(0) == ' ') c = c.substring(1, c.length);\r\n if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);\r\n }\r\n return null;\r\n },\r\n eraseGlobal: function (name) {\r\n document.cookie = name + '=; Path=/; Expires=Thu, 01 Jan 1970 00:00:01 GMT;';\r\n }\r\n}","APPLOYED.dataCards = {\r\n slideTime = 300,\r\n init: function () {\r\n APPLOYED.dataCards.checkHiddenStates();\r\n\r\n $(document).off('click', '.card-open');\r\n $(document).on('click', '.card-open', function () {\r\n var self = this;\r\n\r\n let target = $(this).data('target');\r\n\r\n $(target).addClass('show').hide().slideDown(APPLOYED.dataCards.slideTime, function () {\r\n $(self).parent().find('.card-close').show();\r\n $(self).hide();\r\n });\r\n\r\n APPLOYED.cookies.set(target, \"show\");\r\n });\r\n\r\n $(document).off('click', '.card-close');\r\n $(document).on('click', '.card-close', function () {\r\n var self = this;\r\n let target = $(this).data('target');\r\n\r\n $(target).slideUp(APPLOYED.dataCards.slideTime, function () {\r\n $(this).removeClass('show');\r\n\r\n $(self).parent().find('.card-open').show();\r\n $(self).hide();\r\n });\r\n\r\n APPLOYED.cookies.set(target, \"hide\");\r\n });\r\n },\r\n checkHiddenStates: function () {\r\n $('.data-card').each(function (i, e) {\r\n let content = $(e).find('.data-card-content');\r\n let id = $(content).attr('id');\r\n\r\n if (APPLOYED.cookies.get('#' + id) == 'hide') {\r\n $(e).find('.card-close').hide();\r\n $(e).find('.card-open').show();\r\n $(content).removeClass('show');\r\n $(content).slideUp(APPLOYED.dataCards.slideTime / 1.5)\r\n } else {\r\n $(e).find('.card-close').show();\r\n $(e).find('.card-open').hide();\r\n\r\n $(content).addClass('show');\r\n $(content).hide().slideDown(APPLOYED.dataCards.slideTime / 1.5)\r\n }\r\n });\r\n }\r\n}","APPLOYED.documents = {\r\n overview = {\r\n load: function (loading, filter = -1, tableOnly = false) {\r\n let options = {};\r\n options[\"tofadein\"] = null;\r\n options[\"loading\"] = loading;\r\n\r\n let body = {\r\n tableName: APPLOYED.documents.params.tableName,\r\n recordId: APPLOYED.documents.params.recordId,\r\n filter: filter,\r\n tableOnly: tableOnly\r\n };\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/GetdocumentsScreen\", body, \"GET\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n },\r\n init: function () {\r\n APPLOYED.loader.ClearLoaderList(); // fix for loader not being deleted from loading list\r\n APPLOYED.navigation.hideSidebar();\r\n\r\n APPLOYED.documents.modify.close();\r\n APPLOYED.documents.overview.open();\r\n\r\n APPLOYED.documents.overview.bindactions();\r\n \r\n },\r\n bindactions: function () {\r\n /* Bindings */\r\n $(document).off('click', APPLOYED.documents.elements.buttonCloseId);\r\n $(document).on('click', APPLOYED.documents.elements.buttonCloseId, function () {\r\n APPLOYED.documents.overview.close();\r\n APPLOYED.navigation.showSidebar();\r\n })\r\n\r\n $(document).off('click', '.documenttoprow');\r\n $(document).on('click', '.documenttoprow', function () {\r\n selectRow(this);\r\n });\r\n\r\n $(document).off('click', '.documentFilter');\r\n $(document).on('click', '.documentFilter', function () {\r\n var filterSeq = $(this).val();\r\n\r\n $(\".documentFilter\").each(function () {\r\n if ($(this).val() != filterSeq) {\r\n $(this).prop('checked', false);\r\n }\r\n });\r\n\r\n let loading = \"div[id='documentsFilterIcon']\";\r\n APPLOYED.documents.overview.load(loading, filterSeq, true);\r\n });\r\n\r\n $(document).off('click', '#documentAdd');\r\n $(document).on('click', '#documentAdd', function () {\r\n let loading = \"div[id='documentAdd']\";\r\n\r\n APPLOYED.documents.modify.load(loading);\r\n });\r\n\r\n $(document).off('click', '.documenteditlink');\r\n $(document).on('click', '.documenteditlink', function (e) {\r\n e.preventDefault();\r\n\r\n let documentid = $(this).parents('tr').data('documentid');\r\n let documentkey = $(this).parents('tr').data('documentkey');\r\n\r\n let loading = \"tr.documenttoprow[data-documentid='\" + documentid + \"'] .documenteditlink\";\r\n APPLOYED.documents.modify.load(loading, documentid, documentkey);\r\n });\r\n\r\n $(document).off('click', '.downloadDocument');\r\n $(document).on('click', '.downloadDocument', function (e) {\r\n e.preventDefault();\r\n\r\n let documentId = $(this).parents('tr').data('documentid');\r\n let documentKey = $(this).parents('tr').data('documentkey');\r\n let deltaDocumentId = $(this).parents('tr').data('deltadocumentid');\r\n let deltaDocumentType = $(this).parents('tr').data('deltadocumenttype');\r\n let deltaFilename = $(this).parents('tr').data('deltafilename');\r\n\r\n APPLOYED.documents.overview.getdocument(documentId, documentKey, deltaDocumentId, deltaDocumentType, deltaFilename);\r\n });\r\n\r\n $(document).off('click', '.documentdelete');\r\n $(document).on('click', '.documentdelete', function () {\r\n let title = $(this).data('title');\r\n let body = $(this).data('body');\r\n let documentid = $(this).data('documentid');\r\n let documentkey = $(this).data('documentkey');\r\n\r\n $('#confirmdeletemodaltitle').html(title);\r\n $('#confirmdeletemodalbody').html(body);\r\n\r\n $('#confirmdeletemodalaction').one('click', function () {\r\n $('#confirmdeletemodal').modal('hide');\r\n APPLOYED.documents.overview.delete(documentid, documentkey);\r\n });\r\n\r\n $('#confirmdeletemodal').modal('show');\r\n $('#confirmdeletemodal').one('hidden.bs.modal', function () {\r\n unbindDeleteModal();\r\n });\r\n });\r\n\r\n function unbindDeleteModal() {\r\n $('#confirmdeletemodalaction').off('click');\r\n $('#confirmdeletemodalaction').unbind('click');\r\n }\r\n\r\n function selectRow(e) {\r\n $('.documenttoprow').removeClass('selecteddocumentRow');\r\n $(e).addClass('selecteddocumentRow');\r\n\r\n APPLOYED.documents.params.documentId = $(e).data('documentid');\r\n APPLOYED.documents.params.documentKey = $(e).data('documentkey');\r\n }\r\n },\r\n getdocument: function (documentId, documentKey, deltaDocumentId, deltaDocumentType, deltaFilename) {\r\n let options = {};\r\n options[\"tofadein\"] = null;\r\n\r\n if (deltaDocumentId) {\r\n options[\"loading\"] = \"tr.documenttoprow[data-deltadocumentid= '\" + deltaDocumentId + \"'] .downloadDocument\";\r\n } else {\r\n options[\"loading\"] = \"tr.documenttoprow[data-documentid= '\" + documentId + \"'] .downloadDocument\";\r\n }\r\n\r\n let body = {\r\n documentId,\r\n documentKey,\r\n deltaDocumentId,\r\n deltaDocumentType,\r\n deltaFilename\r\n };\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/DownloadDocuments\", body, \"GET\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n },\r\n delete: function (documentId, documentKey) {\r\n var loading = \"div[id='documentsDropdownMenu']\";\r\n\r\n if (documentId) {\r\n let options = {};\r\n options[\"tofadein\"] = null;\r\n options[\"loading\"] = null;\r\n\r\n let body = {\r\n documentId: documentId,\r\n documentKey: documentKey,\r\n };\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/Deletedocument\", body, \"GET\", completeHandler(), null, null, options, Api.APIcaller.CancelOptions.None);\r\n }\r\n\r\n function completeHandler() {\r\n setTimeout(function () { APPLOYED.documents.overview.load(loading); }, 500);\r\n }\r\n },\r\n open: function () {\r\n $(APPLOYED.documents.elements.screenId).show();\r\n $(APPLOYED.documents.elements.contentId).hide();\r\n },\r\n close: function () {\r\n $(APPLOYED.documents.elements.screenId).hide();\r\n $(APPLOYED.documents.elements.contentId).show();\r\n }\r\n },\r\n modify = {\r\n /**\r\n * Load document modify screen\r\n * \r\n * @param {string} loading element of loading icon container\r\n * @param {number|null} documentid document id being modified\r\n */\r\n load: function (loading, documentid = 0, documentkey = 0) {\r\n let options = {};\r\n options[\"tofadein\"] = null;\r\n options[\"loading\"] = loading;\r\n\r\n let body = {\r\n tableName: APPLOYED.documents.params.tableName,\r\n RecordId: APPLOYED.documents.params.recordId,\r\n documentId: documentid,\r\n documentKey: documentkey\r\n };\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/GetdocumentsModifyScreen\", body, \"GET\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n },\r\n /**\r\n * Initialize document modify bindings and functions\r\n */\r\n init: function () {\r\n APPLOYED.documents.modify.open();\r\n\r\n if ($('#receipt').attr('src') != '') {\r\n $('#receipt').addClass('uploadimage');\r\n $('#uploadimage').hide();\r\n }\r\n else {\r\n $('#uploadimage').show();\r\n }\r\n\r\n if (!$(\"#File\")[0].files && !$(\"#File\")[0].files[0] && APPLOYED.validator.hasFileExtension($('#FileName') == false) || $('#DocumentId').val() == 0) {\r\n $('#btndocumentsave').attr('disabled', 'disabled');\r\n }\r\n\r\n $(document).off('click', '#closeDocumentModify');\r\n $(document).on('click', '#closeDocumentModify', function () {\r\n let loading = \"button[id='closeDocumentModify']\";\r\n APPLOYED.documents.overview.load(loading);\r\n });\r\n\r\n $(document).off('keyup', '#FileName');\r\n $(document).on('keyup', '#FileName', function () {\r\n let hasFileExtension = APPLOYED.validator.hasFileExtension(this);\r\n hasFileExtension == true ? hideMessage() : showMessage();\r\n });\r\n\r\n function hideMessage() {\r\n $('.invalidFileExtension').hide();\r\n if ($(\"#File\")[0].files && $(\"#File\")[0].files[0] ||\r\n ((typeof $('#File').attr('disabled') !== 'undefined') && $('#File').attr('disabled') !== false)) {\r\n $('#btndocumentsave').removeClass('disabled');\r\n $('#btndocumentsave').removeAttr('disabled');\r\n }\r\n }\r\n\r\n function showMessage() {\r\n $('.invalidFileExtension').show();\r\n $('#btndocumentsave').addClass('disabled');\r\n $('#btndocumentsave').attr('disabled', 'disabled');\r\n }\r\n\r\n $(document).off('submit', '#documentform');\r\n $(document).on('submit', '#documentform', function (e) {\r\n e.preventDefault();\r\n\r\n var formDataTemp = new FormData();\r\n var fileTooLargeTemp = false;\r\n var file = document.getElementById('File');\r\n\r\n var { formData, fileTooLarge } = APPLOYED.file.CheckIfMaxFileSize(file, formDataTemp, fileTooLargeTemp);\r\n \r\n // do not proceed if any file is too large\r\n if (fileTooLarge) {\r\n Api.Main.displayNotify($('#FileTooLargeErrorText').val(), true);\r\n APPLOYED.loader.WaitLoaderOff(\"button[id='btndocumentsave']\");\r\n } else {\r\n $(this).find(\"input[name]\").each(function (index, node) {\r\n formData.append(node.name, node.value);\r\n });\r\n\r\n APPLOYED.loader.WaitLoaderOn(\"button[id='btndocumentsave']\");\r\n $('#btndocumentsave').attr('disabled', 'disabled');\r\n\r\n $.ajax({\r\n url: '/Ajax/Modifydocument',\r\n type: 'POST',\r\n data: formData,\r\n contentType: false,\r\n processData: false,\r\n success: function (data) {\r\n console.log(data);\r\n\r\n if (data.errorText != undefined && data.errorText != '') {\r\n Api.Main.displayNotify(data.errorText, true);\r\n }\r\n\r\n if (data.notifyText != undefined && data.notifyText != '') {\r\n Api.Main.displayNotify(data.message, false);\r\n }\r\n\r\n if (data.errorText == undefined || data.errorText == '') {\r\n APPLOYED.documents.overview.load();\r\n }\r\n\r\n APPLOYED.loader.WaitLoaderOff(\"button[id='btndocumentsave']\");\r\n $('#btndocumentsave').removeAttr('disabled');\r\n },\r\n error: function (e) {\r\n APPLOYED.loader.WaitLoaderOff(\"button[id='btndocumentsave']\");\r\n $('#btndocumentsave').removeAttr('disabled');\r\n Api.Main.displayNotify(e, false);\r\n }\r\n });\r\n }\r\n \r\n });\r\n },\r\n /**\r\n * Open document modify screen\r\n */\r\n open: function () {\r\n $(APPLOYED.documents.elements.overviewId).hide();\r\n $(APPLOYED.documents.elements.modifyId).show();\r\n },\r\n /**\r\n * Close document modify screen\r\n */\r\n close: function () {\r\n $(APPLOYED.documents.elements.overviewId).show();\r\n $(APPLOYED.documents.elements.modifyId).hide();\r\n },\r\n showuploadimage: function (input, propDisable = false) {\r\n if (input.files && input.files[0]) {\r\n var filerdr = new FileReader();\r\n filerdr.onload = function (e) {\r\n $('#receipt').addClass(\"uploadimage\");\r\n $('#receipt').attr('src', e.target.result);\r\n $('#receipt').attr('alt', input.files[0].name);\r\n\r\n $('#uploadimagedocname').html(input.files[0].name);\r\n $('#uploadimagelink').hide();\r\n $('#uploadimagedocname').show();\r\n $('#uploadimage').removeClass('cursorpointer');\r\n $('#uploadimage').addClass('imageloaded');\r\n\r\n $('#uploadimage').find('svg').attr('viewBox', '0 0 128 128');\r\n\r\n if (!e.target.result.startsWith('data:image')) {\r\n $('#receipt').hide();\r\n } else {\r\n $('#uploadimage').hide();\r\n $('#receipt').show();\r\n }\r\n\r\n if (!$('#FileName').val()) {\r\n $('#FileName').val(input.files[0].name);\r\n $('#FileName').focus();\r\n $('#FileName').trigger('change');\r\n }\r\n \r\n };\r\n filerdr.readAsDataURL(input.files[0]);\r\n if ($('#DocumentId').val() == \"0\") {\r\n \r\n if (!propDisable) {\r\n $('#btndocumentsave').removeClass('disabled');\r\n $('#btndocumentsave').prop('disabled', false);\r\n } else {\r\n $('#btndocumentsave').prop('disabled', false);\r\n }\r\n }\r\n $('#FileName').trigger('change');\r\n }\r\n else {\r\n if ($('#DocumentId').val() == \"0\") {\r\n if (!propDisable) {\r\n if (input.files.length == 0) {\r\n $('#btndocumentsave').addClass('disabled');\r\n $('#btndocumentsave').prop('disabled', true);\r\n $(\"#receipt\").hide();\r\n $(\"#uploadimagedocname\").hide();\r\n $('#uploadimage').addClass('cursorpointer');\r\n $('#uploadimage').removeClass('imageloaded');\r\n $('#uploadimage').find('svg').attr('viewBox', '0 0 64 64');\r\n $('#FileName').val(\"\");\r\n $(\"#uploadimage\").show();\r\n $(\"#uploadimagelink\").show();\r\n }\r\n } else {\r\n $('#btndocumentsave').prop('disabled', true);\r\n $('#uploadimage').show();\r\n }\r\n }\r\n \r\n }\r\n }\r\n },\r\n elements: {\r\n screenId: \"#documentsScreen\",\r\n modifyId: \"#documentsModify\",\r\n overviewId: \"#documentsOverview\",\r\n contentId: \".contentContainer\",\r\n buttonOpenId: \"#documentsButton\",\r\n buttonCloseId: \"#documentsCloseButton\",\r\n },\r\n params: {\r\n tableName: \"\",\r\n recordId: \"\",\r\n documentId: \"\",\r\n documentKey: \"\"\r\n },\r\n /**\r\n * Init documents\r\n */\r\n init: function () {\r\n /* Bindings */\r\n $(document).off('click', APPLOYED.documents.elements.buttonOpenId);\r\n $(document).on('click', APPLOYED.documents.elements.buttonOpenId, function () {\r\n let buttonOpenId = APPLOYED.documents.elements.buttonOpenId.substring(1, APPLOYED.documents.elements.buttonOpenId.length);\r\n let loading = \"button[id='\" + buttonOpenId + \"']\";\r\n\r\n APPLOYED.documents.overview.load(loading);\r\n })\r\n APPLOYED.documents.CreateTaskOverviewDiv();\r\n },\r\n CreateTaskOverviewDiv: function () {\r\n $(\"\").insertBefore(APPLOYED.documents.elements.contentId);\r\n },\r\n\r\n GetCount: function () {\r\n let options = {};\r\n options[\"tofadein\"] = null;\r\n options[\"loading\"] = null;\r\n\r\n let body = {\r\n tableName: APPLOYED.documents.params.tableName,\r\n recordId: APPLOYED.documents.params.recordId\r\n };\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/GetDocumentsCount\", body, \"GET\", APPLOYED.documents.getCountSuccessHandler, null, null, options, Api.APIcaller.CancelOptions.None);\r\n },\r\n getCountSuccessHandler: function (response) {\r\n var count = response.jsoNresults[0].toString();\r\n if (response.jsoNresults[0] > 9) {\r\n count = \"99+\";\r\n }\r\n\r\n if (count > 0) {\r\n $(APPLOYED.documents.elements.buttonOpenId).find(\".badge\").html(count);\r\n $(APPLOYED.documents.elements.buttonOpenId).find(\".badge\").show();\r\n }\r\n else {\r\n $(APPLOYED.documents.elements.buttonOpenId).find(\".badge\").hide();\r\n }\r\n \r\n },\r\n enableOpenButton: function() {\r\n if (this.checkParameters()) $(APPLOYED.documents.elements.buttonOpenId).removeClass('disabled');\r\n },\r\n setParameters: function (tableName, recordId, documentId, documentKey) {\r\n this.params.tableName = tableName;\r\n this.params.recordId = recordId;\r\n this.params.documentId = documentId;\r\n this.params.documentKey = documentKey;\r\n },\r\n checkParameters: function() {\r\n return (\r\n this.params.tableName &&\r\n this.params.recordId\r\n );\r\n }\r\n}","APPLOYED.downloadTable = {\r\n // params\r\n tableName = null,\r\n selectAllCheckbox = null,\r\n checkboxItem = null,\r\n tableOptionsClass = null,\r\n\r\n // functions\r\n init: function (tableName, selecAllCheckbox, checkboxItem, tableOptionsClass) {\r\n APPLOYED.downloadTable.tableName = tableName,\r\n APPLOYED.downloadTable.selectAllCheckbox = selecAllCheckbox,\r\n APPLOYED.downloadTable.checkboxItem = checkboxItem,\r\n APPLOYED.downloadTable.tableOptionsClass = tableOptionsClass,\r\n\r\n checkAllSelectedCheckbox();\r\n\r\n // selectall checkbox\r\n $(document).off('change', APPLOYED.downloadTable.selectAllCheckbox);\r\n $(document).on('change', APPLOYED.downloadTable.selectAllCheckbox, function () {\r\n if ($(this).is(':checked')) {\r\n $(APPLOYED.downloadTable.tableName).DataTable().cells(null, 0).every(function () {\r\n let cell = this.node(); // checkbox col - cell\r\n let checkbox = $(cell).find('input[type=\"checkbox\"][name^=\"' + APPLOYED.downloadTable.checkboxItem + '\"]');\r\n\r\n if (!checkbox.is(':checked')) {\r\n checkbox.prop('checked', true);\r\n }\r\n\r\n for (let i = 0; i < APPLOYED.downloadTable.tableOptionsClass.length; i++) {\r\n $(APPLOYED.downloadTable.tableOptionsClass[i]).removeClass('disabled');\r\n }\r\n });\r\n }\r\n else {\r\n $(APPLOYED.downloadTable.tableName).DataTable().cells(null, 0).every(function () {\r\n let cell = this.node(); // checkbox col - cell\r\n let checkbox = $(cell).find('input[type=\"checkbox\"][name^=\"' + APPLOYED.downloadTable.checkboxItem + '\"]');\r\n\r\n if (checkbox.is(':checked')) {\r\n checkbox.prop('checked', false);\r\n }\r\n\r\n for (let i = 0; i < APPLOYED.downloadTable.tableOptionsClass.length; i++) {\r\n $(APPLOYED.downloadTable.tableOptionsClass[i]).addClass('disabled');\r\n }\r\n });\r\n }\r\n });\r\n\r\n // select single checkbox\r\n $(document).off('change', 'input[type=\"checkbox\"][name^=\"' + APPLOYED.downloadTable.checkboxItem + '\"]');\r\n $(document).on('change', 'input[type=\"checkbox\"][name^=\"' + APPLOYED.downloadTable.checkboxItem + '\"]', function () {\r\n checkAllSelectedCheckbox();\r\n });\r\n\r\n function checkAllSelectedCheckbox() {\r\n let isSelected = true;\r\n let isSomethingSelected = false;\r\n\r\n $(APPLOYED.downloadTable.tableName).DataTable().cells(null, 0).every(function () {\r\n let cell = this.node(); // checkbox col - cell\r\n let checkbox = $(cell).find('input[type=\"checkbox\"][name^=\"' + APPLOYED.downloadTable.checkboxItem + '\"]');\r\n\r\n if (!checkbox.is(':checked') && isSelected) {\r\n isSelected = false;\r\n }\r\n\r\n if (checkbox.is(':checked') && !isSomethingSelected) {\r\n isSomethingSelected = true;\r\n }\r\n });\r\n\r\n if (isSomethingSelected) {\r\n for (let i = 0; i < APPLOYED.downloadTable.tableOptionsClass.length; i++) {\r\n $(APPLOYED.downloadTable.tableOptionsClass[i]).removeClass('disabled');\r\n }\r\n }\r\n else {\r\n for (let i = 0; i < APPLOYED.downloadTable.tableOptionsClass.length; i++) {\r\n $(APPLOYED.downloadTable.tableOptionsClass[i]).addClass('disabled');\r\n }\r\n }\r\n\r\n $(APPLOYED.downloadTable.selectAllCheckbox).prop('checked', isSelected);\r\n }\r\n }\r\n}","APPLOYED.element = {\r\n init: function () {\r\n $('.indexcompanylink').unbind('click');\r\n $('.indexcompanylink').bind('click', function (event) {\r\n var item = $(this).find('div a');\r\n window.location.href = item.attr('href');\r\n event.stopPropagation();\r\n });\r\n\r\n $('.collapses').unbind('shown.bs.collapse');\r\n $('.collapses').unbind('hidden.bs.collapse');\r\n\r\n $('.collapses')\r\n .bind('shown.bs.collapse', function () {\r\n $('body').find(\"i[data-icon='\" + $(this).attr('id') + \"']\")\r\n .removeClass(\"fa-angle-down\")\r\n .addClass(\"fa-angle-up\");\r\n })\r\n .bind('hidden.bs.collapse', function () {\r\n $('body').find(\"i[data-icon='\" + $(this).attr('id') + \"']\")\r\n .removeClass(\"fa-angle-up\")\r\n .addClass(\"fa-angle-down\");\r\n });\r\n\r\n $('.collapsed').each(function () {\r\n $('body').find(\"i[data-icon='\" + $(this).attr('id') + \"']\")\r\n .removeClass(\"fa-angle-down\")\r\n .addClass(\"fa-angle-up\");\r\n });\r\n\r\n $('.dropdown-noclose .dropdown-menu').on('click', function (e) {\r\n e.stopPropagation();\r\n });\r\n },\r\n resizeAttached: false,\r\n resizeList: [],\r\n scrollToElementInList: function (listId, elementToFind, extraOffsetIfNeeded) {\r\n if (extraOffsetIfNeeded == \"\" || extraOffsetIfNeeded == null) {\r\n extraOffsetIfNeeded = 0;\r\n }\r\n\r\n var $s = $(listId);\r\n\r\n if ($s.find(elementToFind).length > 0) {\r\n var optionTop = $s.find(elementToFind).offset().top;\r\n var selectTop = $s.offset().top + extraOffsetIfNeeded;\r\n\r\n $s.scrollTop($s.scrollTop() + (optionTop - selectTop));\r\n }\r\n },\r\n isInScrollView: function (element, parent) {\r\n if ($(element).length == 0) {\r\n return true;\r\n }\r\n\r\n const rect = $(element).get(0).getBoundingClientRect();\r\n var inView = (\r\n rect.top >= 0 &&\r\n rect.bottom <= (window.innerHeight || document.documentElement.clientHeight)\r\n );\r\n\r\n if (inView && typeof (parent) != 'undefined') {\r\n const parentRect = $(parent).get(0).getBoundingClientRect();\r\n inView = rect.top >= parentRect.top && rect.bottom <= parentRect.bottom;\r\n }\r\n\r\n return inView;\r\n },\r\n /**\r\n * Dynamic resizing of element based on parent element\r\n * \r\n * @param {string} element element to resize\r\n * @param {string} heightFromElement element to get height from\r\n * @param {number} offset offset height\r\n * @param {number} minHeight min height element should be.\r\n */\r\n dynamicHeight: function (element, heightFromElement, offset, minHeight = 400, setMaxHeight = false) {\r\n var self = this;\r\n\r\n resize(element, heightFromElement, offset, minHeight, setMaxHeight); // first init\r\n $(heightFromElement).removeClass('overflow-hidden');\r\n\r\n // add element to the resize list\r\n addResizeElement(element, heightFromElement, offset, minHeight, setMaxHeight);\r\n\r\n // dynamic resize when windows is resized\r\n if (!self.resizeAttached) {\r\n self.resizeAttached = true;\r\n $(window).on('resize', function () {\r\n // resize all elements in the resize list\r\n resizeElements();\r\n });\r\n }\r\n\r\n function addResizeElement(element, heightFromElement, offset, minHeight, setMaxHeight) {\r\n var entry = {\r\n element, heightFromElement, offset, minHeight, setMaxHeight\r\n };\r\n\r\n var index = self.resizeList.findIndex((el) => el.element == element);\r\n if (index < 0) {\r\n self.resizeList.push(entry);\r\n } else {\r\n self.resizeList[index] = entry;\r\n }\r\n }\r\n\r\n function resizeElements() {\r\n for (var i = 0; i < self.resizeList.length; i++) {\r\n var entry = self.resizeList[i];\r\n resize(entry.element, entry.heightFromElement, entry.offset, entry.minHeight, entry.setMaxHeight);\r\n }\r\n }\r\n\r\n function resize(element, heightFromElement, offset, minHeight, setMaxHeight) {\r\n let height = $(heightFromElement).height();\r\n let calcHeight = (height - offset);\r\n if (calcHeight < minHeight) calcHeight = minHeight;\r\n\r\n if (setMaxHeight) {\r\n $(element).css({ \"max-height\": calcHeight });\r\n } else {\r\n $(element).height(calcHeight);\r\n }\r\n }\r\n },\r\n /**\r\n * Get the height in px based on the style.height\r\n * \r\n * @param {string} element element to resize\r\n * @param {string} heightFromElement element to get height from\r\n * @param {number} offset offset height\r\n * @param {number} minHeight min height element should be.\r\n */\r\n getHeight(el) {\r\n var height = el.style.height;\r\n var value = parseInt(height.replace('px', ''));\r\n if (isNaN(value)) {\r\n return height;\r\n } else {\r\n return value\r\n }\r\n }\r\n}","APPLOYED.expenses = {\r\n downloadBon: function () {\r\n $(document).off('click', '.downloadBon');\r\n $(document).on('click', '.downloadBon', function (e) {\r\n var declaratieid = $(this).data('declaratieid');\r\n var declaratieRuleId = $(this).data('declaratieruleid');\r\n\r\n var options = {};\r\n\r\n options[\"tofadein\"] = \"\";\r\n options[\"loading\"] = this;\r\n\r\n Api.APIcaller.CallAction(\"/Employees/expenses/ExpensesDownloadBon\", {\r\n recordId: declaratieid,\r\n declaratieRuleId: declaratieRuleId\r\n }, \"GET\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n\r\n });\r\n },\r\n bindExpensesActionEvents: function () {\r\n if (APPLOYED.url.getUrlParam(\"years\") != null && APPLOYED.url.getUrlParam(\"years\") != \"0\" && APPLOYED.url.getUrlParam(\"years\") != 0) {\r\n\r\n var splitted = APPLOYED.url.getUrlParam(\"years\").split(',');\r\n for (i = 0; i < splitted.length; i++) {\r\n $(\".chkFilter\").each(function () {\r\n if ($(this).val() == splitted[i]) {\r\n $(this).prop('checked', true);\r\n }\r\n });\r\n }\r\n }\r\n else {\r\n var currentYear = (new Date).getFullYear();\r\n var isChecked = false;\r\n $(\".chkFilter\").each(function () {\r\n if ($(this).val() == currentYear) {\r\n $(this).prop('checked', true);\r\n isChecked = true;\r\n }\r\n });\r\n if (!isChecked) {\r\n if ($('#YearsList').val().split(',').length > 0) {\r\n $(\".chkFilter[value='\" + $('#YearsList').val() + \"']\").prop('checked', true);\r\n }\r\n }\r\n }\r\n\r\n APPLOYED.expenses.bindExpensesActionButton();\r\n },\r\n btnDeleteDeclaratieRegels: function () {\r\n\r\n $(\".btndeletedeclaratieregels\").unbind('click');\r\n $(\".btndeletedeclaratieregels\").bind('click', function (e) {\r\n var employeeId = $(this).data('employeeid');\r\n var recordId = $(this).data('declaratieregelsid');\r\n var declaratieid = $(this).data('declaratieid');\r\n var years = $(this).data('years');\r\n\r\n var options = {};\r\n\r\n options[\"tofadein\"] = \"\";\r\n Api.APIcaller.CallAction(\"/Employees/expenses/DeleteDeclaratieRegelsRecord\", { recordid: recordId, declaratieid: declaratieid, employeeid: employeeId, years: years }, \"POST\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n\r\n $('#confirmdeletemodal').hide();\r\n e.preventDefault();\r\n\r\n });\r\n },\r\n bindExpensesActionButton: function () {\r\n\r\n $('.BonUploadATag').unbind('click');\r\n $('.BonUploadATag').bind('click', function () {\r\n $('#file').removeAttr('disabled');\r\n $('#file').trigger('click');\r\n $('#file').attr('disabled', 'disabled');\r\n });\r\n\r\n if ($('#expenselineform').length > 0) {\r\n $('#divactionbutton').hide();\r\n }\r\n else {\r\n $('#divactionbutton').show();\r\n }\r\n\r\n if ($('#receipt').attr('alt') == '') {\r\n APPLOYED.employees.expenses.showDocument(false);\r\n } else {\r\n var isImage = $('#receipt').attr('src') != '';\r\n APPLOYED.employees.expenses.showDocument(true, $('#receipt').attr('alt'), isImage);\r\n }\r\n\r\n $(\"#deletephoto\").unbind('click');\r\n $('#deletephoto').bind('click', function (e) {\r\n $('#file').files = null;\r\n $('#file').val('');\r\n APPLOYED.employees.expenses.showDocument(false);\r\n $('#MustDeleteDocument').val(true);\r\n e.preventDefault();\r\n });\r\n\r\n APPLOYED.expenses.btnDeleteDeclaratieRegels();\r\n\r\n $('.declaratiedefinitieidOnchange').bind('change', function () {\r\n var optionSelected = $(this).find(\"option:selected\");\r\n\r\n if (APPLOYED.common.isTrue(optionSelected.data('isaantal'))) {\r\n $('#IsAantal').val('true');\r\n $('.hideonaantal').hide();\r\n $('.hideonnonaantal').show();\r\n }\r\n else {\r\n $('#IsAantal').val('false');\r\n $('.hideonaantal').show();\r\n $('.hideonnonaantal').hide();\r\n }\r\n });\r\n $('.declaratiedefinitieidOnchange').trigger('change');\r\n FormValidationService.InitializeDatePicker();\r\n }\r\n}","APPLOYED.file = {\r\n // Sizes are in MB\r\n maxFileSizeDefault = 50,\r\n maxFileSizeDeclaratieregel = 15,\r\n exceedsMaxFileSize: function (filesize, isDeclaratieregel = false) {\r\n let maxSizeMB = isDeclaratieregel ? APPLOYED.file.maxFileSizeDeclaratieregel : APPLOYED.file.maxFileSizeDefault;\r\n let filesizeMB = (filesize / 1024) / 1024;\r\n\r\n return filesizeMB > maxSizeMB;\r\n },\r\n CheckIfMaxFileSize: function (file, formData, fileTooLarge) {\r\n if (file.files.length > 0) {\r\n for (var i = 0; i < file.files.length; i++) {\r\n if (!this.exceedsMaxFileSize(file.files[i].size)) {\r\n formData.append('File-' + i, file.files[i]);\r\n } else {\r\n fileTooLarge = true;\r\n }\r\n }\r\n }\r\n return { formData, fileTooLarge };\r\n }\r\n}","APPLOYED.filter = {\r\n init: function () {\r\n $('.chkRecordFilter').unbind('click');\r\n $('.chkRecordFilter').bind('click', function () {\r\n let filterSeq = $(this).val();\r\n let redirectTo = $(this).data('redirectto');\r\n let checked = $(this).is(':checked');\r\n\r\n $(\".chkRecordFilter\").each(function () {\r\n if ($(this).val() != filterSeq) {\r\n $(this).attr('checked', false);\r\n }\r\n });\r\n\r\n var qs = \"?\";\r\n\r\n if (redirectTo.indexOf(\"?\") > -1) {\r\n var matches = redirectTo.match(/[a-z\\d]+=[a-z\\d-]+/gi);\r\n var count = matches ? matches.length : 0;\r\n\r\n if (count >= 1 && !matches[0].startsWith(\"filter\")) {\r\n qs = \"&\";\r\n }\r\n }\r\n\r\n window.location.href = '' + redirectTo + (checked ? qs + \"filter=\" + filterSeq : \"\");\r\n });\r\n\r\n $(\".chkFilter\").unbind(\"click\");\r\n $(\".chkFilter\").bind(\"click\", function () {\r\n\r\n var value = [];\r\n\r\n $(\".chkFilter\").each(function () {\r\n if ($(this).is(':checked')) {\r\n value.push($(this).val());\r\n }\r\n });\r\n var loadPartial = $(this).data('loadpartial');\r\n var employeeid = $(this).data('employeeid');\r\n\r\n if (loadPartial) {\r\n let years = \"\";\r\n\r\n $(\".chkFilter\").each(function () {\r\n\r\n if ($(this).is(':checked')) {\r\n if (years === \"\") {\r\n years += $(this).val();\r\n } else {\r\n years += \"-\" + $(this).val();\r\n }\r\n }\r\n });\r\n\r\n var options = {};\r\n\r\n options[\"tofadein\"] = \"div[id*='searchlist']\";\r\n Api.APIcaller.CallAction(loadPartial, { employeeId: employeeid, years: years }, \"GET\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n return;\r\n }\r\n\r\n var redirectTo = $(this).data('redirectto');\r\n\r\n window.location.href = $('#sidebar li.actionbutton[data-href=\"' + redirectTo + '\"] a').attr('href') + \"&years=\" + value;\r\n });\r\n },\r\n initFilterStatus: function () {\r\n var chkFilterStatusValues = [];\r\n $(\".chkFilterStatus\").each(function () {\r\n if ($(this).is(':checked')) {\r\n chkFilterStatusValues.push($(this).val().toLowerCase());\r\n }\r\n });\r\n\r\n if (chkFilterStatusValues.length == 0) {\r\n $(\".chkFilterStatus\").each(function () {\r\n if (!$(this).hasClass('disable-auto-checked')) {\r\n $(this).prop('checked', true);\r\n }\r\n });\r\n }\r\n\r\n $('.filterstatuscheckbox').unbind('click');\r\n $('.filterstatuscheckbox').bind('click', function () {\r\n var filtername = $(this).data(\"filterstatus\").toString();\r\n $('div.filterstatuscheckbox' + filtername.toLowerCase() + '').hide();\r\n\r\n $('.chkFilterStatus[id=customCheck' + filtername + ']').prop('checked', false);\r\n $('.chkFilterStatus[id=customCheck' + filtername + ']').trigger('change');\r\n\r\n var value = [];\r\n $(\".chkFilterStatus\").each(function () {\r\n if ($(this).is(':checked')) {\r\n value.push($(this).val().toLowerCase());\r\n }\r\n });\r\n $(\"#searchlist div[data-searchstatus], #managersgroupcontainer div[data-searchstatus]\").hide();\r\n\r\n $.each(value, function (i, val) {\r\n $(\"#searchlist div[data-searchstatus], #managersgroupcontainer div[data-searchstatus]\").filter(function () {\r\n $(\"#searchlist div[data-searchstatus='\" + val + \"'], #managersgroupcontainer div[data-searchstatus='\" + val + \"']\").show();\r\n });\r\n });\r\n\r\n CheckFilterVisibleItem();\r\n });\r\n\r\n $(\".chkFilterStatus\").on(\"click\", function () {\r\n var value = [];\r\n $(\".chkFilterStatus\").each(function () {\r\n if ($(this).is(':checked')) {\r\n value.push($(this).val().toLowerCase());\r\n $('div.filterstatuscheckbox' + $(this).val().toLowerCase() + '').show();\r\n }\r\n else {\r\n $('div.filterstatuscheckbox' + $(this).val().toLowerCase() + '').hide();\r\n }\r\n });\r\n $(\"#searchlist div[data-searchstatus], #managersgroupcontainer div[data-searchstatus]\").hide();\r\n $.each(value, function (i, val) {\r\n $(\"#searchlist div[data-searchstatus], #managersgroupcontainer div[data-searchstatus]\").filter(function () {\r\n $(\"#searchlist div[data-searchstatus='\" + val + \"'], #managersgroupcontainer div[data-searchstatus='\" + val + \"']\").show();\r\n });\r\n });\r\n\r\n CheckFilterVisibleItem();\r\n });\r\n\r\n function CheckFilterVisibleItem() {\r\n if ($('.smallcube.active').is(':hidden')) {\r\n $('.smallcube.active').removeClass('active');\r\n $('div[id*=\"_ContainerId\"]').html('');\r\n }\r\n }\r\n },\r\n checkAllInit: function () {\r\n checkAllSelected();\r\n\r\n $(document).off('change', '#customCheckAll');\r\n $(document).on('change', '#customCheckAll', function () {\r\n if ($(this).is(':checked')) {\r\n $('.chkFilterStatus').each(function () {\r\n if (!$(this).is(':checked')) {\r\n $(this).trigger('click');\r\n }\r\n });\r\n } else {\r\n $('.chkFilterStatus').each(function () {\r\n if ($(this).is(':checked')) {\r\n $(this).trigger('click');\r\n }\r\n });\r\n }\r\n\r\n $(this).trigger('allSelected');\r\n });\r\n\r\n $(document).off('change', '.chkFilterStatus');\r\n $(document).on('change', '.chkFilterStatus', function () {\r\n checkAllSelected();\r\n });\r\n\r\n function checkAllSelected() {\r\n let allSelected = true;\r\n\r\n $('.chkFilterStatus').each(function () {\r\n if (!$(this).is(':checked')) {\r\n allSelected = false;\r\n return;\r\n }\r\n });\r\n\r\n $('#customCheckAll').prop('checked', allSelected);\r\n }\r\n },\r\n set: function (redirectTo, name, value, checked) {\r\n var qs = \"?\";\r\n\r\n if (redirectTo.indexOf(\"?\") > -1) {\r\n var matches = redirectTo.match(/[a-z-_\\d]+=[a-z-_\\d]+/gi);\r\n var count = matches ? matches.length : 0;\r\n\r\n if (count >= 1 && !matches[0].startsWith(name)) {\r\n qs = \"&\";\r\n }\r\n }\r\n\r\n window.location.href = '' + redirectTo + (checked ? qs + name + \"=\" + value : \"\");\r\n },\r\n bindDropdown: function (element) {\r\n $(document).off('change', element);\r\n $(document).on('change', element, function () {\r\n selectfilter(this);\r\n });\r\n\r\n function selectfilter(item) {\r\n let type = $(item).data('filtername');\r\n let value = $(item).val();\r\n let redirectTo = $(item).data('redirectto');\r\n let checked = $(item).is(':checked');\r\n\r\n $(element).each(function () {\r\n if ($(this).val() != value && $(this).data('filtername') == type) {\r\n $(this).attr('checked', false);\r\n }\r\n });\r\n\r\n APPLOYED.filter.set(redirectTo, type, value, checked);\r\n }\r\n }\r\n}","APPLOYED.form = {\r\n mdbLineControllerInit: function () {\r\n // functions\r\n function animateLine(element) {\r\n const parent = $(element).closest('.mdb-input-group');\r\n const line = $(parent).find('.input-line');\r\n\r\n $(line).css('width', '100%');\r\n $(line).css('background-color', '#fc833f');\r\n }\r\n\r\n function deActivateLine(element) {\r\n const parent = $(element).closest('.mdb-input-group');\r\n const line = $(parent).find('.input-line');\r\n\r\n $(line).css('width', '0%');\r\n $(line).css('background-color', '');\r\n }\r\n\r\n function isCreated(element, unique) {\r\n return ($(element).closest('.mdb-input-group').find(unique).length > 0)\r\n }\r\n\r\n let options = {\r\n select: {},\r\n textbox: {},\r\n datepicker: {},\r\n password: {},\r\n timepicker: {},\r\n };\r\n\r\n // select without pop-up\r\n // NOTE: new mdb cause dubble select boxes.\r\n $('.mdb-select').each(function () {\r\n if (!isCreated(this, '.form-notch')) {\r\n new select(this, options.select);\r\n }\r\n\r\n if ($(this).hasClass('validation-required') && !$(this).val()) {\r\n var inputDiv = $(this).parent().children('div.form-outline').find('input');\r\n\r\n var inputDiv = $(this).parent().children('div.form-outline').find('input');\r\n if (!inputDiv.hasClass('required-field-border')) {\r\n inputDiv.addClass('required-field-border');\r\n }\r\n var notchDiv = $(this).parent().children('div.form-outline').find('div.form-notch');\r\n if (notchDiv.length > 0) {\r\n if (!notchDiv.hasClass('required-field-color')) {\r\n notchDiv.addClass('required-field-color');\r\n }\r\n }\r\n }\r\n\r\n this.addEventListener('open.mdb.select', (e) => {\r\n animateLine(this);\r\n });\r\n\r\n this.addEventListener('close.mdb.select', (e) => {\r\n deActivateLine(this);\r\n });\r\n\r\n if ($(this).hasClass('linkedpicklist-select')) {\r\n var spanArrow = $(this).parent().children('div.form-outline').find('span.select-arrow');\r\n spanArrow.remove();\r\n $(this).parent().css('pointer-events', 'none');\r\n }\r\n });\r\n\r\n // datepicker\r\n $('.custom-date-picker').each(function () {\r\n if (!isCreated(this, '.form-notch')) {\r\n new mdb.Input(this, options.datepicker);\r\n }\r\n\r\n $(this).find('.form-control').on('focus', function () {\r\n animateLine(this);\r\n });\r\n\r\n $(this).find('.form-control').on('focusout', function () {\r\n deActivateLine(this);\r\n });\r\n });\r\n\r\n // textbox\r\n $('.mdb-textbox').each(function () {\r\n if (!isCreated(this, '.form-notch')) {\r\n new mdb.Input(this, options.textbox);\r\n }\r\n\r\n $(this).find('.form-control').on('focus', function () {\r\n animateLine(this);\r\n });\r\n\r\n $(this).find('.form-control').on('focusout', function () {\r\n deActivateLine(this);\r\n });\r\n });\r\n\r\n // password\r\n $('.mdb-password').each(function () {\r\n if (!isCreated(this, '.form-notch')) {\r\n new mdb.Input(this, options.password);\r\n }\r\n\r\n $(this).find('.form-control').on('focus', function () {\r\n animateLine(this);\r\n });\r\n\r\n $(this).find('.form-control').on('focusout', function () {\r\n deActivateLine(this);\r\n });\r\n });\r\n\r\n // timepicker\r\n $('.custom-time-picker').each(function () {\r\n if (!isCreated(this, '.form-notch')) {\r\n new mdb.Input(this, options.timepicker);\r\n }\r\n\r\n $(this).find('.form-control').on('focus', function () {\r\n animateLine(this);\r\n });\r\n\r\n $(this).find('.form-control').on('focusout', function () {\r\n deActivateLine(this);\r\n });\r\n });\r\n\r\n $('.mdb-textarea').each(function () {\r\n if (!isCreated(this, '.form-notch')) {\r\n new mdb.Input(this, {});\r\n }\r\n });\r\n },\r\n replaceOptions: function (target, options, fromIndex = 0) {\r\n if (!fromIndex) {\r\n $(target).empty();\r\n } else {\r\n $(target).children().slice(fromIndex).remove()\r\n }\r\n\r\n $.each(options, function (index, attr) {\r\n $option = $(\"\")\r\n .attr(\"value\", attr.value)\r\n .attr(\"title\", attr.title)\r\n .text(attr.text);\r\n\r\n $(target).append($option);\r\n });\r\n },\r\n initSearchDropdown: function () {\r\n // element names\r\n const container = '.dropDownSearchContainer'; // container\r\n const input = '.dropDownSearchInput'; // search input field\r\n const result = '.dropDownSearchResult'; // search results\r\n const hidden = '.searchContainerHiddenVal'; // hidden field containg form data\r\n const hiddenText = '.searchContainerHiddenTextVal'; // hidden text field for comparing\r\n\r\n // show a clickable curos at the right side to indicate opening\r\n $(input).mousemove(function () {\r\n $(this).css('cursor', ($(this).width() - (event.pageX - $(this).offset().left) < 20 ? 'pointer' : 'text'));\r\n });\r\n\r\n $(result + ' .dropdown-item').on('click', function () {\r\n let value = $(this).data('value');\r\n let text = $(this).html();\r\n\r\n $(this).closest(container).find(input).val(text);\r\n $(this).closest(container).find(input).attr(\"value\", text);\r\n\r\n $(this).closest(container).find(hiddenText).val(text);\r\n $(this).closest(container).find(hidden).val(value);\r\n\r\n $(this).closest(container).find(input).trigger('change');\r\n });\r\n\r\n $(container).on('shown.bs.dropdown', function () {\r\n let val = $(this).closest(container).find(hidden).val();\r\n\r\n $(this).closest(container).find('.dropdown-menu').css('width', $(this).closest(container).find(input).width());\r\n $(this).find('.dropdown-item[data-value=' + val + ']')[0].scrollIntoView();\r\n $(this).find('.dropdown-item[data-value=' + val + ']')[0].focus()\r\n })\r\n\r\n $(container).on('hidden.bs.dropdown', function () {\r\n if ($(this).find(input).val() !== $(this).closest(container).find(hiddenText).val()) {\r\n $(this).find(input).val(\"\");\r\n $(this).find(input).attr(\"value\", null);\r\n\r\n $(this).find(hidden).val(null);\r\n $(this).find(result + ' a').show();\r\n\r\n $(this).find(input).trigger('change');\r\n }\r\n\r\n $(this).find(result + ' a.dropdown-item.disabled').hide();\r\n })\r\n\r\n $(input).unbind('keydown');\r\n $(input).bind('keydown', function (e) {\r\n if (e.keyCode == 13) { // enter key\r\n e.preventDefault()\r\n return false;\r\n }\r\n });\r\n\r\n $(input).unbind('keyup paste copy');\r\n $(input).bind('keyup paste copy', function (e) {\r\n if (e.keyCode == 40) { // arrow down key\r\n if ($(this).closest(container).find(result).html().length > 0) {\r\n $(this).closest(container).find(result + ' .dropdown-item:first').focus();\r\n\r\n return false;\r\n }\r\n }\r\n else {\r\n if ($(this).closest(container).find(result + ' a').length > 0) {\r\n var value = $(this).val().toLowerCase();\r\n\r\n $(this).closest(container).find(result + ' a').filter(function () {\r\n $(this).toggle($(this).text().toLowerCase().indexOf(value) > -1)\r\n });\r\n }\r\n\r\n if ($(this).closest(container).find(result + ' a[class=\"dropdown-item\"]:not(.disabled):visible').length === 0) {\r\n $(this).closest(container).find(result + ' a.dropdown-item.disabled').show();\r\n } else {\r\n $(this).closest(container).find(result + ' a.dropdown-item.disabled').hide();\r\n }\r\n }\r\n });\r\n },\r\n initMultiSelectDropdown: function () {\r\n const container = '.cm-dropdownMultiSelectContainer';\r\n const checkboxAll = '.cm-checkAll';\r\n const checkboxItem = '.cm-checkItem';\r\n const amountClass = '.amount-selected';\r\n const searchInput = '.dropdownSearchInput';\r\n const translation = '#Selected';\r\n let transVal = 'selected';\r\n\r\n transVal = $(translation).val();\r\n if (transVal) {\r\n transVal = transVal.toLowerCase();\r\n }\r\n\r\n let amount = {};\r\n\r\n // filter functionality\r\n $(container).each(function () {\r\n const type = $(this).data('type');\r\n amount[type] = 0;\r\n\r\n $(this).find(checkboxItem).each(function () {\r\n if ($(this).is(':checked')) {\r\n amount[type]++;\r\n }\r\n });\r\n\r\n checkAllSelectedCheckBox(this);\r\n updateAmountWithElement(this, amount[type], amountClass, searchInput);\r\n });\r\n\r\n $(document).off('change', checkboxAll);\r\n $(document).on('change', checkboxAll, function () {\r\n const parent = $(this).closest(container);\r\n\r\n if ($(this).is(':checked')) {\r\n $(parent).find(checkboxItem).each(function () {\r\n if (!$(this).is(':checked')) {\r\n $(this).trigger('click');\r\n }\r\n })\r\n }\r\n else {\r\n $(parent).find(checkboxItem).each(function () {\r\n if ($(this).is(':checked')) {\r\n $(this).trigger('click');\r\n }\r\n });\r\n }\r\n });\r\n\r\n $(document).off('change', checkboxItem);\r\n $(document).on('change', checkboxItem, function () {\r\n const parent = $(this).closest(container);\r\n const type = parent.data('type');\r\n\r\n $(this).is(':checked') ? amount[type]++ : amount[type]--;\r\n checkAllSelectedCheckBox(parent);\r\n updateAmountWithElement(parent, amount[type], amountClass, searchInput);\r\n });\r\n\r\n function checkAllSelectedCheckBox(parent) {\r\n let isAllSelected = true;\r\n\r\n $(parent).find(checkboxItem).each(function () {\r\n if (!$(this).is(':checked')) {\r\n isAllSelected = false;\r\n return;\r\n };\r\n });\r\n\r\n $(parent).find(checkboxAll).prop('checked', isAllSelected);\r\n }\r\n\r\n function updateAmountWithElement(parent, amount, amountClass, searchInput) {\r\n const amountEl = $(parent).find(amountClass);\r\n const inputEl = $(parent).find(searchInput);\r\n\r\n // amount span\r\n if (amount == 1) {\r\n let name = \"\";\r\n $(parent).find(checkboxItem).each(function () {\r\n if ($(this).is(':checked')) {\r\n name = $(this).parent().find('label').text();\r\n return;\r\n };\r\n });\r\n\r\n amountEl.css(\"display\", \"block\");\r\n amountEl.text(name);\r\n amountEl.css(\"max-width\", \"250px\");\r\n amountEl.css(\"white-space\", \"nowrap\");\r\n amountEl.css(\"overflow\", \"hidden\");\r\n amountEl.css(\"text-overflow\", \"ellipsis\");\r\n inputEl.css(\"padding-left\", amountEl.outerWidth() + 5);\r\n }\r\n else if (amount > 0) {\r\n amountEl.css(\"display\", \"block\");\r\n amountEl.css(\"max-width\", \"250px\");\r\n amountEl.css(\"white-space\", \"nowrap\");\r\n amountEl.css(\"overflow\", \"hidden\");\r\n amountEl.css(\"text-overflow\", \"ellipsis\");\r\n amountEl.text(amount + \" \" + transVal);\r\n\r\n inputEl.css(\"padding-left\", amountEl.outerWidth() + 5);\r\n }\r\n else {\r\n amountEl.css(\"display\", \"none\");\r\n amountEl.text(\"\");\r\n\r\n inputEl.css(\"padding-left\", 0);\r\n }\r\n\r\n // label control\r\n if (amount > 0 || !$(searchInput).val()) {\r\n $(searchInput).val(\" \");\r\n }\r\n }\r\n },\r\n setActiveClassAndValueOnMdbSelectInput: function (inputElement) {\r\n if (inputElement.is('select')) {\r\n text = inputElement.find(':selected').html();\r\n inputElement.parent().find(\"div.form-outline input\").val(text);\r\n inputElement.parent().find(\"div.form-outline input\").addClass('active');\r\n inputElement.parent().find(\"div.form-outline label\").addClass('active');\r\n }\r\n },\r\n removeActiveClassOnMdbSelectInput: function (inputElements) {\r\n $(inputElements).each(function () {\r\n if ($(this).is('select')) {\r\n $(this).parent().find(\"div.form-outline input\").val('');\r\n $(this).parent().find(\"div.form-outline input\").removeClass('active');\r\n $(this).parent().find(\"div.form-outline label\").removeClass('active');\r\n }\r\n });\r\n },\r\n}","APPLOYED.image = {\r\n initSvg: function () {\r\n $('img[src$=\".svg\"]').each(function () {\r\n var $img = jQuery(this);\r\n var imgURL = $img.attr('src');\r\n var attributes = $img.prop(\"attributes\");\r\n\r\n $.get(imgURL, function (data) {\r\n // Get the SVG tag, ignore the rest\r\n var $svg = jQuery(data).find('svg');\r\n\r\n // Remove any invalid XML tags\r\n $svg = $svg.removeAttr('xmlns:a');\r\n\r\n // Loop through IMG attributes and apply on SVG\r\n $.each(attributes, function () {\r\n $svg.attr(this.name, this.value);\r\n });\r\n\r\n // Replace IMG with SVG\r\n $img.replaceWith($svg);\r\n }, 'xml');\r\n });\r\n }\r\n}","APPLOYED.introtext = {\r\n init: function () {\r\n $(document).off('click', '#btnStartIntroText');\r\n $(document).on('click', '#btnStartIntroText', function () {\r\n let options = {};\r\n options[\"tofadein\"] = \"\";\r\n options[\"loading\"] = \"\";\r\n\r\n Api.APIcaller.CallAction(\"/Dashboard/Index/GetIntroductionTextModal\", { step: 1 }, \"GET\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n });\r\n }\r\n}\r\n","APPLOYED.json = {\r\n stringify: function (context) {\r\n return JSON.stringify(context).replace(/[\\/\\(\\)\\']/g, \"'\");\r\n }\r\n}","APPLOYED.language = {\r\n languages = {\r\n languageNL = 1, // nl\r\n languageEN = 2, // en\r\n languageES = 3 // es\r\n },\r\n locales: [\r\n 'nl', // 1\r\n 'en', // 2\r\n 'es' // 3\r\n ],\r\n TableDutchLanguage: {\r\n \"sProcessing\": \"Bezig...\",\r\n \"sLengthMenu\": \"_MENU_ resultaten weergeven\",\r\n \"sZeroRecords\": \"Geen resultaten gevonden\",\r\n \"sInfo\": \"_START_ tot _END_ van _TOTAL_ resultaten\",\r\n \"sInfoEmpty\": \"Geen resultaten om weer te geven\",\r\n \"sInfoFiltered\": \" (gefilterd uit _MAX_ resultaten)\",\r\n \"sSearch\": \"Zoeken:\",\r\n \"sEmptyTable\": \"Geen resultaten aanwezig in de tabel\",\r\n \"sInfoThousands\": \".\",\r\n \"sLoadingRecords\": \"Een moment geduld aub - bezig met laden...\",\r\n \"oPaginate\": {\r\n \"sFirst\": \"Eerste\",\r\n \"sLast\": \"Laatste\",\r\n \"sNext\": \"Volgende\",\r\n \"sPrevious\": \"Vorige\"\r\n },\r\n \"oAria\": {\r\n \"sSortAscending\": \": activeer om kolom oplopend te sorteren\",\r\n \"sSortDescending\": \": activeer om kolom aflopend te sorteren\"\r\n }\r\n },\r\n TableEnglishLanguage: {\r\n \"sEmptyTable\": \"No data available in table\",\r\n \"sInfo\": \"Showing _START_ to _END_ of _TOTAL_ entries\",\r\n \"sInfoEmpty\": \"Showing 0 to 0 of 0 entries\",\r\n \"sInfoFiltered\": \"(filtered from _MAX_ total entries)\",\r\n \"sInfoPostFix\": \"\",\r\n \"sInfoThousands\": \",\",\r\n \"sLengthMenu\": \"Show _MENU_ entries\",\r\n \"sLoadingRecords\": \"Loading...\",\r\n \"sProcessing\": \"Processing...\",\r\n \"sSearch\": \"Search:\",\r\n \"sZeroRecords\": \"No matching records found\",\r\n \"oPaginate\": {\r\n \"sFirst\": \"First\",\r\n \"sLast\": \"Last\",\r\n \"sNext\": \"Next\",\r\n \"sPrevious\": \"Previous\"\r\n },\r\n \"oAria\": {\r\n \"sSortAscending\": \": activate to sort column ascending\",\r\n \"sSortDescending\": \": activate to sort column descending\"\r\n }\r\n },\r\n TableSpainLanguage: {\r\n \"sProcessing\": \"Procesando...\",\r\n \"sLengthMenu\": \"Mostrar _MENU_ registros\",\r\n \"sZeroRecords\": \"No se encontraron resultados\",\r\n \"sEmptyTable\": \"Ningún dato disponible en esta tabla\",\r\n \"sInfoEmpty\": \"Mostrando registros del 0 al 0 de un total de 0 registros\",\r\n \"sInfoFiltered\": \"(filtrado de un total de _MAX_ registros)\",\r\n \"sSearch\": \"Buscar:\",\r\n \"sInfoThousands\": \",\",\r\n \"sLoadingRecords\": \"Cargando...\",\r\n \"oPaginate\": {\r\n \"first\": \"Primero\",\r\n \"last\": \"Último\",\r\n \"next\": \"Siguiente\",\r\n \"previous\": \"Anterior\"\r\n },\r\n \"oAria\": {\r\n \"sortAscending\": \": Activar para ordenar la columna de manera ascendente\",\r\n \"sortDescending\": \": Activar para ordenar la columna de manera descendente\"\r\n },\r\n \"sInfo\": \"Mostrando _START_ a _END_ de _TOTAL_ registros\"\r\n },\r\n getTableLanguage: function () {\r\n switch (APPLOYED.language.getUserLanguage()) {\r\n case '1': // dutch\r\n return APPLOYED.language.TableDutchLanguage;\r\n case '3': // spanish\r\n return APPLOYED.language.TableSpainLanguage;\r\n case '2': // enlgish (default fallback)\r\n default:\r\n return APPLOYED.language.TableEnglishLanguage;\r\n }\r\n },\r\n getUserLanguage: function () {\r\n return $('#ApplContext_UserLanguage').val();\r\n },\r\n getUserLocale: function () {\r\n return APPLOYED.language.locales[(+APPLOYED.language.getUserLanguage())-1];\r\n }\r\n}","APPLOYED.letter = {\r\n recordId = 0,\r\n init: function () {\r\n $(document).on('click', '.letter_run', function () {\r\n let letterSeq = $(this).closest('.actionbutton').data('letterid');\r\n let letterName = $(this).closest('.actionbutton').data('lettername');\r\n let recordId = APPLOYED.letter.recordId;\r\n let employeeId = $('#EmployeeId').val();\r\n let tableName = $('#TableName').val();\r\n\r\n let options = {};\r\n options[\"tofadein\"] = \"\";\r\n options[\"loading\"] = \"button[id*='letters-dropdown']\";\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/LetterRunPopup\", { letterSeq, employeeId, recordId, tableName, letterName }, \"GET\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n });\r\n\r\n $(document).on('click', '.letter_copy', function () {\r\n let letterSeq = $(this).closest('.actionbutton').data('letterid');\r\n let letterName = $(this).closest('.actionbutton').data('lettername');\r\n\r\n let options = {};\r\n options[\"tofadein\"] = \"\";\r\n options[\"loading\"] = \"button[id*='letters-dropdown']\";\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/LetterCopyPopup\", { letterSeq, letterName }, \"GET\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n });\r\n\r\n $(document).on('click', '.letter_edit', function () {\r\n let letterSeq = $(this).closest('.actionbutton').data('letterid');\r\n let letterName = $(this).closest('.actionbutton').data('lettername');\r\n\r\n let options = {};\r\n options[\"tofadein\"] = \"\";\r\n options[\"loading\"] = \"button[id*='letters-dropdown']\";\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/LetterEditPopup\", { letterSeq, letterName }, \"GET\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n });\r\n\r\n $(document).on('click', '.letter_rename', function () {\r\n let letterSeq = $(this).closest('.actionbutton').data('letterid');\r\n let letterName = $(this).closest('.actionbutton').data('lettername');\r\n\r\n let options = {};\r\n options[\"tofadein\"] = \"\";\r\n options[\"loading\"] = \"button[id*='letters-dropdown']\";\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/LetterRenamePopup\", { letterSeq, letterName }, \"GET\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n });\r\n\r\n $(document).on('click', '.letter_delete', function () {\r\n let letterSeq = $(this).closest('.actionbutton').data('letterid');\r\n let letterName = $(this).closest('.actionbutton').data('lettername');\r\n\r\n let options = {};\r\n options[\"tofadein\"] = \"\";\r\n options[\"loading\"] = \"button[id*='letters-dropdown']\";\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/LetterDeletePopup\", { letterSeq, letterName }, \"GET\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n });\r\n },\r\n initLetterCopyPopup: function () {\r\n $(document).off('change', '#lettername');\r\n $(document).on('change', '#lettername', function () {\r\n $('#copy-submit').attr('disabled', !$(this).val().length > 0);\r\n });\r\n\r\n $(document).off('click', '#copy-submit');\r\n $(document).on('click', '#copy-submit', function () {\r\n let letterCopyName = $('#lettername').val();\r\n let letterSeq = $('#LetterSeq').val();\r\n\r\n let options = {};\r\n options[\"tofadein\"] = \"\";\r\n options[\"loading\"] = \"button[id*='copy-submit']\";\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/LetterCopy\", { letterSeq, letterCopyName }, \"GET\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n });\r\n },\r\n initLetterEditPopup: function () {\r\n $(document).off('click', '#edit-submit');\r\n $(document).on('click', '#edit-submit', function () {\r\n let lettertemplate = tinyMCE.activeEditor.getContent();\r\n let letterSeq = $('#LetterSeq').val();\r\n\r\n let options = {};\r\n options[\"tofadein\"] = \"\";\r\n options[\"loading\"] = \"button[id*='edit-submit']\";\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/LetterEdit\", { letterSeq, lettertemplate }, \"POST\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n });\r\n\r\n $(document).off('click', '.close-mergefields');\r\n $(document).on('click', '.close-mergefields', function () {\r\n $('.open-mergefields').show();\r\n $(this).hide();\r\n\r\n $('#mergefields').removeClass('col-4');\r\n $('#editor').removeClass('col-8');\r\n $('#mergefields').addClass('col-1');\r\n $('#editor').addClass('col-11');\r\n $('.mergefield-content').hide();\r\n });\r\n\r\n $(document).off('click', '.open-mergefields');\r\n $(document).on('click', '.open-mergefields', function () {\r\n $('.close-mergefields').show();\r\n $(this).hide();\r\n\r\n $('#mergefields').addClass('col-4');\r\n $('#editor').addClass('col-8');\r\n $('#mergefields').removeClass('col-1');\r\n $('#editor').removeClass('col-11');\r\n $('.mergefield-content').show();\r\n });\r\n\r\n $(document).off('dblclick', '.movetext');\r\n $(document).on('dblclick', '.movetext', function (e) {\r\n var obj = $('#' + $(this).data('moveto') + '');\r\n\r\n if ($(this).data('moveto') == \"Document\") {\r\n tinymce.activeEditor.execCommand('mceInsertContent', false, $(this).html());\r\n }\r\n else {\r\n var cursorPosition = obj.prop(\"selectionStart\");\r\n var textValue = obj.val().substr(0, cursorPosition);\r\n var newValue = textValue + $(this).html();\r\n\r\n obj.val(newValue + obj.val().substr(cursorPosition));\r\n }\r\n });\r\n\r\n tinymce.init({\r\n selector: '#Document',\r\n plugins: [\r\n \"advlist anchor autolink codesample colorpicker contextmenu image imagetools\",\r\n \"lists link media noneditable preview fullscreen\",\r\n \"searchreplace table textcolor visualblocks\"\r\n ],\r\n init_instance_callback: function (editor) {\r\n $('#Document').css('visibility', 'visible');\r\n },\r\n height: '650',\r\n branding: false,\r\n statusbar: false,\r\n language: (APPLOYED.language.getUserLanguage() == 1 ? 'nl' : null),\r\n paste_data_images: true,\r\n block_unsupported_drop: true,\r\n images_upload_handler: function (blobInfo, success, failure) {\r\n var image_size = blobInfo.blob().size / 1000; // image size in kbytes\r\n var max_size = 1024 // max size in kbytes\r\n if (image_size > max_size) {\r\n if (APPLOYED.language.getUserLanguage() == 1) {\r\n failure('Bestaand te groot ( ' + image_size + ') , Maximaal groot is:' + max_size + ' kB');\r\n }\r\n else {\r\n failure('Image is too large( ' + image_size + ') , Maximum image size is:' + max_size + ' kB');\r\n }\r\n return;\r\n } else {\r\n success(\"data:\" + blobInfo.blob().type + \";base64,\" + blobInfo.base64());\r\n }\r\n },\r\n toolbar: \"cut copy paste | undo redo | bold italic underline | forecolor backcolor | alignleft aligncenter alignright alignjustify | bullist numlist | link image | fullscreen\",\r\n menu: {\r\n file: { title: 'File', items: 'newdocument restoredraft | preview | print' },\r\n edit: { title: 'Edit', items: 'undo redo | cut copy paste | selectall | searchreplace' },\r\n view: { title: 'View', items: 'code | visualaid visualchars visualblocks | fullscreen' },\r\n insert: { title: 'Insert', items: 'image link media template codesample inserttable | charmap emoticons hr | pagebreak nonbreaking anchor toc | insertdatetime' },\r\n format: { title: 'Format', items: 'strikethrough superscript subscript | formats blockformats fontformats fontsizes lineheight | removeformat' },\r\n tools: { title: 'Tools', items: 'spellchecker spellcheckerlanguage | code wordcount' },\r\n table: { title: 'Table', items: 'inserttable | cell row column | tableprops deletetable' }\r\n }\r\n });\r\n },\r\n initLetterDeletePopup: function () {\r\n $(document).off('click', '#delete-submit');\r\n $(document).on('click', '#delete-submit', function () {\r\n let letterSeq = $('#LetterSeq').val();\r\n\r\n let options = {};\r\n options[\"tofadein\"] = \"\";\r\n options[\"loading\"] = \"button[id*='delete-submit']\";\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/LetterDelete\", { letterSeq }, \"GET\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n });\r\n },\r\n initLetterRenamePopup: function () {\r\n $(document).off('change', '#lettername');\r\n $(document).on('change', '#lettername', function () {\r\n $('#rename-submit').attr('disabled', !$(this).val().length > 0);\r\n });\r\n\r\n $(document).off('click', '#rename-submit');\r\n $(document).on('click', '#rename-submit', function () {\r\n let letterRename = $('#lettername').val();\r\n let letterSeq = $('#LetterSeq').val();\r\n\r\n let options = {};\r\n options[\"tofadein\"] = \"\";\r\n options[\"loading\"] = \"button[id*='rename-submit']\";\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/LetterRename\", { letterSeq, letterRename }, \"GET\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n });\r\n },\r\n initLetterRunPopup: function () {\r\n $(document).off('change', '#Filename');\r\n $(document).on('change', '#Filename', function () {\r\n validate();\r\n });\r\n\r\n $(document).off('change', '#CategoryId');\r\n $(document).on('change', '#CategoryId', function () {\r\n validate();\r\n });\r\n\r\n function validate() {\r\n validated = true;\r\n\r\n if ($('#CategoryId option:selected').val().length <= 0 && $('#AttachMergedDocument').is(':checked')) {\r\n validated = false;\r\n }\r\n\r\n if ($('#Filename').val().length <= 0) {\r\n validated = false;\r\n }\r\n\r\n $('#letter-download').attr('disabled', !validated);\r\n }\r\n\r\n $(document).off('change', '#AttachMergedDocument');\r\n $(document).on('change', '#AttachMergedDocument', function () {\r\n if ($(this).is(':checked')) {\r\n $('#categoryDropdown').show();\r\n } else {\r\n $('#categoryDropdown').hide();\r\n }\r\n\r\n validate();\r\n });\r\n\r\n tinymce.init({\r\n selector: '#MergedLetter',\r\n plugins: [\r\n \"advlist anchor autolink codesample colorpicker contextmenu image imagetools\",\r\n \"lists link media noneditable preview fullscreen\",\r\n \"searchreplace table textcolor visualblocks\"\r\n ],\r\n init_instance_callback: function (editor) {\r\n $('#MergedLetter').css('visibility', 'visible');\r\n },\r\n height: '500',\r\n branding: false,\r\n statusbar: false,\r\n language: (APPLOYED.language.getUserLanguage() == 1 ? 'nl' : null),\r\n paste_data_images: true,\r\n block_unsupported_drop: true,\r\n images_upload_handler: function (blobInfo, success, failure) {\r\n var image_size = blobInfo.blob().size / 1000; // image size in kbytes\r\n var max_size = 1024 // max size in kbytes\r\n if (image_size > max_size) {\r\n if (APPLOYED.language.getUserLanguage() == 1) {\r\n failure('Bestaand te groot ( ' + image_size + ') , Maximaal groot is:' + max_size + ' kB');\r\n }\r\n else {\r\n failure('Image is too large( ' + image_size + ') , Maximum image size is:' + max_size + ' kB');\r\n }\r\n return;\r\n } else {\r\n success(\"data:\" + blobInfo.blob().type + \";base64,\" + blobInfo.base64());\r\n }\r\n },\r\n toolbar: \"cut copy paste | undo redo | bold italic underline | forecolor backcolor | alignleft aligncenter alignright alignjustify | bullist numlist | link image | fullscreen\",\r\n menu: {\r\n file: { title: 'File', items: 'newdocument restoredraft | preview | print' },\r\n edit: { title: 'Edit', items: 'undo redo | cut copy paste | selectall | searchreplace' },\r\n view: { title: 'View', items: 'code | visualaid visualchars visualblocks | fullscreen' },\r\n insert: { title: 'Insert', items: 'image link media template codesample inserttable | charmap emoticons hr | pagebreak nonbreaking anchor toc | insertdatetime' },\r\n format: { title: 'Format', items: 'strikethrough superscript subscript | formats blockformats fontformats fontsizes lineheight | removeformat' },\r\n tools: { title: 'Tools', items: 'spellchecker spellcheckerlanguage | code wordcount' },\r\n table: { title: 'Table', items: 'inserttable | cell row column | tableprops deletetable' }\r\n }\r\n });\r\n },\r\n}","APPLOYED.loader = {\r\n WaitLoaderList: [],\r\n WaitLoaderIcon: '',\r\n ClearLoaderList: function () {\r\n APPLOYED.loader.WaitLoaderList = []\r\n },\r\n WaitLoaderOn: function (element) {\r\n if (element != undefined && element != 'undefined' && element != '') {\r\n\r\n let id = $(element).attr(\"id\");\r\n if (!(id in APPLOYED.loader.WaitLoaderList)) {\r\n APPLOYED.loader.WaitLoaderList[id] = $(element).html();\r\n $(element).html(APPLOYED.loader.WaitLoaderIcon);\r\n }\r\n }\r\n },\r\n WaitLoaderOff: function (element) {\r\n if (element != undefined && element != 'undefined' && element != '') {\r\n let id = $(element).attr(\"id\");\r\n\r\n if (id in APPLOYED.loader.WaitLoaderList) {\r\n let content = APPLOYED.loader.WaitLoaderList[id];\r\n\r\n $(element).html(content);\r\n delete APPLOYED.loader.WaitLoaderList[id];\r\n }\r\n }\r\n }\r\n}","APPLOYED.loonstroken = {\r\n overview = {\r\n load: function (loading) {\r\n let options = {};\r\n options[\"tofadein\"] = null;\r\n options[\"loading\"] = loading;\r\n\r\n let body = {\r\n employeeId: $('#LoonWerknemerId').val(),\r\n year: $('#LoonYearInt').val()\r\n };\r\n Api.APIcaller.CallAction(\"/Ajax/GetLoonstrokenScreen\", body, \"GET\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n },\r\n init: function () {\r\n APPLOYED.loader.ClearLoaderList(); // fix for loader not being deleted from loading list\r\n\r\n APPLOYED.loonstroken.modify.close();\r\n APPLOYED.loonstroken.overview.open();\r\n\r\n APPLOYED.loonstroken.overview.bindactions();\r\n\r\n if ($(\".chkFilterloonstroken\").length == 1) {\r\n $(\".chkFilterloonstroken\").prop('checked', true);\r\n }\r\n else {\r\n $(\".chkFilterloonstroken\").each(function () {\r\n $(this).prop('checked', false);\r\n });\r\n\r\n if (APPLOYED.url.getUrlParam(\"year\") != null && APPLOYED.url.getUrlParam(\"year\") != \"0\" && APPLOYED.url.getUrlParam(\"year\") != 0) {\r\n $(\".chkFilterloonstroken\").each(function () {\r\n if ($(this).val() == APPLOYED.url.getUrlParam(\"year\")) {\r\n $(this).prop('checked', true);\r\n }\r\n });\r\n }\r\n else {\r\n var currentYear = (new Date).getFullYear();\r\n var exist = false;\r\n $(\".chkFilterloonstroken\").each(function () {\r\n if ($(this).val() == currentYear) {\r\n $(this).prop('checked', true);\r\n exist = true;\r\n }\r\n });\r\n if (!exist) {\r\n $(\".chkFilterloonstroken\").first().prop('checked', true);\r\n }\r\n }\r\n }\r\n\r\n \r\n },\r\n bindactions: function () {\r\n\r\n $(document).off('click', '.loonstrookFilter');\r\n $(document).on('click', '.loonstrookFilter', function () {\r\n var filterSeq = $(this).val();\r\n\r\n $(\".loonstrookFilter\").each(function () {\r\n if ($(this).val() != filterSeq) {\r\n $(this).prop('checked', false);\r\n }\r\n });\r\n\r\n let loading = \"div[id='loonstrokenFilterIcon']\";\r\n APPLOYED.loonstroken.overview.load(loading);\r\n });\r\n\r\n $(document).off('click', '#loonstrookAdd');\r\n $(document).on('click', '#loonstrookAdd', function () {\r\n let loading = \"div[id='documentAdd']\";\r\n\r\n APPLOYED.loonstroken.modify.load(loading);\r\n });\r\n\r\n $(document).off('click', '.loonstrookeditlink');\r\n $(document).on('click', '.loonstrookeditlink', function (e) {\r\n e.preventDefault();\r\n\r\n let documentid = $(this).parents('tr').data('documentid');\r\n let documentkey = $(this).parents('tr').data('documentkey');\r\n\r\n let loading = \"tr.loonstrooktoprow[data-documentid='\" + documentid + \"'] .loonstrookeditlink\";\r\n APPLOYED.loonstroken.modify.load(loading, documentid, documentkey);\r\n });\r\n\r\n $(document).off('click', '.downloadLoonstrook');\r\n $(document).on('click', '.downloadLoonstrook', function (e) {\r\n e.preventDefault();\r\n\r\n let documentId = $(this).parents('tr').data('documentid');\r\n let documentKey = $(this).parents('tr').data('documentkey');\r\n let deltaDocumentId = $(this).parents('tr').data('deltadocumentid');\r\n let deltaDocumentType = $(this).parents('tr').data('deltadocumenttype');\r\n let deltaFilename = $(this).parents('tr').data('deltafilename');\r\n\r\n APPLOYED.loonstroken.overview.getdocument(documentId, documentKey, deltaDocumentId, deltaDocumentType, deltaFilename);\r\n });\r\n\r\n $(document).off('click', '.loonstrookdelete');\r\n $(document).on('click', '.loonstrookdelete', function () {\r\n let title = $(this).data('title');\r\n let body = $(this).data('body');\r\n let documentid = $(this).data('documentid');\r\n let documentkey = $(this).data('documentkey');\r\n\r\n $('#confirmdeletemodaltitle').html(title);\r\n $('#confirmdeletemodalbody').html(body);\r\n\r\n $('#confirmdeletemodalaction').one('click', function () {\r\n $('#confirmdeletemodal').modal('hide');\r\n APPLOYED.loonstroken.overview.delete(documentid, documentkey);\r\n });\r\n\r\n $('#confirmdeletemodal').modal('show');\r\n $('#confirmdeletemodal').one('hidden.bs.modal', function () {\r\n unbindDeleteModal();\r\n });\r\n });\r\n\r\n function unbindDeleteModal() {\r\n $('#confirmdeletemodalaction').off('click');\r\n $('#confirmdeletemodalaction').unbind('click');\r\n };\r\n\r\n $(\".chkFilterloonstroken\").unbind(\"click\");\r\n $(\".chkFilterloonstroken\").bind(\"click\", function () {\r\n var year = $(this).val();\r\n\r\n var $box = $(this);\r\n if ($box.is(\":checked\")) {\r\n var group = \"input:checkbox[id*='customCheck']\";\r\n $(group).prop(\"checked\", false);\r\n $box.prop(\"checked\", true);\r\n } else {\r\n $box.prop(\"checked\", false);\r\n }\r\n \r\n var redirectTo = $(this).data('redirectto');\r\n\r\n window.location.href = $('#sidebar li.actionbutton[data-href=\"' + redirectTo + '\"] a').attr('href') + \"&year=\" + year;\r\n\r\n });\r\n\r\n },\r\n getdocument: function (documentId, documentKey, deltaDocumentId, deltaDocumentType, deltaFilename) {\r\n let options = {};\r\n options[\"tofadein\"] = null;\r\n\r\n if (deltaDocumentId) {\r\n options[\"loading\"] = \"tr.loonstrooktoprow[data-deltadocumentid= '\" + deltaDocumentId + \"'] .downloadLoonstrook\";\r\n } else {\r\n options[\"loading\"] = \"tr.loonstrooktoprow[data-documentid= '\" + documentId + \"'] .downloadLoonstrook\";\r\n }\r\n\r\n let body = {\r\n documentId,\r\n documentKey,\r\n deltaDocumentId,\r\n deltaDocumentType,\r\n deltaFilename\r\n };\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/DownloadLoonstrook\", body, \"GET\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n },\r\n delete: function (documentId, documentKey) {\r\n var loading = \"div[id='loonstrokenDropdownMenu']\";\r\n\r\n if (documentId) {\r\n let options = {};\r\n options[\"tofadein\"] = null;\r\n options[\"loading\"] = null;\r\n\r\n let body = {\r\n documentId: documentId,\r\n documentKey: documentKey,\r\n };\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/DeleteLoonstrook\", body, \"GET\", completeHandler(), null, null, options, Api.APIcaller.CancelOptions.None);\r\n }\r\n\r\n function completeHandler() {\r\n setTimeout(function () { APPLOYED.loonstroken.overview.load(loading); }, 500);\r\n }\r\n },\r\n open: function () {\r\n $(APPLOYED.loonstroken.elements.overviewId).show();\r\n $(APPLOYED.loonstroken.elements.modifyId).hide();\r\n },\r\n close: function () {\r\n $(APPLOYED.loonstroken.elements.overviewId).hide();\r\n $(APPLOYED.loonstroken.elements.modifyId).show();\r\n },\r\n },\r\n modify = {\r\n /**\r\n * Load document modify screen\r\n * \r\n * @param {string} loading element of loading icon container\r\n * @param {number|null} documentid document id being modified\r\n */\r\n load: function (loading, documentid = 0, documentkey = 0) {\r\n let options = {};\r\n options[\"tofadein\"] = null;\r\n options[\"loading\"] = loading;\r\n\r\n let body = {\r\n tableName: APPLOYED.loonstroken.params.tableName,\r\n RecordId: APPLOYED.loonstroken.params.recordId,\r\n documentId: documentid,\r\n documentKey: documentkey\r\n };\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/GetLoonstrookModifyScreen\", body, \"GET\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n },\r\n /**\r\n * Initialize document modify bindings and functions\r\n */\r\n init: function () {\r\n APPLOYED.loonstroken.modify.open();\r\n\r\n if ($('#receipt').attr('src') != '') {\r\n $('#receipt').addClass('uploadimage');\r\n $('#uploadimage').hide();\r\n }\r\n else {\r\n $('#uploadimage').show();\r\n }\r\n\r\n if (!$(\"#File\")[0].files && !$(\"#File\")[0].files[0] && APPLOYED.validator.hasFileExtension($('#FileName') == false) || $('#DocumentId').val() == 0) {\r\n $('#btndocumentsave').attr('disabled', 'disabled');\r\n }\r\n\r\n $(document).off('click', '#closeLoonstrookModify');\r\n $(document).on('click', '#closeLoonstrookModify', function () {\r\n let loading = \"button[id='closeLoonstrookModify']\";\r\n APPLOYED.loonstroken.overview.load(loading);\r\n });\r\n\r\n $(document).on('keyup', '#FileName', function () {\r\n let hasFileExtension = APPLOYED.validator.hasFileExtension(this);\r\n hasFileExtension == true ? hideMessage() : showMessage();\r\n });\r\n\r\n function hideMessage(){\r\n $('.invalidFileExtension').hide();\r\n if ($(\"#File\")[0].files && $(\"#File\")[0].files[0] ||\r\n $('#DocumentId').val() > 0) {\r\n $('#btndocumentsave').removeClass('disabled');\r\n $('#btndocumentsave').removeAttr('disabled');\r\n }\r\n }\r\n\r\n function showMessage() {\r\n $('.invalidFileExtension').show();\r\n $('#btndocumentsave').addClass('disabled');\r\n $('#btndocumentsave').attr('disabled', 'disabled');\r\n }\r\n\r\n $(document).off('submit', '#loonstrookform');\r\n $(document).on('submit', '#loonstrookform', function (e) {\r\n e.preventDefault();\r\n\r\n if ($('#btndocumentsave').hasClass('disabled') ||\r\n (typeof $('#btndocumentsave').attr('disabled') !== 'undefined') && $('#btndocumentsave').attr('disabled') !== false) {\r\n APPLOYED.loader.WaitLoaderOff(\"button[id='btndocumentsave']\");\r\n return false;\r\n }\r\n\r\n var formDataTemp = new FormData();\r\n var fileTooLargeTemp = false;\r\n var file = document.getElementById('File');\r\n\r\n var { formData, fileTooLarge } = APPLOYED.file.CheckIfMaxFileSize(file, formDataTemp, fileTooLargeTemp);\r\n\r\n // do not proceed if any file is too large\r\n if (fileTooLarge) {\r\n Api.Main.displayNotify($('#FileTooLargeErrorText').val(), true);\r\n APPLOYED.loader.WaitLoaderOff(\"button[id='btndocumentsave']\");\r\n } else {\r\n\r\n $(this).find(\"input[name]\").each(function (index, node) {\r\n formData.append(node.name, node.value);\r\n });\r\n\r\n APPLOYED.loader.WaitLoaderOn(\"button[id='btndocumentsave']\");\r\n $('#btndocumentsave').attr('disabled', 'disabled');\r\n\r\n $.ajax({\r\n url: '/Ajax/ModifyLoonstroken',\r\n type: 'POST',\r\n data: formData,\r\n contentType: false,\r\n processData: false,\r\n success: function (data) {\r\n if (data.error != undefined && data.error != '') {\r\n Api.Main.displayNotify(data.error, true);\r\n }\r\n\r\n if (data.message != undefined && data.message != '') {\r\n Api.Main.displayNotify(data.message, false);\r\n }\r\n if (data.error == null) {\r\n APPLOYED.loonstroken.overview.load();\r\n }\r\n APPLOYED.loader.WaitLoaderOff(\"button[id='btndocumentsave']\");\r\n $('#btndocumentsave').removeAttr('disabled');\r\n\r\n },\r\n error: function (e) {\r\n APPLOYED.loader.WaitLoaderOff(\"button[id='btndocumentsave']\");\r\n $('#btndocumentsave').removeAttr('disabled');\r\n Api.Main.displayNotify(e, false);\r\n }\r\n });\r\n }\r\n });\r\n },\r\n /**\r\n * Open document modify screen\r\n */\r\n open: function () {\r\n $(APPLOYED.loonstroken.elements.overviewId).hide();\r\n $(APPLOYED.loonstroken.elements.modifyId).show();\r\n },\r\n /**\r\n * Close document modify screen\r\n */\r\n close: function () {\r\n $(APPLOYED.loonstroken.elements.overviewId).show();\r\n $(APPLOYED.loonstroken.elements.modifyId).hide();\r\n }\r\n },\r\n elements: {\r\n screenId: \"#loonstrokenScreen\",\r\n modifyId: \"#loonstrokenModify\",\r\n overviewId: \"#loonstrokenOverview\",\r\n contentId: \"#contentContainer\",\r\n buttonOpenId: \"#loonstrokenButton\"\r\n },\r\n params: {\r\n tableName: \"\",\r\n recordId: \"\",\r\n documentId: \"\",\r\n documentKey: \"\"\r\n },\r\n /**\r\n * Init loonstroken\r\n */\r\n init: function () {\r\n /* Bindings */\r\n $(document).off('click', APPLOYED.loonstroken.elements.buttonOpenId);\r\n $(document).on('click', APPLOYED.loonstroken.elements.buttonOpenId, function () {\r\n let buttonOpenId = APPLOYED.loonstroken.elements.buttonOpenId.substring(1, APPLOYED.loonstroken.elements.buttonOpenId.length);\r\n let loading = \"button[id='\" + buttonOpenId + \"']\";\r\n \r\n APPLOYED.loonstroken.overview.load(loading);\r\n })\r\n\r\n APPLOYED.loonstroken.CreateTaskOverviewDiv();\r\n },\r\n CreateTaskOverviewDiv: function () {\r\n $(\"\").insertBefore(APPLOYED.loonstroken.elements.contentId);\r\n },\r\n enableOpenButton: function() {\r\n if (this.checkParameters()) $(APPLOYED.loonstroken.elements.buttonOpenId).removeClass('disabled');\r\n },\r\n setParameters: function (tableName, recordId, documentId, documentKey) {\r\n this.params.tableName = tableName;\r\n this.params.recordId = recordId;\r\n this.params.loonstrookId = documentId;\r\n this.params.loonstrookKey = documentKey;\r\n },\r\n checkParameters: function() {\r\n return (\r\n this.params.tableName &&\r\n this.params.recordId\r\n );\r\n },\r\n}","APPLOYED.messages = {\r\n display: function () {\r\n if ($('#NotifyMessage').val() !== undefined && $('#NotifyMessage').val() !== '') {\r\n Api.Main.displayNotify($('#NotifyMessage').val(), false, false);\r\n }\r\n\r\n if ($('#ErrorMessage').val() !== undefined && $('#ErrorMessage').val() !== '') {\r\n Api.Main.displayNotify($('#ErrorMessage').val(), true, false);\r\n }\r\n\r\n if ($('#SuccessMessage').val() !== undefined && $('#SuccessMessage').val() !== '') {\r\n Api.Main.displayNotify($('#SuccessMessage').val(), false, true);\r\n }\r\n }\r\n}","APPLOYED.modal = {\r\n init: function () {\r\n $(document).off('click', '[data-target=\"#confirmdeletemodal\"]');\r\n $(document).on('click', '[data-target=\"#confirmdeletemodal\"]', function (e) {\r\n const modal = new mdb.Modal($('#confirmdeletemodal'));\r\n\r\n $('#confirmdeletemodal').find('#confirmdeletemodaltitle').text($(this).data('title'));\r\n $('#confirmdeletemodal').find('#confirmdeletemodalbody').text($(this).data('body'));\r\n $.each($(this).data(), function (key, value) {\r\n if (key == \"action\") {\r\n $('#confirmdeletemodal').find('#confirmdeletemodalaction').addClass(value);\r\n }\r\n else {\r\n if (key != \"title\" && key != \"body\" && key != \"toggle\" && key != \"target\") {\r\n $('#confirmdeletemodal').find('#confirmdeletemodalaction').attr(\"data-\" + key, value);\r\n $('#confirmdeletemodal').find('#confirmdeletemodalaction').data(key, value);\r\n }\r\n }\r\n });\r\n\r\n if ($(this).data('eventscripts') == undefined || $(this).data('eventscripts') == '') {\r\n APPLOYED.employees.bindActionEvents();\r\n APPLOYED.configuration.hours.bindConfigHoursActionEvents();\r\n APPLOYED.configuration.absence.bindConfigAbsenceActionEvents();\r\n APPLOYED.employees.hours.bindEmployeesActionEvents();\r\n }\r\n else {\r\n eval($(this).data('eventscripts'));\r\n }\r\n\r\n modal.show();\r\n\r\n });\r\n\r\n $('#confirmdeletemodal').unbind('hidden.mdb.modal');\r\n $('#confirmdeletemodal').bind('hidden.mdb.modal', function (e) {\r\n var deletebutton = $('#confirmdeletemodal').find('#confirmdeletemodalaction');\r\n\r\n $.each(deletebutton.data(), function (key) {\r\n $('#confirmdeletemodal').find('#confirmdeletemodalaction').removeAttr(\"data-\" + key);\r\n });\r\n deletebutton.attr('class', 'btn btn-primary bgp1');\r\n deletebutton.unbind('click');\r\n });\r\n },\r\n initPopup: function (size, keyboard, backdrop, modalId = 'modal_popup') {\r\n if ($('#' + modalId).hasClass('show')) {\r\n resetSize();\r\n return;\r\n }\r\n\r\n const myModalEl = document.getElementById(modalId)\r\n const modal = new mdb.Modal(myModalEl)\r\n\r\n if (keyboard != undefined && backdrop != undefined) {\r\n $('#' + modalId).modal({\r\n backdrop: backdrop,\r\n keyboard: keyboard\r\n });\r\n }\r\n\r\n resetSize();\r\n\r\n modal.show();\r\n\r\n function resetSize() {\r\n $('#' + modalId).removeClass(\"modal-sm\");\r\n $('#' + modalId).removeClass(\"modal-lg\");\r\n $('#' + modalId).removeClass(\"modal-xl\");\r\n $('#' + modalId).removeClass(\"modal-xxl\");\r\n\r\n switch (size) {\r\n case 'small':\r\n $('#' + modalId).addClass(\"modal-sm\");\r\n break;\r\n case 'large':\r\n $('#' + modalId).addClass(\"modal-lg\");\r\n break;\r\n case 'xlarge':\r\n $('#' + modalId).addClass(\"modal-xl\");\r\n break;\r\n case 'xxlarge':\r\n $('#' + modalId).addClass(\"modal-xxl\"); // custom made\r\n break;\r\n }\r\n }\r\n },\r\n closePopup: function (modalId = 'modal_popup') {\r\n $('#' + modalId).modal('hide');\r\n },\r\n showPopup: function (modalId = 'modal_popup') {\r\n $('#' + modalId).modal('show');\r\n }\r\n}","APPLOYED.navigation = {\r\n init: function () {\r\n $('.dropdown-menu a.dropdown-toggle').on('click', function (e) {\r\n return false;\r\n });\r\n\r\n $('#sidebar li.nav-item').on('show.bs.collapse', function () {\r\n $(\"#sidebar li.nav-item div\").each(function () {\r\n $(this).removeClass('show');\r\n });\r\n });\r\n },\r\n showSidebar: function () {\r\n $('#sidebar .nav').show();\r\n },\r\n hideSidebar: function () {\r\n $('#sidebar .nav').hide();\r\n }\r\n}","APPLOYED.notifications = {\r\n fetchTimer: 30000,\r\n firstCall = true,\r\n init: function () {\r\n // prevent issue with notifications popup closing when clicked inside\r\n $('#notifications-container .dropdown-menu').unbind('click');\r\n $('#notifications-container .dropdown-menu').on('click', function (e) {\r\n e.stopPropagation();\r\n });\r\n\r\n // download reports\r\n $('.notification-download').unbind('click');\r\n $('.notification-download').on('click', function () {\r\n let notificationid = $(this).data('notificationid');\r\n let id = $(this).attr('id');\r\n\r\n var options = {};\r\n\r\n options[\"tofadein\"] = null;\r\n options[\"loading\"] = \"a[id*='\" + id + \"']\";\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/GetReportDownloadLink\", { notificationId: notificationid }, \"GET\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n });\r\n\r\n // close notifications\r\n $('.notification-close').unbind('click');\r\n $('.notification-close').on('click', function () {\r\n let notificationid = $(this).data('notificationid');\r\n let id = $(this).attr('id');\r\n let self = this;\r\n\r\n var options = {};\r\n\r\n options[\"tofadein\"] = null;\r\n options[\"loading\"] = \"a[id*='\" + id + \"']\";\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/CloseNotification\", { notificationId: notificationid }, \"GET\", handleSuccess, null, null, options, Api.APIcaller.CancelOptions.None);\r\n\r\n function handleSuccess(response) {\r\n if (response.jsoNresults[0]) {\r\n closeNotifiction(self);\r\n }\r\n }\r\n });\r\n\r\n /**\r\n * Close notification\r\n * \r\n * @param {object} notification\r\n */\r\n function closeNotifiction(notification) {\r\n $(notification).closest('.list-group-item').slideUp(300, function () {\r\n $(this).remove();\r\n checkNotifications();\r\n });\r\n }\r\n\r\n /**\r\n * Count number of notifications. If lower than zero\r\n * change icon of notifications and disable popup\r\n */\r\n function checkNotifications() {\r\n let count = $('.notifications .list-group .list-group-item').length;\r\n\r\n if (count <= 0) {\r\n $('#dropdownNotifications').dropdown('toggle');\r\n $('#dropdownNotifications').addClass('disabled');\r\n $('#dropdownNotifications').html('');\r\n }\r\n }\r\n },\r\n initFetcher: function () {\r\n (function () {\r\n let isOpen = $('#notifications-container').find('.notifications').hasClass('show');\r\n\r\n // don't fetch if notifications popup is open. And prevent unnecesary first call, also don't get data if notification container doesn't exist\r\n if (!isOpen && !APPLOYED.notifications.firstCall && $(\"#notifications-container\").length) {\r\n var options = {};\r\n options[\"tofadein\"] = null;\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/GetMessages\", null, \"GET\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n }\r\n\r\n APPLOYED.notifications.firstCall = false;\r\n setTimeout(arguments.callee, APPLOYED.notifications.fetchTimer);\r\n })();\r\n }\r\n}","APPLOYED.pdf = {\r\n initDocumentViewer: function () {\r\n //let pdfData = $('#DocBytes').val();\r\n var pdfData = atob($('#DocBytes').val());\r\n\r\n var pdfjsLib = window['pdfjs-dist/build/pdf'];\r\n pdfjsLib.GlobalWorkerOptions.workerSrc = '/js/PDF/pdf.worker.min.js';\r\n\r\n // Using DocumentInitParameters object to load binary data.\r\n var loadingTask = pdfjsLib.getDocument({ data: pdfData });\r\n loadingTask.promise.then(function (pdf) {\r\n // Fetch the first page\r\n var pageNumber = 1;\r\n\r\n pdf.getPage(pageNumber).then(function (page) {\r\n var scale = 1.5;\r\n var viewport = page.getViewport({ scale: scale });\r\n\r\n // Prepare canvas using PDF page dimensions\r\n var canvas = document.getElementById('pdf-canvas');\r\n var context = canvas.getContext('2d');\r\n canvas.height = viewport.height;\r\n canvas.width = viewport.width;\r\n\r\n // Render PDF page into canvas context\r\n var renderContext = {\r\n canvasContext: context,\r\n viewport: viewport\r\n };\r\n\r\n var renderTask = page.render(renderContext);\r\n\r\n renderTask.promise.then(function () { });\r\n });\r\n }, function (reason) {\r\n console.error(reason);\r\n });\r\n }\r\n}","APPLOYED.picklist = {\r\n relativeOrderChanged: false,\r\n init: function () {\r\n $('.dynamicpicklist_popup_button').unbind('click');\r\n $('.dynamicpicklist_popup_button').on('click', function () {\r\n if ($(this).parent().hasClass('form-disabled')) {\r\n return false;\r\n }\r\n\r\n let name = $(this).data('name');\r\n let table = $(this).data('table');\r\n let field = $(this).data('field');\r\n\r\n var options = {};\r\n options[\"tofadein\"] = null;\r\n options[\"loading\"] = \"div[data-field='\" + field + \"']\";\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/GetDynamicPicklist\", { table: table, field: field, name: name }, \"GET\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n });\r\n\r\n $('.linkedpicklist_popup_button').unbind('click');\r\n $('.linkedpicklist_popup_button').on('click', function () {\r\n\r\n if ($(this).parent().hasClass('form-disabled')) {\r\n return false;\r\n }\r\n\r\n let name = $(this).data('name');\r\n let table = $(this).data('table');\r\n let field = $(this).data('field');\r\n let fkrecordid = $(this).data('fkrecordid');\r\n let required = $(this).data('required');\r\n let filter = $(this).data('filter');\r\n\r\n getLinkedPickList(table, field, fkrecordid, name, required, filter);\r\n \r\n });\r\n\r\n $('.linkedlooncomponentenpicklist_popup_button').unbind('click');\r\n $('.linkedlooncomponentenpicklist_popup_button').on('click', function () {\r\n if ($(this).parent().hasClass('form-disabled')) {\r\n return false;\r\n }\r\n let field = $(this).data('field');\r\n let required = $(this).data('required');\r\n let typeId = $(this).data('elementidtype');\r\n let naarEmAlsId = $('#' + typeId + '').find(':selected').val();\r\n\r\n var options = {};\r\n options[\"tofadein\"] = null;\r\n options[\"loading\"] = this;\r\n\r\n let body = {\r\n field: field,\r\n required: required,\r\n naarEmAlsId: naarEmAlsId\r\n }\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/GetLooncomponentenPicklist\", body, \"GET\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n \r\n });\r\n\r\n $('.linkeddeltalooncomponentenpicklist_popup_button').unbind('click');\r\n $('.linkeddeltalooncomponentenpicklist_popup_button').on('click', function () {\r\n let field = $(this).data('field');\r\n let required = $(this).data('required');\r\n let componentTypeId = $('#ComponentTypeId').find(':selected').val();\r\n let typeid = $(this).data('typeid');\r\n \r\n let invoerTypeId = $('#' + typeid + '').find(':selected').val();\r\n\r\n var options = {};\r\n options[\"tofadein\"] = null;\r\n options[\"loading\"] = this;\r\n\r\n let body = {\r\n field: field,\r\n required: required,\r\n componentTypeId: componentTypeId,\r\n invoerTypeId: invoerTypeId\r\n }\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/GetDeltaLooncomponentenPicklist\", body, \"GET\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n });\r\n\r\n $('.linkeduurlonerlooncomponentenpicklist_popup_button').unbind('click');\r\n $('.linkeduurlonerlooncomponentenpicklist_popup_button').on('click', function () {\r\n let field = $(this).data('field');\r\n let required = $(this).data('required');\r\n \r\n var options = {};\r\n options[\"tofadein\"] = null;\r\n options[\"loading\"] = this;\r\n\r\n let body = {\r\n field: field,\r\n required: required\r\n }\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/GetUurlonerLooncomponentenPicklist\", body, \"GET\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n });\r\n\r\n function getLinkedPickList(table, field, fkrecordid, name, required, filter) {\r\n var options = {};\r\n options[\"tofadein\"] = null;\r\n options[\"loading\"] = \"div[data-field='\" + field + \"']\";\r\n\r\n let body = {\r\n table: table,\r\n field: field,\r\n fkrecordid: fkrecordid,\r\n name: name,\r\n required: required,\r\n filter: filter\r\n }\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/GetLinkedPicklist\", body, \"GET\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n }\r\n\r\n },\r\n callback: {\r\n add: function (id, func) {\r\n if (jQuery.isFunction(func)) {\r\n APPLOYED.picklist.callback.callbacks[id] = func\r\n }\r\n },\r\n callbacks =[]\r\n },\r\n initPicklistDynamicPopup: function () {\r\n var usersession = APPLOYED.common.getUsersessionId();\r\n var table = $('#Table').val();\r\n var field = $('#Field').val();\r\n var dropdownId = $.escapeSelector($(\"div[data-field='\" + field + \"']\").data('dropdownid'));\r\n var listName = $(\"div[data-field='\" + field + \"']\").data('listname');\r\n var curSelection = $('#' + dropdownId).children('option:selected').val();\r\n var lastSelection = curSelection;\r\n\r\n setSelected(curSelection);\r\n initSort();\r\n\r\n $('#picklistInput').unbind('keyup paste copy change');\r\n $('#picklistInput').on('keyup paste copy change', function () {\r\n $(this).val($(this).val().replace(/ +/g, \" \"));\r\n\r\n toggleInputActions($(this).val());\r\n });\r\n\r\n $('#picklistInputDelete').unbind('click');\r\n $('#picklistInputDelete').on('click', function () {\r\n if (!$(this).hasClass('disabled')) {\r\n clearInput()\r\n }\r\n });\r\n\r\n $('#picklistInputAdd').unbind('click');\r\n $('#picklistInputAdd').on('click', function () {\r\n let value = $.trim($('#picklistInput').val());\r\n\r\n if ((!$(this).hasClass('disabled')) && value) {\r\n var options = {};\r\n options[\"tofadein\"] = null;\r\n options[\"loading\"] = \"span[id='picklistInputAdd']\";\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/AddPicklistValue\", { userSessionId: usersession, tablename: table, fieldname: field, value: value }, \"POST\", null, null, pickListAddSuccess, options, Api.APIcaller.CancelOptions.None);\r\n\r\n function pickListAddSuccess(response) {\r\n let key = response.jsoNresults[0];\r\n\r\n addPickListItem(key, value);\r\n updateDropdownList();\r\n }\r\n\r\n clearInput();\r\n }\r\n });\r\n\r\n $('.picklistEditInput').on('click', function () {\r\n event.stopPropagation();\r\n });\r\n\r\n $('.picklistEdit').unbind('click');\r\n $('.picklistEdit').on('click', function () {\r\n let picklistItem = $(this).closest('.picklistItem');\r\n\r\n togglePickListEdit(picklistItem, true);\r\n\r\n event.stopPropagation();\r\n });\r\n\r\n $('.picklistEditSave').unbind('click');\r\n $('.picklistEditSave').on('click', function () {\r\n var picklistItem = $(this).closest('.picklistItem');\r\n var value = $.trim(picklistItem.find('input').val());\r\n let seq = picklistItem.data('valueseq');\r\n\r\n if (value && value !== picklistItem.find('.picklistValue').text()) {\r\n var options = {};\r\n options[\"tofadein\"] = null;\r\n options[\"loading\"] = \"span[id='picklistEditSave-\" + seq + \"']\";\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/UpdatePicklistValue\", { userSessionId: usersession, tablename: table, fieldname: field, valueseq: seq, value: value }, \"POST\", null, null, pickListUpdateSuccess, options, Api.APIcaller.CancelOptions.None);\r\n\r\n function pickListUpdateSuccess(response) {\r\n let success = response.jsoNresults[0];\r\n\r\n if (success) {\r\n picklistItem.find('.picklistValue').text(value);\r\n\r\n togglePickListEdit(picklistItem, false);\r\n updateDropdownList();\r\n }\r\n }\r\n } else {\r\n togglePickListEdit(picklistItem, false);\r\n //updateDropdownList();\r\n }\r\n\r\n event.stopPropagation();\r\n });\r\n\r\n $('.picklistEditCancel ').unbind('click');\r\n $('.picklistEditCancel ').on('click', function () {\r\n let picklistItem = $(this).closest('.picklistItem');\r\n\r\n togglePickListEdit(picklistItem, false);\r\n\r\n event.stopPropagation();\r\n });\r\n\r\n $('.picklistDelete').unbind('click');\r\n $('.picklistDelete').on('click', function () {\r\n let picklistItem = $(this).closest('.picklistItem');\r\n let seq = picklistItem.data('valueseq');\r\n\r\n if (picklistItem.hasClass('selected')) {\r\n $('#confirmpicklistmodalaction').attr('disabled', true);\r\n }\r\n\r\n var options = {};\r\n options[\"tofadein\"] = null;\r\n options[\"loading\"] = \"span[id='picklistDelete-\" + seq + \"']\";\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/DeletePicklistValue\", { userSessionId: usersession, tablename: table, fieldname: field, valueseq: seq }, \"POST\", null, null, pickListDeleteSuccess, options, Api.APIcaller.CancelOptions.None);\r\n\r\n function pickListDeleteSuccess(response) {\r\n let success = response.jsoNresults[0];\r\n\r\n if (success) {\r\n picklistItem.slideUp(function () {\r\n $(this).remove();\r\n updateDropdownList();\r\n });\r\n }\r\n }\r\n\r\n event.stopPropagation();\r\n });\r\n\r\n $('.picklistItem').unbind('click');\r\n $('.picklistItem').on('click', function () {\r\n if ($(this).attr('data-editing') == 'false') {\r\n $('.picklistItem').each(function () {\r\n $(this).removeClass('selected');\r\n });\r\n\r\n $(this).addClass('selected');\r\n lastSelection = $(this).attr('data-valueseq');\r\n $('#confirmpicklistmodalaction').attr('disabled', false);\r\n }\r\n });\r\n\r\n $('.picklistItem').unbind('dblclick');\r\n $('.picklistItem').on('dblclick', function () {\r\n $('#confirmpicklistmodalaction').trigger('click');\r\n });\r\n\r\n $('#confirmpicklistmodalaction').on('click', function () {\r\n updateDropdownList(true);\r\n $('#modal_popup').modal('hide');\r\n\r\n if (APPLOYED.picklist.relativeOrderChanged) {\r\n updatePicklistRelativeOrder(table, field);\r\n }\r\n });\r\n\r\n /**\r\n * Add new item to picklist items\r\n * \r\n * @param {any} key\r\n * @param {any} value\r\n * \r\n * @returns {void}\r\n */\r\n function addPickListItem(key, value) {\r\n $('.picklistItem')\r\n .last()\r\n .clone(true)\r\n .appendTo(\"#sortableItems\")\r\n .hide().slideDown();\r\n\r\n let newItem = $('.picklistItem').last();\r\n $(newItem).removeClass('selected');\r\n $(newItem).data('valueseq', key);\r\n $(newItem).attr('data-valueseq', key);\r\n $(newItem).find('.picklistValue').text(value);\r\n $(newItem).find('.picklistDelete').attr('id', 'picklistDelete-' + key);\r\n $(newItem).find('.picklistDelete').show();\r\n $(newItem).find('.picklistEditSave').attr('id', 'picklistEditSave-' + key);\r\n }\r\n\r\n function updatePicklistRelativeOrder(tablename, fieldname) {\r\n var values = $('#modal_popup_formcontent').find('.picklistItem').map(function () {\r\n return $(this).data('valueseq');\r\n }).get();\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/UpdatePicklistRelativeOrder\", { tablename, fieldname, values }, \"POST\", null, null, null, {}, Api.APIcaller.CancelOptions.None);\r\n }\r\n\r\n /**\r\n * Set current selected iten. If selection also enable select button\r\n */\r\n function setSelected() {\r\n if (!curSelection) return false;\r\n\r\n $('#modal_popup_formcontent').find('.picklistItem').each(function () {\r\n if ($(this).attr('data-valueseq') == curSelection) {\r\n $(this).addClass('selected');\r\n $('#confirmpicklistmodalaction').attr('disabled', false);\r\n }\r\n });\r\n }\r\n\r\n function initSort() {\r\n APPLOYED.picklist.relativeOrderChanged = false;\r\n\r\n $(\"#sortableItems\").sortable({\r\n handle: \".handle\",\r\n axis: \"y\",\r\n containment: \"#modal_popup_formcontent\",\r\n change: function () {\r\n APPLOYED.picklist.relativeOrderChanged = true;\r\n }\r\n });\r\n }\r\n\r\n function refreshSort() {\r\n $(\"#sortableItems\").sortable('refresh');\r\n }\r\n\r\n /**\r\n * Update dropdownlist with current picklist values.\r\n * \r\n * @param {boolean} doSelect if true, selected value will also be selected in dropdown list\r\n * \r\n * @returns {void}\r\n */\r\n function updateDropdownList(doSelect) {\r\n var hiddenInputFields = '';\r\n var count = 0;\r\n\r\n $('#' + dropdownId).empty();\r\n if (!$('#' + dropdownId).hasClass('validation-required')) $('#' + dropdownId).append('');\r\n\r\n $('#modal_popup_formcontent').find('.picklistItem').each(function () {\r\n let selected = '';\r\n let text = $(this).find('.picklistValue').text();\r\n let valueseq = $(this).data('valueseq');\r\n\r\n if (text == '') return;\r\n\r\n if ((doSelect && $(this).hasClass('selected')) || (!doSelect && curSelection == valueseq)) {\r\n selected = 'selected=\"selected\"';\r\n }\r\n\r\n // append picklist value item as option and add hidden option\r\n let option = '';\r\n $('#' + dropdownId).append(option);\r\n $('#' + dropdownId).find('option[value=\"' + valueseq + '\"]').text(text).html();\r\n\r\n let hiddenText = (count > 0 ? '\\n' : '') + '';\r\n let hiddenValue = '\\n';\r\n\r\n hiddenInputFields += hiddenText;\r\n hiddenInputFields += hiddenValue;\r\n\r\n count++;\r\n });\r\n\r\n if (listName != \"\") {\r\n let form = $(\"input[name^='\" + listName + \"']\").first().closest('form'); // get form\r\n $(\"input[name^='\" + listName + \"']\").remove(); // remove old ones\r\n\r\n form.prepend(hiddenInputFields);\r\n }\r\n\r\n $('#' + dropdownId).trigger('change');\r\n refreshSort();\r\n }\r\n\r\n /**\r\n * Clear picklist input field \r\n * \r\n * @returns {void}\r\n */\r\n function clearInput() {\r\n $('#picklistInput').val('');\r\n toggleInputActions();\r\n }\r\n\r\n /**\r\n * Enable or disable picklist value input\r\n * \r\n * @param {any} enable\r\n * \r\n * @returns {void}\r\n */\r\n function toggleInputActions(enable) {\r\n enable = $.trim(enable);\r\n\r\n (enable ? $('#picklistInputDelete').removeClass('disabled') : $('#picklistInputDelete').addClass('disabled'));\r\n (enable ? $('#picklistInputAdd').removeClass('disabled') : $('#picklistInputAdd').addClass('disabled'));\r\n }\r\n\r\n /**\r\n * Toggle picklist item edit\r\n * \r\n * @param {any} picklistItem\r\n * @param {any} show\r\n * \r\n * @returns {void}\r\n */\r\n function togglePickListEdit(picklistItem, show) {\r\n if (show && picklistItem.hasClass('selected')) {\r\n picklistItem.removeClass('selected');\r\n $('#confirmpicklistmodalaction').attr('disabled', true);\r\n } else if (!show && picklistItem.attr('data-valueseq') == lastSelection) {\r\n picklistItem.addClass('selected');\r\n $('#confirmpicklistmodalaction').attr('disabled', false);\r\n }\r\n\r\n picklistItem.find('input').val($(picklistItem).find('.picklistValue').text());\r\n picklistItem.attr('data-editing', show);\r\n\r\n picklistItem.find('.picklistEdit').toggle(!show);\r\n picklistItem.find('.picklistValue').toggle(!show);\r\n picklistItem.find('.picklistDelete').toggle(!show);\r\n\r\n picklistItem.find('.picklistEditSave').toggle(show);\r\n picklistItem.find('.picklistEditInput').toggle(show);\r\n picklistItem.find('.picklistEditCancel').toggle(show);\r\n\r\n show ? picklistItem.addClass('pb-0 pt-2') : picklistItem.removeClass('pb-0 pt-2')\r\n }\r\n },\r\n initPicklistLinkedPopup: function () {\r\n var field = $('#Field').val();\r\n var dropdownId = $.escapeSelector($(\"div[data-field='\" + field + \"']\").data('dropdownid'));\r\n var curSelection = $('#' + dropdownId).children('option:selected').val();\r\n\r\n setSelected();\r\n\r\n $('.picklistRow').unbind('click');\r\n $('.picklistRow').on('click', function () {\r\n $('.picklistRow').each(function () {\r\n $(this).removeClass('selected');\r\n });\r\n\r\n $(this).addClass('selected');\r\n $('#confirmpicklistmodalaction').attr('disabled', false);\r\n });\r\n\r\n $('.picklistRow').unbind('dblclick');\r\n $('.picklistRow').on('dblclick', function () {\r\n closeModal();\r\n });\r\n\r\n $('#confirmpicklistmodalaction').on('click', function () {\r\n closeModal();\r\n });\r\n\r\n $('#LinkedPicklistTable').DataTable({\r\n \"dom\": '<\"wrapper\"flipt>',\r\n \"paging\": false,\r\n \"ordering\": true,\r\n \"info\": false,\r\n \"searching\": true,\r\n \"language\": APPLOYED.language.getTableLanguage()\r\n });\r\n\r\n /**\r\n * Update dropdownlist with current picklist values.\r\n * \r\n * @returns {void}\r\n */\r\n function updateDropdownList(doSelect) {\r\n $('#' + dropdownId).empty();\r\n\r\n $('#modal_popup_formcontent').find('.picklistRow').each(function () {\r\n let selected = '';\r\n let valueseq = $(this).data('recordid');\r\n let text = $(this).data('name');\r\n\r\n if ($(this).hasClass('selected')) {\r\n selected = 'selected=\"selected\"';\r\n }\r\n\r\n // append picklist value item as option and add hidden option\r\n let option = '';\r\n $('#' + dropdownId).append(option);\r\n $('#' + dropdownId).find('option[value=\"' + valueseq + '\"]').text(text).html();\r\n });\r\n\r\n $('#' + dropdownId).trigger('change');\r\n }\r\n\r\n function getData() {\r\n var data = [];\r\n\r\n $('#modal_popup_formcontent').find('.picklistRow').each(function () {\r\n if ($(this).hasClass('selected')) {\r\n $(this).find('td').each(function () {\r\n data.push($(this).html());\r\n });\r\n\r\n return true;\r\n }\r\n });\r\n\r\n return data;\r\n }\r\n\r\n function closeModal() {\r\n updateDropdownList();\r\n\r\n if (APPLOYED.picklist.callback.callbacks[field] != null) {\r\n APPLOYED.picklist.callback.callbacks[field](getData());\r\n }\r\n\r\n $('#modal_popup').modal('hide');\r\n }\r\n\r\n /**\r\n * Set current selected iten. If selection also enable select button\r\n */\r\n function setSelected() {\r\n if (!curSelection) return false;\r\n\r\n $('#modal_popup_formcontent').find('.picklistRow').each(function () {\r\n if ($(this).attr('data-recordid') == curSelection) {\r\n $(this).addClass('selected');\r\n $('#confirmpicklistmodalaction').attr('disabled', false);\r\n }\r\n });\r\n }\r\n },\r\n /**\r\n * Update the fkrecordid of a given picklist\r\n * \r\n * @param {string} dropdownid if of picklist dropdownid\r\n * @param {number} newValue new fkrecordid value\r\n * @param {boolean} clear clear select options\r\n */\r\n updateFkRecordId: function (dropdownid, newValue, clear = true) {\r\n let picklist = $('div[data-dropdownid=\"' + dropdownid + '\"]');\r\n\r\n $(picklist).data('fkrecordid', newValue);\r\n $(picklist).attr('data-fkrecordid', newValue);\r\n\r\n if (clear) $('#' + $.escapeSelector(dropdownid)).html('');\r\n }\r\n}","APPLOYED.profilepicture = {\r\n init: function () {\r\n if (document.body.getAttribute(\"data-area\").toLowerCase() == \"employees\" && APPLOYED.common.isTrue($('#IsHr').val())) {\r\n $(document).on('change', '#employeePictureFile', function () {\r\n var reader = new FileReader();\r\n\r\n reader.onload = function (e) {\r\n $('#employeePicture').attr('src', e.target.result);\r\n\r\n if (!e.target.result.startsWith('data:image')) {\r\n $('#employeePicture').attr('alt', this.files[0].name);\r\n }\r\n };\r\n\r\n var file = document.getElementById('employeePictureFile');\r\n var formData = new FormData();\r\n\r\n if (file.files.length > 0) {\r\n formData.append('image', file.files[0]);\r\n }\r\n\r\n reader.readAsDataURL(this.files[0]);\r\n\r\n formData.append(\"employeeId\", $('#employeePictureId').val());\r\n\r\n $('#employeePictureLoader').show();\r\n $('#employeePicture').hide();\r\n\r\n $.ajax({\r\n url: '/Ajax/UpdateEmployeePicture',\r\n type: 'POST',\r\n data: formData,\r\n contentType: false,\r\n processData: false,\r\n success: function (data) {\r\n if (data.error != undefined && data.error != '') {\r\n Api.Main.displayNotify(data.error, true);\r\n }\r\n\r\n if (data.message != undefined && data.message != '') {\r\n Api.Main.displayNotify(data.message, false);\r\n }\r\n\r\n if (data.error == null) {\r\n \r\n }\r\n\r\n $('#employeePictureLoader').hide();\r\n $('#employeePicture').show();\r\n },\r\n error: function (e) {\r\n $('#employeePictureLoader').hide();\r\n $('#employeePicture').show();\r\n\r\n Api.Main.displayNotify(e, false);\r\n }\r\n });\r\n });\r\n } else {\r\n // empty\r\n $('#employeePictureFile')\r\n .attr('disabled', true)\r\n .closest('label')\r\n .attr('style', '')\r\n .attr('data-original-title', '');\r\n }\r\n }\r\n}","APPLOYED.report = {\r\n recordId = null,\r\n init: function () {\r\n $(document).on('click', '.openReportModal', function () {\r\n let reportSeq = $(this).data('reportseq');\r\n let recordId = APPLOYED.report.recordId;\r\n\r\n let options = {};\r\n options[\"tofadein\"] = \"\";\r\n options[\"loading\"] = \"button[id*='reports-dropdown']\";\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/GetReport\", { ReportSeq: reportSeq, reportName: $(this).text(), recordId: recordId }, \"GET\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n });\r\n },\r\n InitReportPopup: function () {\r\n APPLOYED.validator.bindRequiredFields('#modal_popup_formcontent', '#confirmreportmodalaction');\r\n\r\n function closePopup() {\r\n $('#modal_popup').modal('hide');\r\n }\r\n\r\n // handle form submission\r\n $('#confirmreportmodalaction').on('click', function () {\r\n let params = [];\r\n let exportType = $('#exporType').val();\r\n let reportSeq = $('#reportSeq').val();\r\n\r\n if (APPLOYED.validator.checkRequiredFields('#modal_popup_formcontent', '#confirmreportmodalaction')) {\r\n $('#report_custom_params input, #report_custom_params select').each(function () {\r\n let name = $(this).data('paramname');\r\n let value = $(this).val();\r\n\r\n params.push({ ParamName: name, ParamValue: value });\r\n });\r\n\r\n let paramsJson = JSON.stringify(params);\r\n\r\n var options = {};\r\n\r\n options[\"tofadein\"] = null;\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/AddReportRun\", { reportSeq: reportSeq, filetype: exportType, reportParams: paramsJson }, \"POST\", null, null, closePopup(), options, Api.APIcaller.CancelOptions.None);\r\n }\r\n });\r\n },\r\n UpdateRecordId: function (id) {\r\n APPLOYED.report.recordId = id;\r\n }\r\n}","APPLOYED.requestStatus = {\r\n bindChangeRequestStatus: function () {\r\n self = this;\r\n\r\n $(document).off('click', \".btnrequesttransition\");\r\n $(document).on('click', \".btnrequesttransition\", function () {\r\n var allowRemark = $(this).data('allowremark');\r\n if (APPLOYED.common.isTrue(allowRemark)) {\r\n self.showRemarkPopup(this);\r\n } else {\r\n self.changeRequestStatus(this, this, false);\r\n }\r\n });\r\n },\r\n changeRequestStatus: function(btn, loadElement, forceRemarks, opmerking = null) {\r\n var statusid = $(btn).data('statusid');\r\n var tablename = $(btn).data('tablename');\r\n var employeeId = $(btn).data('employeeid');\r\n var mustReload = $(btn).data('mustreload');\r\n var remarks = \"\";\r\n var years = $(btn).data('years');\r\n\r\n var options = {};\r\n\r\n //options[\"tofadein\"] = \"div[id*='_ContainerId']\";\r\n options[\"tofadein\"] = null;\r\n options[\"loading\"] = loadElement;\r\n\r\n if (tablename == \"weekregistratie\") {\r\n if (forceRemarks) {\r\n remarks = opmerking\r\n } else {\r\n remarks = $('#WeekregistratieContainer_Weekregistratie_Opmerkingen').val();\r\n }\r\n\r\n var days = [];\r\n if (APPLOYED.common.isTrue($(btn).data('mustsavefirst'))) {\r\n var table = $('.hourstable tbody');\r\n table.find('tr').each(function () {\r\n var item = $(this);\r\n item.find('td div input.dayregistrationvalue').each(function () {\r\n var day = {\r\n dagregistratieId: $(this).data('dagregistratieid'),\r\n value: $(this).val()\r\n };\r\n days.push(day);\r\n });\r\n });\r\n }\r\n Api.APIcaller.CallAction(\"/Employees/Hours/HoursUpdateRecord\", {\r\n recordId: $('#RecordId').val(), statusId: statusid, tableName: tablename, employeeid: employeeId,\r\n mustReload: mustReload, days: days, remarks: remarks, years: years, forceRemarks: forceRemarks\r\n }, \"POST\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n }\r\n else if (tablename == \"declaraties\") {\r\n if (forceRemarks) {\r\n remarks = opmerking\r\n } else {\r\n remarks = $('#Opmerkingen').val();\r\n }\r\n\r\n var reference = $('#EigenReferentie').val();\r\n\r\n Api.APIcaller.CallAction(\"/Employees/Expenses/ExpensesUpdateRecord\", { recordId: $('#RecordId').val(), statusId: statusid, tableName: tablename, employeeid: employeeId, mustReload: mustReload, remarks: remarks, years: years, reference: reference, forceRemarks: forceRemarks }, \"POST\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n }\r\n else if (tablename == \"overurenaanvragen\") {\r\n if (forceRemarks) {\r\n remarks = opmerking\r\n } else {\r\n remarks = $('#Notitie').val();\r\n }\r\n\r\n var reden = $('#Reden').val();\r\n var uren = $('#Uren').val();\r\n var aanvraagdatum = $('#AanvraagDatum').val();\r\n var savefirst = $(btn).data('savefirst');\r\n let group = $('#Group').val();\r\n\r\n Api.APIcaller.CallAction(\"/Employees/Hours/OverTimeUpdateStatus\", {\r\n recordId: $('#RecordId').val(), statusId: statusid, tableName: tablename, employeeid: employeeId, mustReload: mustReload, savefirst: savefirst,\r\n years: years, aanvraagdatum: aanvraagdatum, uren: uren, reden: reden, notitie: remarks, group, forceRemarks: forceRemarks\r\n }, \"POST\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n }\r\n else if (tablename == \"verlof\") {\r\n if (forceRemarks) {\r\n remarks = opmerking\r\n }\r\n\r\n Api.APIcaller.CallAction(\"/Employees/Absence/AbsenceUpdateStatus\", {\r\n recordId: $('#RecordId').val(), statusId: statusid, employeeid: employeeId, mustReload: mustReload, years: years,\r\n notitie: remarks, forceRemarks: forceRemarks\r\n }, \"POST\", null, null, function () { $('#modal_popup').modal('hide'); }, options, Api.APIcaller.CancelOptions.None);\r\n }\r\n else if (tablename == \"gesprekscyclus\") {\r\n Api.APIcaller.CallAction(\"/Customer/Development/GesprekscyclusUpdateStatus\", {\r\n recordId: $('#GespreskcyclusId').val(), statusId: statusid, employeeid: employeeId, mustReload: true, isCustomer = $('#IsCustomer').val()\r\n }, \"POST\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n }\r\n },\r\n showRemarkPopup: function (btn) {\r\n self = this;\r\n\r\n var transition = $(btn).text();\r\n var table = $('#TableTranslation').val();\r\n var opmerkingen = $('#TransitionOpmerkingen').val();\r\n\r\n var options = {};\r\n options[\"tofadein\"] = \"div[id*='_ContainerId']\";\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/PopupRequestStatusRemark\", { transition, table, opmerkingen }, \"POST\", success, null, null, options, Api.APIcaller.CancelOptions.None);\r\n\r\n function success(response) {\r\n Api.APIcaller.defaultSuccessHandler(response);\r\n\r\n if (!response.hasErrorText) {\r\n APPLOYED.modal.initPopup();\r\n\r\n $('#confirmtransition').unbind('click');\r\n $('#confirmtransition').bind('click', function () {\r\n var opmerking = $('#EditOpmerkingen').val();\r\n self.changeRequestStatus(btn, this, true, opmerking);\r\n });\r\n }\r\n }\r\n }\r\n}","APPLOYED.search = {\r\n init: function () {\r\n APPLOYED.search.initSearchMedewerker();\r\n APPLOYED.search.initSearchDropdown();\r\n APPLOYED.search.initSearchOveriew();\r\n APPLOYED.search.initSearchWithCheckBoxBtn();\r\n\r\n // search-input border styling\r\n $('#searchinputbox').on('focus', function () {\r\n $('.search-icon').css('border-color', '#fc833f');\r\n });\r\n\r\n $('#searchinputbox').on('focusout', function () {\r\n $('.search-icon').css('border-color', '');\r\n });\r\n },\r\n initSearchMedewerker: function () {\r\n $('#searchmedewerker').mousemove(function () {\r\n $('#searchmedewerker').css('cursor', ($('#searchmedewerker').width() - (event.pageX - $(this).offset().left) < 20 ? 'pointer' : 'text'));\r\n });\r\n\r\n $('#searchmedewerker').on('focus', function () {\r\n var options = {};\r\n options[\"tofadein\"] = null;\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/LoadEmployeesFiltered\", { employeeName: \"\", baseUrl: $('#searchmedewerker_baseurl').data('url') }, \"GET\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n });\r\n\r\n $('#searchmedewerker_btn').on('shown.bs.dropdown', function () {\r\n $(\"#searchmedewerker\").focus();\r\n })\r\n\r\n $('#searchmedewerker_btn').on('hidden.bs.dropdown', function () {\r\n\r\n $('#searchmedewerker').val(\"\");\r\n $(\"#searchmedewerker_result a.dropdown-item.disabled\").hide();\r\n })\r\n\r\n $('#searchmedewerker').unbind('keyup paste copy');\r\n $('#searchmedewerker').bind('keyup paste copy', function (e) {\r\n if (e.keyCode == 40) {\r\n if ($(\"#searchmedewerker_result\").html().length > 0) {\r\n $(\"#searchmedewerker_result .dropdown-item:first\").focus();\r\n return false;\r\n }\r\n }\r\n else {\r\n if ($(\"#searchmedewerker_result a\").length > 0) {\r\n var value = $(this).val().toLowerCase();\r\n $(\"#searchmedewerker_result a\").filter(function () {\r\n $(this).toggle($(this).text().toLowerCase().indexOf(value) > -1)\r\n });\r\n }\r\n\r\n if ($('#searchmedewerker_result a[class=\"dropdown-item\"]:not(.disabled):visible').length === 0) {\r\n $(\"#searchmedewerker_result a.dropdown-item.disabled\").removeAttr('style');\r\n }\r\n else {\r\n $(\"#searchmedewerker_result a.dropdown-item.disabled\").hide();\r\n }\r\n\r\n return false;\r\n }\r\n });\r\n },\r\n initSearchDropdown: function () {\r\n $('#dropdownsearch').mousemove(function () {\r\n $('#dropdownsearch').css('cursor', ($('#dropdownsearch').width() - (event.pageX - $(this).offset().left) < 20 ? 'pointer' : 'text'));\r\n });\r\n\r\n $('#dropdownsearch_btn').on('shown.bs.dropdown', function () {\r\n $(\"#dropdownsearch\").focus();\r\n })\r\n\r\n $('#dropdownsearch_btn').on('hidden.bs.dropdown', function () {\r\n $(\"#dropdownsearch_result a.dropdown-item.disabled\").hide();\r\n })\r\n\r\n /*$('#dropdownsearch').unbind('keyup paste copy');*/\r\n $('#dropdownsearch').bind('keyup paste copy', function (e) {\r\n if (e.keyCode == 40) {\r\n if ($(\"#dropdownsearch_result\").html().length > 0) {\r\n $(\"#dropdownsearch_result .dropdown-item:first\").focus();\r\n\r\n return false;\r\n }\r\n }\r\n else {\r\n if ($(\"#dropdownsearch_result a\").length > 0) {\r\n var value = $(this).val().toLowerCase();\r\n\r\n $(\"#dropdownsearch_result a\").filter(function () {\r\n $(this).toggle($(this).text().toLowerCase().indexOf(value) > -1)\r\n });\r\n }\r\n\r\n if ($('#dropdownsearch_result a[class*=\"dropdown-item\"]:not(.disabled):visible').length === 0) {\r\n $(\"#dropdownsearch_result a.dropdown-item.disabled\").removeAttr('style');\r\n }\r\n else {\r\n $(\"#dropdownsearch_result a.dropdown-item.disabled\").hide();\r\n }\r\n }\r\n\r\n return false;\r\n });\r\n },\r\n initSearchOveriew: function () {\r\n $(document).off('keyup', '#searchinputbox');\r\n $(document).on('keyup', '#searchinputbox', function () {\r\n var value = $(this).val().toLowerCase();\r\n $(\"#searchlist div[data-searchtext]\").filter(function () {\r\n $(this).toggle($(this).text().toLowerCase().indexOf(value) > -1);\r\n });\r\n $(\"#searchlist div[data-searchtextt]\").filter(function () {\r\n $(this).toggle($(this).data(\"searchtextt\").toLowerCase().indexOf(value) > -1);\r\n });\r\n });\r\n\r\n $(document).off('focus blur', '#searchinputbox');\r\n $(document).on('focus', '#searchinputbox', function () {\r\n $(this).parent().find('span').addClass('textboxorangeshadow');\r\n });\r\n\r\n $(document).on('blur', '#searchinputbox', function () {\r\n $(this).parent().find('span').removeClass('textboxorangeshadow');\r\n });\r\n },\r\n initSearchWithCheckBoxBtn: function () { // cm ... component usage.\r\n const container = '.cm-dropdownMultiSelectContainer';\r\n const input = '.dropdownSearchInput';\r\n const searchContainer = '.dropdown-searchResult';\r\n\r\n $(input).mousemove(function () {\r\n $(input).css('cursor', ($(input).width() - (event.pageX - $(this).offset().left) < 20 ? 'pointer' : 'text'));\r\n });\r\n\r\n $(input).on('focus', function () {\r\n var options = {};\r\n options[\"tofadein\"] = null;\r\n });\r\n\r\n $(input).unbind('keyup paste copy');\r\n $(input).bind('keyup paste copy', function (e) {\r\n var searchResultItems = $(this).closest(container).find(searchContainer).children();\r\n \r\n if (searchResultItems.length > 0) {\r\n var value = $(this).val().toLowerCase();\r\n \r\n $(searchResultItems).filter(function () {\r\n $(this).toggle($(this).find('label').text().toLowerCase().indexOf(value) > -1)\r\n });\r\n }\r\n\r\n return false;\r\n });\r\n },\r\n}","APPLOYED.session = {\r\n fetchTimer: 30000,\r\n firstCall = true,\r\n initFetcher: function () {\r\n (function () {\r\n // skip first call. Don't waste resources when page is loading other components.\r\n if (!APPLOYED.session.firstCall) {\r\n var options = {};\r\n options[\"tofadein\"] = null;\r\n\r\n Api.APIcaller.CallAction(\"/Auth/Session/IsSessionAlive\", null, \"GET\", null, null, finished, options, Api.APIcaller.CancelOptions.None);\r\n\r\n function finished(e) {\r\n if (e && e.jsoNresults && e.jsoNresults[0] == false) {\r\n window.location.replace(window.location.href)\r\n }\r\n }\r\n }\r\n\r\n APPLOYED.session.firstCall = false;\r\n setTimeout(arguments.callee, APPLOYED.session.fetchTimer);\r\n })();\r\n }\r\n}","APPLOYED.table = {\r\n dataTable: function (element, hasPaging, hasOrdering, hasInfo, hasSearch, columDefs, order) {\r\n //Create an array with the values of all the checkboxes in a column \r\n $.fn.dataTable.ext.order['dom-checkbox'] = function (settings, col) {\r\n return this.api().column(col, { order: 'index' }).nodes().map(function (td, i) {\r\n return $('input', td).prop('checked') ? '1' : '0';\r\n });\r\n };\r\n\r\n var table = element.DataTable({\r\n \"dom\": '<\"wrapper\"flipt>',\r\n \"paging\": hasPaging,\r\n \"ordering\": hasOrdering,\r\n \"info\": hasInfo,\r\n \"searching\": hasSearch,\r\n \"columnDefs\": columDefs,\r\n \"language\": APPLOYED.language.getTableLanguage(),\r\n \"order\": order\r\n });\r\n\r\n $(element).find('tbody').on('click', 'tr', function () {\r\n APPLOYED.table.selectTableClass(table, this);\r\n });\r\n },\r\n selectTableClass: function (table, e) {\r\n if ($(e).hasClass('selected')) {\r\n $(e).removeClass('selected');\r\n }\r\n else {\r\n table.$('tr.selected').removeClass('selected');\r\n $(e).addClass('selected');\r\n }\r\n }\r\n}","APPLOYED.tableOverview = {\r\n disableRowSelect: false,\r\n altUpdateEditLink: null,\r\n altUpdateDeleteAction: null,\r\n init: function (extraParentfunction) {\r\n $(document).off('click', '.btn-save');\r\n $(document).on('click', '.btn-save', function (e) {\r\n if ($('#Copy').val() && $('#PreviousRecordOpenEndDate').val()) {\r\n if (APPLOYED.common.isTrue($('#Copy').val().toLowerCase()) && APPLOYED.common.isTrue($('#PreviousRecordOpenEndDate').val().toLowerCase())) {\r\n e.preventDefault();\r\n\r\n let startDate = $('#Startdatum').val();\r\n\r\n let options = {};\r\n options[\"tofadein\"] = null;\r\n options[\"loading\"] = this;\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/GetCopyRecordDatePopup\", { date: startDate }, \"POST\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n }\r\n } else {\r\n APPLOYED.loader.WaitLoaderOn(\"button[class*='btn-save']\");\r\n }\r\n });\r\n\r\n $(document).on('click', '.toprow', function () {\r\n clickRow(this, false);\r\n });\r\n\r\n $(document).on('click', '.row-toggle', function (e) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n\r\n let parent = $(this).parent();\r\n\r\n clickRow(parent, true);\r\n });\r\n\r\n $('#letters-dropdown').attr('disabled', true);\r\n\r\n let rId = APPLOYED.url.getQueryParam('rid');\r\n\r\n if (rId) {\r\n $('.overviewtable').find('.toprow[data-tableid=\"' + rId + '\"]').trigger('click');\r\n }\r\n\r\n function clickRow(row, forceToggle) {\r\n var isClosed = $(row).parent().hasClass(\"row-collapsed\");\r\n var isSelected = $(row).hasClass(\"selectedRow\");\r\n\r\n if (forceToggle || isClosed || (isSelected || APPLOYED.tableOverview.disableRowSelect)) {\r\n toggleRow(row);\r\n }\r\n\r\n if (!APPLOYED.tableOverview.disableRowSelect) {\r\n APPLOYED.tableOverview.selectRow(row, extraParentfunction);\r\n\r\n let table = $(row).data('table');\r\n let tableGuid = $(row).data('tableguid');\r\n let tableId = $(row).data('tableid');\r\n let keyName = $(row).data('keyname');\r\n let keyValue = $(row).data('keyvalue');\r\n let tableseq = $(row).data('tableseq');\r\n\r\n APPLOYED.tasks.setParameters(table, tableGuid, tableId, keyName, keyValue, tableseq);\r\n APPLOYED.tasks.enableOpenButton(row);\r\n }\r\n }\r\n\r\n function toggleRow(e, toggleClicked = true) {\r\n if ($(e).parent().hasClass(\"row-collapsed\")) {\r\n openRow(e);\r\n } else if (toggleClicked) {\r\n closeRow(e);\r\n }\r\n }\r\n\r\n function openRow(e) {\r\n $(e).parent().removeClass(\"row-collapsed\");\r\n $(e).find(\".closed\").hide();\r\n $(e).find(\".opened\").show();\r\n }\r\n\r\n function closeRow(e) {\r\n $(e).parent().addClass(\"row-collapsed\");\r\n $(e).find(\".closed\").show();\r\n $(e).find(\".opened\").hide();\r\n }\r\n },\r\n\r\n selectRow: function (e, extraParentfunction) {\r\n $('.toprow').removeClass('selectedRow');\r\n $(e).addClass('selectedRow');\r\n\r\n let tableid = $(e).data('tableid');\r\n\r\n updateEditLink(e, tableid);\r\n updateCopyLink(e, tableid);\r\n\r\n if (extraParentfunction != undefined)\r\n {\r\n eval(extraParentfunction(tableid));\r\n }\r\n\r\n updateDeleteAction(e, tableid);\r\n updateLetterAction(tableid);\r\n APPLOYED.report.UpdateRecordId(tableid);\r\n\r\n function updateEditLink(e, id) {\r\n if (APPLOYED.tableOverview.altUpdateEditLink != null) {\r\n return APPLOYED.tableOverview.altUpdateEditLink(e, id);\r\n }\r\n\r\n let link = $(e).closest('.tab-content').find('#editlink').attr('href');\r\n\r\n if (link == undefined) {\r\n return false;\r\n }\r\n\r\n let replacePatern = /\\/\\d+/gm;\r\n let regexp = new RegExp(replacePatern, \"g\");\r\n\r\n $(e).closest('.tab-content').find('#editlink').attr('href', link.replace(regexp, '/' + id));\r\n $(e).closest('.tab-content').find('#editlink').removeClass('disabled');\r\n }\r\n\r\n function updateCopyLink(e, id) {\r\n let link = $(e).closest('.tab-content').find('.copyaction').attr('href');\r\n\r\n if (link == undefined) {\r\n return false;\r\n }\r\n\r\n let replacePatern = /\\/\\d+/gm;\r\n let regexp = new RegExp(replacePatern, \"g\");\r\n\r\n $(e).closest('.tab-content').find('.copyaction').attr('href', link.replace(regexp, '/' + id));\r\n $(e).closest('.tab-content').find('.copyaction').removeClass('disabled');\r\n }\r\n\r\n function updateDeleteAction(e, id) {\r\n if (APPLOYED.tableOverview.altUpdateDeleteAction != null) {\r\n return APPLOYED.tableOverview.altUpdateDeleteAction(e, id);\r\n }\r\n\r\n $(e).closest('.tab-content').find('.deleteaction').removeClass('disabled');\r\n $(e).closest('.tab-content').find('.deleteaction').data('record', id);\r\n }\r\n\r\n function updateLetterAction(id) {\r\n $('#letters-dropdown').attr('disabled', false);\r\n APPLOYED.letter.recordId = id;\r\n }\r\n },\r\n initCopyPopup: function () {\r\n $(document).off('click', '#confirm-no');\r\n $(document).on('click', '#confirm-no', function () {\r\n $('#ClosePreviousRecord').val(false);\r\n\r\n submitForm();\r\n });\r\n\r\n $(document).off('click', '#confirm-yes');\r\n $(document).on('click', '#confirm-yes', function () {\r\n $('#ClosePreviousRecord').val(true);\r\n\r\n submitForm();\r\n });\r\n\r\n function submitForm() {\r\n $('form').submit();\r\n }\r\n },\r\n deleteEvent: function () {\r\n $(document).off('click', '.btndeleterecord');\r\n $(document).on('click', '.btndeleterecord', function () {\r\n let recordid = $('.deleteaction').data('record');\r\n let employeeid = $('.deleteaction').data('employeeid');\r\n let section = $('.deleteaction').data('section');\r\n let parentId = $('.deleteaction').data('parentid');\r\n let returnFilter = $('#Filter').val();\r\n\r\n let options = {};\r\n options[\"tofadein\"] = null;\r\n options[\"loading\"] = this;\r\n\r\n Api.APIcaller.CallAction(section, { recordid: recordid, employeeid: employeeid, parentid: parentId, filter: returnFilter }, \"POST\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n });\r\n },\r\n checkboxes = {\r\n checkAll(btnid = null) {\r\n let checked = $('#Check_all').is(':checked');\r\n $('[id*=\"Check_row_\"]').prop('checked', checked);\r\n APPLOYED.tableOverview.checkboxes.checkEnableUitvoeren(btnid);\r\n },\r\n checkRow(btnid = null) {\r\n let checked = $(this).is(':checked');\r\n APPLOYED.tableOverview.checkboxes.checkIndeterminate(checked);\r\n APPLOYED.tableOverview.checkboxes.checkEnableUitvoeren(btnid);\r\n },\r\n checkIndeterminate() {\r\n let allCheckBoxes = $('[id*=\"Check_row_\"]');\r\n let allUnchecked = allCheckBoxes.not(':checked');\r\n\r\n let checkboxAll = $('#Check_all');\r\n checkboxAll.prop('disabled', allCheckBoxes.length == 0);\r\n\r\n if (allCheckBoxes.length == 0) {\r\n checkboxAll.prop('indeterminate', false);\r\n checkboxAll.prop('checked', false);\r\n } else if (allUnchecked.length == 0) {\r\n checkboxAll.prop('indeterminate', false);\r\n checkboxAll.prop('checked', true);\r\n } else if (allUnchecked.length == allCheckBoxes.length) {\r\n checkboxAll.prop('indeterminate', false);\r\n checkboxAll.prop('checked', false);\r\n } else {\r\n let isIndeterminate = checkboxAll.is('indeterminate');\r\n if (!isIndeterminate) {\r\n checkboxAll.prop('checked', false);\r\n checkboxAll.prop('indeterminate', true);\r\n }\r\n }\r\n },\r\n checkEnableUitvoeren(btnid) {\r\n if (btnid != null) {\r\n var enabled = APPLOYED.tableOverview.checkboxes.isEnabled();\r\n $(btnid).prop('disabled', !enabled);\r\n }\r\n },\r\n isEnabled() {\r\n let allCheckBoxes = $('[id*=\"Check_row_\"]');\r\n let allChecked = allCheckBoxes.filter(':checked');\r\n let enabled = (allChecked.length > 0);\r\n\r\n return enabled;\r\n }\r\n }\r\n}","APPLOYED.tasks = {\r\n overview = {\r\n /** \r\n * Load tasks overview screen\r\n * \r\n * @param {string} loading element pointer of loading icon\r\n * @param {number} filter tasks overview filter \r\n * @param {boolean} tableOnly only load table\r\n */\r\n load: function (loading, filter = -1, tableOnly = false) {\r\n let options = {};\r\n options[\"tofadein\"] = null;\r\n options[\"loading\"] = loading;\r\n\r\n let body = {\r\n table: APPLOYED.tasks.params.table,\r\n tableGuid: APPLOYED.tasks.params.tableGuid,\r\n tableId: APPLOYED.tasks.params.tableId,\r\n parentKeyName: APPLOYED.tasks.params.keyName,\r\n parentKeyValue: APPLOYED.tasks.params.keyValue,\r\n filter: filter,\r\n tableOnly: tableOnly\r\n };\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/GetTasksScreen\", body, \"GET\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n },\r\n /**\r\n * Initialize overview screen binding and functions\r\n */\r\n init: function () {\r\n APPLOYED.loader.ClearLoaderList(); // fix for loader not being deleted from loading list\r\n APPLOYED.navigation.hideSidebar();\r\n APPLOYED.tooltip.hideAll(); // fix tooltip staying visible when opening tasks screen\r\n\r\n APPLOYED.tasks.modify.close();\r\n APPLOYED.tasks.overview.open();\r\n\r\n /* Bindings */\r\n $(document).off('click', APPLOYED.tasks.elements.buttonCloseId);\r\n $(document).on('click', APPLOYED.tasks.elements.buttonCloseId, function () {\r\n APPLOYED.tasks.overview.close();\r\n APPLOYED.navigation.showSidebar();\r\n })\r\n\r\n $(document).off('click', '.tasktoprow');\r\n $(document).on('click', '.tasktoprow', function () {\r\n toggleRow(this, false);\r\n selectRow(this);\r\n });\r\n\r\n $(document).off('click', '.taskrow-toggle');\r\n $(document).on('click', '.taskrow-toggle', function (e) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n\r\n let parent = $(this).parent();\r\n\r\n toggleRow(parent);\r\n });\r\n\r\n $(document).off('click', '.taskFilter');\r\n $(document).on('click', '.taskFilter', function () {\r\n var filterSeq = $(this).val();\r\n\r\n $(\".taskFilter\").each(function () {\r\n if ($(this).val() != filterSeq) {\r\n $(this).prop('checked', false);\r\n }\r\n });\r\n\r\n let loading = \"div[id='tasksFilterIcon']\";\r\n APPLOYED.tasks.overview.load(loading, filterSeq, true);\r\n });\r\n\r\n $(document).off('click', '#taskAdd');\r\n $(document).on('click', '#taskAdd', function () {\r\n let loading = \"div[id='tasksDropdownMenu']\";\r\n\r\n APPLOYED.tasks.modify.load(loading);\r\n });\r\n\r\n $(document).off('click', '#taskeditlink');\r\n $(document).on('click', '#taskeditlink', function (e) {\r\n e.preventDefault();\r\n\r\n let taskid = $(this).data('taskid');\r\n\r\n let loading = \"div[id='taskeditlinkloadingwrapper']\";\r\n APPLOYED.tasks.modify.load(loading, taskid);\r\n });\r\n\r\n $(document).off('click', '#taskdelete');\r\n $(document).on('click', '#taskdelete', function () {\r\n let title = $('#taskdelete').data('title');\r\n let body = $('#taskdelete').data('body');\r\n\r\n $('#confirmdeletemodaltitle').html(title);\r\n $('#confirmdeletemodalbody').html(body);\r\n\r\n $('#confirmdeletemodalaction').one('click', function () {\r\n $('#confirmdeletemodal').modal('hide');\r\n\r\n let taskid = $('#taskdelete').data('taskid');\r\n APPLOYED.tasks.overview.delete(taskid);\r\n });\r\n\r\n $('#confirmdeletemodal').modal('show');\r\n $('#confirmdeletemodal').one('hidden.bs.modal', function () {\r\n unbindDeleteModal();\r\n });\r\n });\r\n\r\n /* functions */\r\n\r\n /**\r\n * Unbind delete action of modal\r\n */\r\n function unbindDeleteModal() {\r\n $('#confirmdeletemodalaction').off('click');\r\n $('#confirmdeletemodalaction').unbind('click');\r\n }\r\n\r\n /**\r\n * Toggle row collapsed or opened\r\n * \r\n * @param {object} e element clicked row\r\n * @param {boolean} toggleClicked toggle on or off\r\n */\r\n function toggleRow(e, toggleClicked = true) {\r\n if ($(e).parent().hasClass(\"taskrow-collapsed\")) {\r\n openRow(e);\r\n } else if (toggleClicked) {\r\n closeRow(e);\r\n }\r\n }\r\n\r\n /**\r\n * Set row as selected\r\n * \r\n * @param {object} e element to set as selectedTaskRow\r\n */\r\n function selectRow(e) {\r\n $('.tasktoprow').removeClass('selectedTaskRow');\r\n $(e).addClass('selectedTaskRow');\r\n\r\n let taskid = $(e).data('taskid');\r\n\r\n if (taskid) {\r\n $('#taskeditlink').removeClass('disabled');\r\n $('#taskeditlink').data('taskid', taskid);\r\n $('#taskeditlink').attr('data-taskid', taskid);\r\n\r\n $('#taskdelete').removeClass('disabled');\r\n $('#taskdelete').data('taskid', taskid);\r\n $('#taskdelete').attr('data-taskid', taskid);\r\n }\r\n }\r\n\r\n /**\r\n * Open row\r\n * \r\n * @param {object} e element of clicked row\r\n */\r\n function openRow(e) {\r\n $(e).parent().removeClass(\"taskrow-collapsed\");\r\n $(e).find(\".closed\").hide();\r\n $(e).find(\".opened\").show();\r\n }\r\n\r\n /**\r\n * Close row\r\n * \r\n * @param {object} e element of clicked row\r\n */\r\n function closeRow(e) {\r\n $(e).parent().addClass(\"taskrow-collapsed\");\r\n $(e).find(\".closed\").show();\r\n $(e).find(\".opened\").hide();\r\n }\r\n },\r\n /**\r\n * Delete a task by id\r\n * \r\n * @param {number} taskId id of task being deleted\r\n */\r\n delete: function (taskId) {\r\n var loading = \"div[id='tasksDropdownMenu']\";\r\n\r\n if (taskId) {\r\n let options = {};\r\n options[\"tofadein\"] = null;\r\n options[\"loading\"] = loading;\r\n\r\n let body = {\r\n tableSeq: APPLOYED.tasks.params.tableSeq,\r\n linkRecordId: APPLOYED.tasks.params.tableId,\r\n linkRowGuid: APPLOYED.tasks.params.tableGuid,\r\n taskId: taskId\r\n };\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/DeleteTask\", body, \"GET\", completeHandler(), null, null, options, Api.APIcaller.CancelOptions.None);\r\n }\r\n\r\n function completeHandler() {\r\n setTimeout(function () { APPLOYED.tasks.overview.load(loading); }, 500);\r\n }\r\n },\r\n /**\r\n * Open tasks overview\r\n */\r\n open: function () {\r\n $(APPLOYED.tasks.elements.screenId).show();\r\n $(APPLOYED.tasks.elements.contentId).hide();\r\n },\r\n /**\r\n * Close tasks overview\r\n */\r\n close: function () {\r\n $(APPLOYED.tasks.elements.screenId).hide();\r\n $(APPLOYED.tasks.elements.contentId).show();\r\n }\r\n },\r\n modify = {\r\n /**\r\n * Load task modify screen\r\n * \r\n * @param {string} loading element of loading icon container\r\n * @param {number|null} taskid task id being modified\r\n */\r\n load: function (loading, taskid = 0) {\r\n let options = {};\r\n options[\"tofadein\"] = null;\r\n options[\"loading\"] = loading;\r\n\r\n let body = {\r\n tableSeq: APPLOYED.tasks.params.tableSeq,\r\n linkRecordId: APPLOYED.tasks.params.tableId,\r\n linkRowGuid: APPLOYED.tasks.params.tableGuid,\r\n taskId: taskid\r\n };\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/GetTasksModifyScreen\", body, \"GET\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n },\r\n /**\r\n * Initialize task modify bindings and functions\r\n */\r\n init: function () {\r\n APPLOYED.tasks.modify.open();\r\n APPLOYED.common.initValidation();\r\n FormValidationService.InitializeDatePicker();\r\n\r\n $(document).off('click', '#closeTaskModify');\r\n $(document).on('click', '#closeTaskModify', function () {\r\n let loading = \"button[id='closeTaskModify']\";\r\n APPLOYED.tasks.overview.load(loading);\r\n });\r\n\r\n $(document).off('submit', '#taskform');\r\n $(document).on('submit', '#taskform', function (e) {\r\n e.preventDefault();\r\n\r\n var model = {};\r\n $.each($(this).serializeArray(), function () {\r\n model[this.name] = this.value;\r\n });\r\n\r\n let options = {};\r\n options[\"tofadein\"] = null;\r\n options[\"loading\"] = \"button[id='btntasksave']\";\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/ModifyTask\", { model: model }, \"POST\", succes, null, null, options, Api.APIcaller.CancelOptions.None);\r\n\r\n function succes() {\r\n APPLOYED.tasks.overview.load();\r\n }\r\n });\r\n },\r\n /**\r\n * Open task modify screen\r\n */\r\n open: function () {\r\n $(APPLOYED.tasks.elements.overviewId).hide();\r\n $(APPLOYED.tasks.elements.modifyId).show();\r\n },\r\n /**\r\n * Close task modify screen\r\n */\r\n close: function () {\r\n $(APPLOYED.tasks.elements.overviewId).show();\r\n $(APPLOYED.tasks.elements.modifyId).hide();\r\n }\r\n },\r\n elements: {\r\n screenId: \"#tasksScreen\",\r\n modifyId: \"#tasksModify\",\r\n overviewId: \"#tasksOverview\",\r\n contentId: \".contentContainer\",\r\n buttonOpenId: \"#tasksButton\",\r\n buttonCloseId: \"#tasksCloseButton\",\r\n },\r\n params: {\r\n table: \"\",\r\n tableGuid: \"\",\r\n tableId: \"\",\r\n keyName: \"\",\r\n keyValue: \"\",\r\n tableSeq: \"\"\r\n },\r\n /**\r\n * Init tasks\r\n */\r\n init: function () {\r\n /* Bindings */\r\n $(document).off('click', APPLOYED.tasks.elements.buttonOpenId);\r\n $(document).on('click', APPLOYED.tasks.elements.buttonOpenId, function () {\r\n let buttonOpenId = APPLOYED.tasks.elements.buttonOpenId.substring(1, APPLOYED.tasks.elements.buttonOpenId.length);\r\n let loading = \"button[id='\" + buttonOpenId + \"']\";\r\n\r\n APPLOYED.tasks.overview.load(loading);\r\n })\r\n APPLOYED.tasks.CreateTaskOverviewDiv();\r\n \r\n },\r\n CreateTaskOverviewDiv: function () {\r\n $(\"\").insertBefore(APPLOYED.tasks.elements.contentId);\r\n },\r\n /**\r\n * Enable tasks screen to be opened by button\r\n */\r\n enableOpenButton: function (e) {\r\n if (e != null) {\r\n if (this.checkParameters()) $(e).closest('.tab-content').find(APPLOYED.tasks.elements.buttonOpenId).removeClass('disabled');\r\n } else {\r\n if (this.checkParameters()) $(APPLOYED.tasks.elements.buttonOpenId).removeClass('disabled');\r\n }\r\n },\r\n /**\r\n * Set required tasks parameters\r\n * \r\n * @param {string} table\r\n * @param {string} guid\r\n * @param {number} id\r\n * @param {string} keyName\r\n * @param {string} keyValue\r\n * @param {number} tableSeq\r\n */\r\n setParameters: function (table, guid, id, keyName, keyValue, tableSeq) {\r\n this.params.table = table;\r\n this.params.tableGuid = guid;\r\n this.params.tableId = id;\r\n this.params.keyName = keyName;\r\n this.params.keyValue = keyValue;\r\n this.params.tableSeq = tableSeq;\r\n },\r\n /**\r\n * Check if parameters are valid\r\n */\r\n checkParameters: function() {\r\n return (\r\n this.params.table &&\r\n this.params.tableGuid &&\r\n this.params.tableId &&\r\n this.params.keyName &&\r\n this.params.keyValue &&\r\n this.params.tableSeq\r\n );\r\n }\r\n}","APPLOYED.time = {\r\n // Regexp for Time - Hours combination\r\n timeRegExpTH: /^(\\<\\s*)?((?:\\d\\d?\\:\\d\\d)|(?:\\d\\d?\\d?\\d?))((\\s*(?:\\s|-)\\s*)(\\d\\d?(?:\\.\\d?\\d?)?)?)?$/,\r\n\r\n // Regexp for Time - Time combination\r\n timeRegExpTT: /^(\\#\\s*)?(\\<\\s*)?((?:\\d\\d?\\:\\d\\d)|(?:\\d\\d?\\d?\\d?))((\\s*(?:\\s|-)\\s*)((?:\\d\\d?\\:\\d\\d)|(?:\\d\\d?\\d?\\d?))?)?$/,\r\n\r\n getTimeHourParts: function (value) {\r\n var match = value.match(APPLOYED.time.timeRegExpTH);\r\n\r\n if (match == null) {\r\n return null;\r\n }\r\n\r\n var parts = {\r\n startOpVorigeDag: match[1] ? match[1].trim().length > 0 : false,\r\n starttijd: match[2] ? match[2] : null,\r\n werkuren: match[5] ? parseFloat(match[5].replace(',', '.')) : null\r\n };\r\n\r\n return parts;\r\n },\r\n\r\n getTimeParts: function (value) {\r\n if (typeof value != 'string') {\r\n return null;\r\n }\r\n\r\n var match = value.match(APPLOYED.time.timeRegExpTT);\r\n\r\n if (match == null) {\r\n return null;\r\n }\r\n\r\n var parts = {\r\n extraPlanningsdag: match[1] ? match[1].trim().length > 0 : false,\r\n startOpVorigeDag: match[2] ? match[2].trim().length > 0 : false,\r\n starttijd: match[3] ? match[3] : null,\r\n eindtijd: match[6] ? match[6] : null\r\n };\r\n\r\n return parts;\r\n },\r\n\r\n formatTime: function (value) {\r\n if (typeof value == 'string') {\r\n var hours = \"00\";\r\n var minutes = \"00\";\r\n\r\n var parts = value.split(':', 2);\r\n if (parts.length == 1) {\r\n if (parts[0].length <= 2) {\r\n hours = (hours + parts[0]).slice(-2);\r\n } else {\r\n minutes = parts[0].slice(-2);\r\n hours = (hours + parts[0].substr(0, parts[0].length - 2)).slice(-2);\r\n }\r\n } else {\r\n hours = (hours + parts[0]).slice(-2);\r\n minutes = (minutes + parts[1]).slice(-2);\r\n }\r\n\r\n return hours + ':' + minutes;\r\n }\r\n\r\n if (typeof value == 'undefined' || value == null) {\r\n return value;\r\n }\r\n\r\n return value.toString();\r\n },\r\n\r\n calcHours: function (starttijd, eindtijd) {\r\n var starthm = starttijd.split(':');\r\n var eindhm = eindtijd.split(':');\r\n var startdatum = new Date(2000, 1, 1, parseInt(starthm[0]), parseInt(starthm[1]));\r\n var einddatum = new Date(2000, 1, 1, parseInt(eindhm[0]), parseInt(eindhm[1]));\r\n\r\n if (einddatum < startdatum) {\r\n einddatum = DateService.AddDays(einddatum, 1);\r\n }\r\n\r\n var ms = Math.abs(einddatum - startdatum);\r\n var hours = ms / (60 * 60 * 1000);\r\n return hours;\r\n },\r\n\r\n showWeekroosterTimePopup: function (validateHandler, updateHandler, aantalWeken, startdag, einddag, starttijd, uren, startOpVorigeDag) {\r\n let options = {};\r\n options[\"tofadein\"] = null;\r\n options[\"loading\"] = null;\r\n\r\n var params = {\r\n aantalWeken: aantalWeken,\r\n startdag: startdag,\r\n einddag: einddag,\r\n starttijd: starttijd,\r\n uren: uren,\r\n startOpVorigeDag: startOpVorigeDag\r\n }\r\n\r\n Api.APIcaller.CallAction(\"/ajax/GetTimeRangePopup\", params, \"GET\", null, null, complete, options, Api.APIcaller.CancelOptions.None);\r\n\r\n function complete(result) {\r\n if (result.hasErrorText) {\r\n return;\r\n }\r\n\r\n var checkInputs = ['#Startdag', '#Einddag', '#Starttijd', '#Werkuren'];\r\n\r\n bindFields();\r\n bindButtons();\r\n validateInputs();\r\n\r\n function bindFields() {\r\n $(document).off('change keyup', checkInputs.join(','));\r\n $(document).on('change keyup', checkInputs.join(','), function () {\r\n validateInputs();\r\n });\r\n }\r\n\r\n function validateInputs() {\r\n if (inputsValid()) {\r\n $('#btneditweekroosterdagen').prop('disabled', false);\r\n } else {\r\n $('#btneditweekroosterdagen').prop('disabled', true);\r\n }\r\n }\r\n\r\n function bindButtons() {\r\n $(document).off('click', '#btneditweekroosterdagen');\r\n $(document).on('click', '#btneditweekroosterdagen', function () {\r\n updateWeekrooster();\r\n });\r\n\r\n $(document).off('click', '#btncancelweekroosterdagen');\r\n $(document).on('click', '#btncancelweekroosterdagen', function () {\r\n cancelUpdateWeekrooster();\r\n });\r\n }\r\n\r\n function inputsValid() {\r\n var count = 0;\r\n\r\n for (var i = 0; i < checkInputs.length; i++) {\r\n if ($(checkInputs[i]).val().trim() != \"\") {\r\n count = count + 1;\r\n }\r\n }\r\n\r\n if (count < checkInputs.length) {\r\n return false;\r\n }\r\n\r\n var values = getFieldValues();\r\n\r\n if (values.startdag > values.einddag) {\r\n return false;\r\n }\r\n\r\n return validateHandler(values);\r\n }\r\n\r\n function updateWeekrooster() {\r\n var values = getFieldValues();\r\n\r\n APPLOYED.modal.closePopup();\r\n updateHandler(values);\r\n }\r\n\r\n function cancelUpdateWeekrooster() {\r\n updateHandler(null);\r\n }\r\n\r\n function getFieldValues() {\r\n var values = {\r\n startdag: $('#Startdag').val(),\r\n einddag: $('#Einddag').val(),\r\n werkuren: $('#Werkuren').val(),\r\n starttijd: $('#Starttijd').val(),\r\n startOpVorigeDag: $('#StartOpVorigeDag').is(':checked')\r\n }\r\n\r\n return values;\r\n }\r\n }\r\n },\r\n\r\n showWeekplanningTimePopup: function (validateHandler, updateHandler, startdag, einddag, starttijd, eindtijd, startOpVorigeDag, extraPlanningsdag) {\r\n let options = {};\r\n options[\"tofadein\"] = null;\r\n options[\"loading\"] = null;\r\n\r\n var params = {\r\n startdag: startdag,\r\n einddag: einddag,\r\n starttijd: starttijd,\r\n eindtijd: eindtijd,\r\n startOpVorigeDag: startOpVorigeDag,\r\n extraPlanningsdag: extraPlanningsdag\r\n }\r\n\r\n Api.APIcaller.CallAction(\"/ajax/GetWeekplanningTimeRangePopup\", params, \"GET\", null, null, complete, options, Api.APIcaller.CancelOptions.None);\r\n\r\n function complete(result) {\r\n if (result.hasErrorText) {\r\n return;\r\n }\r\n APPLOYED.time.planningInit(validateHandler, updateHandler);\r\n $('#Startdag').trigger('change');\r\n }\r\n\r\n },\r\n\r\n planningInit: function (validateHandler, updateHandler) {\r\n var checkInputs = ['#Startdag', '#Einddag', '#Starttijd', '#Eindtijd'];\r\n\r\n function bindFields() {\r\n $(document).off('change keyup', checkInputs.join(','));\r\n $(document).on('change keyup', checkInputs.join(','), function () {\r\n validateInputs();\r\n });\r\n }\r\n\r\n function validateInputs() {\r\n if (inputsValid()) {\r\n $('#btneditweekplanningdagen').prop('disabled', false);\r\n } else {\r\n $('#btneditweekplanningdagen').prop('disabled', true);\r\n }\r\n }\r\n\r\n function bindButtons() {\r\n $(document).off('click', '#btneditweekplanningdagen');\r\n $(document).on('click', '#btneditweekplanningdagen', function () {\r\n updateWeekplanning();\r\n });\r\n\r\n $(document).off('click', '#btncancelweekplanningdagen');\r\n $(document).on('click', '#btncancelweekplanningdagen', function () {\r\n cancelUpdateWeekplanning();\r\n });\r\n }\r\n\r\n function inputsValid() {\r\n var count = 0;\r\n\r\n for (var i = 0; i < checkInputs.length; i++) {\r\n if ($(checkInputs[i]).val().trim() != \"\") {\r\n count = count + 1;\r\n }\r\n }\r\n\r\n if (count < checkInputs.length) {\r\n return false;\r\n }\r\n\r\n var values = getFieldValues();\r\n\r\n if (values.startdag > values.einddag) {\r\n return false;\r\n }\r\n\r\n return validateHandler(values);\r\n }\r\n\r\n function updateWeekplanning() {\r\n var values = getFieldValues();\r\n\r\n APPLOYED.modal.closePopup();\r\n updateHandler(values);\r\n }\r\n\r\n function cancelUpdateWeekplanning() {\r\n updateHandler(null);\r\n }\r\n\r\n function getFieldValues() {\r\n var values = {\r\n startdag: $('#Startdag').val(),\r\n einddag: $('#Einddag').val(),\r\n starttijd: $('#Starttijd').val(),\r\n eindtijd: $('#Eindtijd').val(),\r\n startOpVorigeDag: $('#StartOpVorigeDag').is(':checked'),\r\n extraPlanningsdag: $('#ExtraPlanningsdag').is(':checked')\r\n }\r\n\r\n return values;\r\n }\r\n\r\n bindFields();\r\n bindButtons();\r\n //validateInputs();\r\n }\r\n\r\n}","APPLOYED.tooltip = {\r\n init: function () {\r\n $('[data-mdb-toggle=\"tooltip\"]').tooltip();\r\n },\r\n hideAll: function () {\r\n $('[data-mdb-toggle=\"tooltip\"]').tooltip('hide');\r\n }\r\n}","APPLOYED.url = {\r\n getUrlParam: function (name) { // use getQueryParam instead!\r\n var results = new RegExp('[\\?&]' + name + '=([^&#]*)').exec(window.location.href);\r\n\r\n if (results == null) {\r\n return null;\r\n }\r\n else {\r\n return decodeURI(results[1]) || 0;\r\n }\r\n },\r\n getQueryParam: function (name) {\r\n let urlParams = new URLSearchParams(window.location.search);\r\n\r\n return urlParams.get(name);\r\n\r\n /*\r\n Examples:\r\n //Query string present in the browser address bar is 'submitted=true&msg=success'\r\n \r\n var urlParams = new URLSearchParams(window.location.search);\r\n var msg = APPLOYED.url.getQueryParam('msg'); //success\r\n var submitted = APPLOYED.url.getQueryParam('submitted'); // true (string)\r\n var redirect = APPLOYED.url.getQueryParam('redirect'); // NULL\r\n */\r\n },\r\n setNewEmployeeUrl: function (response) {\r\n var newUrl = response.jsoNresults[0];\r\n $('#navbaremployeeidquerystring').attr('href', newUrl);\r\n $('#searchmedewerker_baseurl').data('url', newUrl);\r\n },\r\n getYears: function () {\r\n var years = '';\r\n \r\n if (APPLOYED.url.getUrlParam(\"years\") != null && APPLOYED.url.getUrlParam(\"years\") != \"0\" && APPLOYED.url.getUrlParam(\"years\") != 0) {\r\n years = APPLOYED.url.getUrlParam(\"years\");\r\n }\r\n else {\r\n if ($('#YearsList').val().split(',').length > 0) {\r\n years = $('#YearsList').val();\r\n }\r\n }\r\n return years;\r\n }\r\n}","APPLOYED.util = {\r\n ctx: null,\r\n colorToHex: function (str) {\r\n if (!this.ctx) {\r\n this.ctx = document.createElement(\"canvas\").getContext(\"2d\");\r\n }\r\n\r\n this.ctx.fillStyle = str;\r\n return this.ctx.fillStyle;\r\n },\r\n invertColor: function (hex, bw) {\r\n if (hex.indexOf('#') === 0) {\r\n hex = hex.slice(1);\r\n }\r\n\r\n // convert 3-digit hex to 6-digits.\r\n if (hex.length === 3) {\r\n hex = hex[0] + hex[0] + hex[1] + hex[1] + hex[2] + hex[2];\r\n }\r\n\r\n if (hex.length !== 6) {\r\n throw new Error('Invalid HEX color.');\r\n }\r\n var r = parseInt(hex.slice(0, 2), 16),\r\n g = parseInt(hex.slice(2, 4), 16),\r\n b = parseInt(hex.slice(4, 6), 16);\r\n\r\n if (bw) {\r\n return (r * 0.299 + g * 0.587 + b * 0.114) > 186\r\n ? '#000000'\r\n : '#FFFFFF';\r\n }\r\n\r\n // invert color components\r\n r = (255 - r).toString(16);\r\n g = (255 - g).toString(16);\r\n b = (255 - b).toString(16);\r\n\r\n return \"#\" + padZero(r) + padZero(g) + padZero(b);\r\n\r\n function padZero(str, len) {\r\n len = len || 2;\r\n var zeros = new Array(len).join('0');\r\n return (zeros + str).slice(-len);\r\n }\r\n },\r\n unique: function (arr) {\r\n return arr.filter((v, i, a) => a.indexOf(v) === i);\r\n },\r\n encode: function (input) {\r\n var entityMap = {\r\n '&': '&',\r\n '<': '<',\r\n '>': '>',\r\n '\"': '"',\r\n \"'\": ''',\r\n '/': '/',\r\n '`': '`',\r\n '=': '='\r\n };\r\n\r\n return String(input).replace(/[&<>\"'`=\\/]/g, function (s) {\r\n return entityMap[s];\r\n });\r\n }\r\n}","APPLOYED.validator = {\r\n /**\r\n * Check if fields are required, and enable submit button\r\n * \r\n * @param {any} container\r\n * @param {any} submitButton\r\n * \r\n * @returns {boolean} true of required fields are filled and false when not\r\n */\r\n checkRequiredFields: function (container, submitButton) {\r\n let disableButton = false;\r\n \r\n $(container).find('.validation-required, .validation-optional').each(function () {\r\n let valid = true;\r\n \r\n if ( ($(this).hasClass('validation-required') && !$(this).hasClass(\"valid-hidden\"))\r\n || ($(this).hasClass(\"valid-hidden\") && !$(this).is(\":hidden\"))\r\n || ($(this).hasClass(\"valid-hidden\") && !$(this).parents().is(\":hidden\")))\r\n {\r\n if (!APPLOYED.validator.isValidRequiredField(this)) {\r\n disableButton = true;\r\n valid = false;\r\n }\r\n }\r\n\r\n if (valid) {\r\n if ($(this)[0].tagName.toLowerCase() === \"input\") {\r\n $(this).removeClass('required-field-border');\r\n\r\n var notchDiv = $(this).parent().find('div.form-notch');\r\n if (notchDiv.length > 0) {\r\n if (notchDiv.hasClass('required-field-color')) {\r\n notchDiv.removeClass('required-field-color');\r\n }\r\n }\r\n }\r\n else if ($(this)[0].tagName.toLowerCase() === \"select\") {\r\n var inputDiv = $(this).parent().children('div.form-outline').find('input');\r\n if (inputDiv.hasClass('required-field-border')) {\r\n inputDiv.removeClass('required-field-border');\r\n }\r\n var notchDiv = $(this).parent().children('div.form-outline').find('div.form-notch');\r\n if (notchDiv.length > 0) {\r\n if (notchDiv.hasClass('required-field-color')) {\r\n notchDiv.removeClass('required-field-color');\r\n }\r\n }\r\n }\r\n } else {\r\n if ($(this)[0].tagName.toLowerCase() === \"input\") {\r\n if (!$(this).hasClass('required-field-border')) {\r\n $(this).addClass('required-field-border');\r\n var notchDiv = $(this).parent().find('div.form-notch');\r\n if (notchDiv.length > 0) {\r\n if (!notchDiv.hasClass('required-field-color')) {\r\n notchDiv.addClass('required-field-color');\r\n }\r\n }\r\n }\r\n }\r\n else if ($(this)[0].tagName.toLowerCase() === \"select\") {\r\n var inputDiv = $(this).parent().children('div.form-outline').find('input');\r\n if (!inputDiv.hasClass('required-field-border')) {\r\n inputDiv.addClass('required-field-border');\r\n }\r\n var notchDiv = $(this).parent().children('div.form-outline').find('div.form-notch');\r\n if (notchDiv.length > 0) {\r\n if (!notchDiv.hasClass('required-field-color')) {\r\n notchDiv.addClass('required-field-color');\r\n }\r\n }\r\n }\r\n }\r\n });\r\n\r\n $(submitButton).prop(\"disabled\", disableButton);\r\n\r\n return !disableButton;\r\n },\r\n validateRequiredFields: function (container) {\r\n var isValid = true;\r\n\r\n $(container).find('.validation-required').each(function () {\r\n isValid = isValid && APPLOYED.validator.isValidRequiredField(this);\r\n });\r\n\r\n return isValid;\r\n },\r\n isValidRequiredField: function (el) {\r\n\r\n if (!$(el).val()) {\r\n return false;\r\n }\r\n\r\n if ($(el).hasClass(\"date-input-formatted\")) {\r\n if (!APPLOYED.validator.isValidDate($(el).val())) {\r\n return false;\r\n }\r\n }\r\n\r\n if ($(el).hasClass(\"fileExtensionRequired\")) {\r\n if (!APPLOYED.validator.hasFileExtension(el)) {\r\n return false;\r\n }\r\n }\r\n\r\n if ($(el).is(':checkbox')) {\r\n var validState = $(el).data(\"validstate\");\r\n if (validState == \"checked\" && !$(el).is(':checked')) {\r\n return false;\r\n } else if (validState == \"unchecked\" && $(el).is(':checked')) {\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n },\r\n /**\r\n * Bind required fields in a container and disable or enable a submit button\r\n * \r\n * @param {string} container form element container\r\n * @param {string} submitButton submit button\r\n */\r\n bindRequiredFields: function (container, submitButton, unbind = true) {\r\n APPLOYED.validator.checkRequiredFields(container, submitButton);\r\n $(container).find('.validation-required, .validation-optional').each(function () {\r\n if (unbind) {\r\n $(this).off('change keyup');\r\n }\r\n\r\n $(this).on('change keyup', function () {\r\n APPLOYED.validator.checkRequiredFields(container, submitButton);\r\n });\r\n });\r\n },\r\n setRequired: function (fields, required) {\r\n $(fields).each(function () {\r\n if (required) {\r\n $(this).addClass('validation-required');\r\n } else {\r\n $(this).removeClass('validation-required');\r\n }\r\n });\r\n },\r\n isValidDate: function (val) {\r\n if (!(/^\\d{1,2}-\\d{1,2}-\\d{4}$/.test(val))) {\r\n return false;\r\n } else {\r\n let splitDate = val.split('-');\r\n let date = Date.parse(splitDate[2] + '-' + splitDate[1] + '-' + splitDate[0]);\r\n\r\n if (isNaN(date)) {\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n },\r\n isValidYear: function (val) {\r\n if (!(/^\\d{4}$/.test(val))) {\r\n return false;\r\n }\r\n\r\n return true;\r\n },\r\n hasFileExtension: function (element) {\r\n const regex = /^.+[.][a-zA-Z]+$/gm;\r\n let val = $(element).val();\r\n let hasFileExtensions = false;\r\n let search;\r\n\r\n while ((search = regex.exec(val)) !== null) {\r\n // This is necessary to avoid infinite loops with zero-width matches\r\n if (search.index === regex.lastIndex) {\r\n regex.lastIndex++;\r\n }\r\n\r\n search.forEach((match, groupIndex) => {\r\n hasFileExtensions = true;\r\n });\r\n }\r\n\r\n return hasFileExtensions;\r\n },\r\n keepValueBetweenMinAndMax: function (elementId, min, max) {\r\n if ($.isNumeric($(elementId).val())) {\r\n var value = parseFloat($(elementId).val());\r\n if (value < min) {\r\n $(elementId).val(min);\r\n }\r\n else if (value > max) {\r\n $(elementId).val(max);\r\n }\r\n }\r\n }\r\n}","APPLOYED.weekroosters = {\r\n weekrooster: null,\r\n\r\n weekroosterdefinities: function (controller, withTime) {\r\n APPLOYED.element.dynamicHeight('#searchlist', '.mainscreensized', 65, 100);\r\n APPLOYED.element.dynamicHeight('#Weekroosterdefinitie_ContainerId', '.mainscreensized', 100, 100);\r\n\r\n var self = this;\r\n\r\n var selectedRecordId = $('#WeekroosterdefinitieId').val();\r\n var obj = $('.configweekroostersmallcube[data-weekroosterdefinitieid=' + selectedRecordId + ']');\r\n $('.smallcube').removeClass('active');\r\n if (obj.data('weekroosterdefinitieid') == undefined || obj.data('weekroosterdefinitieid') == 'undefined') {\r\n obj = $('#searchlist div.configweekroostersmallcube').first();\r\n selectedRecordId = obj.data('weekroosterdefinitieid');\r\n }\r\n\r\n bindWeekroostersSelect(controller, withTime);\r\n\r\n if (!!selectedRecordId) {\r\n obj.addClass('active');\r\n this.LoadWeekrooster(controller, selectedRecordId, false, withTime);\r\n }\r\n\r\n function bindWeekroostersSelect(controller, withTime) {\r\n $(\".configweekroostersmallcube\").off('click');\r\n $(\".configweekroostersmallcube\").on('click', function () {\r\n var weekroosterdefinitieId = $(this).data('weekroosterdefinitieid');\r\n\r\n var current = $('div.configweekroostersmallcube.active');\r\n if (!!current) {\r\n var currentId = $(current).data('weekroosterdefinitieid');\r\n if (currentId == weekroosterdefinitieId) {\r\n return;\r\n }\r\n }\r\n\r\n $('.smallcube').removeClass('active');\r\n $(this).addClass('active');\r\n\r\n self.LoadWeekrooster(controller, weekroosterdefinitieId, false, withTime);\r\n });\r\n }\r\n },\r\n weekroosterdefinitieedit: function (controller, withTime) {\r\n var self = this;\r\n\r\n var recordId = $('#WeekroosterdefinitieId').val();\r\n self.LoadWeekrooster(controller, recordId, true, withTime);\r\n },\r\n LoadWeekrooster: function (controller, weekroosterdefinitieId, edit, withTime) {\r\n var self = this;\r\n var filter = $('#ReturnFilter').val();\r\n\r\n var options = {};\r\n options[\"tofadein\"] = \"div[id*='_ContainerId']\";\r\n Api.APIcaller.CallAction(`/configuration/${controller}/weekroosterdefinitieLoad`, { weekroosterdefinitieId: weekroosterdefinitieId, edit: edit, filter: filter }, \"GET\", null, null, (response) => loadWeekroosterComplete(response, controller, edit, withTime), options, Api.APIcaller.CancelOptions.None);\r\n\r\n function loadWeekroosterComplete(response, controller, edit, withTime) {\r\n if (edit) {\r\n APPLOYED.common.initValidation();\r\n APPLOYED.validator.bindRequiredFields('#weekroosterdefinitieedit', '#btnweekroosterdefinitiesave', false);\r\n\r\n bindSave(controller);\r\n }\r\n\r\n self.weekrooster = !withTime\r\n ? new WeekroosterComponent('#weekrooster-grid', edit, response.jsoNresults[0], true)\r\n : new TimeWeekroosterComponent('#weekrooster-grid', edit, response.jsoNresults[0], true)\r\n\r\n self.weekrooster.init();\r\n\r\n function bindSave(controller) {\r\n $(\"#btnweekroosterdefinitiesave\").off('click');\r\n $(\"#btnweekroosterdefinitiesave\").on('click', function () {\r\n var weken = self.weekrooster.getWeekroosterWeken();\r\n var weekroosterdefinitie = {\r\n recordId: $(this).data('weekroosterdefinitieid'),\r\n naam: $(\"input[name='naam']\").val(),\r\n startdatum: $(\"input[name='startdatum']\").val(),\r\n einddatum: $(\"input[name='einddatum']\").val(),\r\n weken: weken,\r\n }\r\n\r\n var employeeId = $(this).data('employeeid');\r\n var filter = $('#ReturnFilter').val();\r\n\r\n var options = {};\r\n options[\"loading\"] = \"#btnweekroosterdefinitiesave\";\r\n\r\n Api.APIcaller.CallAction(`/configuration/${controller}/weekroosterdefinitieEdit`, {\r\n weekroosterdefinitie: weekroosterdefinitie,\r\n employeeId: employeeId,\r\n filter: filter\r\n }, \"POST\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n });\r\n }\r\n }\r\n },\r\n BindWeekroostersDelete: function (controller) {\r\n $(\".btndeleteweekroosterdefinitie\").off('click');\r\n $(\".btndeleteweekroosterdefinitie\").on('click', function () {\r\n var employeeId = $(this).data('employeeid');\r\n var recordId = $(this).data('weekroosterdefinitieid');\r\n var filter = $('#ReturnFilter').val();\r\n\r\n var options = {};\r\n options[\"tofadein\"] = \"div[id*='_ContainerId']\";\r\n\r\n Api.APIcaller.CallAction(`/Configuration/${controller}/weekroosterdefinitieDelete`, { recordId: recordId, employeeid: employeeId, filter: filter }, \"POST\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n $('#confirmdeletemodal').modal('hide');\r\n });\r\n }\r\n}","APPLOYED.werknemerdocumenten = {\r\n overview = {\r\n load: function (loading) {\r\n let options = {};\r\n options[\"tofadein\"] = null;\r\n options[\"loading\"] = loading;\r\n\r\n let body = {\r\n employeeId: $('#WerknemerDocumentenWerknemerId').val(),\r\n year: $('#WerknemerDocumentenYearInt').val()\r\n };\r\n Api.APIcaller.CallAction(\"/Ajax/GetWerknemerdocumentenScreen\", body, \"GET\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n },\r\n init: function () {\r\n $(\"#MainTopMenu\").show();\r\n APPLOYED.loader.ClearLoaderList(); // fix for loader not being deleted from loading list\r\n\r\n APPLOYED.werknemerdocumenten.modify.close();\r\n APPLOYED.werknemerdocumenten.overview.open();\r\n\r\n APPLOYED.werknemerdocumenten.overview.bindactions();\r\n APPLOYED.werknemerdocumenten.overview.initTable();\r\n\r\n // setup params download table\r\n APPLOYED.downloadTable.init('.documentsTable', '#select-all', 'customCheck', ['.downloadZip', '.moveCategory']);\r\n\r\n $(\".chkFilterTableStatus\").prop(\"checked\", true);\r\n\r\n },\r\n initTable: function () {\r\n var element = $('.documentsTable');\r\n var columDefs = [\r\n {\r\n \"targets\": 0,\r\n \"orderDataType\": \"dom-checkbox\"\r\n },\r\n {\r\n \"targets\": 3,\r\n \"orderDataType\": \"file-size\",\r\n \"type\": \"file-size\"\r\n },\r\n {\r\n \"targets\": 4,\r\n \"orderDataType\": \"date-dd-mmm-yyyy\",\r\n \"type\": \"date-dd-mmm-yyyy\"\r\n },\r\n {\r\n \"targets\": [6, 7, 8],\r\n \"orderable\": false\r\n }\r\n ];\r\n\r\n APPLOYED.table.dataTable(element, false, true, false, false, columDefs, []);\r\n },\r\n\r\n bindactions: function () {\r\n\r\n $(document).off('click', '#werknemerdocumentAdd');\r\n $(document).on('click', '#werknemerdocumentAdd', function () {\r\n let loading = \"div[id='documentAdd']\";\r\n\r\n APPLOYED.werknemerdocumenten.modify.load(loading);\r\n });\r\n\r\n $(document).off('click', '.werknemerdocumenteditlink');\r\n $(document).on('click', '.werknemerdocumenteditlink', function (e) {\r\n e.preventDefault();\r\n\r\n let documentid = $(this).parents('tr').data('documentid');\r\n let documentkey = $(this).parents('tr').data('documentkey');\r\n\r\n let loading = \"tr.werknemerdocumenttoprow[data-documentid='\" + documentid + \"'] .werknemerdocumenteditlink\";\r\n APPLOYED.werknemerdocumenten.modify.load(loading, documentid, documentkey);\r\n });\r\n\r\n $(document).off('click', '.downloadZip');\r\n $(document).on('click', '.downloadZip', function (e) {\r\n e.preventDefault();\r\n\r\n let options = {};\r\n options[\"tofadein\"] = null;\r\n options[\"loading\"] = \"div[id^='dropdownMenu3']\";\r\n\r\n var documentsList = [];\r\n\r\n $('input[type=\"checkbox\"][name^=\"customCheck\"]').each(function () {\r\n if ($(this).is(':checked')) {\r\n var document = {\r\n DocumentId: $(this).parents('tr').data('documentid'),\r\n DocumentKey: $(this).parents('tr').data('documentkey'),\r\n };\r\n documentsList.push(document)\r\n }\r\n });\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/DownloadWerknemerdocumentZip\", { documentsList: documentsList }, \"POST\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n\r\n });\r\n\r\n $(document).off('click', '.moveCategory');\r\n $(document).on('click', '.moveCategory', function (e) {\r\n e.preventDefault();\r\n\r\n let options = {};\r\n options[\"tofadein\"] = null;\r\n options[\"loading\"] = \"div[id^='dropdownMenu3']\";\r\n\r\n var documentsList = [];\r\n\r\n $('input[type=\"checkbox\"][name^=\"customCheck\"]').each(function () {\r\n if ($(this).is(':checked')) {\r\n var document = {\r\n DocumentId: $(this).parents('tr').data('documentid'),\r\n DocumentKey: $(this).parents('tr').data('documentkey'),\r\n };\r\n documentsList.push(document)\r\n }\r\n });\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/MoveToNewCategory\", { documentsList: documentsList }, \"POST\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n\r\n });\r\n\r\n $('.chkFilterTableStatus').unbind('click');\r\n $('.chkFilterTableStatus').bind('click', function () {\r\n\r\n var value = [];\r\n $(\".chkFilterTableStatus\").each(function () {\r\n if ($(this).is(':checked')) {\r\n value.push($(this).val());\r\n $('div.filterstatuscheckboxwd' + $(this).val() + '').show();\r\n }\r\n else {\r\n $('div.filterstatuscheckboxwd' + $(this).val() + '').hide();\r\n $(\".documentsTable tr[data-searchstatus='\" + $(this).val() + \"']\").find('input[type=\"checkbox\"][name^=\"customCheck\"]').prop('checked', false);\r\n }\r\n });\r\n\r\n $(\"#werknemerdocumentScreenTable table tr[data-searchstatus]\").hide();\r\n\r\n $.each(value, function (i, val) {\r\n $(\"#werknemerdocumentScreenTable table tr[data-searchstatus]\").filter(function () {\r\n $(\"#werknemerdocumentScreenTable table tr[data-searchstatus='\" + val + \"']\").show();\r\n });\r\n });\r\n\r\n if ($(\".documentsTable tr\").find('input[type=\"checkbox\"][name^=\"customCheck\"]').is((':checked'))) {\r\n $('.downloadZip, .moveCategory').removeClass('disabled');\r\n }\r\n else {\r\n $('.downloadZip, .moveCategory').addClass('disabled');\r\n }\r\n\r\n });\r\n\r\n $('.filterstatuscheckboxwd').unbind('click');\r\n $('.filterstatuscheckboxwd').bind('click', function () {\r\n var filtername = $(this).data(\"filterstatus\").toString();\r\n $('div.filterstatuscheckboxwd' + filtername + '').hide();\r\n var value = [];\r\n $('.chkFilterTableStatus[id=customCheck' + filtername + ']').prop('checked', false);\r\n $(\".chkFilterTableStatus\").each(function () {\r\n if ($(this).is(':checked')) {\r\n value.push($(this).val());\r\n }\r\n else {\r\n $(\".documentsTable tr[data-searchstatus='\" + $(this).val() + \"']\").find('input[type=\"checkbox\"][name^=\"customCheck\"]').prop('checked', false);\r\n }\r\n });\r\n\r\n $(\"#werknemerdocumentScreenTable table tr[data-searchstatus]\").hide();\r\n $.each(value, function (i, val) {\r\n $(\"#werknemerdocumentScreenTable table tr[data-searchstatus]\").filter(function () {\r\n $(\"#werknemerdocumentScreenTable table tr[data-searchstatus='\" + val + \"']\").show();\r\n });\r\n });\r\n\r\n if ($(\".documentsTable tr\").find('input[type=\"checkbox\"][name^=\"customCheck\"]').is((':checked'))) {\r\n $('.downloadZip, .moveCategory').removeClass('disabled');\r\n }\r\n else {\r\n $('.downloadZip, .moveCategory').addClass('disabled');\r\n }\r\n\r\n });\r\n\r\n $(document).off('click', '.downloadWerknemerdocument');\r\n $(document).on('click', '.downloadWerknemerdocument', function (e) {\r\n e.preventDefault();\r\n\r\n let documentid = $(this).parents('tr').data('documentid');\r\n let documentkey = $(this).parents('tr').data('documentkey');\r\n\r\n APPLOYED.werknemerdocumenten.overview.getdocument(documentid, documentkey);\r\n });\r\n\r\n $(document).off('click', '.werknemerdocumentdelete');\r\n $(document).on('click', '.werknemerdocumentdelete', function () {\r\n let title = $(this).data('title');\r\n let body = $(this).data('body');\r\n let documentid = $(this).data('documentid');\r\n let documentkey = $(this).data('documentkey');\r\n\r\n $('#confirmdeletemodaltitle').html(title);\r\n $('#confirmdeletemodalbody').html(body);\r\n\r\n $('#confirmdeletemodalaction').one('click', function () {\r\n $('#confirmdeletemodal').modal('hide');\r\n APPLOYED.werknemerdocumenten.overview.delete(documentid, documentkey);\r\n });\r\n\r\n $('#confirmdeletemodal').modal('show');\r\n $('#confirmdeletemodal').one('hidden.bs.modal', function () {\r\n unbindDeleteModal();\r\n });\r\n });\r\n\r\n function unbindDeleteModal() {\r\n $('#confirmdeletemodalaction').off('click');\r\n $('#confirmdeletemodalaction').unbind('click');\r\n };\r\n\r\n },\r\n getdocument: function (documentid, documentkey) {\r\n let options = {};\r\n options[\"tofadein\"] = null;\r\n options[\"loading\"] = \"tr.werknemerdocumenttoprow[data-documentid= '\" + documentid + \"'] .downloadWerknemerdocument\";\r\n\r\n let body = {\r\n documentId: documentid,\r\n documentKey: documentkey,\r\n };\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/DownloadWerknemerdocument\", body, \"GET\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n },\r\n\r\n delete: function (documentId, documentKey) {\r\n var loading = \"div[id='werknemerdocumentenDropdownMenu']\";\r\n\r\n if (documentId) {\r\n let options = {};\r\n options[\"tofadein\"] = null;\r\n options[\"loading\"] = null;\r\n\r\n let body = {\r\n documentId: documentId,\r\n documentKey: documentKey,\r\n };\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/DeleteWerknemerdocument\", body, \"GET\", completeHandler(), null, null, options, Api.APIcaller.CancelOptions.None);\r\n }\r\n\r\n function completeHandler() {\r\n setTimeout(function () { APPLOYED.werknemerdocumenten.overview.load(loading); }, 500);\r\n }\r\n },\r\n open: function () {\r\n $(APPLOYED.werknemerdocumenten.elements.overviewId).show();\r\n $(APPLOYED.werknemerdocumenten.elements.modifyId).hide();\r\n },\r\n close: function () {\r\n $(APPLOYED.werknemerdocumenten.elements.overviewId).hide();\r\n $(APPLOYED.werknemerdocumenten.elements.modifyId).show();\r\n },\r\n },\r\n modify = {\r\n /**\r\n * Load document modify screen\r\n * \r\n * @param {string} loading element of loading icon container\r\n * @param {number|null} documentid document id being modified\r\n */\r\n load: function (loading, documentid = 0, documentkey = 0) {\r\n let options = {};\r\n options[\"tofadein\"] = null;\r\n options[\"loading\"] = loading;\r\n\r\n let body = {\r\n tableName: APPLOYED.werknemerdocumenten.params.tableName,\r\n RecordId: APPLOYED.werknemerdocumenten.params.recordId,\r\n documentId: documentid,\r\n documentKey: documentkey\r\n };\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/GetWerknemerdocumentModifyScreen\", body, \"GET\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n },\r\n /**\r\n * Initialize document modify bindings and functions\r\n */\r\n init: function () {\r\n $(\"#MainTopMenu\").hide();\r\n APPLOYED.werknemerdocumenten.modify.open();\r\n\r\n if ($('#receipt').attr('src') != '') {\r\n $('#uploadimage').hide();\r\n if ($('#DocumentId').val() == \"0\") {\r\n $('#btndocumentsave').removeClass('disabled');\r\n $('#btndocumentsave').removeAttr('disabled');\r\n }\r\n }\r\n else {\r\n if ($('#DocumentId').val() == \"0\") {\r\n $('#btndocumentsave').addClass('disabled');\r\n $('#btndocumentsave').attr('disabled', 'disabled');\r\n }\r\n $('#uploadimage').show();\r\n }\r\n\r\n $(document).off('click', '#closeWerknemerdocumentModify');\r\n $(document).on('click', '#closeWerknemerdocumentModify', function () {\r\n let loading = \"button[id='closeWerknemerdocumentModify']\";\r\n APPLOYED.werknemerdocumenten.overview.load(loading);\r\n });\r\n\r\n $(document).off('keyup', '#FileName');\r\n $(document).on('keyup', '#FileName', function () {\r\n let hasFileExtension = APPLOYED.validator.hasFileExtension(this);\r\n hasFileExtension == true ? hideMessage() : showMessage();\r\n });\r\n\r\n function hideMessage() {\r\n $('.invalidFileExtension').hide();\r\n if ($(\"#File\")[0].files && $(\"#File\")[0].files[0] && $('#CategoryId').val() ||\r\n ((typeof $('#File').attr('disabled') !== 'undefined') && $('#File').attr('disabled') !== false)) {\r\n $('#btndocumentsave').removeClass('disabled');\r\n $('#btndocumentsave').removeAttr('disabled');\r\n }\r\n }\r\n\r\n function showMessage() {\r\n $('.invalidFileExtension').show();\r\n $('#btndocumentsave').addClass('disabled');\r\n $('#btndocumentsave').attr('disabled', 'disabled');\r\n }\r\n\r\n $(document).on('submit', '#werknemerdocumentform', function (e) {\r\n e.preventDefault();\r\n\r\n if ($('#btndocumentsave').hasClass('disabled') ||\r\n (typeof $('#btndocumentsave').attr('disabled') !== 'undefined') && $('#btndocumentsave').attr('disabled') !== false) {\r\n APPLOYED.loader.WaitLoaderOff(\"button[id='btndocumentsave']\");\r\n return false;\r\n }\r\n\r\n var formDataTemp = new FormData();\r\n var fileTooLargeTemp = false;\r\n var file = document.getElementById('File');\r\n\r\n var { formData, fileTooLarge } = APPLOYED.file.CheckIfMaxFileSize(file, formDataTemp, fileTooLargeTemp);\r\n\r\n // do not proceed if any file is too large\r\n if (fileTooLarge) {\r\n Api.Main.displayNotify($('#FileTooLargeErrorText').val(), true);\r\n APPLOYED.loader.WaitLoaderOff(\"button[id='btndocumentsave']\");\r\n } else {\r\n\r\n $(this).find(\"input[name]\").each(function (index, node) {\r\n formData.append(node.name, node.value);\r\n });\r\n\r\n $(this).find(\"select[name]\").each(function (index, node) {\r\n formData.append(node.name, node.value);\r\n });\r\n\r\n APPLOYED.loader.WaitLoaderOn(\"button[id='btndocumentsave']\");\r\n $('#btndocumentsave').attr('disabled', 'disabled');\r\n\r\n $.ajax({\r\n url: '/Ajax/ModifyWerknemerdocumenten',\r\n type: 'POST',\r\n data: formData,\r\n contentType: false,\r\n processData: false,\r\n success: function (data) {\r\n if (data.error != undefined && data.error != '') {\r\n Api.Main.displayNotify(data.error, true);\r\n }\r\n\r\n if (data.message != undefined && data.message != '') {\r\n Api.Main.displayNotify(data.message, false);\r\n }\r\n if (data.error == null) {\r\n APPLOYED.werknemerdocumenten.overview.load();\r\n }\r\n APPLOYED.loader.WaitLoaderOff(\"button[id='btndocumentsave']\");\r\n $('#btndocumentsave').removeAttr('disabled');\r\n },\r\n error: function (e) {\r\n APPLOYED.loader.WaitLoaderOff(\"button[id='btndocumentsave']\");\r\n $('#btndocumentsave').removeAttr('disabled');\r\n Api.Main.displayNotify(e.errorText, true);\r\n }\r\n });\r\n }\r\n });\r\n },\r\n /**\r\n * Open document modify screen\r\n */\r\n open: function () {\r\n $(APPLOYED.werknemerdocumenten.elements.overviewId).hide();\r\n $(APPLOYED.werknemerdocumenten.elements.modifyId).show();\r\n },\r\n /**\r\n * Close document modify screen\r\n */\r\n close: function () {\r\n $(APPLOYED.werknemerdocumenten.elements.overviewId).show();\r\n $(APPLOYED.werknemerdocumenten.elements.modifyId).hide();\r\n }\r\n },\r\n elements: {\r\n screenId: \"#werknemerdocumentenScreen\",\r\n modifyId: \"#werknemerdocumentenModify\",\r\n overviewId: \"#werknemerdocumentenOverview\",\r\n contentId: \"#contentContainer\",\r\n buttonOpenId: \"#werknemerdocumentenButton\"\r\n },\r\n params: {\r\n tableName: \"\",\r\n recordId: \"\",\r\n documentId: \"\",\r\n documentKey: \"\"\r\n },\r\n /**\r\n * Init werknemerdocumenten\r\n */\r\n init: function () {\r\n /* Bindings */\r\n $(document).off('click', APPLOYED.werknemerdocumenten.elements.buttonOpenId);\r\n $(document).on('click', APPLOYED.werknemerdocumenten.elements.buttonOpenId, function () {\r\n let buttonOpenId = APPLOYED.werknemerdocumenten.elements.buttonOpenId.substring(1, APPLOYED.werknemerdocumenten.elements.buttonOpenId.length);\r\n let loading = \"button[id='\" + buttonOpenId + \"']\";\r\n\r\n APPLOYED.werknemerdocumenten.overview.load(loading);\r\n })\r\n\r\n APPLOYED.werknemerdocumenten.CreateTaskOverviewDiv();\r\n },\r\n CreateTaskOverviewDiv: function () {\r\n $(\"\").insertBefore(APPLOYED.werknemerdocumenten.elements.contentId);\r\n },\r\n enableOpenButton: function () {\r\n if (this.checkParameters()) $(APPLOYED.werknemerdocumenten.elements.buttonOpenId).removeClass('disabled');\r\n },\r\n setParameters: function (tableName, recordId, documentId, documentKey) {\r\n this.params.tableName = tableName;\r\n this.params.recordId = recordId;\r\n this.params.werknemerdocumentId = documentId;\r\n this.params.werknemerdocumentKey = documentKey;\r\n },\r\n checkParameters: function () {\r\n return (\r\n this.params.tableName &&\r\n this.params.recordId\r\n );\r\n },\r\n categoryPopupInit: function () {\r\n\r\n $(document).off('click', '#movetonewcategorymodalaction');\r\n $(document).on('click', '#movetonewcategorymodalaction', function (e) {\r\n e.preventDefault();\r\n\r\n let options = {};\r\n options[\"tofadein\"] = null;\r\n options[\"loading\"] = \"#movetonewcategorymodalaction\";\r\n\r\n var documentsList = [];\r\n\r\n $('input[type=\"checkbox\"][name^=\"customCheck\"]').each(function () {\r\n if ($(this).is(':checked')) {\r\n var document = {\r\n DocumentId: $(this).parents('tr').data('documentid'),\r\n DocumentKey: $(this).parents('tr').data('documentkey'),\r\n };\r\n documentsList.push(document);\r\n }\r\n });\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/MoveToNewCategorySave\", { documentsList: documentsList, categoyId: $('#NewCategoryId').val() }, \"POST\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n });\r\n\r\n $(document).off('change', '#NewCategoryId');\r\n $(document).on('change', '#NewCategoryId', function (e) {\r\n validate();\r\n });\r\n\r\n function validate() {\r\n if ($('#NewCategoryId').val() == null || $('#NewCategoryId').val() == '') {\r\n $('#movetonewcategorymodalaction').attr('disabled', 'disabled');\r\n }\r\n else {\r\n $('#movetonewcategorymodalaction').removeAttr('disabled');\r\n }\r\n }\r\n\r\n validate();\r\n }\r\n}","APPLOYED.wizard = {\n curStep: 1,\n minStep: 1,\n maxStep: 0,\n cancelLink: \"\",\n steps: [],\n allowAnyStep: false,\n callback = {\n /**\n * Gets called when previos button is clicked\n *\n * @param {string} curStep id of current step\n * @param {string} nextStep id of next step\n * \n * @returns {boolean} false to not continue to previous step. True/void to continue to previous step \n */\n previous: null,\n /**\n * Gets called when next button is clicked\n *\n * @param {string} curStep id of current step\n * @param {string} nextStep id of next step\n * \n * @returns {boolean} false to not continue to next step. True/void to continue to next step \n */\n next: null\n },\n element = {\n wizardSteps: \"#wizardSteps\",\n wizardStep: \".wizardStep\",\n wizardContent: \"#wizardContent\",\n wizardContentItem: \".wizardContentItem\"\n },\n init: function (step = 1, initValidated = true) {\n APPLOYED.wizard.helpers.calcMaxStep();\n APPLOYED.wizard.helpers.getSteps();\n\n if (step > 1 && step <= APPLOYED.wizard.maxStep) {\n APPLOYED.wizard.helpers.setStartStep(step, initValidated);\n }\n\n $(document).off('click', APPLOYED.wizard.element.wizardStep);\n $(document).on('click', APPLOYED.wizard.element.wizardStep, function () {\n let step = $(this).data(\"step\");\n let validated = $(this).hasClass('validated');\n APPLOYED.wizard.navigate.goto(step, validated);\n });\n\n $(document).off('click', '.wizardPrevious');\n $(document).on('click', '.wizardPrevious', function () {\n APPLOYED.wizard.navigate.previous();\n });\n\n $(document).off('click', '.wizardNext');\n $(document).on('click', '.wizardNext', function () {\n APPLOYED.wizard.navigate.next();\n });\n\n $(document).off('click', '.wizardCancel');\n $(document).on('click', '.wizardCancel', function (e) {\n let link = $(this).data('location');\n\n if (link) {\n e.preventDefault();\n APPLOYED.wizard.cancelLink = link;\n $('#wizardCancelModal').modal('toggle');\n } \n });\n\n $(document).off('click', '#confirmWizardCancel');\n $(document).on('click', '#confirmWizardCancel', function () {\n APPLOYED.loader.WaitLoaderOn(\"button[id*='confirmWizardCancel']\");\n window.location.href = APPLOYED.wizard.cancelLink;\n });\n\n $(document).off('click', '.wizardClose');\n $(document).on('click', '.wizardClose', function (e) {\n let link = $(this).data('location');\n\n if (link) {\n APPLOYED.loader.WaitLoaderOn(this);\n window.location.href = link;\n }\n });\n },\n on: function (action, func) {\n if (jQuery.isFunction(func)) {\n switch (action) {\n case 'previous':\n APPLOYED.wizard.callback.previous = func;\n break;\n case 'next':\n APPLOYED.wizard.callback.next = func;\n break;\n case 'goto':\n APPLOYED.wizard.callback.goto = func;\n break;\n case 'navigated':\n APPLOYED.wizard.callback.navigated = func;\n break;\n }\n }\n },\n validate = {\n validated(step) {\n if (jQuery.isNumeric(step)) {\n $(APPLOYED.wizard.element.wizardSteps)\n .find(\"[data-step='\" + step + \"']\").addClass('validated');\n } else {\n let index = jQuery.inArray(step, APPLOYED.wizard.steps)\n\n if (index != -1) {\n $(APPLOYED.wizard.element.wizardSteps)\n .find(\"[data-step='\" + (index + 1) + \"']\").addClass('validated');\n }\n }\n },\n unvalidated(step) {\n if (jQuery.isNumeric(step)) {\n $(APPLOYED.wizard.element.wizardSteps)\n .find(\"[data-step='\" + step + \"']\").removeClass('validated');\n } else {\n let index = jQuery.inArray(step, APPLOYED.wizard.steps)\n\n if (index != -1) {\n $(APPLOYED.wizard.element.wizardSteps)\n .find(\"[data-step='\" + (index + 1) + \"']\").removeClass('validated');\n }\n }\n }\n },\n helpers = {\n calcMaxStep: function() {\n let stepstep = $(APPLOYED.wizard.element.wizardSteps)\n .find(APPLOYED.wizard.element.wizardStep).length;\n\n APPLOYED.wizard.maxStep = stepstep;\n },\n getSteps: function () {\n $(APPLOYED.wizard.element.wizardContent)\n .find(APPLOYED.wizard.element.wizardContentItem)\n .each(function () {\n let id = $(this).attr('id');\n\n APPLOYED.wizard.steps.push(id);\n });\n },\n setStartStep: function (step, initValidated) {\n APPLOYED.wizard.curStep = step;\n APPLOYED.wizard.navigate.to(APPLOYED.wizard.curStep);\n\n if (initValidated) {\n for (i = 1; i < step; i++) {\n APPLOYED.wizard.validate.validated(i);\n }\n }\n }\n },\n navigate = {\n disabled = false,\n to: function (step) {\n if (APPLOYED.wizard.navigate.disabled == true) return;\n\n if (jQuery.isNumeric(step)) {\n $(APPLOYED.wizard.element.wizardContentItem).hide();\n\n $(APPLOYED.wizard.element.wizardContent)\n .find(\"[data-step='\" + step + \"']\")\n .show();\n\n $(APPLOYED.wizard.element.wizardStep).removeClass(\"finished\");\n $(APPLOYED.wizard.element.wizardStep).each(function () {\n let step = $(this).data('step');\n\n if (step <= APPLOYED.wizard.curStep) {\n $(this).addClass(\"finished\");\n }\n });\n } else if (step in APPLOYED.wizard.steps) {\n // TODO goto step\n }\n\n if (jQuery.isFunction(APPLOYED.wizard.callback.navigated)) {\n APPLOYED.wizard.callback.navigated(step);\n }\n },\n goto: function (step, validated) {\n if (APPLOYED.wizard.navigate.disabled == true) return;\n\n if (APPLOYED.wizard.curStep > step || validated || APPLOYED.wizard.allowAnyStep) {\n let go = true;\n let curStep = APPLOYED.wizard.steps[APPLOYED.wizard.curStep - 1];\n let nextStep = APPLOYED.wizard.steps[step - 1];\n\n if (jQuery.isFunction(APPLOYED.wizard.callback.goto)) {\n if (APPLOYED.wizard.callback.goto(curStep, nextStep) === false) {\n go = false;\n }\n }\n\n if (go) {\n APPLOYED.wizard.curStep = step;\n APPLOYED.wizard.navigate.to(APPLOYED.wizard.curStep);\n }\n }\n },\n next: function () {\n if (APPLOYED.wizard.navigate.disabled == true) return;\n\n if (APPLOYED.wizard.curStep < APPLOYED.wizard.maxStep) {\n let go = true;\n let curStep = APPLOYED.wizard.steps[APPLOYED.wizard.curStep - 1];\n let nextStep = APPLOYED.wizard.steps[APPLOYED.wizard.curStep];\n\n if (jQuery.isFunction(APPLOYED.wizard.callback.next)) \n if (APPLOYED.wizard.callback.next(curStep, nextStep) === false)\n go = false;\n\n if (go) {\n APPLOYED.wizard.curStep++;\n APPLOYED.wizard.navigate.to(APPLOYED.wizard.curStep);\n }\n }\n },\n previous: function () {\n if (APPLOYED.wizard.navigate.disabled == true) return;\n\n if (APPLOYED.wizard.curStep > APPLOYED.wizard.minStep) {\n let go = true;\n let curStep = APPLOYED.wizard.steps[APPLOYED.wizard.curStep - 1];\n let nextStep = APPLOYED.wizard.steps[APPLOYED.wizard.curStep - 2];\n\n if (jQuery.isFunction(APPLOYED.wizard.callback.previous)) \n if (APPLOYED.wizard.callback.previous(curStep, nextStep) === false)\n go = false;\n\n if (go) {\n APPLOYED.wizard.curStep--;\n APPLOYED.wizard.navigate.to(APPLOYED.wizard.curStep);\n }\n }\n },\n isStep: function (step, stepName) {\n if (step == stepName) {\r\n return true;\r\n }\r\n\r\n var result = $(`#${stepName}`).data('step') == '' + step;\r\n return result;\r\n }\n }\n}","APPLOYED.configuration = {\r\n init: function () {\r\n $('button').unbind();\r\n $('button').bind(function () {\r\n $(\"#notifybar\").hide();\r\n });\r\n\r\n APPLOYED.messages.display();\r\n }\r\n}","APPLOYED.customer = {\r\n init: function () {\r\n $('button').unbind();\r\n $('button').bind(function () {\r\n $(\"#notifybar\").hide();\r\n });\r\n\r\n APPLOYED.messages.display();\r\n },\r\n bindRefreshOverview: function (onsuccess) {\r\n $(document).off('click', '.refreshdata');\r\n $(document).on('click', '.refreshdata', function () {\r\n var module = $(this).data(\"module\");\r\n\r\n var options = {};\r\n\r\n options[\"tofadein\"] = \"#\" + module + \" div.ajax_container\";\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/LoadPartials\", { userSessionId: APPLOYED.common.getUsersessionId(), href: module }, \"GET\", null, null, onsuccess, options, Api.APIcaller.CancelOptions.None);\r\n });\r\n\r\n }\r\n\r\n}","APPLOYED.dashboard = {\r\n init: function () {\r\n \r\n }\r\n}","APPLOYED.employees = {\r\n init: function () {\r\n $('button').unbind();\r\n $('button').bind(function () {\r\n $(\"#notifybar\").hide();\r\n });\r\n\r\n APPLOYED.messages.display();\r\n },\r\n bindActionEvents: function () {\r\n $(\".btndeleterecord\").unbind('click');\r\n $(\".btndeleterecord\").bind('click', function () {\r\n var tablename = $(this).data('tablename');\r\n var employeeId = $(this).data('employeeid');\r\n var mustReload = $(this).data('mustreload');\r\n var years = $(this).data('years');\r\n\r\n var options = {};\r\n\r\n options[\"tofadein\"] = \"\";\r\n options[\"loading\"] = \"this\";\r\n\r\n Api.APIcaller.CallAction(\"/Employees/Home/DeleteRecord\", { recordId: $('#RecordId').val(), tableName: tablename, employeeid: employeeId, mustReload: mustReload, years: years }, \"POST\", $('#confirmdeletemodal').hide(), null, null, options, Api.APIcaller.CancelOptions.None);\r\n\r\n });\r\n\r\n APPLOYED.expenses.btnDeleteDeclaratieRegels();\r\n\r\n },\r\n}","class DateService {\r\n static msPerDay = 60 * 60 * 24 * 1000;\r\n\r\n constructor() { }\r\n\r\n static GetDateFromString(dateString) {\r\n if (!dateString) {\r\n return null;\r\n }\r\n\r\n var day = dateString.substring(0, 2);\r\n var month = dateString.substring(3, 5);\r\n var year = dateString.substring(6, 10);\r\n\r\n if (!month) {\r\n month = new Date().getMonth() + 1;\r\n }\r\n\r\n if (!year) {\r\n year = new Date().getFullYear();\r\n }\r\n \r\n let date = new Date(year, month-1, day);\r\n\r\n return date;\r\n }\r\n\r\n static ToDate(dateString) {\r\n if (!dateString) {\r\n return null;\r\n }\r\n\r\n dateString = dateString.replace(/\\//g, '-');\r\n let splitDate = dateString.split('-');\r\n\r\n var isodate = splitDate[2].substr(0, 4) + '-' + splitDate[1] + '-' + splitDate[0];\r\n if (isNaN(Date.parse(isodate))) {\r\n return null;\r\n }\r\n\r\n var result = new Date(splitDate[2].substr(0, 4), splitDate[1] - 1, splitDate[0]);\r\n return result;\r\n }\r\n\r\n static ToString(date, fmt = 'dd-mm-yyyy') {\r\n if (!date) {\r\n return null;\r\n }\r\n\r\n var day = `00${date.getDate()}`.slice(-2);\r\n var month = `00${date.getMonth() + 1}`.slice(-2);\r\n var year = `0000${date.getFullYear()}`.slice(-4);\r\n\r\n var result = fmt.replace('dd', day).replace('mm', month).replace('yyyy', year);\r\n return result;\r\n }\r\n\r\n static ToInvariantDate(date, fmt = 'yyyy-mm-dd') {\r\n if (typeof date == 'string') {\r\n date = this.ToDate(date);\r\n }\r\n\r\n var formatted = this.ToString(date, fmt);\r\n return formatted;\r\n }\r\n\r\n static GetMonday(d) {\r\n var d = new Date(d);\r\n var day = d.getDay();\r\n var diff = d.getDate() - day + (day == 0 ? -6 : 1); // adjust when day is sunday\r\n return new Date(d.setDate(diff));\r\n }\r\n\r\n static GetDiffWeeks(d1, d2) {\r\n var diff = (d2.getTime() - d1.getTime()) / 1000;\r\n diff /= (60 * 60 * 24 * 7);\r\n return Math.round(diff);\r\n }\r\n\r\n static AddWeeks(date, weeks) {\r\n if (!date) {\r\n return date;\r\n }\r\n\r\n return this.AddDays(date, weeks * 7);\r\n }\r\n\r\n static AddDays(date, days) {\r\n if (!date) {\r\n return date;\r\n }\r\n\r\n var time = date.getTime() + (this.msPerDay * days);\r\n var newDate = new Date();\r\n newDate.setTime(time);\r\n\r\n return this.CorrectDaylightSaving(date, newDate);\r\n }\r\n\r\n static AddMonths(date, months) {\r\n if (!date) {\r\n return date;\r\n }\r\n\r\n var newDate = new Date(date);\r\n newDate.setMonth(date.getMonth() + months);\r\n\r\n return newDate;\r\n }\r\n\r\n static ToStartOfWeek(date, startOfWeek = 1) {\r\n var diff = (7 + (date.getDay() - startOfWeek)) % 7;\r\n return this.AddDays(date, -1 * diff);\r\n }\r\n\r\n static GetWeekNumber(date, startOfWeek = 1) {\r\n var self = this;\r\n\r\n // ISO 8601: First week contains first thursday.\r\n var thurs = toThursday(this.ToStartOfWeek(date, startOfWeek));\r\n var ythurs = toThursday(new Date(thurs.getUTCFullYear(), 0, 1));\r\n var calcWeek = (thurs - ythurs) / self.msPerDay / 7 + 1;\r\n return Math.round(calcWeek);\r\n\r\n function toThursday(date) {\r\n return new Date(Number(date) + (7 + 4 - date.getUTCDay()) % 7 * self.msPerDay);\r\n }\r\n }\r\n\r\n static CorrectDaylightSaving(fromdate, todate) {\r\n var startOffset = fromdate.getTimezoneOffset() * 60000;\r\n var endOffset = todate.getTimezoneOffset() * 60000;\r\n\r\n return new Date(todate - startOffset + endOffset);\r\n }\r\n}","class FormValidationService {\r\n\r\n constructor() { }\r\n\r\n static InitializeDatePicker() {\r\n if ($.isFunction($('.input-group-addon.date-addon-offset.date').datepicker)) {\r\n $('.input-group-addon.date-addon-offset.date').datepicker({\r\n format: \"dd-mm-yyyy\",\r\n weekStart: 1,\r\n todayBtn: \"linked\",\r\n clearBtn: true,\r\n language: APPLOYED.language.getUserLocale(),\r\n daysOfWeekHighlighted: \"0,6\",\r\n keyboardNavigation: false,\r\n autoclose: true,\r\n todayHighlight: true,\r\n immediateUpdates: true\r\n }).on('changeDate', function (e) {\r\n var inputElement = $(this).parent().children('input');\r\n var oldValue = inputElement.val();\r\n\r\n if (e.dates.length > 0) {\r\n var datum = (\"0\" + (e.date.getDate())).slice(-2) + '-' + (\"0\" + (e.date.getMonth() + 1)).slice(-2) + '-' + e.date.getFullYear();\r\n inputElement.attr('value', datum);\r\n inputElement.val(datum);\r\n }\r\n else {\r\n inputElement.attr('value', '');\r\n inputElement.val('');\r\n }\r\n \r\n if (oldValue != inputElement.val()) {\r\n inputElement.trigger('change');\r\n inputElement.trigger('focus');\r\n }\r\n inputElement.trigger('focus');\r\n inputElement.trigger('blur');\r\n }).on('show', function (e) {\r\n $(this).datepicker(\"setDate\", DateService.GetDateFromString($(this).parent().children('input').val()));\r\n });\r\n }\r\n }\r\n\r\n static InitializeRequiredValidation(unbind = false) {\r\n this.CheckRequired();\r\n this.BindRequiredFields(unbind);\r\n this.BindComparisonFields();\r\n }\r\n\r\n static InitializeDecimalInputValidation() {\r\n $(document).off('keyup', '.validation-decimal');\r\n $(document).on('keyup', '.validation-decimal', function () {\r\n validationDecimal($(this));\r\n });\r\n\r\n $(document).off('keyup', '.validation-decimal-positive');\r\n $(document).on('keyup', '.validation-decimal-positive', function () {\r\n validationDecimal($(this), true);\r\n });\r\n\r\n function validationDecimal($el, positive = false) {\r\n let val = $el.val().replace(' ', '').replace(',', '.');\r\n\r\n if (positive) {\r\n val = val.replace(/-/g, '');\r\n }\r\n\r\n if (isNaN(val)) {\r\n val = val.replace(/[^-?\\d*\\.{0.1}\\d+$]/g, '');\r\n\r\n if (val.split('.').length > 2) {\r\n val = val.replace(/\\.+$/, \"\");\r\n }\r\n }\r\n\r\n $el.val(val);\r\n $el.trigger('change');\r\n }\r\n }\r\n\r\n static InitializeIntegerInputValidation() {\r\n $(document).off('keyup', '.validation-integer');\r\n $(document).on('keyup', '.validation-integer', function () {\r\n validationInteger($(this));\r\n });\r\n\r\n $(document).off('keyup', '.validation-integer-positive');\r\n $(document).on('keyup', '.validation-integer-positive', function () {\r\n validationInteger($(this), true);\r\n });\r\n\r\n function validationInteger($el, positive = false) {\r\n let val = $el.val().replace(' ', '');\r\n\r\n if (positive) {\r\n val = val.replace(/-/g, '');\r\n }\r\n\r\n val = val.replace(/[^-?\\d+$]/g, '');\r\n\r\n $el.val(val);\r\n }\r\n }\r\n\r\n static InitializeDateInputValidation() {\r\n $(document).off('keyup', '.date-input-formatted');\r\n $(document).on('keyup', '.date-input-formatted', function (event) {\r\n let val = $(this).val().replace('/', '-').replace(' ', '-').substring(0, 10);\r\n\r\n $(this).val(val);\r\n });\r\n\r\n $(document).off('change', '.date-input-formatted');\r\n $(document).on('change', '.date-input-formatted', function () {\r\n let val = $(this).val();\r\n\r\n if (val.length > 0) {\r\n $(this).val(formatDate(val.split(\"-\")));\r\n }\r\n });\r\n\r\n function formatDate(arr) {\r\n let formatted = \"\";\r\n\r\n $.each(arr, function (index, value) {\r\n switch (index) {\r\n case 0:\r\n formatted = (value.length == 2 ? value : \"0\" + value);\r\n break;\r\n case 1:\r\n formatted = formatted + \"-\" + (value.length == 2 ? value : \"0\" + value);\r\n break;\r\n default:\r\n formatted = formatted + \"-\" + value;\r\n break;\r\n }\r\n });\r\n\r\n return formatted;\r\n }\r\n }\r\n\r\n static CheckTimeValidation() {\r\n var valid = true;\r\n\r\n $(\"input.validate-time\").each(function () {\r\n var isValid = this.checkValidity();\r\n if (!isValid && $(this).hasClass(\"valid-hidden\")) {\r\n isValid = $(this).is(\":hidden\");\r\n }\r\n valid &= isValid;\r\n });\r\n\r\n return valid;\r\n }\r\n\r\n static CheckDateValidation() {\r\n var valid = true;\r\n\r\n $(\"input.validate-date\").each(function () {\r\n var date = $(this).val().trim();\r\n var isValid = (date == \"\" || APPLOYED.validator.isValidDate(date));\r\n if (!isValid && $(this).hasClass(\"valid-hidden\")) {\r\n isValid = $(this).is(\":hidden\");\r\n }\r\n valid &= isValid;\r\n });\r\n\r\n return valid;\r\n }\r\n\r\n static CheckDateValidateInput() {\r\n $(\".custom-date-picker\").children('input').each(function () {\r\n $(this).trigger('change');\r\n });\r\n }\r\n\r\n static BindComparisonFields() {\r\n $(document).off('change', 'input[data-compareto]');\r\n $(document).on('change', 'input[data-compareto]', function () {\r\n let comprateTo = $(this).data('compareto');\r\n let compareType = $(this).data('comparetype');\r\n\r\n let currentVal = $(this).val();\r\n let currentDate = DateService.GetDateFromString(currentVal);\r\n let comprateToVal = $(comprateTo).val();\r\n let comprateToDate = DateService.GetDateFromString(comprateToVal);\r\n\r\n if (compareType == \"LaterOrEqual\") {\r\n if (comprateToVal && currentVal && (comprateToVal.length == 10 && currentVal.length == 10)) {\r\n if (comprateToDate < currentDate) {\r\n $(comprateTo).val(currentVal);\r\n $(comprateTo).attr('value', currentVal);\r\n $(comprateTo).trigger('change');\r\n }\r\n }\r\n } else if (compareType == \"EarlierOrEqual\") {\r\n if (comprateToVal && currentVal && (comprateToVal.length == 10 && currentVal.length == 10)) {\r\n if (comprateToDate > currentDate) {\r\n $(comprateTo).val(currentVal);\r\n $(comprateTo).attr('value', currentVal);\r\n $(comprateTo).trigger('change');\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n static CheckRequired() {\r\n let readyToSubmit = true;\r\n\r\n $(\".validation-required\").each(function () {\r\n let valid = true;\r\n if (!$(this).val()) {\r\n valid = false;\r\n } else if ($(this).hasClass(\"date-input-formatted\")) {\r\n if (!APPLOYED.validator.isValidDate($(this).val())) {\r\n valid = false;\r\n }\r\n } else if ($(this).hasClass(\"fileExtensionRequired\")) {\r\n if (!APPLOYED.validator.hasFileExtension(this)) {\r\n valid = false;\r\n }\r\n }\r\n\r\n if (!valid && $(this).hasClass(\"valid-hidden\")) {\r\n valid = $(this).is(\":hidden\");\r\n }\r\n\r\n if (!valid) {\r\n readyToSubmit = false;\r\n }\r\n\r\n if (valid) {\r\n if ($(this)[0].tagName.toLowerCase() === \"input\") {\r\n $(this).removeClass('required-field-border');\r\n var notchDiv = $(this).parent().find('div.form-notch');\r\n if (notchDiv.length > 0) {\r\n if (notchDiv.hasClass('required-field-color')) {\r\n notchDiv.removeClass('required-field-color');\r\n }\r\n }\r\n }\r\n else if ($(this)[0].tagName.toLowerCase() === \"select\") {\r\n var inputDiv = $(this).parent().children('div.form-outline').find('input');\r\n if (inputDiv.hasClass('required-field-border')) {\r\n inputDiv.removeClass('required-field-border');\r\n }\r\n var notchDiv = $(this).parent().children('div.form-outline').find('div.form-notch');\r\n if (notchDiv.length > 0) {\r\n if (notchDiv.hasClass('required-field-color')) {\r\n notchDiv.removeClass('required-field-color');\r\n }\r\n }\r\n }\r\n } else {\r\n readyToSubmit = false;\r\n if ($(this)[0].tagName.toLowerCase() === \"input\") {\r\n if (!$(this).hasClass('required-field-border')) {\r\n $(this).addClass('required-field-border');\r\n var notchDiv = $(this).parent().find('div.form-notch');\r\n if (notchDiv.length > 0) {\r\n if (!notchDiv.hasClass('required-field-color')) {\r\n notchDiv.addClass('required-field-color');\r\n }\r\n }\r\n }\r\n }\r\n else if ($(this)[0].tagName.toLowerCase() === \"select\") {\r\n var inputDiv = $(this).parent().children('div.form-outline').find('input');\r\n if (!inputDiv.hasClass('required-field-border')) {\r\n inputDiv.addClass('required-field-border');\r\n }\r\n var notchDiv = $(this).parent().children('div.form-outline').find('div.form-notch');\r\n if (notchDiv.length > 0) {\r\n if (!notchDiv.hasClass('required-field-color')) {\r\n notchDiv.addClass('required-field-color');\r\n }\r\n }\r\n }\r\n }\r\n });\r\n\r\n if (readyToSubmit) {\r\n readyToSubmit = this.CheckTimeValidation() && this.CheckDateValidation();\r\n }\r\n\r\n $(\".btn-save\").prop(\"disabled\", !readyToSubmit);\r\n return readyToSubmit;\r\n }\r\n\r\n static BindRequiredFields(unbind = false) {\r\n var self = this;\r\n\r\n $(\".validation-required, .validate-time, .validate-date\").each(function (index) {\r\n if (unbind) {\r\n $(this).off('change keyup');\r\n }\r\n\r\n $(this).on('change keyup', function () {\r\n self.CheckRequired();\r\n });\r\n });\r\n }\r\n\r\n}","class GroupOverviewService {\r\n calendar = null;\r\n duration = 3;\r\n selectedGroepen = [];\r\n allEvents = [];\r\n allResources = [];\r\n newDate = null;\r\n\r\n startDate = null;\r\n endDate = null;\r\n\r\n refreshLastStartdate = null;\r\n refreshLastEnddate = null;\r\n\r\n constructor() { };\r\n\r\n initCalendar(newDate, hidepopup) {\r\n\r\n var showDate = $(\"#calendar-scheduler\").data(\"showdate\");\r\n this.newDate = new Date();\r\n\r\n if (showDate != \"\") {\r\n let showdate = DateService.GetDateFromString(showDate);\r\n if (showdate) {\r\n newDate = showdate;\r\n } else if (newDate) {\r\n newDate = DateService.GetDateFromString(newDate);\r\n }\r\n this.newDate = newDate;\r\n }\r\n\r\n this.setFilters();\r\n this.constructCalendar();\r\n this.calendar.render();\r\n\r\n if (APPLOYED.common.isTrue(hidepopup)) {\r\n $('#modal_popup').modal(\"hide\");\r\n }\r\n };\r\n\r\n refreshData(startDate, endDate) {\r\n var self = this;\r\n\r\n if (startDate === undefined && endDate === undefined) {\r\n startDate = self.refreshLastStartdate;\r\n endDate = self.refreshLastEnddate;\r\n } else {\r\n self.refreshLastStartdate = startDate;\r\n self.refreshLastEnddate = endDate;\r\n }\r\n\r\n var start = new Date(startDate);\r\n var end = new Date(endDate);\r\n\r\n Api.APIcaller.CallAction(\"/Customer/Absence/GetGroepOverzicht\", { startDate: start.toDateString(), endDate: end.toDateString() }, \"GET\", successEvent, null, null, Api.APIcaller.CancelOptions.None);\r\n\r\n function successEvent(e) {\r\n self.calendar.removeAllEvents();\r\n\r\n if (localStorage[KeyFoldService.getSelectedGroepen()]) {\r\n\r\n let selectedGroepen = JSON.parse(localStorage[KeyFoldService.getSelectedGroepen()]);\r\n for (let i = 0; i < e.allResources.length; i++) {\r\n var resource = self.calendar.getResourceById(e.allResources[i].id);\r\n if (resource) {\r\n resource.getChildren().forEach(child => child.remove());\r\n resource.remove();\r\n self.calendar.refetchResources();\r\n }\r\n\r\n let index = selectedGroepen.findIndex(d => d == e.allResources[i].id);\r\n if (index >= 0) {\r\n self.calendar.addResource(e.allResources[i]);\r\n }\r\n }\r\n } else {\r\n if (e.currentResources.length > 0) {\r\n\r\n for (let i = 0; i < e.currentResources.length; i++) {\r\n\r\n var resource = self.calendar.getResourceById(e.allResources[i].id);\r\n if (resource) {\r\n resource.getChildren().forEach(child => child.remove());\r\n resource.remove();\r\n self.calendar.refetchResources();\r\n }\r\n\r\n self.calendar.addResource(e.currentResources[i]);\r\n }\r\n }\r\n }\r\n\r\n self.calendar.addEventSource(e.allEvents.concat(e.functieDagenEvent));\r\n\r\n self.allEvents = e.allEvents;\r\n self.allResources = e.allResources;\r\n $(\".fc-button\").prop(\"disabled\", false);\r\n\r\n GroupOverviewService.bindChevHide();\r\n }\r\n };\r\n\r\n lastDayOfTheMonth(y, m) {\r\n return new Date(y, m + 1, 0).getDate();\r\n };\r\n\r\n constructCalendar() {\r\n\r\n let addMonthTranslation = $(\"#calendar-scheduler\").data(\"addmonth\");\r\n let removeMonthTranslation = $(\"#calendar-scheduler\").data(\"removemonth\");\r\n\r\n var self = this;\r\n let language = $(\"#calendar-scheduler\").data(\"language\");\r\n let showDate = new Date($(\"#calendar-scheduler\").data(\"showdate\") == null ? new Date() : $(\"#calendar-scheduler\").data(\"showdate\"));\r\n var calendarEl = document.getElementById('calendar-scheduler');\r\n\r\n var nowDate = this.newDate ? this.newDate : showDate;\r\n\r\n this.calendar = new FullCalendar.Calendar(calendarEl, {\r\n schedulerLicenseKey: KeyFoldService.getFullCalendarLicense(),\r\n now: nowDate,\r\n editable: false,\r\n selectable: true,\r\n locale: APPLOYED.language.getUserLocale(),\r\n aspectRatio: 1,\r\n height: \"auto\",\r\n headerToolbar: {\r\n left: 'title',\r\n center: 'addButton,removeButton',\r\n right: 'prev,next'\r\n },\r\n initialView: 'timeLineMonth',\r\n customButtons: {\r\n addButton: {\r\n text: addMonthTranslation,\r\n click: function () {\r\n $(\".fc-button\").prop(\"disabled\", true);\r\n self.duration++;\r\n self.constructCalendar();\r\n self.calendar.render();\r\n }\r\n },\r\n removeButton: {\r\n text: removeMonthTranslation,\r\n click: function () {\r\n if (self.duration <= 1) {\r\n return;\r\n }\r\n\r\n $(\".fc-button\").prop(\"disabled\", true);\r\n\r\n self.duration--;\r\n self.constructCalendar();\r\n self.calendar.render();\r\n }\r\n }\r\n },\r\n duration: { months: this.duration },\r\n views: {\r\n timeLineMonth: {\r\n type: 'resourceTimelineMonth',\r\n duration: { months: this.duration }\r\n }\r\n },\r\n navLinks: false,\r\n resourceAreaWidth: '25%',\r\n resourceAreaHeaderContent: language == 1 ? 'Werknemers' : 'Employees',\r\n resourceOrder: 'title',\r\n //progressiveEventRendering: false,\r\n //resourceLaneDidMount: function (arg) {\r\n // arg.el.style.backgroundColor = '#' + Math.random().toString(16).substr(2, 6)\r\n //},\r\n //slotLaneDidMount: function (arg) {\r\n // arg.el.style.backgroundColor = '#'+Math.random().toString(16).substr(2,6)\r\n //},\r\n \r\n eventClassNames:\r\n function (arg) {\r\n let color = arg.backgroundColor;\r\n arg.textColor = color;\r\n\r\n if (self.isWaitingStatus(arg.event.extendedProps.status) === \"geenfunctie\") {\r\n arg.textColor = arg.event.extendedProps.geenFunctieKleur;\r\n arg.borderColor = arg.event.extendedProps.geenFunctieKleur;\r\n arg.backgroundColor = arg.event.extendedProps.geenFunctieKleur;\r\n \r\n return ['geenfunctie nofunction pointercursor']\r\n }\r\n\r\n if (self.isWaitingStatus(arg.event.extendedProps.status)) {\r\n arg.textColor = \"white\";\r\n arg.borderColor = color;\r\n arg.backgroundColor = \"white\";\r\n\r\n return ['status-waiting-scheduler pointercursor']\r\n }\r\n\r\n var resource = self.GetResource(arg.event);\r\n\r\n if (resource != null && resource._resource.extendedProps.canView == true) {\r\n return ['pointercursor'];\r\n }\r\n },\r\n resourceLaneClassNames:\r\n function (arg) {\r\n if (arg.resource._resource.extendedProps.canView == true) {\r\n return ['pointercursor'];\r\n }\r\n },\r\n eventClick: function (event) {\r\n \r\n if ($(event.el).hasClass('nofunction') == false && +event.event._def.extendedProps.canView == true) {\r\n\r\n let startDate = new Date(nowDate.getFullYear(), nowDate.getMonth(), 1);\r\n let endDate = new Date(nowDate);\r\n endDate = new Date(endDate.setMonth(nowDate.getMonth() + self.calendar.getOption('duration').months));\r\n endDate.setDate(self.lastDayOfTheMonth(endDate.getFullYear(), endDate.getMonth()));\r\n\r\n let data = {\r\n verlofId: event.event.id,\r\n selectedStartDate: event.event.start.toDateString(),\r\n selectedEndDate: event.event.end != null ? event.event.end.toDateString() : null,\r\n werknemerId: +event.event._def.resourceIds[0],\r\n status: +event.event._def.extendedProps.status,\r\n startDate: startDate.toDateString(),\r\n endDate: endDate.toDateString()\r\n };\r\n \r\n self.OpenVerlof(\"\", data);\r\n }\r\n },\r\n dateClick: function (event) {\r\n if (+event.resource._resource.parentId == 0 || +event.resource._resource.extendedProps.canView == false) {\r\n return;\r\n }\r\n \r\n let startDate = new Date(nowDate.getFullYear(), nowDate.getMonth(), 1);\r\n let endDate = new Date(nowDate);\r\n endDate = new Date(endDate.setMonth(nowDate.getMonth() + self.calendar.getOption('duration').months));\r\n endDate.setDate(self.lastDayOfTheMonth(endDate.getFullYear(), endDate.getMonth()));\r\n\r\n let data = {\r\n verlofId: 0,\r\n selectedStartDate: event.dateStr,\r\n selectedEndDate: event.dateStr,\r\n werknemerId: +event.resource._resource.id,\r\n status: 387,\r\n startDate: startDate.toDateString(),\r\n endDate: endDate.toDateString()\r\n };\r\n\r\n self.OpenVerlof(\"div.fc-highlight\", data);\r\n\r\n },\r\n datesSet: function (date) {\r\n\r\n if (self.startDate && self.endDate && self.startDate.toDateString() == date.start.toDateString() && self.endDate.toDateString() == date.end.toDateString()) {\r\n return;\r\n }\r\n\r\n self.startDate = date.start;\r\n self.endDate = date.end;\r\n\r\n self.refreshData(date.start, date.end);\r\n },\r\n select: function (start, end, jsEvent, view, resource) {\r\n if (start) {\r\n if (start.resource._resource.parentId == \"\" || start.resource._resource.extendedProps.canView == false) {\r\n this.unselect();\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n GetResource(event) {\r\n var self = this;\r\n\r\n var resourceId = null;\r\n if (event._def.resourceIds && event._def.resourceIds.length > 0) {\r\n resourceId = event._def.resourceIds[0];\r\n }\r\n\r\n var resource = null;\r\n if (resourceId != null) {\r\n resource = self.calendar.getResourceById(resourceId);\r\n }\r\n\r\n return resource;\r\n }\r\n\r\n OpenVerlof(element, data) {\r\n let options = {};\r\n options[\"nofading\"] = false;\r\n options[\"tofadein\"] = element;\r\n\r\n data.typeCalendar = \"group\";\r\n \r\n Api.APIcaller.CallAction(\"/Ajax/GetVerlofDetailWizard\", data, \"Post\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n return;\r\n }\r\n\r\n isWaitingStatus(status) {\r\n //Definitief = 386,\r\n //Denied = 13,\r\n //WithdrawRequest = 16,\r\n //Withdrawn = 15,\r\n //WithdrawRejected = 17,\r\n //New = 387,\r\n //Completed = 14,\r\n //Waiting = 18\r\n //Geen functie = 999\r\n\r\n switch (status) {\r\n case 386, 13, 15, 17, 14:\r\n return false;\r\n case 16, 387, 18:\r\n return true;\r\n case 999:\r\n return \"geenfunctie\";\r\n }\r\n }\r\n\r\n setFilters() {\r\n checkClearStorage();\r\n\r\n var groepId = $(\"#calendar-scheduler\").data(\"groepid\");\r\n var self = this;\r\n\r\n if (groepId > 0) {\r\n if (localStorage[KeyFoldService.getSelectedGroepen()]) {\r\n let index = JSON.parse(localStorage[KeyFoldService.getSelectedGroepen()]).findIndex(d => d == groepId);\r\n\r\n if (index >= 0) {\r\n this.selectedGroepen = JSON.parse(localStorage[KeyFoldService.getSelectedGroepen()]);\r\n } else {\r\n this.selectedGroepen.push(groepId);\r\n localStorage[KeyFoldService.getSelectedGroepen()] = JSON.stringify(self.selectedGroepen);\r\n }\r\n }\r\n }\r\n\r\n if (localStorage[KeyFoldService.getSelectedGroepen()]) {\r\n this.selectedGroepen = JSON.parse(localStorage[KeyFoldService.getSelectedGroepen()]);\r\n } else if (groepId > 0) {\r\n this.selectedGroepen.push(groepId);\r\n }\r\n\r\n $(\".chkFilterStatus\").each(function () {\r\n let index = self.selectedGroepen.findIndex(d => d == +$(this).val());\r\n\r\n if (index >= 0) {\r\n $(this).prop('checked', true);\r\n $('div.filterstatuscheckbox' + $(this).val() + '').show();\r\n } else {\r\n $(this).prop('checked', false);\r\n $('div.filterstatuscheckbox' + $(this).val() + '').hide();\r\n }\r\n });\r\n\r\n $('.dropdown-noclose .dropdown-menu').on('click', function (e) {\r\n e.stopPropagation();\r\n });\r\n\r\n $(\".chkFilterStatus\").on(\"click\", function () {\r\n let index = self.selectedGroepen.findIndex(d => d == +$(this).val());\r\n if (index != -1) {\r\n self.selectedGroepen.splice(index, 1);\r\n let resource = self.calendar.getResourceById($(this).val());\r\n if (resource) {\r\n resource.getChildren().forEach(child => child.remove());\r\n resource.remove();\r\n }\r\n\r\n self.calendar.refetchResources();\r\n } else {\r\n self.selectedGroepen.push(+$(this).val());\r\n let resource = self.allResources.find(r => r.id == +$(this).val());\r\n self.calendar.addResource(resource);\r\n self.calendar.refetchResources();\r\n }\r\n\r\n localStorage[KeyFoldService.getSelectedGroepen()] = JSON.stringify(self.selectedGroepen);\r\n });\r\n\r\n $('.filterstatuscheckbox').bind('click', function () {\r\n let index = self.selectedGroepen.findIndex(d => d == +$(this).data(\"groepid\"));\r\n if (index != -1) {\r\n self.selectedGroepen.splice(index, 1);\r\n\r\n var resource = self.calendar.getResourceById($(this).data(\"groepid\"));\r\n if (resource) {\r\n resource.getChildren().forEach(child => child.remove());\r\n resource.remove();\r\n }\r\n\r\n self.calendar.refetchResources();\r\n }\r\n\r\n localStorage[KeyFoldService.getSelectedGroepen()] = JSON.stringify(self.selectedGroepen);\r\n });\r\n\r\n function checkClearStorage() {\r\n var employeeId = $('#EmployeeId').val();\r\n var storageEmployeeId = localStorage[KeyFoldService.getSelectedEmployee()];\r\n\r\n if (employeeId != storageEmployeeId) {\r\n localStorage[KeyFoldService.getSelectedEmployee()] = employeeId;\r\n localStorage.removeItem(KeyFoldService.getSelectedGroepen());\r\n }\r\n }\r\n }\r\n\r\n static bindChevHide = function () {\r\n if ($('#go-saldi-container').is(':visible')) {\r\n $(\"#go-saldi-container\").show();\r\n $(\"#pc-chev-up\").show();\r\n $(\"#pc-chev-down\").hide();\r\n }\r\n else {\r\n $(\"#go-saldi-container\").hide();\r\n $(\"#pc-chev-up\").hide();\r\n $(\"#pc-chev-down\").show();\r\n }\r\n\r\n $(\"#pc-chev-up\").unbind('click');\r\n $(\"#pc-chev-up\").bind('click', function () {\r\n $(\"#go-saldi-container\").hide();\r\n $(\"#pc-chev-up\").hide();\r\n $(\"#pc-chev-down\").show();\r\n });\r\n\r\n $(\"#pc-chev-down\").unbind('click');\r\n $(\"#pc-chev-down\").bind('click', function () {\r\n $(\"#go-saldi-container\").show();\r\n $(\"#pc-chev-up\").show();\r\n $(\"#pc-chev-down\").hide();\r\n });\r\n }\r\n \r\n}","class KeyFoldService {\r\n constructor() { }\r\n\r\n static getFullCalendarLicense() {\r\n return \"0401680382-fcs-1608110937\";\r\n }\r\n\r\n static GetWijmoCoreLicense() {\r\n return \"General Apployed; BCS-HR Time,611812679227777#B0Ubc9CZll7bsBHch9ycs36b4xSbvNmLyhWLzNmYuUWbpRnLzx6bvRndlRGLs9mLkVWevxGcwFmL6VGZswmbuQWZ93GbwBXYuMHbv3Gd4NXZ4xCbu9CZll7bsBHch9ibvlmclBXeo5CZvJHcwV7ajFmYswmbuQWZ93GbwBXYuQ7clRHLt36YuIHatM7Yi9SZtlGdu86bpJXZwlHatQ6byBHc5t6YhJGLt36YuIHatM7Yi9SZtlGduMHbv3GdswmbuQWZ93GbwBXYuMHbv3Gd6VGZiojIz5GRiwiIWJEITNkQiojIh94QiwiI7czN7IjM9cjNyEDOxEjNiojIklkIs4XXbpjInxmZiwiIyY7MyAjMiojIyVmdiwSZzxWYmpjIyNHZisnOiwmbBJye0ICRiwiI34TU9skT9cXcl3COpdEaS5UdSV5amxEaKlUONllRyIGTqdjcuFWY7I5V8U7MVVnN4IVRQN5LodXYTd4avQkVnRVM49kNkpmYZR6MG9UV6AXS9EEMnZHcS9kQXRGaZZzduFzYCVHUTRFdyR4TIpFcHd7UD5GcKBTQShTb5NjdMJnVkF6NBF5RlJ5Lv2UZQBDWFdTb9AHSPhzZkZUbaRFUsJFSGF6QypVSRBlchxUNzQ4QIZ6V7F7K6EDWrM4TmJ7cV94L5lXR6sGbLxERtJkeqhHdX96L7UDeMBzaiFkbYxGTKd7QysSZ626aER5d9BXdlVVVywWTyoVU8wUWWl6KCp6d84EM6VWWC9mQxtCO4RnNlVzSKtWeORVVFlERxZmSZpkUSFkMJNzSO3WMCFVNxNWcllnN824TLVER75kW5okNHRGZzNVWZ36cSV7dtxkQUhEO6Q4UCVkI0IyUiwiIzADRxEUR8cjI0ICSiwiNygDMzUTM4AjM0IicfJye#4Xfd5nIJBjMSJiOiMkIsIibvl6cuVGd8VEIgQXZlh6U8VGbGBybtpWaXJiOi8kI1xSfiUTSOFlI0IyQiwiIu3Waz9WZ4hXRgAicldXZpZFdy3GclJFIv5mapdlI0IiTisHL3JyS7gDSiojIDJCLi86bpNnblRHeFBCI73mUpRHb55EIv5mapdlI0IiTisHL3JCNGZDRiojIDJCLi86bpNnblRHeFBCIQFETPBCIv5mapdlI0IiTisHL3JyMDBjQiojIDJCLiUmcvNEIv5mapdlI0IiTisHL3JSV8cTQiojIDJCLi86bpNnblRHeFBCI4JXYoNEbhl6YuFmbpZEIv5mapdlI0IiTis7W0ICZyBlIsISN4ATN9ADI5AzMwQjMwIjI0ICdyNkIsISbvNmLyhWLzNmYuUWbpRnLzx6bvRHZvJHcwV7ajFmYs46bj9ico5ycjJmLl5Wa49CdzVGdswmbuQWZ93GbwBXYuMHbv3Gdk3mcwBXdrNWYixCbu9CZll7bsBHch9CZvJHcwV7ajFmYswmbuQWZ93GbwBXYu86bpJXZwlHatYXZkxSbvNmLyhWLzNmYuUWbpRnLu3WayVGc9hWL6VGZs46bj9ico5ycjJmLl5Wa49ibvlmclBXeo5CdzVGds46bj9ico5ycjJmLl5Wa49CZvJHcwV7ajFmYswmbuQWZ93GbwBXYuQnchR7csQ7cvhGbhN6bsxSbvNmLyhWLzNmYuUWbpRnLu3WayVGc9hWLk3mcwxSbvNmLyhWLzNmYuUWbpRnLzx6bvRHdzVGdswmbuQWZ93GbwBXYu86bpJXZwlHatQ6byBHLt36YuIHatM7Yi9SZtlGduYXZkxCbu9CZll7bsBHch9ibvlmclBXeo5CdzVGds46bj9ico5ycjJmLl51awx\";\r\n }\r\n\r\n static getSelectedGroepen() {\r\n return \"selectedGroepenKey\" + APPLOYED.common.getUsersessionId();\r\n }\r\n\r\n static getSelectedEmployee() {\r\n return \"selectedEmployeeKey\" + APPLOYED.common.getUsersessionId();\r\n }\r\n}","class ModalWizardService {\r\n\r\n startDate = null;\r\n endDate = null;\r\n editing = false;\r\n\r\n constructor() { }\r\n\r\n static initWizardModal() {\r\n this.initContentBinding();\r\n\r\n this.bindSaveButton();\r\n this.bindNextButton();\r\n this.checkSicknessItem();\r\n }\r\n\r\n static initContentBinding() {\r\n var self = this;\r\n\r\n FormValidationService.InitializeDecimalInputValidation();\r\n FormValidationService.InitializeRequiredValidation(true);\r\n\r\n this.initializeDates();\r\n this.bindAfwijkendeDagenCheckBox();\r\n VerlofDeviantDaysService.bindDeviantDaysBtn();\r\n\r\n this.checkInitDatePicker();\r\n VerlofDeviantDaysService.checkAfwijkendeDagenBtn(self.editing);\r\n }\r\n\r\n static bindAfwijkendeDagenCheckBox() {\r\n let self = this;\r\n\r\n if ($(\"#regelingDropdown\").val() == null) {\r\n $(\"#wizard-checkbox\").hide();\r\n }\r\n\r\n setVerlofToekennenInDagen();\r\n\r\n $(document).off('change', '#regelingDropdown');\r\n $(document).on('change', '#regelingDropdown', function () {\r\n if ($(this).val() > 0) {\r\n $(\"#wizard-checkbox\").show();\r\n\r\n if ($('#AfwijkendeDagen').is(':checked')) {\r\n $('#afwijkende-dagen-container').show();\r\n }\r\n } else {\r\n $(\"#wizard-checkbox\").hide();\r\n }\r\n\r\n setVerlofToekennenInDagen();\r\n VerlofDeviantDaysService.checkAfwijkendeDagen();\r\n\r\n self.checkSicknessItem();\r\n });\r\n\r\n $('#AfwijkendeDagen').unbind('change');\r\n $('#AfwijkendeDagen').bind('change', function () {\r\n $(\"#afwijkende-dagen-container\").toggle(this.checked);\r\n\r\n if (this.checked) {\r\n var data = {\r\n startDate: self.startDate != null ? self.startDate.toDateString() : null,\r\n endDate: self.endDate != null ? self.endDate.toDateString() : null,\r\n werknemerId: $(\"#werknemerId\").val(),\r\n status: $(\"#container-wizard\").data(\"status\"),\r\n verlofToekennenInDagen: VerlofDeviantDaysService.verlofToekennenInDagen\r\n };\r\n\r\n VerlofDeviantDaysService.checkLoadAfwijkendeDagen(data);\r\n }\r\n });\r\n\r\n function setVerlofToekennenInDagen() {\r\n var verlofregelingId = $('#regelingDropdown').val();\r\n VerlofDeviantDaysService.verlofToekennenInDagen = !!$('#VerlofRegelingenInDagen').val().split(',').find(id => id == verlofregelingId);\r\n }\r\n }\r\n\r\n static checkInitDatePicker() {\r\n if ($('#btn-edit').length <= 0) {\r\n FormValidationService.InitializeDatePicker();\r\n }\r\n }\r\n\r\n static bindSaveButton() {\r\n var self = this;\r\n\r\n self.editing = true;\r\n\r\n if ($('#btn-edit').length > 0) {\r\n checkShowDuur(true);\r\n self.editing = false;\r\n\r\n $('#container-wizard').find('input, select, textarea, .form-group').each(function () {\r\n $(this).addClass('form-disabled');\r\n $(this).attr('disabled', true);\r\n });\r\n\r\n $('#container-wizard').find('select').each(function () {\r\n $(this).parent().addClass('form-disabled');\r\n });\r\n }\r\n\r\n var originalContent = $('#content-wizard').html();\r\n\r\n $('#btn-edit').off('click');\r\n $('#btn-edit').on('click', function () {\r\n $('#transitions').hide();\r\n $('#btn-edit').hide();\r\n $('#add-verlof').hide();\r\n $('#btn-save').show();\r\n $('#btn-cancel').show();\r\n\r\n checkShowDuur(false);\r\n self.editing = true;\r\n\r\n $('#container-wizard').find('input, select, textarea, .form-group').each(function () {\r\n if (!$(this).is('[readonly]')) {\r\n $(this).removeClass('form-disabled');\r\n $(this).attr('disabled', false);\r\n }\r\n });\r\n\r\n FormValidationService.InitializeDatePicker();\r\n VerlofDeviantDaysService.checkAfwijkendeDagenBtn(self.editing);\r\n VerlofDeviantDaysService.checkAfwijkendeDagen();\r\n\r\n setTimeout(() => FormValidationService.CheckRequired(), 100);\r\n });\r\n\r\n $('#btn-cancel').off('click');\r\n $('#btn-cancel').on('click', function () {\r\n $('#transitions').show();\r\n $('#btn-edit').show();\r\n $('#add-verlof').show();\r\n $('#btn-save').hide();\r\n $('#btn-cancel').hide();\r\n\r\n $('#container-wizard').find('input, select, textarea, .form-group').each(function () {\r\n $(this).trigger('change');\r\n });\r\n\r\n $('#content-wizard').html(originalContent);\r\n self.editing = false;\r\n\r\n // Rebind the content elements\r\n self.initContentBinding();\r\n Api.Main.clearNotify();\r\n });\r\n\r\n $('#btn-save').off('click');\r\n $('#btn-save').on('click', function () {\r\n var options = {};\r\n\r\n options[\"nofading\"] = false;\r\n options[\"loading\"] = this;\r\n\r\n let dagen = [];\r\n if (self.startDate && self.endDate && $('input#AfwijkendeDagen')[0].checked) {\r\n dagen = VerlofDeviantDaysService.GetDeviantDays();\r\n }\r\n\r\n let viewModel = {\r\n status: $(\"#status\").val(),\r\n verlofid: $(\"#container-wizard\").data(\"verlofid\"),\r\n typecalendar: $(\"#container-wizard\").data(\"typecalendar\"),\r\n rowguid: $(\"#rowguid\").val(),\r\n werknemerId: $(\"#werknemerId\").val(),\r\n selectedVerlofRegelingId: +$('#regelingDropdown').val(),\r\n selectedReden: +$(\"#SelectedReden\").val(),\r\n notities: $(\"#Notities\").val(),\r\n selectedStartdate: self.startDate.toDateString(),\r\n selectedEnddate: (self.endDate != null ? self.endDate.toDateString() : null),\r\n startDate: new Date($(\"#StartDate\").val()).toDateString(),\r\n endDate: new Date($(\"#EndDate\").val()).toDateString(),\r\n verlofToekennenInDagen: VerlofDeviantDaysService.verlofToekennenInDagen\r\n };\r\n\r\n Api.Main.clearNotify();\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/SaveVerlof\", {\r\n viewModel,\r\n dagen\r\n }, \"Post\", null, null, finished, options, Api.APIcaller.CancelOptions.None);\r\n\r\n function finished(result) {\r\n if (result.hasErrorText) {\r\n return;\r\n }\r\n\r\n self.editing = $('#btn-save').is(':visible');\r\n VerlofDeviantDaysService.checkAfwijkendeDagenBtn(self.editing);\r\n\r\n if ($('#btn-edit').length <= 0) {\r\n $('#modal_popup').modal('hide');\r\n }\r\n }\r\n });\r\n\r\n function checkShowDuur(show) {\r\n var $duur = $('#afwezigheid_duur');\r\n if ($duur.length == 0) {\r\n return;\r\n }\r\n\r\n if (!show) {\r\n $duur.hide();\r\n } else {\r\n $duur.show();\r\n }\r\n }\r\n }\r\n\r\n static bindNextButton() {\r\n let self = this;\r\n $('.btn-next').off('click');\r\n $('.btn-next').on('click', function () {\r\n var options = {};\r\n\r\n options[\"nofading\"] = false;\r\n options[\"loading\"] = this;\r\n\r\n var statusId = $(this).data(\"transitionid\");\r\n\r\n let data = {\r\n Status: statusId,\r\n verlofid: $(\"#container-wizard\").data(\"verlofid\"),\r\n typecalendar: $(\"#container-wizard\").data(\"typecalendar\"),\r\n rowguid: $(\"#rowguid\").val(),\r\n werknemerId: $(\"#werknemerId\").val(),\r\n selectedVerlofRegelingId: +$(\"#regelingDropdown\").val(),\r\n selectedReden: +$(\"#SelectedReden\").val(),\r\n notities: $(\"#Notities\").val(),\r\n selectedStartdate: self.startDate.toDateString(),\r\n selectedEnddate: (self.endDate != null ? self.endDate.toDateString() : null),\r\n startDate: new Date($(\"#StartDate\").val()).toDateString(),\r\n endDate: new Date($(\"#EndDate\").val()).toDateString()\r\n };\r\n \r\n if ($(this).data(\"transitionid\") != 14) {\r\n Api.APIcaller.CallAction(\"/Ajax/NextStatusVerlof\", data, \"Get\", null, null, function (response) {\r\n if (!response.errorText) {\r\n $('div[data-verloficonid=\"' + $(\"#container-wizard\").data(\"verlofid\") + '\"]').attr('class', 'status-' + statusId);\r\n }\r\n }, options, Api.APIcaller.CancelOptions.None);\r\n } else {\r\n Api.APIcaller.CallAction(\"/Ajax/CheckRequestRecord\", data, \"POST\", null, null, function (response) {\r\n if (!response.errorText) {\r\n $('div[data-verloficonid=\"' + $(\"#container-wizard\").data(\"verlofid\") + '\"]').attr('class', 'status-' + statusId);\r\n }\r\n }, options, Api.APIcaller.CancelOptions.None);\r\n }\r\n\r\n });\r\n }\r\n\r\n static checkSicknessItem() {\r\n var sicknessList = $(\"#ZiekteRegelingen\").val().split(',');\r\n\r\n if (sicknessList.indexOf($('#regelingDropdown').val()) > -1) {\r\n $('#SelectedReden').val('');\r\n $('#verlofRedenContainer').hide();\r\n }\r\n else {\r\n $('#verlofRedenContainer').show();\r\n }\r\n }\r\n\r\n static initializeDates() {\r\n var $startdate = $('#startDatum');\r\n var $enddate = $('#eindDatum');\r\n\r\n this.startDate = DateService.GetDateFromString($(\"#container-wizard\").data(\"selectedstartdate\"));\r\n this.endDate = DateService.GetDateFromString($(\"#container-wizard\").data(\"selectedenddate\"));\r\n\r\n var self = this;\r\n\r\n $startdate.bind('change', function () {\r\n let d = DateService.GetDateFromString($startdate.val());\r\n if (isNaN(d)) {\r\n d = null;\r\n }\r\n\r\n self.startDate = d;\r\n getRegelingen();\r\n\r\n if (self.endDate && self.startDate) {\r\n $(\"#btn-next-period\").removeClass(\"disabled\");\r\n }\r\n\r\n VerlofDeviantDaysService.checkRemoveDeviantDays($('#startDatum').val(), $('#eindDatum').val());\r\n });\r\n\r\n $enddate.bind('change', function () {\r\n let d = DateService.GetDateFromString($enddate.val());\r\n if (isNaN(d)) {\r\n d = null;\r\n }\r\n\r\n self.endDate = d;\r\n getRegelingen();\r\n\r\n if (self.endDate && self.startDate) {\r\n $(\"#btn-next-period\").removeClass(\"disabled\");\r\n }\r\n\r\n VerlofDeviantDaysService.checkRemoveDeviantDays($('#startDatum').val(), $('#eindDatum').val());\r\n });\r\n\r\n function getRegelingen() {\r\n if (!$('#startDatum').val() || !APPLOYED.validator.isValidDate($('#startDatum').val())) {\r\n return;\r\n }\r\n\r\n let selectedRegeling = $('#regelingDropdown').val();\r\n\r\n var options = {};\r\n options[\"tofadein\"] = null;\r\n\r\n let verlofType = 'absenceaanvraag';\r\n\r\n let body = {\r\n container: \"regelingDropdown\",\r\n type: verlofType,\r\n werknemerId: $('#werknemerId').val(),\r\n jaar: $('#startDatum').val().split(\"-\")[2]\r\n }\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/GetVerlofRegelingenDropdown\", body, \"POST\", null, null, finished, options, Api.APIcaller.CancelOptions.None);\r\n\r\n function finished(response) {\r\n $('#ZiekteRegelingen').val(response.jsoNresults[0].join(\",\"));\r\n $('#regelingDropdown').find('option[value=\"' + selectedRegeling + '\"]').attr('selected', true);\r\n $('#regelingDropdown').trigger('change');\r\n }\r\n }\r\n }\r\n}","class PersonalCalendarService {\r\n calendar = null;\r\n\r\n addRoundBorder(element, topleft, topright, bottomright, bottomleft) {\r\n if (topleft > 0) {\r\n $(element).css(\"border-top-left-radius\", topleft + \"px\");\r\n }\r\n\r\n if (topright > 0) {\r\n $(element).css(\"border-top-right-radius\", topright + \"px\");\r\n }\r\n\r\n if (bottomright > 0) {\r\n $(element).css(\"border-bottom-right-radius\", bottomright + \"px\");\r\n }\r\n\r\n if (bottomleft > 0) {\r\n $(element).css(\"border-bottom-left-radius\", bottomleft + \"px\");\r\n }\r\n };\r\n\r\n addBorder(element, side, data, eventlength) {\r\n if (data.status != -99 && data.verlofId != -99) {\r\n $(element).css('border-' + side + '', \"2px \" + (this.isWaitingStatus(data.status) ? \"dashed \" : \"solid \") + (eventlength > 1 ? data.kleurgecombineerd : (data.status == 999 ? data.kleurgeenfunctie : data.color)));\r\n }\r\n };\r\n\r\n constructor() {\r\n };\r\n\r\n initCalendar(year, hidepopup) {\r\n PersonalCalendarService.bindLegendAction();\r\n\r\n let startJaar = new Date(+$(\"#calendar-container\").data(\"startjaar\"), 0, 1);\r\n let eindJaar = new Date(+$(\"#calendar-container\").data(\"eindjaar\"), 11, 31);\r\n\r\n this.calendar = null;\r\n var modal = document.getElementById(\"myModal\");\r\n window.onclick = function (event) {\r\n if (event.target == modal) {\r\n modal.style.display = \"none\";\r\n }\r\n }\r\n\r\n let currentYear = year ? year : new Date().getFullYear();\r\n\r\n if (+$(\"#calendar-container\").data(\"startjaar\") > currentYear || +$(\"#calendar-container\").data(\"eindjaar\") < currentYear) {\r\n currentYear = +$(\"#calendar-container\").data(\"eindjaar\");\r\n }\r\n\r\n var self = this;\r\n\r\n this.calendar = new Calendar('#calendar', {\r\n startYear: currentYear,\r\n minDate: startJaar,\r\n maxDate: eindJaar,\r\n style: 'custom',\r\n weekStart: 1,\r\n language: APPLOYED.language.getUserLocale(),\r\n loadingTemplate: '
',\r\n customDayRenderer: function (element, date) {\r\n if (date.getDay() === 6 || date.getDay() === 0) {\r\n $(element).css('color', 'rgb(206 200 200)');\r\n } else {\r\n $(element).css('color', 'rgb(162 157 157)');\r\n }\r\n },\r\n dataSource: function (year) { return self.getData(year) },\r\n renderEnd: function (e) {\r\n PersonalCalendarService.bindChevHide();\r\n setTimeout(function () { $('#hidecalendar').css('visibility', 'visible'); }, 300);\r\n },\r\n customDataSourceRenderer: function (element, date, event) {\r\n var exclusedEvents = $.grep(event, function (ev) {\r\n return ev.statusClass != \"noworking\" && ev.statusClass != \"freeday\";// ev.status != 100;\r\n });\r\n\r\n if (exclusedEvents.length == 0) {\r\n exclusedEvents = event;\r\n }\r\n\r\n var minDate = exclusedEvents.map(ev => ev.startDate).reduce((d1, d2) => { return d1 < d2 ? d1 : d2 });\r\n var maxDate = exclusedEvents.map(ev => ev.endDate).reduce((d1, d2) => { return d1 > d2 ? d1 : d2 });\r\n\r\n var data = exclusedEvents[0];\r\n\r\n self.addBorder(element, 'top', data, exclusedEvents.length);\r\n self.addBorder(element, 'bottom', data, exclusedEvents.length);\r\n\r\n if (data.statusClass != \"noworking\" && data.statusClass != \"freeday\") {\r\n var difference_In_Time = maxDate.getTime() - minDate.getTime();\r\n var difference_In_Days = difference_In_Time / (1000 * 3600 * 24);\r\n\r\n if (difference_In_Days == 0 || data.status == -99) {\r\n self.addRoundBorder(element, 50, 50, 50, 50);\r\n self.addBorder(element, 'left', data, exclusedEvents.length);\r\n self.addBorder(element, 'right', data, exclusedEvents.length);\r\n }\r\n else {\r\n if (minDate.toDateString() == date.toDateString()) {\r\n self.addRoundBorder(element, 45, 0, 0, 45);\r\n self.addBorder(element, 'left', data, exclusedEvents.length);\r\n }\r\n else if (maxDate.toDateString() == date.toDateString()) {\r\n self.addRoundBorder(element, 0, 45, 45, 0);\r\n self.addBorder(element, 'right', data, exclusedEvents.length);\r\n }\r\n else {\r\n $(element).css('border-radius', \"0px\");\r\n }\r\n }\r\n }\r\n else {\r\n var freedayEvents = $.grep(event, function (ev) {\r\n return ev.statusClass != \"noworking\";\r\n });\r\n \r\n if (freedayEvents.length > 0 && freedayEvents[0].statusClass == \"freeday\") {\r\n self.addBorder(element, 'top', freedayEvents[0], freedayEvents.length);\r\n self.addBorder(element, 'bottom', freedayEvents[0], freedayEvents.length);\r\n }\r\n }\r\n \r\n if (exclusedEvents.length == 1) {\r\n if (data.statusClass != '') {\r\n $(element).css('background-color', self.isWaitingStatus(data.status) ? \"white\" : data.status == 999 ? data.kleurgeenfunctie : data.color);\r\n $(element).css('color', self.isWaitingStatus(data.status) ? (data.status == 999 ? data.kleurgeenfunctie : data.color) : \"white\");\r\n }\r\n }\r\n else {\r\n var freedayEvents = $.grep(event, function (ev) {\r\n return ev.statusClass != \"noworking\";\r\n });\r\n \r\n if (freedayEvents.length > 0 && freedayEvents[0].statusClass == \"freeday\") {\r\n $(element).css('background-color', freedayEvents[0].color);\r\n $(element).css('color', \"white\");\r\n }\r\n else {\r\n $(element).css('background-color', self.isWaitingStatus(data.status) ? \"white\" : exclusedEvents.length > 1 ? data.kleurgecombineerd : data.status == 999 ? data.kleurgeenfunctie : data.color);\r\n $(element).css('color', self.isWaitingStatus(data.status) ? exclusedEvents.length > 1 ? data.kleurgecombineerd : data.status == 999 ? data.kleurgeenfunctie : data.color : \"white\");\r\n }\r\n }\r\n \r\n if (data.statusClass == 'nofunction') {\r\n $(element).parent().addClass('noclickevent');\r\n }\r\n\r\n if ((data.canUpdate == false || data.canUpdate == 'false' || data.canUpdate == 'False') && !(data.id > 0)) {\r\n $(element).parent().addClass('noclickevent');\r\n }\r\n },\r\n clickDay: function (e) {\r\n var amountOfEvents = self.CheckRealAmountOfEvents(e.events);\r\n\r\n if (amountOfEvents <= 1) {\r\n let eventData = e.events[0];\r\n\r\n let data = {\r\n verlofId: 0,\r\n selectedstartDate: e.date.toDateString(),\r\n selectedendDate: e.date.toDateString(),\r\n werknemerId: +$(\"#calendar-container\").data(\"employeeid\"),\r\n status: 387,\r\n typeCalendar: \"personal\"\r\n };\r\n\r\n if (eventData.verlofId == -99 && eventData.status == -99) {\r\n self.OpenVerlof($(e.element), data);\r\n }\r\n else {\r\n data.verlofId = eventData.verlofId;\r\n data.endDate = null;\r\n data.status = eventData.status;\r\n\r\n self.OpenVerlof($(e.element), data);\r\n }\r\n } else {\r\n modal.style.display = \"block\";\r\n $(\".modal-content-pc\").empty();\r\n\r\n for (let i = 0; i < e.events.length; i++) {\r\n let data = e.events[i];\r\n\r\n if (data.status != 999 && data.statusClass != \"noworking\" && data.statusClass != \"freeday\") {\r\n var isEmptyEndDate = (APPLOYED.common.isTrue(data.isOpenEndDate));\r\n $(\".modal-content-pc\").append(\"\");\r\n }\r\n }\r\n\r\n $(\".personal-modal\").on(\"click\", function () {\r\n let data = {\r\n verlofId: $(this).data(\"verlofid\"),\r\n selectedstartDate: new Date($(this).data(\"startdate\")).toDateString(),\r\n selectedendDate: null,\r\n status: $(this).data(\"status\"),\r\n werknemerId: +$(\"#calendar-container\").data(\"employeeid\"),\r\n typeCalendar: \"personal\"\r\n };\r\n\r\n self.OpenVerlof(this, data);\r\n });\r\n }\r\n },\r\n yearChanged: function (e) {\r\n $('#CurrentYear').val(e.currentYear);\r\n }\r\n });\r\n\r\n if (APPLOYED.common.isTrue(hidepopup)) {\r\n $('#modal_popup').modal(\"hide\");\r\n };\r\n }\r\n\r\n OpenVerlof(element, data) {\r\n let options = {};\r\n options[\"nofading\"] = false;\r\n options[\"tofadein\"] = element;\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/GetPersonnelCalendarVerlofDetail\", data, \"Post\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n return;\r\n }\r\n\r\n CheckRealAmountOfEvents(events) {\r\n var amount = 0;\r\n for (let i = 0; i < events.length; i++) {\r\n if (events[i].status != 999 && events[i].statusClass != \"noworking\" && events[i].statusClass != \"freeday\") {\r\n amount++;\r\n }\r\n }\r\n\r\n return amount;\r\n }\r\n\r\n refreshData(year) {\r\n var calendar = this.calendar;\r\n calendar._fetchDataSource(function (datasource) {\r\n (calendar._dataSource = datasource), calendar._initializeDatasourceColors(), calendar.render(!1);\r\n });\r\n };\r\n\r\n getData(year) {\r\n var self = this;\r\n\r\n let employeeId = $(\"#calendar-container\").data(\"employeeid\");\r\n\r\n var options = {};\r\n options[\"nofading\"] = false;\r\n options[\"tofadein\"] = \"\";\r\n\r\n var result = new Promise((resolve) => {\r\n var call = Api.APIcaller.CallAction(\"/Employees/Absence/PersonalOverviewSaldi\", {\r\n employeeId: employeeId,\r\n year: year\r\n }, \"GET\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n\r\n var dataSource;\r\n\r\n call.always(function (response, textStatus) {\r\n dataSource = textStatus == \"success\" ? self.getDataSource(response.jsoNresults[0]) : [];\r\n }).then(() => {\r\n resolve(dataSource);\r\n }).catch(() => {\r\n resolve([]);\r\n });\r\n });\r\n\r\n return result;\r\n };\r\n\r\n getDataSource(e) {\r\n let dataSource = [];\r\n\r\n if (e === undefined || e == null || e.evenementen === undefined || e.evenementen == null) {\r\n return dataSource\r\n }\r\n\r\n for (let i = 0; i < e.evenementen.length; i++) {\r\n dataSource.push({\r\n id: e.evenementen[i].verlofId,\r\n status: e.evenementen[i].status,\r\n color: e.evenementen[i].verlofKleur,\r\n kleurgecombineerd: e.kleurgecombineerd,\r\n kleurgeenfunctie: e.kleurgeenfunctie,\r\n verlofId: e.evenementen[i].verlofId,\r\n statusClass: e.evenementen[i].statusClass,\r\n verlofRegelingNaam: e.evenementen[i].verlofRegelingNaam,\r\n werknemerdId: e.evenementen[i].werknemerId,\r\n startDate: new Date(e.evenementen[i].startDatum),\r\n endDate: new Date(e.evenementen[i].eindDatum),\r\n canUpdate: e.evenementen[i].canUpdate,\r\n isOpenEndDate: e.evenementen[i].isOpenEndDate\r\n })\r\n }\r\n\r\n return dataSource;\r\n };\r\n\r\n isWaitingStatus(status) {\r\n //Definitief = 386,\r\n //Denied = 13,\r\n //WithdrawRequest = 16,\r\n //Withdrawn = 15,\r\n //WithdrawRejected = 17,\r\n //New = 387,\r\n //Completed = 14,\r\n //Waiting = 18\r\n\r\n switch (status) {\r\n case 386, 13, 15, 17, 14:\r\n return false;\r\n case 16, 387, 18:\r\n return true;\r\n }\r\n }\r\n\r\n static bindLegendAction = function () {\r\n\r\n $(\".legendaStandaardOpbouw\").unbind('click');\r\n $(\".legendaStandaardOpbouw\").bind('click', function () {\r\n let options = {};\r\n options[\"nofading\"] = false;\r\n options[\"tofadein\"] = this;\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/GetLegendaHuidigeOpbouw\", { verlofSaldiId: $(this).parent().closest('*[data-verlofsaldiid]').data('verlofsaldiid') }, \"Post\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n });\r\n\r\n $(\".legendaOvergenomenOpbouw\").unbind('click');\r\n $(\".legendaOvergenomenOpbouw\").bind('click', function () {\r\n let options = {};\r\n options[\"nofading\"] = false;\r\n options[\"tofadein\"] = this;\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/GetLegendaOvergenomenOpbouw\", { verlofSaldiId: $(this).parent().closest('*[data-verlofsaldiid]').data('verlofsaldiid') }, \"Post\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n });\r\n\r\n $(\".legendaMutaties\").unbind('click');\r\n $(\".legendaMutaties\").bind('click', function () {\r\n let options = {};\r\n options[\"nofading\"] = false;\r\n options[\"tofadein\"] = this;\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/GetLegendaMutaties\", { verlofSaldiId: $(this).parent().closest('*[data-verlofsaldiid]').data('verlofsaldiid') }, \"Post\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n });\r\n\r\n }\r\n\r\n static bindChevHide = function () {\r\n if ($('#IsHiddenLegend').val() != undefined && APPLOYED.common.isTrue($('#IsHiddenLegend').val().toLowerCase())) {\r\n $(\"#pc-saldi-container\").hide();\r\n $(\"#pc-chev-up\").hide();\r\n $(\"#pc-chev-down\").show();\r\n }\r\n else {\r\n $(\"#pc-saldi-container\").show();\r\n $(\"#pc-chev-up\").show();\r\n $(\"#pc-chev-down\").hide();\r\n }\r\n\r\n\r\n $(\"#pc-chev-up\").bind('click', function () {\r\n $(\"#pc-saldi-container\").hide();\r\n $(\"#pc-chev-up\").hide();\r\n $(\"#pc-chev-down\").show();\r\n $('#IsHiddenLegend').val('true');\r\n });\r\n\r\n $(\"#pc-chev-down\").bind('click', function () {\r\n $(\"#pc-saldi-container\").show();\r\n $(\"#pc-chev-up\").show();\r\n $(\"#pc-chev-down\").hide();\r\n $('#IsHiddenLegend').val('false');\r\n });\r\n }\r\n\r\n\r\n\r\n}","class VerlofDeviantDaysService {\r\n deviantdaysrowid = -1;\r\n inputChanged = null;\r\n verlofToekennenInDagen = false;\r\n\r\n constructor() { }\r\n\r\n static checkAfwijkendeDagenBtn(editing) {\r\n this.deviantdaysrowid = $('.wizard-deviant-days-content').length - 1;\r\n $('#deviant-days-add-item').toggle(editing);\r\n $('.deviant-days-delete-item').toggle(editing);\r\n }\r\n\r\n static checkLoadAfwijkendeDagen(data) {\r\n var self = this;\r\n\r\n var rows = $(\"#afwijkende-dagen-container\").find(\".wizard-deviant-days-content\");\r\n if (rows.length > 0) {\r\n return\r\n }\r\n\r\n var options = {};\r\n options[\"nofading\"] = false;\r\n options[\"loading\"] = this;\r\n Api.APIcaller.CallAction(\"/Ajax/GetDeviantDays\", data, \"Get\", null, null, complete, null, Api.APIcaller.CancelOptions.None);\r\n\r\n function complete() {\r\n FormValidationService.InitializeDatePicker();\r\n FormValidationService.CheckRequired();\r\n self.triggerInputChange();\r\n self.bindDeviantDaysBtn();\r\n self.deviantdaysrowid = $('.wizard-deviant-days-content').length - 1;\r\n }\r\n }\r\n\r\n static checkAfwijkendeDagen() {\r\n var self = this;\r\n\r\n $('.deviant-days-in-dagen').toggle(self.verlofToekennenInDagen);\r\n $('.deviant-days-in-uren').toggle(!self.verlofToekennenInDagen);\r\n }\r\n\r\n static bindDeviantDaysBtn() {\r\n var self = this;\r\n\r\n $('#deviant-days-add-item').off('click');\r\n $('#deviant-days-add-item').on('click', function () {\r\n var options = {};\r\n options[\"nofading\"] = false;\r\n options[\"loading\"] = this;\r\n self.deviantdaysrowid += 1;\r\n\r\n var allowTimeInput = getAllowTimeInput();\r\n\r\n var data = {\r\n rowid: self.deviantdaysrowid,\r\n allowTimeInput: allowTimeInput,\r\n verlofToekennenInDagen: self.verlofToekennenInDagen\r\n }\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/GetDeviantDay\", data, \"Get\", null, null, complete, null, Api.APIcaller.CancelOptions.None);\r\n\r\n function complete() {\r\n FormValidationService.InitializeDatePicker();\r\n FormValidationService.CheckRequired();\r\n self.bindDeviantDaysBtn();\r\n self.triggerInputChange();\r\n }\r\n });\r\n\r\n $('.deviant-days-delete-item').off('click');\r\n $('.deviant-days-delete-item').on('click', function () {\r\n var row = $(this).closest('.wizard-deviant-days-content');\r\n row.remove();\r\n FormValidationService.CheckRequired();\r\n self.triggerInputChange();\r\n });\r\n\r\n $('[id^=\"Uren_EsDagdeel_\"]').off('click');\r\n $('[id^=\"Uren_EsDagdeel_\"]').on('click', function () {\r\n var id = $(this).attr('id');\r\n var rowid = id.split('_')[2];\r\n\r\n var backingField = $(`#Uren_${rowid}__EsDagdeel`)\r\n var checked = $(this).is(':checked');\r\n backingField.val(checked);\r\n });\r\n\r\n function getAllowTimeInput() {\r\n return $(\"[id*='__DagurenIngevuld']\").length == 0;\r\n }\r\n }\r\n\r\n static checkRemoveDeviantDays(startdatumValue, einddatumValue) {\r\n if (!einddatumValue) {\r\n einddatumValue = DateService.ToString(new Date(Date.parse(\"9999-01-01\"))); \r\n }\r\n\r\n if (!APPLOYED.validator.isValidDate(startdatumValue) || !APPLOYED.validator.isValidDate(einddatumValue)) {\r\n return;\r\n }\r\n\r\n var startdatum = DateService.ToDate(startdatumValue);\r\n var einddatum = DateService.ToDate(einddatumValue);\r\n if (startdatum > einddatum) {\r\n return;\r\n }\r\n\r\n var rows = $(\"#afwijkende-dagen-container\").find(\".wizard-deviant-days-content\");\r\n for (var i = 0; i < rows.length; i++) {\r\n var deviantDatumValue = $(rows[i]).find(\".deviant-day-date\").val();\r\n\r\n if (APPLOYED.validator.isValidDate(deviantDatumValue)) {\r\n var deviantDatum = DateService.ToDate(deviantDatumValue);\r\n if (deviantDatum < startdatum || (deviantDatum > einddatum)) {\r\n $(rows[i]).remove();\r\n }\r\n }\r\n }\r\n }\r\n\r\n static CorrectDeviantDaysIndexes() {\r\n // The Uren[] array in the form needs to have consecutive indexes, starting at 0, for the form submit\r\n var deviantDays = $(\".deviant-day-date\");\r\n\r\n var index = 0;\r\n deviantDays.each(function () {\r\n var datum = this;\r\n\r\n var id = $(this).attr(\"id\");\r\n var rowid = id.split('_')[1];\r\n\r\n var ureningevuld = $(`#Uren_${rowid}__DagurenIngevuld`);\r\n var starttijd = $(`#Uren_${rowid}__Starttijd`);\r\n var eindtijd = $(`#Uren_${rowid}__Eindtijd`);\r\n var esdagdeel = $(`#Uren_${rowid}__EsDagdeel`);\r\n var esdagdeelCheckbox = $(`#Uren_EsDagdeel_${rowid}`);\r\n\r\n $(datum).attr('id', `Uren_${index}__HuidigeDatum`);\r\n $(datum).attr('name', `Uren[${index}].HuidigeDatum`);\r\n\r\n $(ureningevuld).attr('id', `Uren_${index}__DagurenIngevuld`);\r\n $(ureningevuld).attr('name', `Uren[${index}].DagurenIngevuld`);\r\n\r\n $(starttijd).attr('id', `Uren_${index}__Starttijd`);\r\n $(starttijd).attr('name', `Uren[${index}].Starttijd`);\r\n\r\n $(eindtijd).attr('id', `Uren_${index}__Eindtijd`);\r\n $(eindtijd).attr('name', `Uren[${index}].Eindtijd`);\r\n\r\n $(esdagdeel).attr('id', `Uren_${index}__EsDagdeel`);\r\n $(esdagdeel).attr('name', `Uren[${index}].EsDagdeel`);\r\n $(esdagdeelCheckbox).attr('id', `Uren_EsDagdeel_${index}`);\r\n\r\n index++\r\n });\r\n }\r\n\r\n static GetDeviantDays() {\r\n let dagen = [];\r\n this.CorrectDeviantDaysIndexes();\r\n\r\n var deviantDays = $(\".deviant-day-date\");\r\n deviantDays.each(function () {\r\n var datum = null;\r\n if (APPLOYED.validator.isValidDate($(this).val())) {\r\n datum = DateService.ToDate($(this).val());\r\n }\r\n\r\n var id = $(this).attr(\"id\");\r\n var rowid = id.split('_')[1];\r\n var ureningevuld = $(`#Uren_${rowid}__DagurenIngevuld`).val();\r\n var starttijd = $(`#Uren_${rowid}__Starttijd`).val();\r\n var eindtijd = $(`#Uren_${rowid}__Eindtijd`).val();\r\n var esdagdeel = $(`#Uren_${rowid}__EsDagdeel`).val();\r\n\r\n dagen.push({\r\n dagurenIngevuld: ureningevuld,\r\n huidigeDatum: DateService.ToInvariantDate(datum),\r\n starttijd: starttijd,\r\n eindtijd: eindtijd,\r\n esDagdeel: !esdagdeel ? null : APPLOYED.common.isTrue(esdagdeel.toLowerCase())\r\n });\r\n });\r\n\r\n return dagen;\r\n }\r\n\r\n static bindInputFields(action) {\r\n var self = this;\r\n\r\n self.inputChanged = action;\r\n\r\n $(document).off('change keyup', \"[id*='Uren_']\");\r\n $(document).on('change keyup', \"[id*='Uren_']\", function () {\r\n self.triggerInputChange();\r\n });\r\n }\r\n\r\n static triggerInputChange() {\r\n if (this.inputChanged) {\r\n this.inputChanged();\r\n }\r\n }\r\n}","class WeekroosterService {\r\n weekroosterOptions = null;\r\n weekroosterComponent = null;\r\n weekcalendarComponent = null;\r\n weekroostersGebruiken = false;\r\n withTime = false;\r\n\r\n constructor() {\r\n this.weekroostersGebruiken = APPLOYED.common.isTrue($('#WeekroostersGebruiken').val());\r\n this.withTime = APPLOYED.common.isTrue($('#IsTimeCustomer').val());\r\n }\r\n\r\n emptyValueAndTriggerChangeOnThisElement(element) {\r\n $(element).val(\"\");\r\n $(element).trigger('change');\r\n\r\n APPLOYED.form.removeActiveClassOnMdbSelectInput(element);\r\n }\r\n\r\n init() {\r\n self = this;\r\n\r\n if (!self.weekroostersGebruiken) {\r\n return;\r\n }\r\n\r\n APPLOYED.validator.bindRequiredFields('#FunctieZonderUren', '#FunctieZonderUrenSubmit', false);\r\n APPLOYED.validator.bindRequiredFields('#FunctieUren', '#FunctieUrenSubmit', false);\r\n\r\n var weekrooster = self.getWeekrooster();\r\n\r\n self.initWeekroosterOptions(weekrooster);\r\n self.createWeekrooster(weekrooster);\r\n self.createWeekcalendar(weekrooster);\r\n\r\n $(document).on('change', \"select[id$='WeekroostersoortId']\", function () {\r\n var soortId = $(this).val();\r\n var definitieId = $(\"[id$='RoostersoortDefinitieId']\").val();\r\n\r\n if (soortId == definitieId) {\r\n $('#weekroosterdefinitie').show();\r\n } else {\r\n $('#weekroosterdefinitie').hide();\r\n }\r\n\r\n self.checkShowWeekrooster();\r\n self.checkEdit();\r\n\r\n self.emptyValueAndTriggerChangeOnThisElement(\"select[id$='WeekroosterdefinitieId']\");\r\n });\r\n\r\n $(document).on('change', \"select[id$='WeekroosterdefinitieId']\", function () {\r\n self.getWeekroosterDefinitie();\r\n });\r\n\r\n $(document).on('change', \"select[id$='WeekroosterStartweek']\", function () {\r\n self.updateWeekcalendar();\r\n });\r\n\r\n $(document).on('change', '#Startdatum', function () {\r\n self.updateWeekcalendar();\r\n });\r\n }\r\n\r\n saveWeekrooster() {\r\n self = this;\r\n\r\n if (!self.weekroostersGebruiken) {\r\n return;\r\n }\r\n\r\n var weekrooster = self.getWeekrooster();\r\n if (!weekrooster) {\r\n setWeekrooster('');\r\n return;\r\n }\r\n\r\n var weken = self.weekroosterComponent.getWeekroosterWeken();\r\n weekrooster.weken = weken;\r\n var json = JSON.stringify(weekrooster);\r\n self.setWeekrooster(json);\r\n }\r\n\r\n getWeekroosterDefinitie() {\r\n self = this;\r\n\r\n var definiteId = $(\"select[id$='WeekroosterdefinitieId']\").val();\r\n\r\n if (!definiteId) {\r\n return;\r\n }\r\n\r\n var options = {};\r\n options[\"tofadein\"] = \"div[id*='FunctieUren']\";\r\n Api.APIcaller.CallAction(\"/Ajax/GetSalfunctieWeekrooster\", { weekroosterdefinitieId: definiteId }, \"GET\", null, null, (response) => complete(response), options, Api.APIcaller.CancelOptions.None);\r\n\r\n function complete(response) {\r\n if (response.hasErrorText) {\r\n $(\"select[id$='WeekroosterdefinitieId']\").val(\"\");\r\n return;\r\n }\r\n\r\n var weekrooster = response.jsoNresults[0];\r\n self.createWeekrooster(weekrooster, true);\r\n\r\n self.checkShowWeekrooster();\r\n }\r\n }\r\n\r\n checkShowWeekrooster() {\r\n self = this;\r\n\r\n var soortId = $(\"select[id$='WeekroostersoortId']\").val();\r\n var soortDefinitieId = $(\"[id$='RoostersoortDefinitieId']\").val();\r\n var definitieId = $(\"select[id$='WeekroosterdefinitieId']\").val();\r\n\r\n var show = !!soortId && (soortId != soortDefinitieId || !!definitieId);\r\n\r\n if (show) {\r\n $('#weekroosterdetails').show();\r\n } else {\r\n $('#weekroosterdetails').hide();\r\n }\r\n }\r\n\r\n getWeekrooster() {\r\n self = this;\r\n\r\n var el = $(\"[id$='WeekroosterJson']\");\r\n if (el.length == 0) {\r\n return null;\r\n }\r\n\r\n var weekrooster = JSON.parse(el.val());\r\n return weekrooster;\r\n }\r\n\r\n setWeekrooster(json) {\r\n self = this;\r\n $(\"[id$='WeekroosterJson']\").val(json);\r\n }\r\n\r\n initWeekroosterOptions(weekrooster) {\r\n self = this;\r\n\r\n var options = {};\r\n\r\n options.actueleUrenCaption = weekrooster.actueleUrenCaption;\r\n options.huidigeWeekCaption = weekrooster.huidigeWeekCaption;\r\n options.eersteWeekCaption = weekrooster.eersteWeekCaption;\r\n options.actieveWeekCaption = weekrooster.actieveWeekCaption;\r\n options.weekCaption = weekrooster.weekCaption;\r\n options.locale = weekrooster.locale;\r\n\r\n self.weekroosterOptions = options;\r\n }\r\n\r\n createWeekrooster(weekrooster, resetStart = false) {\r\n self = this;\r\n\r\n if (!weekrooster) {\r\n return;\r\n }\r\n\r\n $(\"#weekrooster-grid\").replaceWith('
');\r\n\r\n var soortId = $(\"select[id$='WeekroostersoortId']\").val();\r\n var definitieId = $(\"[id$='RoostersoortDefinitieId']\").val();\r\n var edit = soortId != definitieId;\r\n\r\n self.weekroosterComponent = !self.withTime\r\n ? new WeekroosterComponent('#weekrooster-grid', edit, weekrooster, true)\r\n : new TimeWeekroosterComponent('#weekrooster-grid', edit, weekrooster, true);\r\n\r\n self.weekroosterComponent.handlers.dataChanged = dataChanged;\r\n self.weekroosterComponent.init();\r\n\r\n if (resetStart) {\r\n self.resetStartweek();\r\n }\r\n\r\n dataChanged();\r\n self.checkEdit();\r\n\r\n function dataChanged() {\r\n updateUrenPerDag();\r\n updateStartweekList();\r\n self.updateWeekcalendar();\r\n }\r\n\r\n function updateUrenPerDag() {\r\n var perdag = self.weekroosterComponent.getFooter();\r\n\r\n $('#Maandag').val(perdag['d' + 0]);\r\n $('#Dinsdag').val(perdag['d' + 1]);\r\n $('#Woensdag').val(perdag['d' + 2]);\r\n $('#Donderdag').val(perdag['d' + 3]);\r\n $('#Vrijdag').val(perdag['d' + 4]);\r\n $('#Zaterdag').val(perdag['d' + 5]);\r\n $('#Zondag').val(perdag['d' + 6]);\r\n\r\n $('#Maandag').trigger('change');\r\n }\r\n\r\n function updateStartweekList() {\r\n var weken = self.weekroosterComponent.getData();\r\n\r\n var select = $(\"select[id$='WeekroosterStartweek']\");\r\n var options = select.children('option');\r\n\r\n var currentValue = select.val();\r\n var currentLength = 0;\r\n\r\n $(options).each(function () {\r\n if (!$(this).is('[hidden]')) {\r\n currentLength++;\r\n }\r\n });\r\n\r\n if (weken.length != currentLength) {\r\n updateOptions(select, weken);\r\n\r\n if (currentLength == 1 || parseInt(currentValue) > weken.length) {\r\n $(select).val('');\r\n }\r\n\r\n $(select).trigger('change');\r\n }\r\n\r\n var divStartweek = $('#startweek');\r\n\r\n if (weken.length > 1) {\r\n divStartweek.show();\r\n }\r\n else {\r\n divStartweek.hide();\r\n }\r\n\r\n function updateOptions(select, weken) {\r\n //Empty select\r\n select.empty();\r\n\r\n //Add hidden option because of required field\r\n var option = $(\"\")\r\n .attr(\"value\", \"\")\r\n .attr(\"title\", \"\")\r\n .attr(\"disabled\", \"disabled\")\r\n .attr(\"hidden\", \"\")\r\n .text(\"\");\r\n select.append(option);\r\n\r\n for (var i = 0; i < weken.length; i++) {\r\n var option = $(\"\")\r\n .attr(\"value\", weken[i].week)\r\n .attr(\"title\", weken[i].week)\r\n .text(weken[i].week);\r\n\r\n select.append(option);\r\n }\r\n }\r\n }\r\n }\r\n\r\n checkEdit() {\r\n self = this;\r\n\r\n var soortId = $(\"select[id$='WeekroostersoortId']\").val();\r\n var definitieId = $(\"[id$='RoostersoortDefinitieId']\").val();\r\n var edit = soortId != definitieId;\r\n\r\n if (!edit) {\r\n $('.addweekroosterweek').hide();\r\n }\r\n else {\r\n $('.addweekroosterweek').show();\r\n }\r\n\r\n self.weekroosterComponent.setEdit(edit);\r\n }\r\n\r\n resetStartweek() {\r\n //var startweek = $('#startweek');\r\n //var select = startweek.find('select');\r\n\r\n //var weken = self.weekroosterComponent.getData();\r\n //if (weken.length == 1) {\r\n // $(select).val('1');\r\n //}\r\n //else {\r\n // $(select).val('');\r\n //}\r\n }\r\n\r\n createWeekcalendar(weekrooster) {\r\n self = this;\r\n\r\n if (!weekrooster) {\r\n return;\r\n }\r\n\r\n $(\"#weekcalendar-grid\").replaceWith('
');\r\n\r\n var data = self.getWeekcalendarData();\r\n self.updateCalendarCaption(data.caption);\r\n var headerHeight = $('#CorrectieUren').length > 0 ? 48 : 52;\r\n\r\n self.weekcalendarComponent = new WeekcalendarComponent('#weekcalendar-grid', data, weekrooster.actieveWeekCaption, weekrooster.dagen, weekrooster.locale);\r\n self.weekcalendarComponent.headerHeight = headerHeight;\r\n self.weekcalendarComponent.init();\r\n }\r\n\r\n updateWeekcalendar() {\r\n self = this;\r\n\r\n if (!self.weekcalendarComponent) {\r\n return;\r\n }\r\n\r\n var startweek = $(\"select[id$='WeekroosterStartweek']\").val();\r\n if (!startweek) {\r\n $('#startweekcalendar').hide();\r\n } else {\r\n $('#startweekcalendar').show();\r\n }\r\n\r\n var data = self.getWeekcalendarData();\r\n self.updateCalendarCaption(data.caption);\r\n self.weekcalendarComponent.updateData(data);\r\n\r\n $('#Weekrooster.WeekroosterStartweek').trigger('change');\r\n }\r\n\r\n updateCalendarCaption(caption) {\r\n $('#actuele-uren-text').text(caption);\r\n }\r\n\r\n getWeekcalendarData() {\r\n self = this;\r\n\r\n var startweek = parseInt($(\"select[id$='WeekroosterStartweek']\").val());\r\n var displayweek = startweek;\r\n\r\n var rows = self.weekroosterComponent.getData();\r\n var data = {}\r\n\r\n var startHuidigeWeek = DateService.GetMonday(new Date());\r\n var startFunctie = DateService.GetDateFromString($('#Startdatum').val());\r\n var startFunctieWeek = DateService.GetMonday(startFunctie);\r\n var diffWeken = DateService.GetDiffWeeks(startFunctieWeek, startHuidigeWeek);\r\n\r\n if (diffWeken < 0) {\r\n data.startDatum = startFunctieWeek;\r\n data.caption = self.weekroosterOptions.actueleUrenCaption + ' ' + self.weekroosterOptions.eersteWeekCaption;\r\n }\r\n else {\r\n data.startDatum = startHuidigeWeek;\r\n data.caption = self.weekroosterOptions.actueleUrenCaption + ' ' + self.weekroosterOptions.huidigeWeekCaption;\r\n\r\n displayweek = (diffWeken % rows.length) + startweek;\r\n if (displayweek > rows.length) {\r\n displayweek -= rows.length;\r\n }\r\n }\r\n\r\n var urenPerDag = new Array(7);\r\n\r\n if (displayweek <= rows.length) {\r\n var row = rows[displayweek - 1];\r\n for (var i = 0; i < urenPerDag.length; i++) {\r\n var dataValue = self.weekroosterComponent.getDataValue(i + 1, row['d' + i]);\r\n var cellValue = self.weekroosterComponent.toCellValue(dataValue);\r\n urenPerDag[i] = !cellValue ? null : cellValue;\r\n }\r\n }\r\n\r\n data.displayWeek = displayweek;\r\n data.urenPerDag = urenPerDag;\r\n\r\n return data;\r\n }\r\n}","APPLOYED.tools = {\r\n initTable: function (elem) {\r\n var element = elem;\r\n var columDefs = [\r\n {\r\n \"targets\": 0,\r\n \"orderDataType\": \"dom-checkbox\"\r\n }];\r\n\r\n APPLOYED.table.dataTable(element, false, true, false, false, columDefs, []);\r\n }\r\n}","/// ************************************************************************************************************\r\n///\t\t\r\n///\t\tThis script is the main script for the MBi API. This script handles all the calls to the server, and\r\n///\t\tthe response from the server is processed. Responses from the server are wrapped in the IAPI_JsonResult class.\r\n///\t\tThis class is an interface to several other classes, but the resonse stays the same.\r\n///\t\t\r\n///\t\tFeatures:\r\n///\t\tCall API with parameters : remoteAction, parameterData, method, successHandler, errorHandler, completeHandler, options, cancelOption\r\n///\t\tCancel calls that are not relevant anymore (cancel in browser, not on server).\r\n///\t\tPrevent API calls being made with one single parameter (to stop actions for a moment or something)\r\n///\t\tResume API calls with one single parameter\r\n///\r\n/// ************************************************************************************************************\r\nwindow.onpopstate = function (event) {\r\n try {\r\n if (event.state !== undefined && event.state !== null && event.state.remoteAction !== undefined) {\r\n //We got a history callback for a previous Ajax request\r\n //So lets do the request \r\n var options = event.state.options;\r\n \r\n if (options === null || options === undefined) { options = {}; }\r\n options[\"nohistory\"] = true;\r\n \r\n Api.APIcaller.CallAction(event.state.remoteAction, event.state.parameterData, event.state.method, event.state.successHandler, event.state.errorHandler, event.state.completeHandler, options, event.state.cancelOption);\r\n }\r\n else if (event.currentTarget.location !== undefined && event.currentTarget.location !== null) {\r\n if (window.location.href != event.currentTarget.location) {\r\n window.location.href = event.currentTarget.location;\r\n }\r\n\r\n }\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n};\r\nvar Api = {};\r\n (function ($) {\r\n Api.APIcaller = {\r\n //Array that tracks all AjaxCalls (to enable to abort them)\r\n AjaxCalls: [],\r\n\r\n //Ajaxcall Cancel options\r\n //Cancel None or All request (that means ALL), or OnAction = All calls on that action (parameter doesnt matter), or ExactMatch = on action with the same paramters\r\n CancelOptions: Object.freeze({ \"None\": 1, \"All\": 2, \"OnAction\": 3, \"ExactMatch\": 4 }),\r\n\r\n //Parameter to Hold all API calls for now\r\n HoldAllApiCalls: false,\r\n\r\n //Cancel API calls that don't have a response yet. Depending on the options, you can cancel ALL, or based on action and data parameters\r\n CancelPreviousActions: function (cancelOption, remoteAction, remoteData) {\r\n var lengte = Api.APIcaller.AjaxCalls.length;\r\n var idx = 0;\r\n for (var i = 0; i < lengte; i = i + 1) {\r\n if (Api.APIcaller.AjaxCalls[idx].result.readyState !== 4) {\r\n if (cancelOption !== undefined && cancelOption !== Api.APIcaller.CancelOptions.None) {\r\n if (cancelOption === this.CancelOptions.All) {\r\n Api.APIcaller.AjaxCalls[idx].result.abort();\r\n }\r\n else if (cancelOption === this.CancelOptions.OnAction && Api.APIcaller.AjaxCalls[idx].url === remoteAction) {\r\n Api.APIcaller.AjaxCalls[idx].result.abort();\r\n }\r\n else if (cancelOption === this.CancelOptions.ExactMatch && Api.APIcaller.AjaxCalls[idx].url === remoteAction && Api.APIcaller.AjaxCalls[idx].data === remoteData) {\r\n Api.APIcaller.AjaxCalls[idx].result.abort();\r\n }\r\n }\r\n }\r\n if (Api.APIcaller.AjaxCalls[idx].result.readyState == 4 || Api.APIcaller.AjaxCalls[idx].result.readyState == 0) {\r\n Api.APIcaller.AjaxCalls.remove(idx);\r\n idx = idx - 1;\r\n }\r\n idx++;\r\n }\r\n },\r\n\r\n //The CallAction method does the actual call to the serverside API and waits for the response.\r\n //Response is processed in the responseHandler below.\r\n //\r\n //\t\tremoteAction = the remote url to be called \r\n //\t\tparameterData = the data that needs te be send with the request. \r\n //\t\t\t\t\t\twhen GET is used its translated as querystring, else it is posted with the request.\r\n //\t\tmethod = GET or POST\r\n //\t\tsuccessHandler = handler used to processed a succesfull response\r\n //\t\terrorHandler = handler used to processed a error response\r\n //\t\tcompleteHandler = handler thats always called. just like with success and response handlers, the response data is parsed in the handler\r\n //\t\toptions = object where you can define extra options for the request eg {async: false}\r\n //\t\tcancelOption = Remove (abort) current pending ajaxcalls with the given parameters. The abort is only Client-side. See CancelOptions for more info\r\n //\t\t\r\n CallAction: function (remoteAction, parameterData, method, successHandler, errorHandler, completeHandler, options, cancelOption) {\r\n if (Api.APIcaller.HoldAllApiCalls == false) {\r\n try {\r\n if (parameterData === null || parameterData === undefined) { parameterData = {}; }\r\n\r\n var data = parameterData;\r\n if (method === null || method === undefined) { method = 'GET'; }\r\n\r\n var apiurl = remoteAction;\r\n\r\n if (method === 'GET') {\r\n apiurl += \"?\" + $.param(parameterData);\r\n data = {};\r\n }\r\n\r\n if (options === null || options === undefined) { options = {}; }\r\n\r\n //Build the AjaxCall settings with the suplied paramters\r\n var settings = $.extend({\r\n type: method,\r\n noRepaint: options.noRepaint ? true : false,\r\n url: apiurl,\r\n data: (data),\r\n async: true,\r\n success: function (response) {\r\n Api.APIcaller.responseHandler(response, successHandler, errorHandler, options);\r\n },\r\n error: function (response, textStatus, errorThrown) {\r\n Api.APIcaller.responseErrorHandler(response, textStatus, errorHandler, options);\r\n },\r\n complete: function (jqXHR, textStatus) {\r\n if (typeof (completeHandler) === 'function') {\r\n //There is a specific completehandler defined so we call that one\r\n completeHandler(jqXHR?.responseJSON);\r\n\r\n }\r\n\r\n if (!options.extendLoading) {\r\n Api.APIcaller.WaitFadeOut(options.tofadein ? options.tofadein : \"\");\r\n if (typeof APPLOYED !== 'undefined') {\r\n APPLOYED.loader.WaitLoaderOff(options.loading ? options.loading : \"\");\r\n }\r\n }\r\n }\r\n\r\n }, options);\r\n\r\n //Generate a querystring to unique identify the ajaxcall\r\n //Formdata can not be used with $param zo we check if append exists (wich is used in formdata)\r\n var qs = '';\r\n if (parameterData.append === undefined || parameterData.append === \"undefined\") {\r\n qs = $.param(parameterData);\r\n }\r\n\r\n //Remove (abort) current pending ajaxcalls with the same parameters\r\n //The abort is only Client-side\r\n Api.APIcaller.CancelPreviousActions(cancelOption, remoteAction, qs);\r\n \r\n Api.APIcaller.WaitFadeIn(options.tofadein ? options.tofadein : \"\");\r\n if (typeof APPLOYED !== 'undefined') {\r\n APPLOYED.loader.WaitLoaderOn(options.loading ? options.loading : \"\");\r\n }\r\n //Do the axtual Ajaxcall and recieve the handle\r\n var ajaxHandle = $.ajax(settings);\r\n\r\n //Stack the ajaxcall in the AjaxCalls Array to be able to abort them later on\r\n\r\n Api.APIcaller.AjaxCalls.push({ url: remoteAction, data: qs, result: ajaxHandle });\r\n\r\n if (options.history === true) {\r\n var request = {\r\n remoteAction: remoteAction,\r\n parameterData: parameterData,\r\n method: method,\r\n successHandler: successHandler == null ? \"\" : successHandler.toString(),\r\n errorHandler: errorHandler == null ? \"\" : errorHandler.toString(),\r\n completeHandler: completeHandler == null ? \"\" : completeHandler.toString(),\r\n options: options,\r\n cancelOption: cancelOption\r\n };\r\n history.pushState(request, \"page 2\", \"#\" + remoteAction);\r\n }\r\n\r\n return ajaxHandle;\r\n\r\n } catch (e) {\r\n //Something went wrong, we handle it as an errorresponse\r\n //We create the object and fill it with info, after that we call teh errorResponseHandler and completeResponseHandler\r\n var response = new Object();\r\n response.errorText = \"Something goes wrong please try again\" + \"
\" + e.name + \" \" + e.description;\r\n response.hasErrorText = true;\r\n response.requestOK = false;\r\n response.status = 200;\r\n\r\n //Always fadeout else we see nothing\r\n Api.APIcaller.WaitFadeOut(options.tofadein ? options.tofadein : \"\");\r\n\r\n if (errorHandler !== null && typeof (errorHandler) === 'function') {\r\n //There is a specific errorhandler defined so we call that one\r\n errorHandler();\r\n\r\n } else {\r\n if (options === null || options === undefined) { options = {}; }\r\n Api.APIcaller.defaultErrorHandler(response, options);\r\n }\r\n if (completeHandler !== null && typeof (completeHandler) === 'function') {\r\n completeHandler();\r\n }\r\n }\r\n }\r\n },\r\n\r\n //The default responsehandler, this will handle ALL (!) responses from the API and redirects it \r\n //to a specific given succesHandler or errorHandler if any, else the default succesHandler and errorHandler are used\r\n responseHandler: function (response, successHandler, errorHandler, options) {\r\n if (response !== null && response !== undefined) {\r\n if (response.requestOK) {\r\n if (response.extendLoading) {\r\n options.extendLoading = true;\r\n }\r\n\r\n //The request is OK, so we call the successHandler if one is defined, else we call the default successHandler.\r\n if (successHandler !== null && typeof (successHandler) === 'function' && response !== null) {\r\n successHandler(response);\r\n } else {\r\n //No specific successHandler is given, so we handle te response with the default handler\r\n Api.APIcaller.defaultSuccessHandler(response);\r\n }\r\n\r\n // mbd initializers\r\n APPLOYED.form.mdbLineControllerInit();\r\n } else {\r\n //The request is NOT ok, so we call the errorhandler if one is defined, else we call the default errorHandler.\r\n if (errorHandler !== null && typeof (errorHandler) === 'function' && response !== null) {\r\n errorHandler(response);\r\n }\r\n else {\r\n //Process the returned NotifyText if any\r\n Api.APIcaller.defaultErrorHandler(response, {});\r\n }\r\n }\r\n }\r\n },\r\n\r\n responseErrorHandler: function (response, textStatus, errorHandler, options) {\r\n if (textStatus !== undefined && textStatus !== \"abort\") {\r\n if (response.responseJSON !== undefined && response.responseJSON.hasRedirectUrl !== undefined && response.responseJSON.hasRedirectUrl) {\r\n Api.APIcaller.defaultRedirectHandler(response.responseJSON);\r\n return true;\r\n }\r\n\r\n if (typeof (errorHandler) === 'function') {\r\n //There is a specific errorhandler defined so we call that one\r\n errorHandler(response);\r\n\r\n } else {\r\n Api.APIcaller.defaultErrorHandler(response, options);\r\n }\r\n }\r\n },\r\n\r\n //This is the defaultSuccessHandler. If request is OK, and no specific succesHandler is given in the request, this one is called to process the response\r\n defaultSuccessHandler: function (response) {\r\n if (response !== undefined) {\r\n // handle redirect when needed\r\n if (response.hasRedirectUrl !== undefined && response.hasRedirectUrl) {\r\n Api.APIcaller.defaultRedirectHandler(response);\r\n return true;\r\n } else if (response.reloadPage !== undefined && response.reloadPage) {\r\n\r\n //Cancel all outstanding apicalls\r\n Api.APIcaller.CancelPreviousActions(Api.APIcaller.CancelOptions.All, \"\", \"\");\r\n Api.APIcaller.HoldAllApiCalls = true;\r\n\r\n //else check if we need to reload the whole page\r\n Api.APIcaller.processNotify(response);\r\n location.reload();\r\n return true;\r\n }\r\n else {\r\n Api.APIcaller.processHTMLresult(response);\r\n\r\n //Process the returned NotifyText\r\n Api.APIcaller.processNotify(response);\r\n if (response.hasjQueryCallback) {\r\n //If a JqueryCallback is defined, then call this callback function;\r\n var funcCall = response.jQueryCallback + \";\";\r\n var ret = eval(funcCall);\r\n }\r\n }\r\n }\r\n },\r\n //Handles a redirect on a default way. If the response also has a notify, a delay wil be \r\n //used before the redirect. This way a user can read the notify before he is redirected\r\n defaultRedirectHandler: function (response) {\r\n //Cancel all outstanding apicalls\r\n Api.APIcaller.CancelPreviousActions(Api.APIcaller.CancelOptions.All, \"\", \"\");\r\n Api.APIcaller.HoldAllApiCalls = true;\r\n Api.APIcaller.processNotify(response);\r\n Api.Main.CancelAllTimers();\r\n if (response.hasNotifyText || response.hasErrorText) {\r\n if (response.redirectNewWindow) {\r\n setTimeout(function GetTimoutMessage() {\r\n Api.APIcaller.CancelPreviousActions(Api.APIcaller.CancelOptions.All, \"\", \"\");\r\n Api.Main.CancelAllTimers();\r\n Api.APIcaller.HoldAllApiCalls = true;\r\n Api.APIcaller.RedirectNewWindow(response.redirectUrl);\r\n }, 10 * 1000);\r\n Api.APIcaller.HoldAllApiCalls = false;\r\n }\r\n else {\r\n setTimeout(function GetTimoutMessage() {\r\n Api.Main.CancelAllTimers();\r\n Api.APIcaller.CancelPreviousActions(Api.APIcaller.CancelOptions.All, \"\", \"\");\r\n Api.APIcaller.HoldAllApiCalls = true;\r\n location.href = response.redirectUrl;\r\n }, 10 * 1000);\r\n }\r\n }\r\n else {\r\n if (response.redirectNewWindow) {\r\n Api.APIcaller.RedirectNewWindow(response.redirectUrl);\r\n Api.APIcaller.HoldAllApiCalls = false;\r\n }\r\n else {\r\n location.href = response.redirectUrl;\r\n }\r\n }\r\n },\r\n //This is the defaultErrorHandler. If request is NOT OK, and no specific errorHandler is given in the request, this one is called to process the response\r\n defaultErrorHandler: function (data, options) {\r\n //Always fadeout else we see nothing\r\n Api.APIcaller.WaitFadeOut(options.tofadein ? options.tofadein : \"\");\r\n if (data !== undefined) {\r\n if (data.requestOK == undefined) {\r\n if (data.toString().indexOf(\"Login\") >= 0) {\r\n location.reload();\r\n }\r\n else {\r\n if (data.responseText !== undefined) {\r\n var errorText = Api.APIcaller.getErrorText(data);\r\n Api.Main.displayNotify(errorText, true);\r\n }\r\n }\r\n }\r\n else {\r\n //data.status == 0 means that you have sent an AJAX call and a refresh of the browser was triggered before getting the AJAX response.\r\n if (data.status !== undefined && data.status !== 0) {\r\n if (data.status !== undefined && data.status !== 200 && data.statusText !== \"abort\") {\r\n Api.Main.displayNotify(data.statusText, true);\r\n }\r\n else {\r\n // handle redirect when needed\r\n\r\n if (data.responseText !== undefined) {\r\n //It's a status 200 error, wich means somthing was wrong, but not everything\r\n Api.Main.displayNotify(data.responseText, false);\r\n }\r\n else {\r\n Api.APIcaller.processNotify(data);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n },\r\n\r\n getErrorText: function (data) {\r\n var contentType = \"\";\r\n if (data.getResponseHeader) {\r\n var contentType = data.getResponseHeader('content-type') || \"\";\r\n }\r\n\r\n var errorTekst = data.responseText;\r\n if (!errorTekst || contentType.indexOf('text/html') >= 0) {\r\n errorTekst = \"The service is unavailable.\";\r\n }\r\n\r\n return errorTekst;\r\n },\r\n\r\n //Here HTML is processed (if any). Can be called from anywhere, also from specific responsehandlers.\r\n processHTMLresult: function (data) {\r\n if (data.hasHTMLresults) {\r\n //Loop trough the HTML results and append or replace them in the placeholders\r\n $.each(data.htmLresults, function (i, item) {\r\n if (item.appendResult) {\r\n jQuery(\"#\" + item.placeholder).append(item.html);\r\n }\r\n else if (item.replaceResult) {\r\n jQuery(\"#\" + item.placeholder).replaceWith(item.html);\r\n }\r\n else {\r\n jQuery(\"#\" + item.placeholder).html(item.html);\r\n }\r\n if (item.hasjQueryCallback) {\r\n //If a JqueryCallback is defined, then call this callback function;\r\n var funcCall = item.jQueryCallback + \";\";\r\n var ret = eval(funcCall);\r\n }\r\n //Make sure unubstructive ajax will work on the parts we injected again\r\n\r\n //$.validator.unobtrusive.parse(\"#\" + item.Placeholder);\r\n });\r\n }\r\n },\r\n //Here the Notify text is processed (if any). Can be called from anywhere, also from specific responsehandlers.\r\n processNotify: function (data) {\r\n if (data.hasErrorText) {\r\n Api.Main.displayNotify(data.errorText, true, false);\r\n }\r\n\r\n if (data.hasNotifyText) {\r\n Api.Main.displayNotify(data.notifyTextJson, false, false);\r\n }\r\n\r\n if (data.hasSuccessText) {\r\n Api.Main.displayNotify(data.successText, false, true);\r\n }\r\n },\r\n RedirectNewWindow: function (redirectUrl) {\r\n var win = window.open(redirectUrl, '_blank');\r\n win.focus();\r\n },\r\n WaitFadeOut: function (element) {\r\n if (element != undefined && element != '') {\r\n $(element).removeClass(\"loading\");\r\n $(element).find(\".loadingloaded\").remove();\r\n }\r\n },\r\n WaitFadeIn: function (element) {\r\n if (element != undefined && element != '') {\r\n $(element).css('position', 'relative');\r\n $(element).prepend('
');\r\n $(element).addClass(\"loading\");\r\n }\r\n }\r\n }\r\n})(jQuery);\r\n\r\nArray.prototype.remove = function (from, to) {\r\n var rest = this.slice((to || from) + 1 || this.length);\r\n this.length = from < 0 ? this.length + from : from;\r\n return this.push.apply(this, rest);\r\n};","//This JS holds all the Main functions for the Bootstrap site.\r\n//This file is used together with the APIcaller.js and extensions\r\n(function ($) {\r\n\r\n Api.Main = {\r\n TimerHandles: [],\r\n\r\n //This function cancels all timers. They can be restarted again by calling RestartAllTimers\r\n CancelAllTimers: function () {\r\n var lengte = Api.Main.TimerHandles.length;\r\n var idx = 0;\r\n for (var i = 0; i < lengte; i = i + 1) {\r\n if (Api.Main.TimerHandles[idx].Handle !== 0) {\r\n clearInterval(Api.Main.TimerHandles[idx].Handle);\r\n Api.Main.TimerHandles[idx].Handle = 0;\r\n }\r\n idx++;\r\n }\r\n },\r\n\r\n //Displays a notifybar with the given paramters\r\n displayNotify: function (notifyText, isError, isSuccess) {\r\n if (notifyText !== undefined && notifyText !== \"\") {\r\n \r\n if (APPLOYED.common.isTrue(isError)) {\r\n \r\n jQuery(\"#errorbar\").hide();\r\n jQuery(\"#errorbartext\").text(notifyText);\r\n\r\n jQuery(\"#errorbar\").addClass(\"alert-danger-red\");\r\n jQuery(\"#errorbar\").addClass(\"show\");\r\n jQuery(\"#errorbar\").show();\r\n }\r\n else {\r\n if (APPLOYED.common.isTrue(isSuccess)) {\r\n jQuery(\"#succesbar\").hide();\r\n jQuery(\"#succesbartext\").text(notifyText);\r\n jQuery(\"#succesbar\").addClass(\"alert-success\");\r\n jQuery(\"#succesbar\").addClass(\"show\");\r\n jQuery(\"#succesbar\").show();\r\n }\r\n else {\r\n jQuery(\"#NotifyMessageJson\").val(notifyText);\r\n\r\n try {\r\n var obj = jQuery.parseJSON(notifyText);\r\n }\r\n catch (e) {\r\n console.log(\"error: \" + e);\r\n return;\r\n };\r\n \r\n $.each(obj, function (i, item) {\r\n \r\n var alertType = \"alert-warning\";\r\n\r\n if (item.MessageType == \"info\") {\r\n alertType = \"alert-info\";\r\n }\r\n else if (item.MessageType == \"debug\") {\r\n alertType = \"alert-primary\";\r\n }\r\n\r\n var text =\r\n '
' +\r\n '
' +\r\n '' +\r\n '
' + item.ResponseMessage+'
'+\r\n '
' +\r\n '' +\r\n '
';\r\n\r\n $('#notifybars').append(text);\r\n });\r\n }\r\n }\r\n }\r\n },\r\n getActualTicks: function () {\r\n\r\n var yourDate = new Date(); \r\n\r\n // the number of .net ticks at the unix epoch\r\n var epochTicks = 621355968000000000;\r\n\r\n // there are 10000 .net ticks per millisecond\r\n var ticksPerMillisecond = 10000;\r\n\r\n // calculate the total number of .net ticks for your date\r\n return epochTicks + (yourDate.getTime() * ticksPerMillisecond);\r\n },\r\n closeNotify: function (e) {\r\n\r\n if (e != undefined || e != '' || e != 'undefined') {\r\n if (e.startsWith('alert-warning')) {\r\n var obj = jQuery(\".alert[data-type='\" + e + \"']\");\r\n obj.hide();\r\n obj.find('.alerttext').html('');\r\n jQuery('#NotifyMessageJson').val('');\r\n }\r\n else if (e.startsWith('alert-primary')) {\r\n var obj = jQuery(\".alert[data-type='\" + e + \"']\");\r\n obj.hide();\r\n obj.find('.alerttext').html('');\r\n jQuery('#NotifyMessageJson').val('');\r\n }\r\n else if (e.startsWith('alert-info')) {\r\n var obj = jQuery(\".alert[data-type='\" + e + \"']\");\r\n obj.hide();\r\n obj.find('.alerttext').html('');\r\n jQuery('#NotifyMessageJson').val('');\r\n }\r\n else if (e == 'error') {\r\n jQuery(\"#errorbar\").hide();\r\n jQuery(\"#errorbartext\").html('');\r\n jQuery('#ErrorMessage').val('');\r\n }\r\n else if (e == 'success') {\r\n jQuery(\"#succesbar\").hide();\r\n jQuery(\"#succestext\").html('');\r\n jQuery('#SuccessMessage').val('');\r\n }\r\n \r\n }\r\n \r\n },\r\n clearNotify: function () {\r\n Api.Main.closeNotify('error');\r\n Api.Main.closeNotify('success');\r\n },\r\n\r\n // TODO replace with scripts/common/cookie method\r\n setCookie: function (c_name, value, exdays, path, domain) {\r\n var exdate = new Date();\r\n exdate.setDate(exdate.getDate() + exdays);\r\n var domainname = null;\r\n if (domain == null || domain.toLowerCase() == \"localhost\") {\r\n domainname = \"\";\r\n }\r\n else {\r\n domainname = \"; domain=\" + domain;\r\n }\r\n if (path == null || path == \"\") {\r\n path = \"/\";\r\n }\r\n var c_value = escape(value) + ((exdays == null) ? \"\" : \"; expires=\" + exdate.toUTCString() + \"; path=\" + path + domainname + \"; sameSite=Strict\");\r\n \r\n document.cookie = c_name + \"=\" + c_value;\r\n },\r\n\r\n serialize: function (form, withDisabled = true) {\r\n var disabled = null;\r\n\r\n if (withDisabled) {\r\n disabled = form.find('[disabled]');\r\n disabled.prop('disabled', false);\r\n }\r\n\r\n var data = form.serialize();\r\n\r\n if (withDisabled) {\r\n disabled.prop('disabled', true);\r\n }\r\n\r\n return data;\r\n }\r\n };\r\n\r\n})(jQuery);","APPLOYED.auth.forgotpasswd = {\r\n forgotpwd: function () {\r\n function checkIfDataValid() {\r\n if ($('#Password').val() != \"\" && $('#PasswordRepeat').val() != \"\") {\r\n if ($('#Password').val() == $('#PasswordRepeat').val()) {\r\n $(\"#save\").prop(\"disabled\", false);\r\n $('#SummaryValidation').html(\"\");\r\n }\r\n else {\r\n $(\"#save\").prop(\"disabled\", true);\r\n\r\n let options = {};\r\n options[\"tofadein\"] = null;\r\n options[\"loading\"] = \"button[id='wachtwoordSterkte']\";\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/GetPasswordNotEqualText\", null, \"GET\", onSuccess, null, null, options, Api.APIcaller.CancelOptions.None);\r\n\r\n }\r\n }\r\n else {\r\n $(\"#save\").prop(\"disabled\", true);\r\n }\r\n }\r\n\r\n function onSuccess(response) {\r\n\r\n if (response.hasSuccessText) {\r\n $('#SummaryValidation').html(response.successText);\r\n }\r\n else {\r\n $('#SummaryValidation').html(response.errorText);\r\n $('#SummaryValidation').css('color', \"red\");\r\n }\r\n\r\n }\r\n\r\n $('#Password, #PasswordRepeat').off('paste keyup');\r\n $('#Password, #PasswordRepeat').on('paste keyup', function () {\r\n checkIfDataValid();\r\n });\r\n\r\n $(document).on('click', '#wachtwoordSterkte', function () {\r\n let options = {};\r\n options[\"tofadein\"] = null;\r\n options[\"loading\"] = \"button[id='wachtwoordSterkte']\";\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/GetPasswordStrength\", { resetToken: $('#ResetToken').val() }, \"GET\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n });\r\n\r\n }\r\n}","APPLOYED.auth.session = {\r\n login: function () {\r\n if (APPLOYED.common.isTrue($('#IsPasswordPage').val())) {\r\n $('#Password').val(\"\");\r\n }\r\n },\r\n forgottenpassword: function () {\r\n $('button[type=\"button\"]').click(function () {\r\n \r\n if (typeof (grecaptcha) != 'undefined') {\r\n var response = grecaptcha.getResponse();\r\n \r\n if (response.length === 0) {\r\n var message = 'Captcha verification failed';\r\n $('#validationSummary').html(message);\r\n $('#validationSummary').css('color', \"red\");\r\n }\r\n else {\r\n $('#validationSummary').html('');\r\n var options = {};\r\n options[\"nofading\"] = \"\";\r\n options[\"tofadein\"] = this;\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/CheckRECaptcha\", { response: response }, \"GET\", onSuccess, null, null, options, Api.APIcaller.CancelOptions.None);\r\n\r\n }\r\n }\r\n \r\n });\r\n\r\n $(document).off('keyup paste', '#Username');\r\n $(document).on('keyup paste', '#Username', function () {\r\n if ($(this).val() != '' && $('#CapKey').val() != '') {\r\n $('#requestNewPass').prop('disabled', false);\r\n }\r\n else {\r\n $('#requestNewPass').prop('disabled', true);\r\n }\r\n\r\n });\r\n\r\n function onSuccess(response) {\r\n \r\n if (response.jsoNresults[0].success) {\r\n if ($('#Username').val() != '') {\r\n $('form').submit();\r\n }\r\n }\r\n else {\r\n $('#validationSummary').html(response.errorText);\r\n $('#validationSummary').css('color', \"red\");\r\n }\r\n\r\n }\r\n }\r\n}","APPLOYED.account.profile = {\r\n init: function () {\r\n /* Language */\r\n $(document).on('change', '#languageSelection', function () {\r\n if ($('#UserInfo_LanguageId').val() == $(this).val()) {\r\n $('#saveLanguage').addClass('disabled');\r\n $('#saveLanguage').attr('disabled', true);\r\n } else {\r\n $('#saveLanguage').removeClass('disabled');\r\n $('#saveLanguage').attr('disabled', false);\r\n }\r\n });\r\n\r\n $(document).on('click', '#wachtwoordSterkte', function () {\r\n let options = {};\r\n options[\"tofadein\"] = null;\r\n options[\"loading\"] = \"button[id='wachtwoordSterkte']\";\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/GetPasswordPolicy\", null, \"POST\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n });\r\n\r\n /* Password */\r\n $('#passwordNewRepeat').on('keyup', function () {\r\n checkPasswordMatch();\r\n });\r\n\r\n $('#passwordNew').on('keyup', function () {\r\n if ($('#passwordNewRepeat').val().length > 0) {\r\n checkPasswordMatch();\r\n } else {\r\n $('#save').attr('disabled', true);\r\n }\r\n });\r\n\r\n function checkPasswordMatch() {\r\n var pass = $('#passwordNew').val();\r\n var pass2 = $('#passwordNewRepeat').val();\r\n if (pass != pass2) {\r\n $('#passwordNewRepeat').addClass('is-invalid');\r\n $('#passwordNewRepeatFault').show();\r\n $('#save').attr('disabled', true);\r\n } else {\r\n $('#passwordNewRepeat').removeClass('is-invalid');\r\n $('#passwordNewRepeatFault').hide();\r\n $('#savePasswd').attr('disabled', false);\r\n }\r\n }\r\n\r\n $(document).on('click', '#deletephoto', function () {\r\n $('#newImageProfile').attr('src', '');\r\n $('#newImageProfile').hide();\r\n $('.imageProfilePlaceholder').show();\r\n $('#deletephoto').hide();\r\n $('#savePhoto').attr('disabled', true);\r\n });\r\n\r\n $(document).on('change', '#file', function () {\r\n var reader = new FileReader();\r\n\r\n reader.onload = function (e) {\r\n $('#newImageProfile').attr('src', e.target.result);\r\n $('#newImageProfile').show();\r\n $('.imageProfilePlaceholder').hide();\r\n $('#deletephoto').show();\r\n\r\n if (!e.target.result.startsWith('data:image')) {\r\n $('#newImageProfile').attr('alt', this.files[0].name);\r\n }\r\n };\r\n\r\n reader.readAsDataURL(this.files[0]);\r\n\r\n $('#savePhoto').attr('disabled', false);\r\n });\r\n }\r\n}","APPLOYED.time_dagstatusoverview = {\r\n components: [],\r\n setHeight: null,\r\n inEditMode: false,\r\n updated: false,\r\n reloadGroep: false,\r\n dagregels: [],\r\n dagtellers: [],\r\n verlofdagtellers: [],\r\n toeslageninfo: [],\r\n uitbetalenIds: [],\r\n\r\n dagstatus: function () {\r\n var self = this;\r\n APPLOYED.time_shared.updateChipsByFilter();\r\n\r\n setHeight();\r\n self.setHeight = setHeight;\r\n\r\n this.dagstatusLoad();\r\n\r\n function setHeight() {\r\n var legendHeight = self.getLegendHeight();\r\n APPLOYED.element.dynamicHeight('#dagstatus .dynamic-height', '.mainscreensized', 110 + legendHeight, 100);\r\n }\r\n },\r\n\r\n updateHeight: function () {\r\n var self = this;\r\n\r\n if (self.setHeight) {\r\n self.setHeight();\r\n }\r\n },\r\n\r\n dagstatusLoad: function() {\r\n var self = this;\r\n\r\n APPLOYED.filter.checkAllInit();\r\n bindToggles();\r\n bindFilters();\r\n bindDateNavigator();\r\n\r\n loadGroepen(true);\r\n bindChevHide();\r\n bindResize();\r\n\r\n function bindToggles() {\r\n APPLOYED.time_shared.bindGroepToggles(\"dagstatus\");\r\n }\r\n\r\n function bindFilters() {\r\n APPLOYED.time_shared.bindGroepFilters(() => loadGroepen(true), () => self.updateLegenda());\r\n }\r\n\r\n function bindDateNavigator() {\r\n APPLOYED.time_shared.bindDateNavigator(loadDagstatus);\r\n }\r\n\r\n function bindChevHide() {\r\n APPLOYED.time_shared.bindChevHide(() => self.updateHeight());\r\n }\r\n\r\n function bindResize() {\r\n $(window).on('resize', function () {\r\n self.updateHeight();\r\n });\r\n }\r\n\r\n function loadGroepen(fadein = false) {\r\n var groepIds = APPLOYED.time_shared.notLoadedGroepIds(\"dagstatus\");\r\n if (groepIds.length == 0) {\r\n self.updateLegenda();\r\n return;\r\n }\r\n\r\n self.dagstatusLoadGroepen(fadein, groepIds);\r\n }\r\n\r\n function loadDagstatus(datum) {\r\n Api.Main.clearNotify();\r\n\r\n var werknemerId = $('#WerknemerId').val();\r\n var area = $(\"#AreaName\").val();\r\n\r\n var options = {};\r\n options[\"tofadein\"] = '#dagstatus-groepen';\r\n\r\n var params = {\r\n startdatum: datum,\r\n area,\r\n werknemerId\r\n };\r\n\r\n Api.APIcaller.CallAction(\"/ajax/dagstatusLoad\", params, \"POST\", null, null, (response) => loadComplete(response), options, Api.APIcaller.CancelOptions.None);\r\n\r\n function loadComplete(response) {\r\n if (!response || response.hasErrorText) {\r\n return;\r\n }\r\n\r\n self.components = [];\r\n APPLOYED.filter.checkAllInit();\r\n APPLOYED.filter.initFilterStatus();\r\n bindToggles();\r\n bindFilters();\r\n loadGroepen();\r\n }\r\n }\r\n },\r\n\r\n dagstatusLoadGroepen: function (fadein, groepIds, dagstatusId = null, reload = false) {\r\n var self = this;\r\n\r\n var options = {};\r\n if (fadein) {\r\n var tofadein = `#dagstatus-groep-${groepIds[0]}`;\r\n options[\"tofadein\"] = tofadein;\r\n }\r\n\r\n var startdatum = $(\"#Startdatum\").val();\r\n Api.APIcaller.CallAction(\"/ajax/DagstatusLoadGroepen\", { startdatum, groepIds, reload }, \"POST\", null, null, (response) => loadComplete(response, dagstatusId), options, Api.APIcaller.CancelOptions.None);\r\n\r\n function loadComplete(response, dagstatusId) {\r\n if (!response || response.hasErrorText) {\r\n return;\r\n }\r\n\r\n for (var i = 0; i < response.jsoNresults.length; i++) {\r\n if (response.jsoNresults[i]) {\r\n var groepId = response.jsoNresults[i].groepId;\r\n $(`#dagstatus-groep-container-${groepId}`).data(\"loaded\", true);\r\n\r\n var gridId = `#groepsdagstatus-grid-${groepId}`;\r\n var component = self.components.find((cmp) => cmp.id == gridId);\r\n\r\n if (component) {\r\n component.reloadData(response.jsoNresults[i]);\r\n }\r\n else {\r\n component = new GroepsdagstatusComponent(gridId, response.jsoNresults[i], dagstatusId)\r\n component.init();\r\n component.handlers.loadDetail = loadDetail;\r\n self.components.push(component);\r\n }\r\n }\r\n }\r\n\r\n self.updateLegenda();\r\n }\r\n\r\n function loadDetail(cell, dagstatusId, groepId) {\r\n var options = {};\r\n options[\"tofadein\"] = $(cell).children().first();\r\n Api.APIcaller.CallAction(`/ajax/DagstatusLoadDetail`, { dagstatusId, groepId }, \"POST\", null, null, (response) => loadComplete(response), options, Api.APIcaller.CancelOptions.None);\r\n\r\n function loadComplete(response) {\r\n if (!response || response.hasErrorText) {\r\n return;\r\n }\r\n\r\n self.openDetail();\r\n self.initDetail();\r\n }\r\n }\r\n },\r\n\r\n initDetail: function () {\r\n var self = this;\r\n\r\n self.enableEdit(false);\r\n self.updated = false;\r\n self.initTabheights();\r\n bindTabs();\r\n bindRefresh();\r\n bindFields();\r\n\r\n readJsonData();\r\n\r\n function bindTabs() {\r\n $(\".dagstatus-tab\").off('click');\r\n $(\".dagstatus-tab\").on('click', function () {\r\n var href = $(this).attr('href');\r\n if (href) {\r\n var tabname = href.split('-')[1];\r\n $('#ActiveTab').val(tabname);\r\n }\r\n });\r\n }\r\n\r\n function bindRefresh() {\r\n $(\"#dagstatus-refresh\").off('click');\r\n $(\"#dagstatus-refresh\").on('click', function () {\r\n self.refresh();\r\n });\r\n }\r\n\r\n function readJsonData() {\r\n self.dagregels = $.parseJSON($('#JsDagregels').val());\r\n self.dagtellers = $.parseJSON($('#JsDagtellers').val());\r\n self.verlofdagtellers = $.parseJSON($('#JsVerlofDagtellers').val());\r\n }\r\n\r\n function bindFields() {\r\n $('#Toeslagfunctie').off('change');\r\n $('#Toeslagfunctie').on('change', function () {\r\n var text = $(\"#Toeslagfunctie option:selected\").text();\r\n $('#ToeslagfunctieNaam').text(text);\r\n self.updated = true;\r\n self.editDagstatus();\r\n });\r\n\r\n $('#RegelsAutomatisch').off('change');\r\n $('#RegelsAutomatisch').on('change', function () {\r\n self.enableDagregelsEdit();\r\n self.updated = true;\r\n self.editDagstatus();\r\n });\r\n\r\n $('#TellersAutomatisch').off('change');\r\n $('#TellersAutomatisch').on('change', function () {\r\n self.enableDagtellersEdit();\r\n self.updated = true;\r\n self.editDagstatus();\r\n });\r\n\r\n $('#VerlofAutomatisch').off('change');\r\n $('#VerlofAutomatisch').on('change', function () {\r\n self.enableVerlofDagtellersEdit();\r\n self.updated = true;\r\n self.editDagstatus();\r\n });\r\n }\r\n },\r\n\r\n initTabheights: function () {\r\n // var self = this;\r\n\r\n // if (self.inEditMode) {\r\n // APPLOYED.element.dynamicHeight('#dagstatus-tabs', '.mainscreensized', 350, 100);\r\n // APPLOYED.element.dynamicHeight('#Dagregels_ContainerId', '#dagstatus-tabs', 125, 100);\r\n // } else {\r\n // APPLOYED.element.dynamicHeight('#dagstatus-tabs', '.mainscreensized', 325, 100);\r\n // APPLOYED.element.dynamicHeight('#Dagregels_ContainerId', '#dagstatus-tabs', 60, 100);\r\n // }\r\n },\r\n\r\n openDetail: function () {\r\n $('#dagstatus-overview').hide();\r\n $('#dagstatus-detail').show();\r\n },\r\n\r\n closeDetail: function () {\r\n var self = this;\r\n\r\n var dagstatusId = $('#DagstatusId').val();\r\n\r\n $('#dagstatus-detail').empty();\r\n $('#dagstatus-overview').show();\r\n\r\n if (self.reloadGroep) {\r\n self.reloadGroep = false;\r\n\r\n var groepIds = getDagstatusGroepIds(dagstatusId);\r\n\r\n if (groepIds.length > 0) {\r\n self.dagstatusLoadGroepen(true, groepIds, dagstatusId, true);\r\n }\r\n }\r\n\r\n function getDagstatusGroepIds(dagstatusId) {\r\n var groepIds = []\r\n for (var i = 0; i < self.components.length; i++) {\r\n var component = self.components[i];\r\n if (component.containsDagstatus(dagstatusId)) {\r\n groepIds.push(component.groepId);\r\n }\r\n }\r\n\r\n return groepIds;\r\n }\r\n },\r\n\r\n updateLegenda: function () {\r\n var self = this;\r\n\r\n var kleuren = [];\r\n var heeftStatusOnbekend = false;\r\n for (var i = 0; i < self.components.length; i++) {\r\n var component = self.components[i];\r\n\r\n if ($(`#groep-${component.groepId}`).is(':visible')) {\r\n kleuren = kleuren.concat(component.getVerlofKleuren());\r\n }\r\n\r\n if (!heeftStatusOnbekend) {\r\n heeftStatusOnbekend = component.heeftStatusOnbekend();\r\n }\r\n }\r\n\r\n APPLOYED.time_shared.updateLegenda(kleuren, heeftStatusOnbekend);\r\n\r\n self.updateHeight();\r\n },\r\n\r\n getLegendHeight: function () {\r\n return $(\"#legend_row\").outerHeight();\r\n },\r\n\r\n editDagstatus: function () {\r\n var self = this;\r\n\r\n var gesloten = $('#PeriodeGesloten').is(':checked');\r\n if (!gesloten) {\r\n self.enableEdit(true);\r\n }\r\n },\r\n\r\n refresh: function () {\r\n var self = this;\r\n\r\n if (self.inEditMode) {\r\n return;\r\n }\r\n\r\n self.reload();\r\n },\r\n\r\n editCancel: function () {\r\n var self = this;\r\n\r\n if (!self.updated) {\r\n self.enableEdit(false);\r\n return;\r\n }\r\n\r\n self.reload();\r\n },\r\n\r\n reload: function () {\r\n var self = this;\r\n Api.Main.clearNotify();\r\n\r\n var dagstatusId = $('#DagstatusId').val();\r\n var groepId = $('#GroepId').val();\r\n var tab = $('#ActiveTab').val();\r\n\r\n var options = {};\r\n options[\"tofadein\"] = '#dagstatus-detail-content';\r\n Api.APIcaller.CallAction('/ajax/dagstatusreload', { dagstatusId, groepId, tab }, \"POST\", null, null, (response) => loadComplete(response), options, Api.APIcaller.CancelOptions.None);\r\n\r\n function loadComplete(response) {\r\n if (!response || response.hasErrorText) {\r\n return;\r\n }\r\n\r\n self.initDetail();\r\n }\r\n },\r\n\r\n editSave: function () {\r\n var self = this;\r\n Api.Main.clearNotify();\r\n\r\n var dagstatusId = $('#DagstatusId').val();\r\n var toeslagfunctie = $('#Toeslagfunctie').val();\r\n var defaultToeslagfunctie = $('#DefaultToeslagfunctie').val();\r\n var regelsAutomatisch = $('#RegelsAutomatisch').is(':checked');\r\n var tellersAutomatisch = $('#TellersAutomatisch').is(':checked');\r\n var verlofAutomatisch = $('#VerlofAutomatisch').is(':checked');\r\n var werknemerId = $('#DagstatusWerknemerId').val();\r\n\r\n var update = {\r\n dagstatusId,\r\n groepId = $('#GroepId').val(),\r\n toeslagfunctie,\r\n defaultToeslagfunctie,\r\n regelsAutomatisch,\r\n tellersAutomatisch,\r\n verlofAutomatisch,\r\n werknemerId,\r\n dagregels = getDagregels(),\r\n dagtellers = getDagtellers(),\r\n verlofdagtellers = getVerlofDagtellers()\r\n }\r\n var tab = $('#ActiveTab').val();\r\n\r\n var options = {};\r\n options[\"tofadein\"] = '#dagstatus-detail-content';\r\n Api.APIcaller.CallAction('/ajax/dagstatussave', { update, tab }, \"POST\", null, null, (response) => loadComplete(response), options, Api.APIcaller.CancelOptions.None);\r\n\r\n function loadComplete(response) {\r\n if (!response || response.hasErrorText) {\r\n return;\r\n }\r\n\r\n self.initDetail();\r\n self.reloadGroep = true;\r\n }\r\n\r\n function getDagregels() {\r\n var dagregels = [];\r\n for (var i = 0; i < self.dagregels.length; i++) {\r\n var dagregel = self.dagregels[i];\r\n\r\n if (dagregel) {\r\n dagregels.push(dagregel);\r\n }\r\n }\r\n\r\n return dagregels;\r\n }\r\n\r\n function getDagtellers() {\r\n var dagtellers = [];\r\n for (var i = 0; i < self.dagtellers.length; i++) {\r\n var dagteller = self.dagtellers[i];\r\n\r\n if (dagteller) {\r\n dagtellers.push(dagteller);\r\n }\r\n }\r\n\r\n return dagtellers;\r\n }\r\n\r\n function getVerlofDagtellers() {\r\n var verlofdagtellers = [];\r\n for (var i = 0; i < self.verlofdagtellers.length; i++) {\r\n var verlofdagteller = self.verlofdagtellers[i];\r\n\r\n if (verlofdagteller) {\r\n verlofdagtellers.push(verlofdagteller);\r\n }\r\n }\r\n\r\n return verlofdagtellers;\r\n }\r\n },\r\n\r\n enableEdit: function (enable) {\r\n var self = this;\r\n if (self.inEditMode == enable) {\r\n return;\r\n }\r\n\r\n self.inEditMode = enable;\r\n self.initTabheights();\r\n\r\n $('.navbar .navbar-nav').toggle(!enable);\r\n $('#sidebar .nav').toggle(!enable);\r\n $('#view-header').toggle(!enable);\r\n $(\"#dagstatus-refresh\").toggle(!enable);\r\n\r\n $(\".edit-buttons\").toggle(enable);\r\n $('#edit-header').toggle(enable);\r\n },\r\n\r\n enableDagregelsEdit: function() {\r\n var setEnabled = !$('#RegelsAutomatisch').is(':checked');\r\n $(\".dagregel-edit-button\").toggle(setEnabled);\r\n },\r\n\r\n enableDagtellersEdit: function() {\r\n var setEnabled = !$('#TellersAutomatisch').is(':checked');\r\n $(\".dagteller-edit-button\").toggle(setEnabled);\r\n },\r\n\r\n enableVerlofDagtellersEdit: function () {\r\n var setEnabled = !$('#VerlofAutomatisch').is(':checked');\r\n $(\".verlofdagteller-edit-button\").toggle(setEnabled);\r\n },\r\n\r\n addDagregel: function () {\r\n this.showDagregelEditPopup(this.dagregels.length, null);\r\n },\r\n\r\n editDagregel: function (rownum) {\r\n var dagregel = this.dagregels[rownum];\r\n this.showDagregelEditPopup(rownum, dagregel);\r\n },\r\n\r\n showDagregelEditPopup: function (rownum, dagregel) {\r\n var self = this;\r\n\r\n var options = {};\r\n Api.APIcaller.CallAction('/ajax/getdagregeleditpopup', { dagregel, isNew: !dagregel }, \"POST\", null, null, (response) => loadComplete(response, rownum), options, Api.APIcaller.CancelOptions.None);\r\n\r\n function loadComplete(response, rownum) {\r\n if (!response || response.hasErrorText) {\r\n return;\r\n }\r\n\r\n bindEditButtons(rownum);\r\n APPLOYED.validator.bindRequiredFields('.edit-dagregel-popup', \"#btneditdagregel\");\r\n\r\n function bindEditButtons(rownum) {\r\n $(document).off('click', '#btneditdagregel');\r\n $(document).on('click', '#btneditdagregel', function () {\r\n var update = getUpdate(rownum);\r\n updateDagregel(rownum, update);\r\n });\r\n\r\n $(\"#StartOpVorigeDag\").off('click');\r\n $('#StartOpVorigeDag').on('click', function () {\r\n toggleCheckbox(\"#StartOpVorigeDag\", \"#StartOpVolgendeDag\");\r\n });\r\n\r\n $(\"#StartOpVolgendeDag\").off('click');\r\n $('#StartOpVolgendeDag').on('click', function () {\r\n toggleCheckbox(\"#StartOpVolgendeDag\", \"#StartOpVorigeDag\");\r\n });\r\n\r\n function toggleCheckbox(primary, secondary) {\r\n if ($(primary).is(':checked')) {\r\n $(secondary).prop('checked', false);\r\n }\r\n }\r\n }\r\n }\r\n\r\n function getUpdate(rownum) {\r\n var startOpVorigeDag = $(\".modal-content #StartOpVorigeDag\").is(\":checked\");\r\n var startOpVolgendeDag = $(\".modal-content #StartOpVolgendeDag\").is(\":checked\");\r\n\r\n var update = {\r\n rownum = rownum,\r\n starttijd = $(\".modal-content #Starttijd\").val(),\r\n eindtijd = $(\".modal-content #Eindtijd\").val(),\r\n dagOffset = startOpVorigeDag ? -1 : startOpVolgendeDag ? 1 : 0,\r\n urenSoortId = $(\".modal-content #UrenSoortId\").val(),\r\n urenSoort = $(\".modal-content #UrenSoortId option:selected\").text()\r\n }\r\n\r\n return update;\r\n }\r\n\r\n function updateDagregel(rownum, update) {\r\n while (rownum >= self.dagregels.length) {\r\n self.dagregels.push({});\r\n $('#dagregel-rows').append(``);\r\n }\r\n\r\n var dagregel = self.dagregels[rownum];\r\n\r\n dagregel.starttijd = update.starttijd;\r\n dagregel.eindtijd = update.eindtijd;\r\n dagregel.dagOffset = update.dagOffset;\r\n dagregel.urenSoortId = update.urenSoortId;\r\n\r\n if (!dagregel.groepId) {\r\n dagregel.groepId = parseInt($('#GroepId').val());\r\n }\r\n\r\n var options = {};\r\n Api.APIcaller.CallAction('/ajax/getdagregelrow', { dagregel: update }, \"POST\", null, null, (response) => getRowComplete(response), options, Api.APIcaller.CancelOptions.None);\r\n\r\n function getRowComplete(response) {\r\n if (!response || response.hasErrorText) {\r\n return;\r\n }\r\n\r\n self.updated = true;\r\n self.enableEdit(true);\r\n APPLOYED.modal.closePopup();\r\n }\r\n }\r\n },\r\n\r\n deleteDagregel: function () {\r\n var self = this;\r\n\r\n $(\".btndeletedagregel\").unbind('click');\r\n $(\".btndeletedagregel\").bind('click', function () {\r\n var rownum = $(this).data('recordid');\r\n self.dagregels[rownum] = null;\r\n\r\n self.updated = true;\r\n self.enableEdit(true);\r\n var row = $(`#dagregel-${rownum}`);\r\n row.remove();\r\n $('#confirmdeletemodal').modal('hide');\r\n });\r\n },\r\n\r\n addDagteller: function () {\r\n this.showDagtellerEditPopup(this.dagtellers.length, null);\r\n },\r\n\r\n editDagteller: function (rownum) {\r\n var dagteller = this.dagtellers[rownum];\r\n this.showDagtellerEditPopup(rownum, dagteller);\r\n },\r\n\r\n showDagtellerEditPopup: function (rownum, dagteller) {\r\n var self = this;\r\n\r\n var datum = DateService.ToInvariantDate($('#Datum').val());\r\n var employeeId = $('#DagstatusWerknemerId').val();\r\n\r\n var options = {};\r\n Api.APIcaller.CallAction('/ajax/getdagtellereditpopup', { datum, dagteller, isNew: !dagteller, employeeId }, \"POST\", null, null, (response) => loadComplete(response, rownum), options, Api.APIcaller.CancelOptions.None);\r\n\r\n function loadComplete(response, rownum) {\r\n if (!response || response.hasErrorText) {\r\n return;\r\n }\r\n\r\n self.toeslageninfo = $.parseJSON($('#JsToeslagenInfo').val());\r\n self.uitbetalenIds = $('#UitbetalenIds').val().split(',');\r\n\r\n bindInputs();\r\n bindEditButtons(rownum);\r\n\r\n APPLOYED.validator.bindRequiredFields('div.edit-dagteller-popup', \"#btneditdagteller\", false);\r\n\r\n setTimeout(() => {\r\n APPLOYED.validator.checkRequiredFields('.edit-dagteller-popup', \"#btneditdagteller\");\r\n }, 300);\r\n\r\n function bindEditButtons(rownum) {\r\n $('#btneditdagteller').on('click', function () {\r\n var update = getUpdate(rownum);\r\n updateDagteller(rownum, update);\r\n });\r\n }\r\n\r\n function bindInputs() {\r\n $('#ToeslagId').on('change', function () {\r\n var toeslagId = $(this).val();\r\n var categorien = self.toeslageninfo.filter(tc => tc.toeslagId == toeslagId);\r\n\r\n var options = [];\r\n $.each(categorien, function (index, ct) {\r\n var attr = {}\r\n attr.value = ct.categorieId;\r\n attr.text = ct.categorieNaam;\r\n options.push(attr);\r\n });\r\n\r\n APPLOYED.form.replaceOptions('#CategorieId', options);\r\n\r\n toggleToeslagVelden();\r\n\r\n APPLOYED.validator.checkRequiredFields('.edit-dagteller-popup', \"#btneditdagteller\");\r\n\r\n });\r\n }\r\n\r\n function toggleToeslagVelden() {\r\n var showBedrag = isVasteToeslag();\r\n $(\"#toeslagbedrag-container\").toggle(showBedrag);\r\n $(\"#toeslagtijd-container\").toggle(!showBedrag);\r\n $(\"#Toeslagbedrag\").prop(\"disabled\", !showBedrag);\r\n\r\n var showVerlof = !isVasteToeslag() && !isUitbetalen();\r\n $(\"#verlofregeling-container\").toggle(showVerlof);\r\n $(\"#VerlofregelingId\").prop(\"disabled\", !showVerlof);\r\n }\r\n }\r\n\r\n function getUpdate(rownum) {\r\n var heeftVerlofregeling = !isVasteToeslag() && !isUitbetalen();\r\n var verlofregelingId = heeftVerlofregeling ? parseInt($(\".modal-content #VerlofregelingId\").val()) : null;\r\n var toeslagbedrag = parseFloat($(\".modal-content #Toeslagbedrag\").val());\r\n var toeslagtijd = parseFloat($(\".modal-content #Toeslagtijd\").val());\r\n\r\n var update = {\r\n rownum = rownum,\r\n categorieId = $(\".modal-content #CategorieId\").val(),\r\n toeslagId = $(\".modal-content #ToeslagId\").val(),\r\n verlofregelingId = verlofregelingId ? verlofregelingId : null,\r\n toeslagbedrag = (toeslagbedrag || toeslagbedrag == 0) ? toeslagbedrag : null,\r\n toeslagtijd = (toeslagtijd || toeslagtijd == 0) ? toeslagtijd : null,\r\n\r\n categorieNaam = $(\".modal-content #CategorieId option:selected\").text(),\r\n toeslagNaam = $(\".modal-content #ToeslagId option:selected\").text(),\r\n berekenmethodeNaam = $(\"#Toeslagfunctie option:selected\").text(),\r\n verlofregelingNaam = verlofregelingId ? $(\".modal-content #VerlofregelingId option:selected\").text() : null\r\n }\r\n\r\n return update;\r\n }\r\n\r\n function isVasteToeslag() {\r\n var toeslag = self.toeslageninfo.find(el => el.toeslagId == $(\"#ToeslagId\").val());\r\n var toeslagmethode = toeslag?.toeslagmethode;\r\n\r\n var isVasteToeslag = $(\"#ToeslagVastId\").val() == '' + toeslagmethode;\r\n return isVasteToeslag;\r\n }\r\n\r\n function isUitbetalen() {\r\n var isUitbetalen = !!self.uitbetalenIds.find(el => el == $(\"#Berekenmethode\").val());\r\n return isUitbetalen;\r\n }\r\n\r\n function updateDagteller(rownum, update) {\r\n while (rownum >= self.dagtellers.length) {\r\n self.dagtellers.push({});\r\n $('#dagteller-rows').append(``);\r\n }\r\n\r\n var dagteller = self.dagtellers[rownum];\r\n\r\n dagteller.categorieId = update.categorieId;\r\n dagteller.toeslagId = update.toeslagId;\r\n dagteller.toeslagnaam = update.toeslagNaam;\r\n dagteller.berekenmethode = update.berekenmethode;\r\n dagteller.verlofregelingId = update.verlofregelingId;\r\n dagteller.toeslagbedrag = update.toeslagbedrag;\r\n dagteller.toeslagtijd = update.toeslagtijd;\r\n\r\n var model = { ...update }\r\n model.starttijd = dagteller.starttijd;\r\n model.eindtijd = dagteller.eindtijd;\r\n model.dagOffset = dagteller.dagOffset;\r\n model.duur = dagteller.duur;\r\n\r\n var options = {};\r\n Api.APIcaller.CallAction('/ajax/getdagtellerrow', { dagteller: model }, \"POST\", null, null, (response) => getRowComplete(response), options, Api.APIcaller.CancelOptions.None);\r\n\r\n function getRowComplete(response) {\r\n if (!response || response.hasErrorText) {\r\n return;\r\n }\r\n\r\n self.updated = true;\r\n self.enableEdit(true);\r\n APPLOYED.modal.closePopup();\r\n }\r\n }\r\n },\r\n\r\n deleteDagteller: function () {\r\n var self = this;\r\n\r\n $(\".btndeletedagteller\").unbind('click');\r\n $(\".btndeletedagteller\").bind('click', function () {\r\n var rownum = $(this).data('recordid');\r\n self.dagtellers[rownum] = null;\r\n\r\n self.updated = true;\r\n self.enableEdit(true);\r\n var row = $(`#dagteller-${rownum}`);\r\n row.remove();\r\n $('#confirmdeletemodal').modal('hide');\r\n });\r\n },\r\n\r\n addVerlofDagteller: function () {\r\n this.showVerlofDagtellerEditPopup(this.verlofdagtellers.length, null);\r\n },\r\n\r\n editVerlofDagteller: function (rownum) {\r\n var verlofdagteller = this.verlofdagtellers[rownum];\r\n this.showVerlofDagtellerEditPopup(rownum, verlofdagteller);\r\n },\r\n\r\n showVerlofDagtellerEditPopup: function (rownum, verlofdagteller) {\r\n var self = this;\r\n\r\n var datum = DateService.ToInvariantDate($('#Datum').val());\r\n var werknemerId = $('#DagstatusWerknemerId').val();\r\n\r\n var options = {};\r\n Api.APIcaller.CallAction('/ajax/getverlofdagtellereditpopup', { datum, werknemerId, verlofdagteller, isNew: !verlofdagteller }, \"POST\", null, null, (response) => loadComplete(response, rownum), options, Api.APIcaller.CancelOptions.None);\r\n\r\n function loadComplete(response, rownum) {\r\n if (!response || response.hasErrorText) {\r\n return;\r\n }\r\n\r\n FormValidationService.InitializeDecimalInputValidation();\r\n bindEditButtons(rownum);\r\n APPLOYED.validator.bindRequiredFields('.edit-verlofdagteller-popup', \"#btneditverlofdagteller\", false);\r\n\r\n setTimeout(() => {\r\n APPLOYED.validator.checkRequiredFields('.edit-verlofdagteller-popup', \"#btneditverlofdagteller\");\r\n }, 300);\r\n\r\n function bindEditButtons(rownum) {\r\n $(\"#btneditverlofdagteller\").off('click');\r\n $('#btneditverlofdagteller').on('click', function () {\r\n var update = getUpdate(rownum);\r\n updateVerlofDagteller(rownum, update);\r\n });\r\n\r\n $('#Duur').off('change keyup');\r\n $('#Duur').on('change keyup', function () {\r\n APPLOYED.validator.keepValueBetweenMinAndMax('#Duur', 0, 24);\r\n });\r\n }\r\n }\r\n\r\n function getUpdate(rownum) {\r\n var verlofregelingId = parseInt($(\".modal-content #VerlofregelingId\").val());\r\n var duur = parseFloat($(\".modal-content #Duur\").val());\r\n\r\n var update = {\r\n rownum: rownum,\r\n verlofregelingId: verlofregelingId ? verlofregelingId : null,\r\n duur: (duur || duur == 0) ? duur : null,\r\n verlofregeling = verlofregelingId ? $(\".modal-content #VerlofregelingId option:selected\").text() : null\r\n }\r\n\r\n return update;\r\n }\r\n\r\n function updateVerlofDagteller(rownum, update) {\r\n while (rownum >= self.verlofdagtellers.length) {\r\n self.verlofdagtellers.push({ afwijkend: true });\r\n $('#verlofdagteller-rows').append(``);\r\n }\r\n\r\n var verlofdagteller = self.verlofdagtellers[rownum];\r\n verlofdagteller.updated = true;\r\n\r\n verlofdagteller.verlofregelingId = update.verlofregelingId;\r\n verlofdagteller.duur = update.duur;\r\n\r\n var model = { ...update }\r\n model.afwijkend = verlofdagteller.afwijkend;\r\n\r\n var options = {};\r\n Api.APIcaller.CallAction('/ajax/getverlofdagtellerrow', { verlofdagteller: model }, \"POST\", null, null, (response) => getRowComplete(response), options, Api.APIcaller.CancelOptions.None);\r\n\r\n function getRowComplete(response) {\r\n if (!response || response.hasErrorText) {\r\n return;\r\n }\r\n\r\n self.updated = true;\r\n self.enableEdit(true);\r\n APPLOYED.modal.closePopup();\r\n }\r\n }\r\n },\r\n\r\n deleteVerlofDagteller: function () {\r\n var self = this;\r\n\r\n $(\".btndeleteverlofdagteller\").unbind('click');\r\n $(\".btndeleteverlofdagteller\").bind('click', function () {\r\n var rownum = $(this).data('recordid');\r\n \r\n self.verlofdagtellers[rownum].deleted = true;\r\n\r\n self.updated = true;\r\n self.enableEdit(true);\r\n \r\n if (!self.verlofdagtellers[rownum].verlofId) {\r\n self.verlofdagtellers.splice(self.verlofdagtellers.indexOf(self.verlofdagtellers[rownum]), 1);\r\n }\r\n\r\n var row = $(`#verlofdagteller-${rownum}`);\r\n row.remove();\r\n $('#confirmdeletemodal').modal('hide');\r\n });\r\n },\r\n}","APPLOYED.time_klokregistratie = {\r\n klokregistratie: function () {\r\n var element = $('#KlokregistratieOverviewTable');\r\n var columDefs = [];\r\n\r\n APPLOYED.table.dataTable(element, false, true, false, true, columDefs, []);\r\n\r\n $('#KlokregistratieOverviewTable_filter').hide();\r\n\r\n $(element).find('tbody').off('click', 'tr');\r\n $(element).find('tbody').on('click', 'tr', function () {\r\n $('tr.selected').removeClass('selected');\r\n $(this).addClass('selected');\r\n });\r\n\r\n $(document).off('click', '#KlokregistratieOverviewTable tr');\r\n $(document).on('click', '#KlokregistratieOverviewTable tr', function () {\r\n let clockIdentificatieId = $(this).data('id');\r\n\r\n if (clockIdentificatieId) {\r\n let employeeName = $(this).find('.werknemernaam').html();\r\n let employeeId = $(this).data('employeeid');\r\n\r\n updateDeleteAction(clockIdentificatieId, employeeName, employeeId);\r\n updateEditAction(clockIdentificatieId);\r\n }\r\n });\r\n\r\n function updateDeleteAction(id, employeeName, employeeId) {\r\n $('.deleteaction').removeClass('disabled');\r\n $('.deleteaction').data('record', id);\r\n $('.deleteaction').attr('data-record', id);\r\n $('.deleteaction').attr('data-employee', employeeId);\r\n $('#confirmdeletemodalitemname').html(\"| \" + employeeName);\r\n $('#confirmdeletemodalitemname').show();\r\n };\r\n\r\n\r\n function updateEditAction(id) {\r\n var editlink = $('#editlink')\r\n let link = editlink.attr('href');\r\n\r\n if (link == undefined) {\r\n return false;\r\n }\r\n\r\n let replacePatern = /\\/\\d+/gm;\r\n let regexp = new RegExp(replacePatern, \"g\");\r\n editlink.attr('href', link.replace(regexp, '/' + id));\r\n\r\n $(editlink).removeClass('disabled');\r\n }\r\n\r\n function resetActions() {\r\n $('.deleteaction').addClass('disabled');\r\n $('#editlink').addClass('disabled');\r\n $('tr.selected').removeClass('selected');\r\n }\r\n\r\n $(\"#searchinputbox\").unbind('keyup copy paste');\r\n $(\"#searchinputbox\").bind('keyup copy paste', function () {\r\n var table = $('#KlokregistratieOverviewTable').DataTable();\r\n table.search($(this).val()).draw();\r\n resetActions();\r\n });\r\n },\r\n\r\n deleteKlokregistratie: function () {\r\n $(document).off('click', '.btndeleterecord');\r\n $(document).on('click', '.btndeleterecord', function () {\r\n let recordid = $('.deleteaction').data('record');\r\n let employeeId = $('.deleteaction').data('employee');\r\n let section = $('.deleteaction').data('section');\r\n\r\n let options = {};\r\n options[\"tofadein\"] = null;\r\n options[\"loading\"] = 'div[id=\"dropdownMenu3\"]';\r\n\r\n Api.APIcaller.CallAction(section, { recordid: recordid, employeeId: employeeId }, \"POST\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n });\r\n },\r\n\r\n klokregistratieedit: function () {\r\n $(document).on(\"keydown\", \"form\", function (event) {\r\n return event.key != \"Enter\";\r\n });\r\n }\r\n}","APPLOYED.time_periodeafsluiten = {\r\n periodeafsluiten: function () {\r\n var self = this;\r\n\r\n // init\r\n APPLOYED.wizard.init();\r\n FormValidationService.InitializeDatePicker();\r\n\r\n // callbacks\r\n APPLOYED.wizard.on('prev', prev);\r\n APPLOYED.wizard.on('next', next);\r\n APPLOYED.wizard.on('goto', goto);\r\n APPLOYED.wizard.on('navigated', navigated);\r\n\r\n setHeight();\r\n setBindings();\r\n\r\n function setHeight() {\r\n APPLOYED.element.dynamicHeight('.wizardForm .afsluiten-errors .dynamic-height', '.wizardForm', 100, 100);\r\n APPLOYED.element.dynamicHeight('.wizardForm .afsluiten-mutaties .dynamic-height', '.wizardForm', 160, 100);\r\n }\r\n\r\n function setBindings() {\r\n $(document).on('click', '#copyResult', function () {\r\n document.getElementById('open-autorisaties').select();\r\n document.execCommand(\"copy\");\r\n });\r\n\r\n $(document).on('change', '#OverrideAutorisatie', function () {\r\n var overriden = $(\"#OverrideAutorisatie\").is(':checked');\r\n $('#autorisatieNext').prop(\"disabled\", !overriden);\r\n });\r\n\r\n $(document).on('change keyup', '#Verloningsdatum', function () {\r\n var validDatum = APPLOYED.validator.isValidDate($(\"#Verloningsdatum\").val());\r\n $('#loondatumNext').prop(\"disabled\", !validDatum);\r\n });\r\n }\r\n\r\n function prev(step) {\r\n Api.Main.clearNotify();\r\n return true;\r\n }\r\n\r\n function goto(step) {\r\n Api.Main.clearNotify();\r\n var isAfronden = APPLOYED.wizard.navigate.isStep(step, 'afronden');\r\n\r\n if (isAfronden) {\r\n APPLOYED.wizard.navigate.disabled = true;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n function next(step) {\r\n Api.Main.clearNotify();\r\n var isControle = APPLOYED.wizard.navigate.isStep(step, 'controle');\r\n\r\n if (isControle) {\r\n APPLOYED.wizard.navigate.disabled = true;\r\n afsluiten();\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n function navigated(step) {\r\n var isControle = APPLOYED.wizard.navigate.isStep(step, 'controle');\r\n\r\n if (isControle) {\r\n APPLOYED.wizard.navigate.disabled = true;\r\n $('#WizardSubmit').prop(\"disabled\", true);\r\n controle();\r\n }\r\n }\r\n\r\n function controle() {\r\n var params = {\r\n loondatum: DateService.ToInvariantDate($(\"#Verloningsdatum\").val()),\r\n periodeId: $(\"#PeriodeId\").val()\r\n };\r\n\r\n var options = {};\r\n options[\"tofadein\"] = '#controle';\r\n\r\n Api.APIcaller.CallAction(\"/ajax/periodeAfsluitenControle\", params, \"POST\", null, null, (response) => loadComplete(response), options, Api.APIcaller.CancelOptions.None);\r\n\r\n function loadComplete(response) {\r\n APPLOYED.wizard.navigate.disabled = false;\r\n setHeight();\r\n\r\n if (!response || response.hasErrorText) {\r\n return;\r\n }\r\n\r\n var hasErrors = response.jsoNresults[0];\r\n $('#WizardSubmit').prop(\"disabled\", hasErrors);\r\n }\r\n }\r\n\r\n function afsluiten() {\r\n var params = {\r\n loondatum: DateService.ToInvariantDate($(\"#Verloningsdatum\").val()),\r\n periodeId: $(\"#PeriodeId\").val()\r\n };\r\n\r\n var options = {};\r\n options[\"tofadein\"] = '#controle';\r\n\r\n Api.APIcaller.CallAction(\"/ajax/periodeAfsluiten\", params, \"POST\", null, null, (response) => loadComplete(response), options, Api.APIcaller.CancelOptions.None);\r\n\r\n function loadComplete(response) {\r\n APPLOYED.wizard.navigate.disabled = false;\r\n\r\n if (!response || response.hasErrorText) {\r\n return;\r\n }\r\n\r\n var hasErrors = response.jsoNresults[0];\r\n if (hasErrors) {\r\n $('#WizardSubmit').prop(\"disabled\", hasErrors);\r\n }\r\n else {\r\n var step = parseInt($('#afronden').data('step'));\r\n APPLOYED.wizard.navigate.goto(step, true);\r\n }\r\n }\r\n }\r\n }\r\n}","APPLOYED.time_periodeafsluitenoverview = {\r\n setHeight: null,\r\n\r\n periodeafsluiten: function () {\r\n var self = this;\r\n\r\n setHeight();\r\n self.setHeight = setHeight;\r\n\r\n self.periodeafsluitenLoad();\r\n\r\n function setHeight() {\r\n APPLOYED.element.dynamicHeight('#afsluitperiode .dynamic-height', '.mainscreensized', 70, 100);\r\n }\r\n },\r\n\r\n periodeafsluitenLoad: function () {\r\n var self = this;\r\n\r\n initPeriodes();\r\n bindYearNavigator();\r\n self.enableHeropenen();\r\n\r\n function initPeriodes() {\r\n initSelectedPeriode();\r\n\r\n $(\".configperiodesmallcube\").unbind('click');\r\n $(\".configperiodesmallcube\").bind('click', function () {\r\n $('.configperiodesmallcube').removeClass('active');\r\n $(this).addClass('active');\r\n\r\n setPeriodedefinitieSelected(this);\r\n\r\n var periodeId = $(this).data('periodeid');\r\n $('#PeriodeId').val(periodeId);\r\n\r\n var periodeNaam = $(this).find('.periodenaam').first().text();\r\n $('#PeriodeNaam').val(periodeNaam);\r\n\r\n self.loadPeriode();\r\n });\r\n\r\n $(\".configperiodedefinitiesmallcube\").unbind('click');\r\n $(\".configperiodedefinitiesmallcube\").bind('click', function () {\r\n var isOpen = $(this).hasClass(\"opened\");\r\n\r\n if (isOpen) {\r\n closePeriodedefinitie(this)\r\n } else {\r\n openPeriodedefinitie(this);\r\n }\r\n });\r\n\r\n $(\".heropenenaction\").unbind('click');\r\n $(\".heropenenaction\").bind('click', function () {\r\n let periodeId = $('#PeriodeId').val();\r\n\r\n let title = $(this).data('title');\r\n let body = $(this).data('body');\r\n let warning = $(this).data('warning');\r\n let btn = $(this).data('btn');\r\n\r\n $('#confirmdeletemodaltitle').html(title.replace('{0}', \"'\" + $('#PeriodeNaam').val() + \"'\"));\r\n $('#confirmdeletemodalbody').html(body);\r\n $('#confirmdeletemodalwarning').html(warning);\r\n $('#confirmdeletemodalwarning').toggle(true);\r\n $('#confirmdeletemodalaction').html(btn);\r\n\r\n $('#confirmdeletemodalaction').one('click', function () {\r\n $('#confirmdeletemodal').modal('hide');\r\n periodeHeropenen(periodeId);\r\n });\r\n\r\n $('#confirmdeletemodal').modal('show');\r\n\r\n $('#confirmdeletemodal').one('hidden.bs.modal', function () {\r\n unbindDeleteModal();\r\n });\r\n\r\n function unbindDeleteModal() {\r\n $('#confirmdeletemodalaction').off('click');\r\n $('#confirmdeletemodalaction').unbind('click');\r\n };\r\n });\r\n\r\n function initSelectedPeriode() {\r\n var selectedRecordId = $('#PeriodeId').val();\r\n var selperiode = $('.configperiodesmallcube[data-periodeid=' + selectedRecordId + ']');\r\n $('.configperiodesmallcube').removeClass('active');\r\n if (selperiode.data('periodeid') == undefined || selperiode.data('periodeid') == 'undefined') {\r\n selperiode = $('#periodelist div.configperiodesmallcube').first();\r\n selectedRecordId = selperiode.data('periodeid');\r\n }\r\n\r\n $('#PeriodeId').val(selectedRecordId);\r\n\r\n var periodeNaam = $(selperiode).find('.periodenaam').first().text();\r\n $('#PeriodeNaam').val(periodeNaam);\r\n\r\n if (!!selectedRecordId) {\r\n selperiode.addClass('active');\r\n selperiode.trigger('click');\r\n }\r\n\r\n var selperiodedefinitie = getSelectedPeriodedefinitie(selperiode);\r\n if (selperiodedefinitie.length > 0) {\r\n openPeriodedefinitie(selperiodedefinitie);\r\n selperiodedefinitie.addClass('selected');\r\n }\r\n\r\n if (!APPLOYED.element.isInScrollView(selperiode, \"#periodelist\")) {\r\n APPLOYED.element.scrollToElementInList(\"#periodelist\", selperiode, 0);\r\n }\r\n }\r\n\r\n function getSelectedPeriodedefinitie(selperiode) {\r\n return $(selperiode).closest('div[id^=\"periodedefinitie_\"').prev();\r\n }\r\n\r\n function setPeriodedefinitieSelected(selperiode) {\r\n $(\".configperiodedefinitiesmallcube\").removeClass('selected');\r\n var selperiode = getSelectedPeriodedefinitie(selperiode);\r\n selperiode.addClass('selected');\r\n }\r\n\r\n function closePeriodedefinitie(el) {\r\n var target = $(el).data('target');\r\n $(target).hide();\r\n $(el).removeClass('opened');\r\n $(el).find('i.chevron').removeClass('fa-angle-down');\r\n $(el).find('i.chevron').addClass('fa-angle-right');\r\n }\r\n\r\n function openPeriodedefinitie(el) {\r\n var target = $(el).data('target');\r\n $(target).show();\r\n $(el).addClass('opened');\r\n $(el).find('i.chevron').removeClass('fa-angle-right');\r\n $(el).find('i.chevron').addClass('fa-angle-down');\r\n }\r\n\r\n function periodeHeropenen(periodeId) {\r\n var options = {};\r\n options[\"tofadein\"] = '#afsluitperiode-detail-container';\r\n Api.APIcaller.CallAction('/ajax/PeriodeHeropenen', { periodeId }, \"POST\", null, null, (response) => loadComplete(response, periodeId), options, Api.APIcaller.CancelOptions.None);\r\n\r\n function loadComplete(response, periodeId) {\r\n Api.APIcaller.WaitFadeOut(\"#afsluitperiode-detail-container\");\r\n\r\n if (!response || response.hasErrorText) {\r\n return;\r\n }\r\n\r\n var heropend = response.jsoNresults[0];\r\n if (heropend) {\r\n loadPeriodeAfsluitenOverview(periodeId);\r\n }\r\n }\r\n }\r\n\r\n function loadPeriodeAfsluitenOverview(periodeId) {\r\n var jaar = $('#Selectjaar').val();\r\n window.location.href = `/Customer/Timeregistration/periodeafsluitenoverview?jaar=${jaar}&periodeid=${periodeId}`;\r\n }\r\n }\r\n\r\n function bindYearNavigator() {\r\n APPLOYED.time_shared.bindYearNavigator(loadPeriodeOverview);\r\n }\r\n\r\n function loadPeriodeOverview(jaar) {\r\n Api.Main.clearNotify();\r\n\r\n var options = {};\r\n options[\"tofadein\"] = '#periodeafsluiten-container';\r\n\r\n var params = {\r\n jaar: jaar\r\n };\r\n\r\n Api.APIcaller.CallAction(\"/ajax/periodeAfsluitenOverviewLoad\", params, \"GET\", null, null, (response) => loadComplete(response), options, Api.APIcaller.CancelOptions.None);\r\n\r\n function loadComplete(response) {\r\n if (!response || response.hasErrorText) {\r\n return;\r\n }\r\n\r\n self.setHeight();\r\n initPeriodes();\r\n self.enableHeropenen();\r\n }\r\n }\r\n },\r\n\r\n loadPeriode: function () {\r\n var self = this;\r\n\r\n var options = {};\r\n options[\"tofadein\"] = '#afsluitperiode-detail-container';\r\n\r\n var periodeId = $('#PeriodeId').val();\r\n Api.APIcaller.CallAction(\"/ajax/PeriodeAfsluitenLoadPeriode\", { periodeId }, \"POST\", null, null, (response) => loadComplete(response), options, Api.APIcaller.CancelOptions.None);\r\n\r\n function loadComplete(response) {\r\n if (!response || response.hasErrorText) {\r\n return;\r\n }\r\n\r\n self.enableHeropenen();\r\n }\r\n },\r\n\r\n enableHeropenen() {\r\n var kanHeropenen = $('#KanHeropenen').val() == \"True\";\r\n\r\n if (kanHeropenen) {\r\n $('.heropenenaction').removeClass('disabled');\r\n }\r\n else {\r\n $('.heropenenaction').addClass('disabled');\r\n }\r\n }\r\n}","APPLOYED.time_periodeoverzicht = {\r\n grid: null,\r\n\r\n periodeoverzicht: function () {\r\n var self = this;\r\n\r\n setHeight();\r\n self.periodeoverzichtLoad();\r\n\r\n function setHeight() {\r\n APPLOYED.element.dynamicHeight('#periodeoverzicht .dynamic-height', '.mainscreensized', 90, 100);\r\n }\r\n },\r\n\r\n periodeoverzichtLoad: function () {\r\n var self = this;\r\n\r\n bindGroep();\r\n bindWerknemer();\r\n bindYearNavigator();\r\n\r\n initPeriodes();\r\n loadOverzicht();\r\n bindExport();\r\n\r\n function bindYearNavigator() {\r\n APPLOYED.time_shared.bindYearNavigator(loadPeriodeOverzicht);\r\n }\r\n\r\n function loadPeriodeOverzicht(jaar) {\r\n Api.Main.clearNotify();\r\n\r\n var werknemerId = $('#WerknemerId').val();\r\n var area = $(\"#AreaName\").val();\r\n\r\n var options = {};\r\n options[\"tofadein\"] = '#periodeoverzicht-werknemer';\r\n\r\n var params = {\r\n jaar: jaar,\r\n area,\r\n werknemerId\r\n };\r\n\r\n Api.APIcaller.CallAction(\"/ajax/periodeOverzichtLoad\", params, \"POST\", null, null, (response) => loadComplete(response), options, Api.APIcaller.CancelOptions.None);\r\n\r\n function loadComplete(response) {\r\n if (!response || response.hasErrorText) {\r\n return;\r\n }\r\n\r\n self.components = [];\r\n\r\n APPLOYED.filter.checkAllInit();\r\n APPLOYED.filter.initFilterStatus();\r\n\r\n bindGroep();\r\n bindWerknemer();\r\n initPeriodes();\r\n\r\n loadOverzicht();\r\n }\r\n }\r\n\r\n function loadOverzicht(fadein = false) {\r\n self.loadWerknemerOverzicht(fadein);\r\n }\r\n\r\n function initPeriodes() {\r\n $(\".configperiodesmallcube\").unbind('click');\r\n $(\".configperiodesmallcube\").bind('click', function () {\r\n $('.configperiodesmallcube').removeClass('active');\r\n $(this).addClass('active');\r\n\r\n setPeriodedefinitieSelected(this);\r\n\r\n var periodeId = $(this).data('periodeid');\r\n $('#PeriodeId').val(periodeId);\r\n\r\n var periodeNaam = $(this).find('.periodenaam').first().text();\r\n $('#PeriodeNaam').val(periodeNaam);\r\n\r\n getGroepen();\r\n });\r\n\r\n $(\".configperiodedefinitiesmallcube\").unbind('click');\r\n $(\".configperiodedefinitiesmallcube\").bind('click', function () {\r\n var isOpen = $(this).hasClass(\"opened\");\r\n\r\n if (isOpen) {\r\n closePeriodedefinitie(this)\r\n } else {\r\n openPeriodedefinitie(this);\r\n }\r\n });\r\n\r\n initSelectedPeriode();\r\n\r\n function initSelectedPeriode() {\r\n var oldPeriodeId = $('#PeriodeId').val();\r\n var selectedRecordId = oldPeriodeId;\r\n var selperiode = $('.configperiodesmallcube[data-periodeid=\"' + selectedRecordId + '\"]');\r\n $('.configperiodesmallcube').removeClass('active');\r\n\r\n if (selperiode.data('periodeid') == undefined || selperiode.data('periodeid') == 'undefined') {\r\n selperiode = $('#periodelist div.configperiodesmallcube').first();\r\n selectedRecordId = selperiode.data('periodeid');\r\n }\r\n\r\n if (selectedRecordId) {\r\n selperiode.addClass('active');\r\n\r\n if (oldPeriodeId != selectedRecordId) {\r\n selperiode.trigger('click');\r\n }\r\n }\r\n\r\n $('#PeriodeId').val(selectedRecordId);\r\n\r\n var periodeNaam = $(selperiode).find('.periodenaam').first().text();\r\n $('#PeriodeNaam').val(periodeNaam);\r\n\r\n var selperiodedefinitie = getSelectedPeriodedefinitie(selperiode);\r\n if (selperiodedefinitie.length > 0) {\r\n openPeriodedefinitie(selperiodedefinitie);\r\n selperiodedefinitie.addClass('selected');\r\n }\r\n\r\n if (!APPLOYED.element.isInScrollView(selperiode, \"#periodelist\")) {\r\n APPLOYED.element.scrollToElementInList(\"#periodelist\", selperiode, 0);\r\n }\r\n }\r\n\r\n function getSelectedPeriodedefinitie(selperiode) {\r\n return $(selperiode).closest('div[id^=\"periodedefinitie_\"').prev();\r\n }\r\n\r\n function setPeriodedefinitieSelected(selperiode) {\r\n $(\".configperiodedefinitiesmallcube\").removeClass('selected');\r\n var selperiode = getSelectedPeriodedefinitie(selperiode);\r\n selperiode.addClass('selected');\r\n }\r\n\r\n function closePeriodedefinitie(el) {\r\n var target = $(el).data('target');\r\n $(target).hide();\r\n $(el).removeClass('opened');\r\n $(el).find('i.chevron').removeClass('fa-angle-down');\r\n $(el).find('i.chevron').addClass('fa-angle-right');\r\n }\r\n\r\n function openPeriodedefinitie(el) {\r\n var target = $(el).data('target');\r\n $(target).show();\r\n $(el).addClass('opened');\r\n $(el).find('i.chevron').removeClass('fa-angle-right');\r\n $(el).find('i.chevron').addClass('fa-angle-down');\r\n }\r\n }\r\n\r\n function bindGroep() {\r\n $(\"#GroepId\").unbind('change');\r\n $(\"#GroepId\").bind('change', function () {\r\n getWerknemers();\r\n setGroepCookie();\r\n });\r\n\r\n function setGroepCookie() {\r\n var id = $('#GroepId').val();\r\n Api.Main.setCookie(escape($('#GroepCookie').val()), id, 365, null, null);\r\n }\r\n }\r\n\r\n function bindWerknemer() {\r\n $(\"#WerknemerId\").unbind('change');\r\n $(\"#WerknemerId\").bind('change', function () {\r\n self.loadWerknemerOverzicht();\r\n toggleWnCursor();\r\n });\r\n\r\n $(\"#prevwn\").unbind('click');\r\n $(\"#prevwn\").bind('click', function () {\r\n prevWerknemer();\r\n });\r\n\r\n $(\"#nextwn\").unbind('click');\r\n $(\"#nextwn\").bind('click', function () {\r\n nextWerknemer();\r\n });\r\n\r\n toggleWnCursor();\r\n }\r\n\r\n function bindExport() {\r\n $(\".exportperiode\").unbind('click');\r\n $(\".exportperiode\").bind('click', function () {\r\n self.exportPopup();\r\n });\r\n }\r\n\r\n function nextWerknemer() {\r\n var index = $('#WerknemerId')[0].selectedIndex;\r\n var options = $('#WerknemerId option');\r\n if (index < options.length - 1) {\r\n options[index + 1].selected = 'selected';\r\n $('#WerknemerId').trigger('change');\r\n toggleWnCursor();\r\n }\r\n }\r\n\r\n function prevWerknemer() {\r\n var index = $('#WerknemerId')[0].selectedIndex;\r\n var options = $('#WerknemerId option');\r\n if (index > 1) {\r\n options[index - 1].selected = 'selected';\r\n $('#WerknemerId').trigger('change');\r\n toggleWnCursor();\r\n }\r\n }\r\n\r\n function toggleWnCursor() {\r\n var index = $('#WerknemerId')[0].selectedIndex;\r\n var options = $('#WerknemerId option');\r\n $('#prevwn').toggleClass('wn-icon-enabled', index > 1);\r\n $('#prevwn').toggleClass('wn-icon-disabled', index <= 1);\r\n\r\n $('#nextwn').toggleClass('wn-icon-enabled', index < options.length - 1);\r\n $('#nextwn').toggleClass('wn-icon-disabled', index >= options.length - 1);\r\n }\r\n\r\n function getWerknemers() {\r\n var periodeId = $('#PeriodeId').val();\r\n var groepId = $('#GroepId').val();\r\n var werknemerId = $('#WerknemerId').val();\r\n\r\n var options = {};\r\n options[\"tofadein\"] = '#periodeoverzicht-werknemer';\r\n Api.APIcaller.CallAction('/ajax/PeriodeOverzichtGetWerknemers', { periodeId, groepId, werknemerId }, \"GET\", null, null, (response) => loadComplete(response), options, Api.APIcaller.CancelOptions.None);\r\n\r\n function loadComplete(response) {\r\n if (!response || response.hasErrorText) {\r\n return;\r\n }\r\n\r\n bindWerknemer();\r\n self.loadWerknemerOverzicht();\r\n }\r\n }\r\n\r\n function getGroepen() {\r\n var periodeId = $('#PeriodeId').val();\r\n var groepId = $('#GroepId').val();\r\n var werknemerId = $('#WerknemerId').val();\r\n\r\n var options = {};\r\n options[\"tofadein\"] = '#periodeoverzicht-werknemer';\r\n Api.APIcaller.CallAction('/ajax/PeriodeOverzichtGetGroepen', { periodeId, groepId, werknemerId }, \"GET\", null, null, (response) => loadComplete(response), options, Api.APIcaller.CancelOptions.None);\r\n\r\n function loadComplete(response) {\r\n if (!response || response.hasErrorText) {\r\n return;\r\n }\r\n\r\n bindGroep();\r\n bindWerknemer();\r\n self.loadWerknemerOverzicht();\r\n }\r\n }\r\n\r\n },\r\n\r\n loadWerknemerOverzicht: function () {\r\n var periodeId = $('#PeriodeId').val();\r\n var werknemerId = $('#WerknemerId').val();\r\n\r\n var wnovzId = $('#wnovz-id').val();\r\n if (wnovzId == `${periodeId}-${werknemerId}`) {\r\n return;\r\n }\r\n\r\n var options = {};\r\n options[\"tofadein\"] = '#periodeoverzicht-werknemer';\r\n Api.APIcaller.CallAction('/ajax/GetPeriodeOverzichtWerknemer', { periodeId, werknemerId }, \"GET\", null, null, (response) => loadComplete(response, werknemerId), options, Api.APIcaller.CancelOptions.None);\r\n\r\n function loadComplete(response, werknemerId) {\r\n if (!response || response.hasErrorText) {\r\n return;\r\n }\r\n\r\n if (response.jsoNresults.length > 0) {\r\n var captions = response.jsoNresults[0].captions;\r\n var locale = response.jsoNresults[0].locale;\r\n var overzicht = response.jsoNresults[0].overzicht;\r\n\r\n var gridId = `#periodeoverzicht-grid-${werknemerId}`;\r\n var component = new PeriodeOverzichtComponent(gridId, overzicht, captions, locale)\r\n\r\n component.init();\r\n\r\n APPLOYED.element.dynamicHeight('#periodeoverzicht-werknemer-container .grid', '#periodeoverzicht-werknemer-container', 20, 200, true);\r\n }\r\n }\r\n },\r\n\r\n exportPopup: function () {\r\n var periodeId = $('#PeriodeId').val();\r\n\r\n if (!periodeId) {\r\n return;\r\n }\r\n\r\n let options = {};\r\n options[\"tofadein\"] = \"#periodeoverzicht\";\r\n Api.APIcaller.CallAction(\"/Ajax/PeriodeOverzichtExportPopup\", { periodeId }, \"GET\", null, null, loadComplete, options, Api.APIcaller.CancelOptions.None);\r\n\r\n function loadComplete(response) {\r\n if (!response || response.hasErrorText) {\r\n return;\r\n }\r\n\r\n if (response.jsoNresults[0]) {\r\n APPLOYED.modal.initPopup('xlarge');\r\n showGrid(response.jsoNresults[1]);\r\n bindDownload(response.jsoNresults[1]);\r\n }\r\n\r\n function showGrid(data) {\r\n self.grid = new wijmo.grid.FlexGrid('#export-grid', {\r\n alternatingRowStep: 0,\r\n isReadOnly: true,\r\n autoGenerateColumns: false,\r\n allowDragging: wijmo.grid.AllowDragging.None,\r\n allowSorting: wijmo.grid.AllowSorting.None,\r\n columns: data.columns,\r\n itemsSource: data.rows,\r\n stickyHeaders: true,\r\n selectionMode: wijmo.grid.SelectionMode.None,\r\n headersVisibility: wijmo.grid.HeadersVisibility.Column,\r\n selectionChanging: (s, e) => {\r\n if (e.range.col == 0 || e.range.col2 == 0) {\r\n e.cancel = true;\r\n }\r\n }\r\n });\r\n\r\n self.grid.autoSizeColumns();\r\n self.filename = data.fileName;\r\n }\r\n\r\n function bindDownload(data) {\r\n $(\"#btn-download\").unbind('click');\r\n $(\"#btn-download\").bind('click', function () {\r\n var book = wijmo.grid.xlsx.FlexGridXlsxConverter.save(self.grid, {\r\n includeColumnHeaders: true,\r\n includeRowHeaders: false\r\n });\r\n\r\n book.sheets[0].name = data.name;\r\n book.save(data.fileName);\r\n });\r\n }\r\n }\r\n }\r\n}","APPLOYED.time_periodestatusoverview = {\r\n components: [],\r\n setHeight: null,\r\n reloadGroep: false,\r\n inEditMode: false,\r\n periodedagtellers: [],\r\n periodetoeslagtellers: [],\r\n periodeboekingtellers: [],\r\n toeslageninfo: [],\r\n uitbetalenIds: [],\r\n meegenomen: null,\r\n meegenomenAutomatisch: null,\r\n normuren: null,\r\n normurenAutomatisch: null,\r\n\r\n periodestatus: function () {\r\n var self = this;\r\n APPLOYED.time_shared.updateChipsByFilter();\r\n\r\n setHeight();\r\n self.setHeight = setHeight;\r\n\r\n self.periodestatusLoad();\r\n\r\n function setHeight() {\r\n APPLOYED.element.dynamicHeight('#periodestatus .dynamic-height', '.mainscreensized', 90, 100);\r\n }\r\n },\r\n\r\n updateHeight: function () {\r\n var self = this;\r\n\r\n if (self.setHeight) {\r\n self.setHeight();\r\n }\r\n },\r\n\r\n periodestatusLoad: function () {\r\n var self = this;\r\n\r\n APPLOYED.filter.checkAllInit();\r\n initPeriodes();\r\n\r\n bindToggles();\r\n bindFilters();\r\n bindYearNavigator();\r\n loadGroepen();\r\n\r\n function bindToggles() {\r\n APPLOYED.time_shared.bindGroepToggles(\"periodestatus\", () => self.checkAutoriseren());\r\n }\r\n\r\n function bindFilters() {\r\n APPLOYED.time_shared.bindGroepFilters(() => loadGroepen(true), () => self.checkAutoriseren());\r\n }\r\n \r\n function bindYearNavigator() {\r\n APPLOYED.time_shared.bindYearNavigator(loadPeriodestatusOverview);\r\n }\r\n\r\n function loadPeriodestatusOverview(jaar) {\r\n Api.Main.clearNotify();\r\n\r\n var werknemerId = $('#WerknemerId').val();\r\n var area = $(\"#AreaName\").val();\r\n\r\n var options = {};\r\n options[\"tofadein\"] = '#periodestatus-groepen';\r\n\r\n var params = {\r\n jaar: jaar,\r\n area,\r\n werknemerId\r\n };\r\n\r\n Api.APIcaller.CallAction(\"/ajax/periodestatusOverviewLoad\", params, \"POST\", null, null, (response) => loadComplete(response), options, Api.APIcaller.CancelOptions.None);\r\n\r\n function loadComplete(response) {\r\n if (!response || response.hasErrorText) {\r\n return;\r\n }\r\n\r\n self.components = [];\r\n\r\n APPLOYED.filter.checkAllInit();\r\n APPLOYED.filter.initFilterStatus();\r\n\r\n initPeriodes();\r\n bindToggles();\r\n bindFilters();\r\n loadGroepen();\r\n }\r\n }\r\n\r\n function loadGroepen(fadein = false, reload = false) {\r\n if (reload) {\r\n APPLOYED.time_shared.clearGroepen(\"periodestatus\");\r\n }\r\n\r\n var groepIds = APPLOYED.time_shared.notLoadedGroepIds(\"periodestatus\");\r\n if (groepIds.length == 0) {\r\n self.checkAutoriseren();\r\n return;\r\n }\r\n\r\n self.periodestatusLoadGroepen(fadein, groepIds, null, reload);\r\n }\r\n\r\n function initPeriodes() {\r\n initSelectedPeriode();\r\n\r\n $(\".configperiodesmallcube\").unbind('click');\r\n $(\".configperiodesmallcube\").bind('click', function () {\r\n $('.configperiodesmallcube').removeClass('active');\r\n $(this).addClass('active');\r\n\r\n setPeriodedefinitieSelected(this);\r\n\r\n var periodeId = $(this).data('periodeid');\r\n $('#PeriodeId').val(periodeId);\r\n\r\n var periodeNaam = $(this).find('.periodenaam').first().text();\r\n $('#PeriodeNaam').val(periodeNaam);\r\n\r\n $('.deleteaction').removeClass('disabled');\r\n loadGroepen(true, true);\r\n });\r\n\r\n $(\".configperiodedefinitiesmallcube\").unbind('click');\r\n $(\".configperiodedefinitiesmallcube\").bind('click', function () {\r\n var isOpen = $(this).hasClass(\"opened\");\r\n\r\n if (isOpen) {\r\n closePeriodedefinitie(this)\r\n } else {\r\n openPeriodedefinitie(this);\r\n }\r\n });\r\n\r\n $(\".deleteaction\").unbind('click');\r\n $(\".deleteaction\").bind('click', function () {\r\n let periodeId = $('#PeriodeId').val();\r\n\r\n let title = $(this).data('title');\r\n let body = $(this).data('body');\r\n let warning = $(this).data('warning');\r\n\r\n activateDeleteModal(periodeId, (showWarning) => {\r\n $('#confirmdeletemodaltitle').html(title.replace('{0}', \"'\" + $('#PeriodeNaam').val() + \"'\"));\r\n $('#confirmdeletemodalbody').html(body);\r\n\r\n $('#confirmdeletemodalwarning').html(showWarning ? warning : \"\");\r\n $('#confirmdeletemodalwarning').toggle(showWarning);\r\n\r\n $('#confirmdeletemodalaction').one('click', function () {\r\n $('#confirmdeletemodal').modal('hide');\r\n deletePeriode(periodeId);\r\n });\r\n\r\n $('#confirmdeletemodal').modal('show');\r\n\r\n $('#confirmdeletemodal').one('hidden.bs.modal', function () {\r\n unbindDeleteModal();\r\n });\r\n\r\n function unbindDeleteModal() {\r\n $('#confirmdeletemodalaction').off('click');\r\n $('#confirmdeletemodalaction').unbind('click');\r\n };\r\n });\r\n });\r\n\r\n function initSelectedPeriode() {\r\n var selectedRecordId = $('#PeriodeId').val();\r\n var selperiode = $('.configperiodesmallcube[data-periodeid=' + selectedRecordId + ']');\r\n $('.configperiodesmallcube').removeClass('active');\r\n if (selperiode.data('periodeid') == undefined || selperiode.data('periodeid') == 'undefined') {\r\n selperiode = $('#periodelist div.configperiodesmallcube').first();\r\n selectedRecordId = selperiode.data('periodeid');\r\n }\r\n\r\n $('#PeriodeId').val(selectedRecordId);\r\n\r\n var periodeNaam = $(selperiode).find('.periodenaam').first().text();\r\n $('#PeriodeNaam').val(periodeNaam);\r\n\r\n if (!selectedRecordId) {\r\n $('.deleteaction').addClass('disabled');\r\n }\r\n else {\r\n selperiode.addClass('active');\r\n selperiode.trigger('click');\r\n $('.deleteaction').removeClass('disabled');\r\n }\r\n\r\n var selperiodedefinitie = getSelectedPeriodedefinitie(selperiode);\r\n if (selperiodedefinitie.length > 0) {\r\n openPeriodedefinitie(selperiodedefinitie);\r\n selperiodedefinitie.addClass('selected');\r\n }\r\n\r\n if (!APPLOYED.element.isInScrollView(selperiode, \"#periodelist\")) {\r\n APPLOYED.element.scrollToElementInList(\"#periodelist\", selperiode, 0);\r\n }\r\n }\r\n\r\n function getSelectedPeriodedefinitie(selperiode) {\r\n return $(selperiode).closest('div[id^=\"periodedefinitie_\"').prev();\r\n }\r\n\r\n function setPeriodedefinitieSelected(selperiode) {\r\n $(\".configperiodedefinitiesmallcube\").removeClass('selected');\r\n var selperiode = getSelectedPeriodedefinitie(selperiode);\r\n selperiode.addClass('selected');\r\n }\r\n\r\n function closePeriodedefinitie(el) {\r\n var target = $(el).data('target');\r\n $(target).hide();\r\n $(el).removeClass('opened');\r\n $(el).find('i.chevron').removeClass('fa-angle-down');\r\n $(el).find('i.chevron').addClass('fa-angle-right');\r\n }\r\n\r\n function openPeriodedefinitie(el) {\r\n var target = $(el).data('target');\r\n $(target).show();\r\n $(el).addClass('opened');\r\n $(el).find('i.chevron').removeClass('fa-angle-right');\r\n $(el).find('i.chevron').addClass('fa-angle-down');\r\n }\r\n\r\n function activateDeleteModal(periodeId, action) {\r\n var options = {};\r\n Api.APIcaller.CallAction(`/ajax/GetPeriodeHasManualData`, { periodeId }, \"GET\", null, null, (response) => loadComplete(response, action), options, Api.APIcaller.CancelOptions.None);\r\n\r\n function loadComplete(response, action) {\r\n if (!response || response.hasErrorText) {\r\n return;\r\n }\r\n\r\n var hasData = response.jsoNresults[0];\r\n action(hasData);\r\n }\r\n }\r\n\r\n function deletePeriode(periodeId) {\r\n var options = {};\r\n options[\"tofadein\"] = '#periodestatus-groepen';\r\n Api.APIcaller.CallAction(`/ajax/DeletePeriode`, { periodeId }, \"GET\", null, null, (response) => loadComplete(response), options, Api.APIcaller.CancelOptions.None);\r\n\r\n function loadComplete(response) {\r\n Api.APIcaller.WaitFadeOut(\"#periodestatus-groepen\");\r\n\r\n if (!response || response.hasErrorText) {\r\n return;\r\n }\r\n\r\n var deleted = response.jsoNresults[0];\r\n if (deleted) {\r\n var jaar = $('#Selectjaar').val();\r\n loadPeriodestatusOverview(jaar);\r\n }\r\n }\r\n }\r\n }\r\n },\r\n\r\n periodestatusLoadGroepen: function (fadein, groepIds, periodestatusId = null, reload = false) {\r\n var self = this;\r\n\r\n var options = {};\r\n if (fadein) {\r\n var tofadein = reload ? '#periodestatus-groepen-container' : `#periodestatus-groep-${groepIds[0]}`;\r\n options[\"tofadein\"] = tofadein;\r\n }\r\n\r\n var periodeId = $('#PeriodeId').val();\r\n Api.APIcaller.CallAction(\"/ajax/PeriodestatusLoadGroepen\", { periodeId, groepIds, reload }, \"POST\", null, null, (response) => loadComplete(response, periodestatusId), options, Api.APIcaller.CancelOptions.None);\r\n\r\n function loadComplete(response, periodestatusId) {\r\n if (!response || response.hasErrorText) {\r\n return;\r\n }\r\n\r\n for (var i = 0; i < response.jsoNresults.length; i++) {\r\n if (response.jsoNresults[i]) {\r\n var groepId = response.jsoNresults[i].groepId;\r\n $(`#periodestatus-groep-container-${groepId}`).data(\"loaded\", true);\r\n\r\n var gridId = `#groepsperiodestatus-grid-${groepId}`;\r\n var component = self.components.find((cmp) => cmp.id == gridId);\r\n\r\n if (component) {\r\n component.reloadData(response.jsoNresults[i]);\r\n }\r\n else {\r\n component = new GroepsperiodestatusComponent(gridId, response.jsoNresults[i], periodestatusId)\r\n component.init();\r\n component.handlers.loadDetail = loadDetail;\r\n self.components.push(component);\r\n }\r\n }\r\n }\r\n\r\n self.checkAutoriseren();\r\n }\r\n\r\n function loadDetail(cell, periodestatusId, groepId) {\r\n var options = {};\r\n options[\"tofadein\"] = $(cell).children().first();\r\n Api.APIcaller.CallAction(`/ajax/PeriodestatusLoadDetail`, { periodestatusId, groepId }, \"POST\", null, null, (response) => loadComplete(response), options, Api.APIcaller.CancelOptions.None);\r\n\r\n function loadComplete(response) {\r\n if (!response || response.hasErrorText) {\r\n return;\r\n }\r\n\r\n self.openDetail();\r\n self.initDetail();\r\n }\r\n }\r\n },\r\n\r\n checkAutoriseren: function () {\r\n var self = this;\r\n\r\n var groepIds = self.getUnauthorizedGroepIds();\r\n $('#authorize').toggle(groepIds.length > 0);\r\n },\r\n\r\n getUnauthorizedGroepIds: function () {\r\n var self = this;\r\n\r\n var visibleGroepIds = [];\r\n var groepen = $('[id^=periodestatus-groep-container-]');\r\n for (var i = 0; i < groepen.length; i++) {\r\n if (!$(groepen[i]).is(':hidden')) {\r\n var groepId = parseInt($(groepen[i]).attr(\"id\").split('-').pop());\r\n visibleGroepIds.push(groepId);\r\n }\r\n }\r\n\r\n var unauthorizedGroepIds = [];\r\n for (var i = 0; i < visibleGroepIds.length; i++) {\r\n var groepId = visibleGroepIds[i];\r\n var component = self.components.find(c => c.groepId == groepId);\r\n\r\n if (component) {\r\n if (component.hasUnauthorizedPeriodestatus()) {\r\n unauthorizedGroepIds.push(groepId);\r\n }\r\n }\r\n }\r\n\r\n return unauthorizedGroepIds;\r\n },\r\n\r\n initDetail: function () {\r\n var self = this;\r\n\r\n self.enableEdit(false);\r\n self.updated = false;\r\n bindTabs();\r\n bindRefresh();\r\n bindFields();\r\n\r\n readJsonData();\r\n readMeegenomen();\r\n readNormuren();\r\n\r\n function bindTabs() {\r\n $(\".periodestatus-tab\").off('click');\r\n $(\".periodestatus-tab\").on('click', function () {\r\n var href = $(this).attr('href');\r\n if (href) {\r\n var tabname = href.split('-')[1];\r\n $('#ActiveTab').val(tabname);\r\n }\r\n });\r\n }\r\n\r\n function bindRefresh() {\r\n $(\"#periodestatus-refresh\").off('click');\r\n $(\"#periodestatus-refresh\").on('click', function () {\r\n self.refresh();\r\n });\r\n }\r\n\r\n function readJsonData() {\r\n self.periodedagtellers = $.parseJSON($('#JsPeriodeDagtellers').val());\r\n self.periodetoeslagtellers = $.parseJSON($('#JsPeriodeToeslagtellers').val());\r\n self.periodeboekingtellers = $.parseJSON($('#JsPeriodeBoekingtellers').val());\r\n }\r\n\r\n function readMeegenomen() {\r\n self.meegenomen = $(\"#Meegenomen\").val();\r\n self.meegenomenAutomatisch = $(\"#MeegenomenAutomatisch\").val() == 'True';\r\n }\r\n\r\n function readNormuren() {\r\n self.normuren = $(\"#Normuren\").val();\r\n self.normurenAutomatisch = $(\"#NormurenAutomatisch\").val() == 'True';\r\n }\r\n\r\n function bindFields() {\r\n $('#Normuren').off('keyup change');\r\n $('#Normuren').on('keyup change', function () {\r\n self.updated = true;\r\n self.editPeriodestatus();\r\n });\r\n\r\n $('#Meegenomen').off('keyup change');\r\n $('#Meegenomen').on('keyup change', function () {\r\n self.updated = true;\r\n self.editPeriodestatus();\r\n });\r\n\r\n $('#Geautoriseerd').off('change');\r\n $('#Geautoriseerd').on('change', function () {\r\n self.updated = true;\r\n self.editPeriodestatus();\r\n toggleAutorisatie();\r\n });\r\n\r\n $('#ToeslagAutomatisch').off('change');\r\n $('#ToeslagAutomatisch').on('change', function () {\r\n self.enableToeslagEdit();\r\n self.updated = true;\r\n self.editPeriodestatus();\r\n });\r\n\r\n $('#BoekingAutomatisch').off('change');\r\n $('#BoekingAutomatisch').on('change', function () {\r\n self.enableBoekingEdit();\r\n self.updated = true;\r\n self.editPeriodestatus();\r\n });\r\n }\r\n\r\n function toggleAutorisatie() {\r\n var geautoriseerd = $('#Geautoriseerd').is(':checked');\r\n $('#Autorisatie').toggle(geautoriseerd);\r\n }\r\n },\r\n\r\n openDetail: function () {\r\n $('#periodestatus-overview').hide();\r\n $('#periodestatus-detail').show();\r\n },\r\n\r\n closeDetail: function () {\r\n var self = this;\r\n\r\n var periodestatusId = $('#PeriodestatusId').val();\r\n\r\n $('#periodestatus-detail').empty();\r\n $('#periodestatus-overview').show();\r\n\r\n if (self.reloadGroep) {\r\n self.reloadGroep = false;\r\n\r\n var groepIds = getPeriodestatusGroepIds(periodestatusId);\r\n\r\n if (groepIds.length > 0) {\r\n self.periodestatusLoadGroepen(true, groepIds, periodestatusId, true);\r\n }\r\n }\r\n\r\n function getPeriodestatusGroepIds(periodestatusId) {\r\n var groepIds = []\r\n for (var i = 0; i < self.components.length; i++) {\r\n var component = self.components[i];\r\n if (component.containsPeriodestatus(periodestatusId)) {\r\n groepIds.push(component.groepId);\r\n }\r\n }\r\n\r\n return groepIds;\r\n }\r\n },\r\n\r\n editPeriodestatus: function () {\r\n var self = this;\r\n\r\n var gesloten = $('#PeriodeGesloten').is(':checked');\r\n if (!gesloten) {\r\n self.enableEdit(true);\r\n }\r\n },\r\n\r\n refresh: function () {\r\n var self = this;\r\n\r\n if (self.inEditMode) {\r\n return;\r\n }\r\n\r\n self.reload();\r\n },\r\n\r\n editCancel: function () {\r\n var self = this;\r\n\r\n if (!self.updated) {\r\n self.enableEdit(false);\r\n return;\r\n }\r\n\r\n self.reload();\r\n },\r\n\r\n reload: function () {\r\n var self = this;\r\n Api.Main.clearNotify();\r\n\r\n var periodestatusId = $('#PeriodestatusId').val();\r\n var groepId = $('#GroepId').val();\r\n var tab = $('#ActiveTab').val();\r\n\r\n var options = {};\r\n options[\"tofadein\"] = '#periodestatus-detail-content';\r\n Api.APIcaller.CallAction('/ajax/periodestatusReload', { periodestatusId, groepId, tab }, \"POST\", null, null, (response) => loadComplete(response), options, Api.APIcaller.CancelOptions.None);\r\n\r\n function loadComplete(response) {\r\n if (!response || response.hasErrorText) {\r\n return;\r\n }\r\n\r\n self.initDetail();\r\n }\r\n },\r\n\r\n editSave: function () {\r\n var self = this;\r\n Api.Main.clearNotify();\r\n\r\n var periodestatusId = $('#PeriodestatusId').val();\r\n var normuren = $('#Normuren').val();\r\n var meegenomen = $('#Meegenomen').val();\r\n var geautoriseerd = $('#Geautoriseerd').is(':checked');\r\n var toeslagAutomatisch = $('#ToeslagAutomatisch').is(':checked');\r\n var boekingAutomatisch = $('#BoekingAutomatisch').is(':checked');\r\n var werknemerId = $('#PeriodestatusWerknemerId').val();\r\n\r\n var update = {\r\n periodestatusId,\r\n groepId = $('#GroepId').val(),\r\n normuren,\r\n meegenomen,\r\n geautoriseerd,\r\n toeslagAutomatisch,\r\n boekingAutomatisch,\r\n meegenomenAutomatisch: meegenomen == self.meegenomen ? self.meegenomenAutomatisch : false,\r\n normurenAutomatisch: normuren == self.normuren ? self.normurenAutomatisch : false,\r\n werknemerId,\r\n periodeToeslagtellers = self.periodetoeslagtellers.filter(pt => pt),\r\n periodeBoekingtellers = self.periodeboekingtellers.filter(bt => bt),\r\n }\r\n var tab = $('#ActiveTab').val();\r\n\r\n var options = {};\r\n options[\"tofadein\"] = '#periodestatus-detail-content';\r\n Api.APIcaller.CallAction('/ajax/periodestatussave', { update, tab }, \"POST\", null, null, (response) => loadComplete(response), options, Api.APIcaller.CancelOptions.None);\r\n\r\n function loadComplete(response) {\r\n if (!response || response.hasErrorText) {\r\n return;\r\n }\r\n\r\n self.initDetail();\r\n self.reloadGroep = true;\r\n }\r\n },\r\n\r\n enableEdit: function (enable) {\r\n var self = this;\r\n if (self.inEditMode == enable) {\r\n return;\r\n }\r\n\r\n self.inEditMode = enable;\r\n\r\n $('.navbar .navbar-nav').toggle(!enable);\r\n $('#sidebar .nav').toggle(!enable);\r\n $('#view-header').toggle(!enable);\r\n $(\"#periodestatus-refresh\").toggle(!enable);\r\n\r\n $(\".edit-buttons\").toggle(enable);\r\n $('#edit-header').toggle(enable);\r\n },\r\n\r\n enableToeslagEdit: function () {\r\n var setEnabled = !$('#ToeslagAutomatisch').is(':checked');\r\n $(\".toeslagteller-edit-button\").toggle(setEnabled);\r\n },\r\n\r\n enableBoekingEdit: function () {\r\n var setEnabled = !$('#BoekingAutomatisch').is(':checked');\r\n $(\".boekingteller-edit-button\").toggle(setEnabled);\r\n },\r\n\r\n addToeslagteller: function () {\r\n this.showToeslagtellerEditPopup(this.periodetoeslagtellers.length, null);\r\n },\r\n\r\n editToeslagteller: function (rownum) {\r\n var toeslagteller = this.periodetoeslagtellers[rownum];\r\n this.showToeslagtellerEditPopup(rownum, toeslagteller);\r\n },\r\n\r\n showToeslagtellerEditPopup: function (rownum, toeslagteller) {\r\n var self = this;\r\n\r\n var periodeId = $('#PeriodeId').val();\r\n\r\n var options = {};\r\n Api.APIcaller.CallAction('/ajax/getPeriodeToeslagtellerEditPopup', { periodeId, toeslagteller, isNew: !toeslagteller }, \"POST\", null, null, (response) => loadComplete(response, rownum), options, Api.APIcaller.CancelOptions.None);\r\n\r\n function loadComplete(response, rownum) {\r\n if (!response || response.hasErrorText) {\r\n return;\r\n }\r\n\r\n self.toeslageninfo = $.parseJSON($('#JsPeriodeToeslagenInfo').val());\r\n self.uitbetalenIds = $('#UitbetalenIds').val().split(',');\r\n\r\n bindInputs();\r\n bindEditButtons(rownum);\r\n APPLOYED.validator.bindRequiredFields('.edit-toeslagteller-popup', \"#btnedittoeslagteller\", false);\r\n\r\n setTimeout(() => {\r\n APPLOYED.validator.checkRequiredFields('.edit-toeslagteller-popup', \"#btnedittoeslagteller\");\r\n }, 300);\r\n\r\n function bindEditButtons(rownum) {\r\n $('#btnedittoeslagteller').on('click', function () {\r\n var update = getUpdate(rownum);\r\n updateToeslagteller(rownum, update);\r\n });\r\n }\r\n\r\n function bindInputs() {\r\n $('#PeriodetoeslagId').on('change', function () {\r\n var periodetoeslagId = $(this).val();\r\n\r\n var selected = $('#CategorieId').val();\r\n var categorien = self.toeslageninfo.filter(tc => tc.periodetoeslagId == periodetoeslagId);\r\n\r\n var options = [];\r\n $.each(categorien, function (index, ct) {\r\n var attr = {}\r\n attr.value = ct.categorieId;\r\n attr.text = ct.categorieNaam;\r\n options.push(attr);\r\n });\r\n\r\n APPLOYED.form.replaceOptions('#CategorieId', options);\r\n $('#CategorieId').val(selected);\r\n $('#CategorieId').trigger('change');\r\n });\r\n }\r\n }\r\n\r\n function getUpdate(rownum) {\r\n var toeslagtijd = parseFloat($(\".modal-content #Toeslagtijd\").val());\r\n\r\n var update = {\r\n rownum = rownum,\r\n categorieId = $(\".modal-content #CategorieId\").val(),\r\n periodetoeslagId = $(\".modal-content #PeriodetoeslagId\").val(),\r\n berekenmethode = $(\".modal-content #Berekenmethode\").val(),\r\n toeslagtijd = (toeslagtijd || toeslagtijd == 0) ? toeslagtijd : null,\r\n\r\n categorieNaam = $(\".modal-content #CategorieId option:selected\").text(),\r\n periodetoeslagNaam = $(\".modal-content #PeriodetoeslagId option:selected\").text(),\r\n berekenmethodeNaam = $(\".modal-content #Berekenmethode option:selected\").text(),\r\n }\r\n\r\n return update;\r\n }\r\n\r\n function updateToeslagteller(rownum, update) {\r\n while (rownum >= self.periodetoeslagtellers.length) {\r\n self.periodetoeslagtellers.push({});\r\n $('#toeslagteller-rows').append(``);\r\n }\r\n\r\n var toeslagteller = self.periodetoeslagtellers[rownum];\r\n\r\n toeslagteller.categorieId = update.categorieId;\r\n toeslagteller.periodetoeslagId = update.periodetoeslagId;\r\n toeslagteller.periodetoeslagNaam = update.periodetoeslagNaam;\r\n toeslagteller.berekenmethode = update.berekenmethode;\r\n toeslagteller.toeslagtijd = update.toeslagtijd;\r\n\r\n var model = { ...update }\r\n model.duur = toeslagteller.duur;\r\n\r\n var options = {};\r\n Api.APIcaller.CallAction('/ajax/getPeriodeToeslagtellerRow', { toeslagteller: model }, \"POST\", null, null, (response) => getRowComplete(response), options, Api.APIcaller.CancelOptions.None);\r\n\r\n function getRowComplete(response) {\r\n if (!response || response.hasErrorText) {\r\n return;\r\n }\r\n\r\n self.updated = true;\r\n self.enableEdit(true);\r\n APPLOYED.modal.closePopup();\r\n }\r\n }\r\n },\r\n\r\n deleteToeslagteller: function () {\r\n var self = this;\r\n\r\n $(\".btndeletetoeslagteller\").unbind('click');\r\n $(\".btndeletetoeslagteller\").bind('click', function () {\r\n var rownum = $(this).data('recordid');\r\n self.periodetoeslagtellers[rownum] = null;\r\n\r\n self.updated = true;\r\n self.enableEdit(true);\r\n var row = $(`#toeslagteller-${rownum}`);\r\n row.remove();\r\n\r\n APPLOYED.modal.closePopup('confirmdeletemodal');\r\n });\r\n },\r\n\r\n addBoekingteller: function () {\r\n this.showBoekingtellerEditPopup(this.periodeboekingtellers.length, null);\r\n },\r\n\r\n editBoekingteller: function (rownum) {\r\n var boekingteller = this.periodeboekingtellers[rownum];\r\n this.showBoekingtellerEditPopup(rownum, boekingteller);\r\n },\r\n\r\n showBoekingtellerEditPopup: function (rownum, boekingteller) {\r\n var self = this;\r\n\r\n var periodeId = $('#PeriodeId').val();\r\n\r\n var options = {};\r\n Api.APIcaller.CallAction('/ajax/getPeriodeBoekingtellerEditPopup', { periodeId, boekingteller, isNew: !boekingteller }, \"POST\", null, null, (response) => loadComplete(response, rownum), options, Api.APIcaller.CancelOptions.None);\r\n\r\n function loadComplete(response, rownum) {\r\n if (!response || response.hasErrorText) {\r\n return;\r\n }\r\n\r\n bindEditButtons(rownum);\r\n APPLOYED.validator.bindRequiredFields('.edit-boekingteller-popup', \"#btneditboekingteller\", false);\r\n\r\n setTimeout(() => {\r\n APPLOYED.validator.checkRequiredFields('.edit-boekingteller-popup', \"#btneditboekingteller\");\r\n }, 300);\r\n\r\n bindInputs();\r\n\r\n function bindEditButtons(rownum) {\r\n $('#btneditboekingteller').on('click', function () {\r\n var update = getUpdate(rownum);\r\n updateBoekingteller(rownum, update);\r\n });\r\n }\r\n\r\n function bindInputs() {\r\n $('#BoekingActie').on('change', function () {\r\n toggleBoekingVelden();\r\n APPLOYED.validator.checkRequiredFields('.edit-boekingteller-popup', \"#btneditboekingteller\");\r\n });\r\n }\r\n\r\n function toggleBoekingVelden() {\r\n var showVerlof = isTvtBoeking();\r\n $(\"#verlofregeling-container\").toggle(showVerlof);\r\n }\r\n }\r\n\r\n function isTvtBoeking() {\r\n var boekingActie = $(\"#BoekingActie\").val();\r\n var isTvt = $(\"#BoekingActieTvtId\").val() == '' + boekingActie;\r\n return isTvt;\r\n }\r\n\r\n function getUpdate(rownum) {\r\n var heeftVerlofregeling = isTvtBoeking();\r\n var boekingtijd = parseFloat($(\".modal-content #Boekingtijd\").val());\r\n\r\n var update = {\r\n rownum = rownum,\r\n categorieId = $(\".modal-content #CategorieId\").val(),\r\n boekingActie = $(\".modal-content #BoekingActie\").val(),\r\n verlofregelingId = heeftVerlofregeling ? $(\".modal-content #VerlofregelingId\").val() : null,\r\n boekingtijd = (boekingtijd || boekingtijd == 0) ? boekingtijd : null,\r\n\r\n categorieNaam = $(\".modal-content #CategorieId option:selected\").text(),\r\n boekingActieNaam = $(\".modal-content #BoekingActie option:selected\").text(),\r\n verlofregelingNaam = verlofregelingId ? $(\".modal-content #VerlofregelingId option:selected\").text() : null\r\n }\r\n\r\n return update;\r\n }\r\n\r\n function updateBoekingteller(rownum, update) {\r\n while (rownum >= self.periodeboekingtellers.length) {\r\n self.periodeboekingtellers.push({});\r\n $('#boekingteller-rows').append(``);\r\n }\r\n\r\n var boekingteller = self.periodeboekingtellers[rownum];\r\n\r\n boekingteller.categorieId = update.categorieId;\r\n boekingteller.categorieNaam = update.categorieNaam;\r\n boekingteller.boekingActie = update.boekingActie;\r\n boekingteller.boekingActieNaam = update.boekingActieNaam;\r\n boekingteller.verlofregelingId = update.verlofregelingId;\r\n boekingteller.verlofregelingNaam = update.verlofregelingNaam;\r\n boekingteller.boekingtijd = update.boekingtijd;\r\n\r\n var model = { ...update }\r\n\r\n var options = {};\r\n Api.APIcaller.CallAction('/ajax/getPeriodeBoekingtellerRow', { boekingteller: model }, \"POST\", null, null, (response) => getRowComplete(response), options, Api.APIcaller.CancelOptions.None);\r\n\r\n function getRowComplete(response) {\r\n if (!response || response.hasErrorText) {\r\n return;\r\n }\r\n\r\n self.updated = true;\r\n self.enableEdit(true);\r\n APPLOYED.modal.closePopup();\r\n }\r\n }\r\n },\r\n\r\n deleteBoekingteller: function () {\r\n var self = this;\r\n\r\n $(\".btndeleteboekingteller\").unbind('click');\r\n $(\".btndeleteboekingteller\").bind('click', function () {\r\n var rownum = $(this).data('recordid');\r\n self.periodeboekingtellers[rownum] = null;\r\n\r\n self.updated = true;\r\n self.enableEdit(true);\r\n var row = $(`#boekingteller-${rownum}`);\r\n row.remove();\r\n\r\n APPLOYED.modal.closePopup('confirmdeletemodal');\r\n });\r\n },\r\n\r\n authorize: function () {\r\n var self = this;\r\n\r\n showModal();\r\n bindButtons();\r\n\r\n function showModal() {\r\n APPLOYED.modal.initPopup(true, 'static', false, 'confirmauthorizemodal');\r\n }\r\n\r\n function closeModal() {\r\n $('#confirmauthorizemodal').modal('hide');\r\n }\r\n\r\n function bindButtons() {\r\n $(document).off('click', '#btnconfirmauthorizemodalaction');\r\n $(document).on('click', '#btnconfirmauthorizemodalaction', function () {\r\n closeModal();\r\n authorizeGroepen();\r\n });\r\n }\r\n\r\n function authorizeGroepen() {\r\n var periodeId = $('#PeriodeId').val();\r\n var groepIds = self.getUnauthorizedGroepIds();\r\n\r\n var options = {};\r\n var tofadein = '#periodestatus-groepen-container';\r\n options[\"tofadein\"] = tofadein;\r\n\r\n Api.APIcaller.CallAction('/ajax/authorizePeriodestatus', { periodeId: periodeId, groepIds: groepIds }, \"POST\", null, null, (response) => complete(response, groepIds), options, Api.APIcaller.CancelOptions.None);\r\n\r\n function complete(response, groepIds) {\r\n if (!response || response.hasErrorText) {\r\n return;\r\n }\r\n\r\n self.periodestatusLoadGroepen(true, groepIds, null, true);\r\n }\r\n }\r\n }\r\n}","APPLOYED.time_shared = {\r\n bindGroepToggles: function(view, toggleAction) {\r\n $('.toggle').off('click');\r\n $('.toggle').on('click', function () {\r\n var id = $(this).data('toggleid');\r\n var icon = $(this).find(\".icon\").first();\r\n if (icon.hasClass(\"icon-minus-square\")) {\r\n icon.removeClass(\"icon-minus-square\");\r\n icon.addClass(\"icon-plus-square\");\r\n $(`#${view}-groep-${id}`).hide();\r\n\r\n if (toggleAction) {\r\n toggleAction(id, false);\r\n }\r\n } else {\r\n icon.removeClass(\"icon-plus-square\");\r\n icon.addClass(\"icon-minus-square\");\r\n $(`#${view}-groep-${id}`).show();\r\n\r\n if (toggleAction) {\r\n toggleAction(id, true);\r\n }\r\n }\r\n });\r\n },\r\n\r\n bindGroepFilters: function (loadGroepen, updateLayout) {\r\n var self = this;\r\n\r\n $(\"#customCheckAll\").on('allSelected', function () {\r\n loadGroepen();\r\n self.setGroepCookie();\r\n });\r\n\r\n $('.chkFilterStatus').on('click', function (e) {\r\n if (!!e.originalEvent) {\r\n loadGroepen();\r\n self.setGroepCookie();\r\n }\r\n });\r\n\r\n $('.filterstatuscheckbox').on('click', function () {\r\n updateLayout();\r\n self.setGroepCookie();\r\n });\r\n },\r\n\r\n bindDateNavigator: function (navigate) {\r\n var self = this;\r\n\r\n $('#Selectdatum').off('change');\r\n $('#Selectdatum').on('change', function () {\r\n if (!APPLOYED.validator.isValidDate($(this).val())) {\r\n return false;\r\n }\r\n\r\n self.toStartOfWeek(this);\r\n navigate($(this).val());\r\n });\r\n\r\n $('#prevweek').off('click');\r\n $('#prevweek').on('click', function () {\r\n var datum = DateService.ToDate($('#Startdatum').val());\r\n var prev = DateService.AddDays(datum, -7);\r\n $('#Selectdatum').val(DateService.ToString(prev));\r\n $('#Selectdatum').trigger('change');\r\n });\r\n\r\n $('#nextweek').off('click');\r\n $('#nextweek').on('click', function () {\r\n var datum = DateService.ToDate($('#Startdatum').val());\r\n var next = DateService.AddDays(datum, 7);\r\n $('#Selectdatum').val(DateService.ToString(next));\r\n $('#Selectdatum').trigger('change');\r\n });\r\n },\r\n\r\n bindYearNavigator: function (navigate) {\r\n var self = this;\r\n\r\n $('#Selectjaar').off('change');\r\n $('#Selectjaar').on('change', function () {\r\n if (!APPLOYED.validator.isValidYear($(this).val())) {\r\n return false;\r\n }\r\n\r\n if (!parseInt($(this).val()) > 0) {\r\n return false;\r\n }\r\n\r\n navigate($(this).val());\r\n\r\n if ($(\"#Selectjaar\").is(\":focus\")) {\r\n $(\"#Selectjaar\")[0].select();\r\n }\r\n });\r\n\r\n $('#prevjaar').off('click');\r\n $('#prevjaar').on('click', function () {\r\n if (!APPLOYED.validator.isValidYear($('#Selectjaar').val())) {\r\n return;\r\n }\r\n\r\n var jaar = parseInt($('#Selectjaar').val());\r\n var prev = jaar - 1;\r\n if (prev >= 0) {\r\n $('#Selectjaar').val((\"0000\" + prev).slice(-4));\r\n $('#Selectjaar').trigger('change');\r\n }\r\n });\r\n\r\n $('#nextjaar').off('click');\r\n $('#nextjaar').on('click', function () {\r\n if (!APPLOYED.validator.isValidYear($('#Selectjaar').val())) {\r\n return;\r\n }\r\n\r\n var jaar = parseInt($('#Selectjaar').val());\r\n var next = jaar + 1;\r\n $('#Selectjaar').val((\"0000\" + next).slice(-4));\r\n $('#Selectjaar').trigger('change');\r\n });\r\n },\r\n\r\n bindChevHide: function(updateHeight) {\r\n $(\"#pc-chev-up\").off('click');\r\n $(\"#pc-chev-up\").on('click', function () {\r\n $(\"#ShowLegenda\").val('False');\r\n $(\"#go-saldi-container\").hide();\r\n $(\"#pc-chev-up\").hide();\r\n $(\"#pc-chev-down\").show();\r\n updateHeight();\r\n });\r\n\r\n $(\"#pc-chev-down\").off('click');\r\n $(\"#pc-chev-down\").on('click', function () {\r\n $(\"#ShowLegenda\").val('True');\r\n $(\"#go-saldi-container\").show();\r\n $(\"#pc-chev-up\").show();\r\n $(\"#pc-chev-down\").hide();\r\n updateHeight();\r\n });\r\n },\r\n\r\n setGroepCookie: function() {\r\n var ids = this.getCheckedFilterIds().join('|');\r\n Api.Main.setCookie(escape($('#GroepCookie').val()), ids, 365, null, null);\r\n },\r\n\r\n getCheckedFilterIds: function () {\r\n var ids = [];\r\n\r\n var chks = $(\".chkFilterStatus:checked:checked\");\r\n for (var i = 0; i < chks.length; i++) {\r\n ids.push($(chks[i]).val());\r\n }\r\n\r\n return ids;\r\n },\r\n\r\n updateLegenda: function (kleuren, statusOnbekendOn = false) {\r\n var kleuren = APPLOYED.util.unique(kleuren);\r\n\r\n $('.legenda').hide();\r\n var hasLegenda = false;\r\n for (var i = 0; i < kleuren.length; i++) {\r\n var items = $(`[data-kleur=\"${kleuren[i]}\"]`);\r\n items.css(\"display\", \"inherit\");\r\n hasLegenda |= items.length > 0;\r\n }\r\n\r\n if (!statusOnbekendOn) {\r\n $('.status-onbekend').hide();\r\n }\r\n else {\r\n $('.status-onbekend').css(\"display\", \"inherit\");\r\n }\r\n\r\n hasLegenda |= statusOnbekendOn;\r\n\r\n var showLegenda = APPLOYED.common.isTrue($('#ShowLegenda').val());\r\n $(\"#go-saldi-container\").toggle(!!hasLegenda && showLegenda);\r\n $(\"#pc-chev-up\").toggle(!!hasLegenda && showLegenda);\r\n $(\"#pc-chev-down\").toggle(!!hasLegenda && !showLegenda);\r\n },\r\n\r\n notLoadedGroepIds: function(view) {\r\n var ids = [];\r\n var groepen = $(\".overviewgroep\");\r\n\r\n for (var i = 0; i < groepen.length; i++) {\r\n if (!$(groepen[i]).is(':hidden')) {\r\n var id = $(groepen[i]).data(\"searchstatus\");\r\n if (!$(`#${view}-groep-container-${id}`).data(\"loaded\")) {\r\n ids.push(id);\r\n }\r\n }\r\n }\r\n\r\n return ids;\r\n },\r\n\r\n clearGroepen: function (view) {\r\n var groepen = $(\".overviewgroep\");\r\n\r\n for (var i = 0; i < groepen.length; i++) {\r\n if (!$(groepen[i]).is(':hidden')) {\r\n var id = $(groepen[i]).data(\"searchstatus\");\r\n if ($(`#${view}-groep-container-${id}`).data(\"loaded\")) {\r\n $(`#${view}-groep-container-${id}`).data(\"loaded\", false);\r\n }\r\n }\r\n }\r\n },\r\n\r\n toStartOfWeek: function (el) {\r\n var date = DateService.ToDate($(el).val());\r\n var startOfWeek = DateService.ToStartOfWeek(date);\r\n\r\n $(el).val(DateService.ToString(startOfWeek));\r\n },\r\n\r\n updateChipsByFilter: function() {\r\n $(\".chkFilterStatus\").each(function () {\r\n if ($(this).is(':checked')) {\r\n $('div.filterstatuscheckbox' + $(this).val().toLowerCase() + '').show();\r\n }\r\n else {\r\n $('div.filterstatuscheckbox' + $(this).val().toLowerCase() + '').hide();\r\n }\r\n });\r\n }\r\n}","APPLOYED.time_weekplanning = {\r\n components: [],\r\n setHeight: null,\r\n\r\n planningedit: function () {\r\n var self = this;\r\n\r\n setHeight();\r\n self.setHeight = setHeight;\r\n\r\n self.planningLoad(true);\r\n bindGroups();\r\n bindSave();\r\n\r\n function setHeight() {\r\n var legendHeight = self.getLegendHeight();\r\n APPLOYED.element.dynamicHeight('#planningedit .dynamic-height', '.mainscreensized', 150 + legendHeight, 100);\r\n }\r\n\r\n function bindGroups() {\r\n $('#GroupSeq').off('change');\r\n $('#GroupSeq').on('change', function () {\r\n var groupseq = $(this).val();\r\n if (groupseq > 0) {\r\n $(\"[data-groupseq]\").hide();\r\n $(\"[data-groupseq='\" + groupseq + \"']\").show();\r\n } else {\r\n $(\"[data-groupseq]\").show();\r\n $(this).val(-1);\r\n }\r\n });\r\n }\r\n\r\n function bindSave() {\r\n $('#btnweekplanningsave').off('click');\r\n $('#btnweekplanningsave').on('click', function () {\r\n self.planningSave();\r\n });\r\n }\r\n },\r\n\r\n planning: function () {\r\n var self = this;\r\n APPLOYED.time_shared.updateChipsByFilter();\r\n\r\n setHeight();\r\n self.setHeight = setHeight;\r\n\r\n this.planningLoad(false);\r\n\r\n function setHeight() {\r\n var legendHeight = self.getLegendHeight();\r\n APPLOYED.element.dynamicHeight('#planning .dynamic-height', '.mainscreensized', 140 + legendHeight, 100);\r\n }\r\n },\r\n\r\n updateHeight: function () {\r\n var self = this;\r\n\r\n if (self.setHeight) {\r\n self.setHeight();\r\n }\r\n },\r\n\r\n planningLoad: function(edit = false) {\r\n var self = this;\r\n\r\n APPLOYED.filter.checkAllInit();\r\n bindToggles();\r\n bindFilters();\r\n bindDateNavigator();\r\n\r\n loadGroepen(true);\r\n bindShowTotals();\r\n bindChevHide();\r\n bindResize();\r\n\r\n if (edit) {\r\n bindDragDrop();\r\n }\r\n\r\n function bindToggles() {\r\n APPLOYED.time_shared.bindGroepToggles(\"weekplanning\", (id, enabled) => self.enableCopy(id, enabled));\r\n }\r\n\r\n function bindFilters() {\r\n APPLOYED.time_shared.bindGroepFilters(() => loadGroepen(true), () => self.updateLegenda());\r\n }\r\n\r\n function bindDateNavigator() {\r\n APPLOYED.time_shared.bindDateNavigator(loadPlanning);\r\n }\r\n\r\n function bindChevHide() {\r\n APPLOYED.time_shared.bindChevHide(() => self.updateHeight());\r\n }\r\n\r\n function bindDragDrop() {\r\n $('.wn-drag').draggable({\r\n containment: '#wn-drag-area',\r\n zindex: 100,\r\n appendTo: '#wn-drag-area',\r\n cursor: 'grabbing',\r\n helper: 'clone'\r\n });\r\n\r\n $('.weekplanning-groep').droppable({\r\n drop: handleDropEvent,\r\n over: handleOverEvent,\r\n out: handleOutEvent\r\n });\r\n\r\n function handleDropEvent(event, ui) {\r\n if (!canDrop(event, ui)) {\r\n return;\r\n }\r\n\r\n $(event.target).removeClass('drag-over');\r\n\r\n var wn = {\r\n \"id\": $(ui.draggable[0]).data('werknemerid'),\r\n \"naam\": $(ui.draggable[0]).text().trim()\r\n };\r\n\r\n var roosterId = $(event.target).find('.grid.groepsrooster-container').attr('id');\r\n addWerknemer(wn, roosterId);\r\n\r\n function addWerknemer(wn, roosterId) {\r\n var component = self.components.find(g => g.id == `#${roosterId}`);\r\n\r\n if (component) {\r\n getWeekplanningWerknemerInfo(wn, component.planningsgroepId, component);\r\n }\r\n }\r\n\r\n function getWeekplanningWerknemerInfo(wn, groepId, component) {\r\n var startdatum = $('#Startdatum').val();\r\n\r\n var options = {};\r\n options[\"tofadein\"] = component.id;\r\n\r\n Api.APIcaller.CallAction(\"/ajax/WeekplanningWerknemerInfo\", { planningsgroepId: groepId, startdatum: startdatum, employeeId: wn.id }, \"POST\", null, null, (response) => loadComplete(response, wn, component), options, Api.APIcaller.CancelOptions.None);\r\n\r\n function loadComplete(response, wn, component) {\r\n if (!response || response.hasErrorText) {\r\n return;\r\n }\r\n\r\n var result = response.jsoNresults[0];\r\n result.naam = wn.naam;\r\n component.addWerknemer(result);\r\n }\r\n }\r\n }\r\n\r\n function handleOverEvent(event, ui) {\r\n if (canDrop(event, ui)) {\r\n $(event.target).addClass('drag-over');\r\n } else {\r\n $(ui.helper[0]).css('cursor', 'no-drop');\r\n }\r\n }\r\n\r\n function handleOutEvent(event, ui) {\r\n $(event.target).removeClass('drag-over');\r\n $(ui.helper[0]).css('cursor', 'grabbing');\r\n }\r\n\r\n function canDrop(event, ui) {\r\n var roosterId = $(event.target).find('.grid.groepsrooster-container').attr('id');\r\n var component = self.components.find(g => g.id == `#${roosterId}`);\r\n\r\n if (component) {\r\n var werknemerId = $(ui.draggable[0]).data('werknemerid');\r\n return !component.containsWerknemer(werknemerId);\r\n }\r\n\r\n return true;\r\n }\r\n }\r\n\r\n function bindShowTotals() {\r\n $('#ShowTotals').off('change');\r\n $('#ShowTotals').on('change', function () {\r\n var isChecked = $(this).is(\":checked\");\r\n for (var i = 0; i < self.components.length; i++) {\r\n self.components[i].showDayTotals(isChecked);\r\n }\r\n });\r\n }\r\n\r\n function bindResize() {\r\n $(window).on('resize', function () {\r\n self.updateHeight();\r\n });\r\n }\r\n\r\n function loadGroepen(fadein = false) {\r\n var planningsgroepIds = APPLOYED.time_shared.notLoadedGroepIds(\"weekplanning\");\r\n if (planningsgroepIds.length == 0) {\r\n self.updateLegenda();\r\n return;\r\n }\r\n\r\n self.planningLoadGroepen(fadein, planningsgroepIds, edit);\r\n }\r\n\r\n function loadPlanning(datum) {\r\n Api.Main.clearNotify();\r\n\r\n var werknemerId = $('#WerknemerId').val();\r\n var area = $(\"#AreaName\").val();\r\n\r\n var options = {};\r\n options[\"tofadein\"] = '#weekplanning-groepen';\r\n\r\n var params = {\r\n startdatum: datum,\r\n area,\r\n werknemerId\r\n };\r\n\r\n Api.APIcaller.CallAction(\"/ajax/weekplanningLoad\", params, \"POST\", null, null, (response) => loadComplete(response), options, Api.APIcaller.CancelOptions.None);\r\n\r\n function loadComplete(response) {\r\n if (!response || response.hasErrorText) {\r\n return;\r\n }\r\n\r\n self.components = [];\r\n APPLOYED.filter.checkAllInit();\r\n APPLOYED.filter.initFilterStatus();\r\n bindToggles();\r\n bindFilters();\r\n loadGroepen();\r\n }\r\n }\r\n },\r\n\r\n enableCopy: function(id, enabled) {\r\n if (!enabled || $(`#weekplanning-groep-${id}`).is(':hidden') || !$(`#weekplanning-groep-container-${id}`).data(\"loaded\")) {\r\n $(`#weekplanning-copy-${id}`).hide();\r\n return;\r\n }\r\n\r\n $(`#weekplanning-copy-${id}`).show();\r\n },\r\n\r\n planningLoadGroepen: function (fadein, planningsgroepIds, edit = false) {\r\n var self = this;\r\n\r\n var options = {};\r\n if (fadein) {\r\n var tofadein = `#weekplanning-groep-${planningsgroepIds[0]}`;\r\n options[\"tofadein\"] = tofadein;\r\n }\r\n\r\n var startdatum = $(\"#Startdatum\").val();\r\n Api.APIcaller.CallAction(\"/ajax/WeekplanningLoadGroepen\", { startdatum, planningsgroepIds }, \"POST\", null, null, (response) => loadComplete(response), options, Api.APIcaller.CancelOptions.None);\r\n\r\n function loadComplete(response) {\r\n if (!response || response.hasErrorText) {\r\n return;\r\n }\r\n\r\n var showDayTotals = $('#ShowTotals').is(\":checked\");\r\n\r\n for (var i = 0; i < response.jsoNresults.length; i++) {\r\n if (response.jsoNresults[i]) {\r\n var groepId = response.jsoNresults[i].planningsgroepId;\r\n $(`#weekplanning-groep-container-${groepId}`).data(\"loaded\", true);\r\n\r\n var component = new GroepsroosterComponent(`#groepsrooster-grid-${groepId}`, edit, response.jsoNresults[i], showDayTotals)\r\n component.init();\r\n component.handlers.dataChanged = dataChanged;\r\n\r\n self.components.push(component);\r\n self.enableCopy(groepId, true);\r\n }\r\n }\r\n\r\n showSave();\r\n self.updateLegenda();\r\n }\r\n\r\n function dataChanged(groepId, component, range) {\r\n enableSave(true);\r\n notifyChange(groepId, component, range);\r\n self.updateLegenda();\r\n }\r\n\r\n function showSave() {\r\n $('#btnweekplanning').show();\r\n }\r\n\r\n function enableSave(enabled) {\r\n $('#btnweekplanningsave').prop('disabled', !enabled);\r\n }\r\n\r\n function notifyChange(groepId, component, range) {\r\n var overlapdagen = component.getDagen(range);\r\n\r\n for (var i = 0; i < self.components.length; i++) {\r\n if (self.components[i].id != component.id) {\r\n self.components[i].updateOverlapdagen(groepId, overlapdagen);\r\n }\r\n }\r\n }\r\n },\r\n\r\n updateLegenda: function () {\r\n var self = this;\r\n\r\n var kleuren = [];\r\n for (var i = 0; i < self.components.length; i++) {\r\n var component = self.components[i];\r\n if ($(`#planningsgroep-${component.planningsgroepId}`).is(':visible')) {\r\n kleuren = kleuren.concat(component.getVerlofKleuren());\r\n }\r\n }\r\n\r\n APPLOYED.time_shared.updateLegenda(kleuren);\r\n self.updateHeight();\r\n },\r\n\r\n getLegendHeight: function () {\r\n return $(\"#legend_row\").outerHeight();\r\n },\r\n\r\n planningSave: function () {\r\n var self = this;\r\n\r\n var updates = getUpdates();\r\n saveUpdates(updates);\r\n return;\r\n\r\n function getUpdates() {\r\n var groepIds = APPLOYED.time_shared.getCheckedFilterIds();\r\n var updateRoosters = [];\r\n for (var i = 0; i < groepIds.length; i++) {\r\n var component = self.components.find(g => g.id == `#groepsrooster-grid-${groepIds[i]}`);\r\n if (component) {\r\n updateRoosters.push(component);\r\n }\r\n }\r\n\r\n var updates = [];\r\n for (var i = 0; i < updateRoosters.length; i++) {\r\n var groepUpdates = updateRoosters[i].getUpdates();\r\n updates.push(...groepUpdates);\r\n }\r\n\r\n return updates;\r\n }\r\n\r\n function saveUpdates(updates) {\r\n var area = $(\"#AreaName\").val();\r\n var date = DateService.GetDateFromString($('#Startdatum').val());\r\n var startdatum = DateService.ToString(date, 'yyyy-mm-dd');\r\n var employeeId = $('#WerknemerId').val();\r\n\r\n var options = {};\r\n options[\"tofadein\"] = '#weekplanning-groepen';\r\n Api.APIcaller.CallAction(\"/ajax/weekplanningSave\", { startdatum, updates, employeeId, area }, \"POST\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n }\r\n },\r\n\r\n navigateTo: function (url, employeeId) {\r\n var groepIds = APPLOYED.time_shared.getCheckedFilterIds();\r\n var date = DateService.ToInvariantDate($('#Startdatum').val());\r\n var totals = $('#ShowTotals').is(\":checked\");\r\n\r\n var params = [];\r\n params.push(`datum=${date}`);\r\n params.push(`totals=${totals}`);\r\n if (groepIds?.length) { params.push(`ids=${groepIds.join(';') }`); }\r\n if (employeeId) { params.push(`employeeId=${employeeId}`); }\r\n\r\n url = url + '?' + params.join('&');\r\n window.location.href = url;\r\n },\r\n\r\n cancelEdit: function (url, employeeId) {\r\n var date = DateService.ToInvariantDate($('#Startdatum').val());\r\n var totals = $('#ShowTotals').is(\":checked\");\r\n\r\n var params = [];\r\n params.push(`datum=${date}`);\r\n params.push(`totals=${totals}`);\r\n if (employeeId) { params.push(`employeeId=${employeeId}`); }\r\n\r\n url = url + '?' + params.join('&');\r\n window.location.href = url;\r\n },\r\n\r\n copyWeekplanning: function (id, naam) {\r\n var self = this;\r\n Api.Main.clearNotify();\r\n\r\n let options = {};\r\n options[\"tofadein\"] = null;\r\n options[\"loading\"] = null;\r\n\r\n var params = {\r\n planningsgroepId: id,\r\n planningsgroepNaam: naam,\r\n startdatum: DateService.ToInvariantDate($('#Startdatum').val()),\r\n }\r\n\r\n Api.APIcaller.CallAction(\"/ajax/GetCopyWeekplanningPopup\", params, \"GET\", null, null, complete, options, Api.APIcaller.CancelOptions.None);\r\n\r\n function complete(result) {\r\n if (result.hasErrorText) {\r\n return;\r\n }\r\n\r\n var copyCurrentWeek = $('#CopyTypeCurrentWeek').val();\r\n\r\n showModal();\r\n\r\n bindLists();\r\n bindFields();\r\n bindButtons();\r\n validateInputs();\r\n initWeekNumbers();\r\n\r\n function showModal() {\r\n APPLOYED.modal.initPopup('large', false, 'static');\r\n FormValidationService.InitializeDatePicker();\r\n\r\n $('#modal_popup').one('hidden.bs.modal', function () {\r\n Api.Main.closeNotify('error');\r\n });\r\n }\r\n function bindLists() {\r\n $(document).off('change', '#CopyType');\r\n $(document).on('change', '#CopyType', function () {\r\n changeCopyType(this);\r\n validateInputs();\r\n });\r\n\r\n function changeCopyType(el) {\r\n var showCurrentWeek = $(el).val() == copyCurrentWeek;\r\n $('#copy-even-oneven-weken').toggle(showCurrentWeek);\r\n $('#copy-vaneinddatum').toggle(!showCurrentWeek);\r\n }\r\n }\r\n\r\n function bindFields() {\r\n $(document).off('change keyup', \"#VanStartdatum, #VanEinddatum, #NaarStartdatum, #NaarEinddatum\");\r\n $(document).on('change keyup', \"#VanStartdatum, #VanEinddatum, #NaarStartdatum, #NaarEinddatum\", function (e) {\r\n validateInputs();\r\n updateWeekNumber(this);\r\n\r\n if (e.type == 'change') {\r\n if (!APPLOYED.validator.isValidDate($(this).val())) {\r\n return false;\r\n }\r\n\r\n APPLOYED.time_shared.toStartOfWeek(this);\r\n\r\n var id = $(this).attr('id');\r\n if (id == 'VanStartdatum') {\r\n getWerknemers();\r\n }\r\n }\r\n });\r\n\r\n $(document).off('change', \"#KopieerEvenWeken, #KopieerOnevenWeken, #CopyForId\");\r\n $(document).on('change', \"#KopieerEvenWeken, #KopieerOnevenWeken, #CopyForId\", function () {\r\n validateInputs();\r\n });\r\n }\r\n\r\n function getWerknemers() {\r\n let options = {};\r\n options[\"loading\"] = null;\r\n options[\"tofadein\"] = null;\r\n\r\n var params = {\r\n startdatum: DateService.ToInvariantDate($('#VanStartdatum').val()),\r\n planningsgroepId: $('#CopyPlanningsgroepId').val()\r\n };\r\n\r\n Api.APIcaller.CallAction(\"/ajax/GetCopyWeekplanningWerknemers\", params, \"GET\", null, null, complete, options, Api.APIcaller.CancelOptions.None);\r\n\r\n function complete(response, params) {\r\n if (response.hasErrorText) {\r\n return;\r\n }\r\n\r\n updateCopyForList(response.jsoNresults[0]);\r\n }\r\n\r\n function updateCopyForList(werknemers) {\r\n var selected = $('#CopyForId').val();\r\n\r\n var options = [];\r\n $.each(werknemers, function (index, wn) {\r\n var attr = {}\r\n attr.value = wn.werknemerId;\r\n attr.text = wn.naam;\r\n options.push(attr);\r\n });\r\n\r\n APPLOYED.form.replaceOptions('#CopyForId', options, 1);\r\n $('#CopyForId').val(selected);\r\n $('#CopyForId').trigger('change')\r\n }\r\n }\r\n\r\n function validateInputs() {\r\n $('#btnweekplanningcopy').prop('disabled', !inputsValid());\r\n }\r\n\r\n function updateWeekNumber(el) {\r\n var lblName = 'lbl_' + $(el).attr('id');\r\n var label = $(`[data-id=\"${lblName}\"]`).first();\r\n\r\n if (!label) {\r\n return;\r\n }\r\n\r\n var caption = $(label).attr('lblcaption');\r\n\r\n if (!APPLOYED.validator.isValidDate($(el).val())) {\r\n label.text(caption);\r\n return;\r\n }\r\n\r\n var date = DateService.ToDate($(el).val());\r\n var weekNumber = DateService.GetWeekNumber(date);\r\n label.text(`${caption} ${weekNumber}`);\r\n }\r\n\r\n function initWeekNumbers() {\r\n updateWeekNumber($('#VanStartdatum'))\r\n updateWeekNumber($('#VanEinddatum'))\r\n updateWeekNumber($('#NaarStartdatum'))\r\n updateWeekNumber($('#NaarEinddatum'))\r\n }\r\n\r\n function bindButtons() {\r\n $(document).off('click', '#btnweekplanningcopy');\r\n $(document).on('click', '#btnweekplanningcopy', function () {\r\n APPLOYED.modal.closePopup();\r\n confirmCopy();\r\n });\r\n\r\n $(document).off('click', '#btncancelweekplanningcopy');\r\n $(document).on('click', '#btncancelweekplanningcopy', function () {\r\n APPLOYED.modal.closePopup();\r\n });\r\n }\r\n\r\n function inputsValid() {\r\n var isValid =\r\n !!$('#VanStartdatum').val() &&\r\n !!$('#NaarStartdatum').val() &&\r\n !!$('#NaarEinddatum').val() &&\r\n !!$('#CopyForId').val();\r\n\r\n if ($('#CopyType').val() == copyCurrentWeek) {\r\n isValid &= $('#KopieerEvenWeken').is(':checked') || $('#KopieerOnevenWeken').is(':checked');\r\n } else {\r\n isValid &= !!$('#VanEinddatum').val()\r\n }\r\n\r\n return isValid;\r\n }\r\n\r\n function confirmCopy() {\r\n Api.Main.clearNotify();\r\n\r\n bindConfirm();\r\n showOverlayPopup('#confirmcopymodal', false);\r\n\r\n function bindConfirm() {\r\n var showGroep = +$('#CopyForId').val() == -1;\r\n $('#confirm-copy-groep').toggle(showGroep);\r\n $('#confirm-copy-werknemer').toggle(!showGroep);\r\n\r\n $('#confirmcopymodalaction').off('click');\r\n $('#confirmcopymodalaction').on('click', function () {\r\n $('#confirmcopymodal').modal('hide');\r\n\r\n copyWeekplanning();\r\n });\r\n }\r\n }\r\n\r\n function showOverlayPopup(id, clearNotify = true) {\r\n $('.modal-overlay').show();\r\n $(id).modal('show');\r\n $(id).one('hidden.bs.modal', function () {\r\n $('.modal-overlay').hide();\r\n if (clearNotify) {\r\n Api.Main.clearNotify();\r\n }\r\n });\r\n }\r\n\r\n function copyWeekplanning() {\r\n let options = {};\r\n options[\"loading\"] = null;\r\n options[\"tofadein\"] = '#copy-fadein';\r\n\r\n $('.modal-overlay-fadein').show();\r\n\r\n var params = getFieldValues();\r\n Api.APIcaller.CallAction(\"/ajax/CopyWeekplanning\", params, \"POST\", null, null, (response) => complete(response, params), options, Api.APIcaller.CancelOptions.None);\r\n\r\n function complete(response, params) {\r\n $('.modal-overlay-fadein').hide();\r\n\r\n if (response.hasErrorText) {\r\n if (response.jsoNresults && response.jsoNresults.length > 0) {\r\n showErrors(response.jsoNresults[0]);\r\n }\r\n return;\r\n }\r\n\r\n APPLOYED.modal.closePopup();\r\n checkReloadGroep(params);\r\n }\r\n\r\n function checkReloadGroep(params) {\r\n var startdatum = DateService.ToInvariantDate($('#Startdatum').val());\r\n if (startdatum >= params.naarStartdatum && startdatum <= params.naarEinddatum) {\r\n self.planningLoadGroepen(true, [ params.planningsgroepId ], false);\r\n }\r\n }\r\n }\r\n\r\n function getFieldValues() {\r\n var values = {\r\n copyType: $('#CopyType').val(),\r\n planningsgroepId: $('#CopyPlanningsgroepId').val(),\r\n vanStartdatum: DateService.ToInvariantDate($('#VanStartdatum').val()),\r\n vanEinddatum: DateService.ToInvariantDate($('#VanEinddatum').val()),\r\n naarStartdatum: DateService.ToInvariantDate($('#NaarStartdatum').val()),\r\n naarEinddatum: DateService.ToInvariantDate($('#NaarEinddatum').val()),\r\n kopieerEvenWeken: $('#KopieerEvenWeken').is(':checked'),\r\n kopieerOnevenWeken: $('#KopieerOnevenWeken').is(':checked'),\r\n copyForId: $('#CopyForId').val()\r\n }\r\n\r\n return values;\r\n }\r\n\r\n function showErrors(errors) {\r\n if (!errors || errors.length == 0) {\r\n return;\r\n }\r\n\r\n var text = errors.map(e => e.error).join('\\n') + '\\n';\r\n $('#copy-errors').val(text);\r\n\r\n showOverlayPopup('#copyerrorsmodal', true);\r\n }\r\n }\r\n }\r\n}","APPLOYED.configuration.absence = {\r\n specificDagIntNumber: 382,\r\n verlofregelingen: function () {\r\n APPLOYED.element.dynamicHeight('#searchlist', '.mainscreensized', 65);\r\n APPLOYED.element.dynamicHeight('#AbsenceConfig_Edit_ContainerId', '.mainscreensized', 95);\r\n APPLOYED.configuration.absence.initConfigurationAbsence();\r\n },\r\n absenceedit: function () {\r\n APPLOYED.configuration.absence.initConfigurationAbsence();\r\n\r\n enableVerlofUnits();\r\n\r\n $('#EsToekennenInDagen').off('change');\r\n $('#EsToekennenInDagen').on('change', function () {\r\n enableVerlofUnits();\r\n });\r\n\r\n function enableVerlofUnits() {\r\n var checked = $('#EsToekennenInDagen').is(':checked');\r\n if (checked) {\r\n $('#VerlofUnitsId').val($('#VerlofUnitsDagen').val());\r\n $('#VerlofUnitsId').attr('readonly', true);\r\n $('#VerlofUnitsId').addClass('disabled');\r\n } else {\r\n $('#VerlofUnitsId').attr('readonly', false);\r\n $('#VerlofUnitsId').removeClass('disabled');\r\n }\r\n }\r\n\r\n $('.startopmaandListOnChange').unbind('change');\r\n $('.startopmaandListOnChange').bind('change', function () {\r\n\r\n var optionSelected = $(this).find(\"option:selected\");\r\n\r\n var options = {};\r\n\r\n options[\"tofadein\"] = \"\";\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/RefreshDDLDag\", {\r\n month: optionSelected.val(),\r\n languageId: APPLOYED.language.getUserLanguage(),\r\n usedFor: \"StartOpDagId\"\r\n }, \"GET\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n\r\n });\r\n },\r\n allowanceedit: function () {\r\n APPLOYED.configuration.absence.initConfigurationAbsence();\r\n\r\n $(document).off('change', '#Overnemen');\r\n $(document).on('change', '#Overnemen', function () {\r\n if ($(this).is(':checked')) {\r\n $('#overnemenContent').show();\r\n } else {\r\n $('#overnemenContent').hide();\r\n }\r\n });\r\n },\r\n allowanceextraedit: function () {\r\n $(\"#OpbouwSoortId\").unbind('change');\r\n $(\"#OpbouwSoortId\").bind('change', function () {\r\n var leeftijdEnDienstjarenId = $('#LeeftijdEnDienstjarenId').val();\r\n var isLeeftijdEnDienstjaren = $(this).val() == leeftijdEnDienstjarenId;\r\n\r\n $('#opbouw_leeftijd_en_dienstjaren').find('input').removeClass('validation-required');\r\n $('#opbouw_leeftijd_en_dienstjaren').find('label').removeClass('required');\r\n $('#opbouw_van_tot').find('input').removeClass('validation-required');\r\n $('#opbouw_van_tot').find('label').removeClass('required');\r\n\r\n // switch velden obv opbouwsoort selectie\r\n if (isLeeftijdEnDienstjaren) {\r\n $('#opbouw_van_tot').hide();\r\n $('#opbouw_leeftijd_en_dienstjaren').show();\r\n\r\n $('#opbouw_leeftijd_en_dienstjaren').find('input').addClass('validation-required');\r\n $('#opbouw_leeftijd_en_dienstjaren').find('label').addClass('required');\r\n } else {\r\n $('#opbouw_leeftijd_en_dienstjaren').hide();\r\n $('#opbouw_van_tot').show();\r\n\r\n $('#opbouw_van_tot').find('input').addClass('validation-required');\r\n $('#opbouw_van_tot').find('label').addClass('required');\r\n }\r\n\r\n APPLOYED.common.initValidation(true);\r\n });\r\n\r\n $(\"#OpbouwSoortId\").trigger('change');\r\n\r\n $('.peilmomentidOnchange').unbind('change');\r\n $('.peilmomentidOnchange').bind('change', function () {\r\n var optionSelected = $(this).find(\"option:selected\");\r\n\r\n if (optionSelected.val() == \"\" + APPLOYED.configuration.absence.specificDagIntNumber + \"\" || optionSelected.val() == APPLOYED.configuration.absence.SpecificDagIntNumber) {\r\n $('.hideonnotspecific').show();\r\n }\r\n else {\r\n $('.hideonnotspecific').hide();\r\n }\r\n APPLOYED.validator.checkRequiredFields(\"form\", \"#save\");\r\n });\r\n\r\n $('.peilmomentidOnchange').trigger('change');\r\n\r\n $('.specifiekemaandListOnChange').unbind('change');\r\n $('.specifiekemaandListOnChange').bind('change', function () {\r\n var optionSelected = $(this).find(\"option:selected\");\r\n\r\n var options = {};\r\n\r\n options[\"tofadein\"] = \"\";\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/RefreshDDLDag\", {\r\n month: optionSelected.val(),\r\n languageId: APPLOYED.language.getUserLanguage(),\r\n usedFor: \"SpecifiekeDagId\"\r\n }, \"GET\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n\r\n });\r\n },\r\n bindConfigAbsenceActionEvents: function () {\r\n $('.absencegetextraverlofopbouwen').closest('tr[data-verlofopbouwid=' + $('#VerlofOpbouwId').val() + ']').addClass('active');\r\n\r\n $(\".btndeleteverlofregeling\").unbind('click');\r\n $(\".btndeleteverlofregeling\").bind('click', function () {\r\n var employeeId = $(this).data('employeeid');\r\n var recordId = $(this).data('verlofregelingid');\r\n var filter = $(this).data('filter');\r\n var options = {};\r\n\r\n options[\"tofadein\"] = \"\";\r\n\r\n Api.APIcaller.CallAction(\"/Configuration/Absence/DeleteVerlofRegelingRecord\", { recordId: recordId, employeeid: employeeId, filter: filter }, \"POST\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n $('#confirmdeletemodal').hide();\r\n }\r\n );\r\n\r\n $(\".btndeleteallowance\").unbind('click');\r\n $(\".btndeleteallowance\").bind('click', function () {\r\n var employeeId = $(this).data('employeeid');\r\n var recordId = $(this).data('verlofopbouwid');\r\n var verlofRegelingId = $('#VerlofRegelingId').val();\r\n var filter = $(this).data('filter');\r\n\r\n var options = {};\r\n\r\n options[\"tofadein\"] = \"\";\r\n\r\n Api.APIcaller.CallAction(\"/Configuration/Absence/DeleteAllowanceRecord\", { recordId: recordId, verlofregelingid: verlofRegelingId, employeeid: employeeId, filter: filter }, \"POST\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n $('#confirmdeletemodal').hide();\r\n }\r\n );\r\n\r\n $(\".btndeleteallowanceextra\").unbind('click');\r\n $(\".btndeleteallowanceextra\").bind('click', function () {\r\n var recordId = $(this).data('extraverlofppbouwid');\r\n var verlofopbouwid = $(this).data('verlofopbouwid');\r\n var verlofregelingid = $(this).data('verlofregelingid');\r\n var filter = $(this).data('filter');\r\n\r\n var options = {};\r\n\r\n options[\"tofadein\"] = \"#AbsenceExtraVerlofOpbouwen_ContentId\";\r\n\r\n Api.APIcaller.CallAction(\"/Configuration/Absence/DeleteAllowanceExtraRecord\", { recordId: recordId, verlofopbouwid: verlofopbouwid, verlofregelingid: verlofregelingid, filter: filter }, \"POST\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n $('#confirmdeletemodal').hide();\r\n }\r\n );\r\n\r\n $('.absencegetextraverlofopbouwen').unbind('click');\r\n $('.absencegetextraverlofopbouwen').bind('click', function () {\r\n $('.absencegetextraverlofopbouwen').closest('tr').removeClass('active');\r\n $(this).closest('tr').addClass('active');\r\n\r\n var options = {};\r\n\r\n options[\"tofadein\"] = \"#AbsenceExtraVerlofOpbouwen_ContentId\";\r\n\r\n var verlofRegelingId = $(this).closest('tr').data('verlofregelingid');\r\n var verlofOpbouwId = $(this).closest('tr').data('verlofopbouwid');\r\n var filter = $(this).closest('tr').data('filter');\r\n\r\n $('#VerlofOpbouwId').val(verlofOpbouwId);\r\n\r\n Api.APIcaller.CallAction(\"/Configuration/Absence/GetExtraVerlofOpbouwen\", { verlofRegelingId: verlofRegelingId, verlofOpbouwId: verlofOpbouwId, filter: filter }, \"GET\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n\r\n });\r\n },\r\n initConfigurationAbsence: function () {\r\n var selectedRecordId = $('#VerlofRegelingId').val();\r\n var obj = $('.configabsencesmallcube[data-verlofregelingid=' + selectedRecordId + ']');\r\n $('.smallcube').removeClass('active');\r\n if (obj.data('verlofregelingid') == undefined || obj.data('verlofregelingid') == 'undefined') {\r\n obj = $('#searchlist div.configabsencesmallcube').first();\r\n selectedRecordId = obj.data('verlofregelingid');\r\n }\r\n\r\n obj.addClass('active');\r\n\r\n $(\".configabsencesmallcube\").unbind('click');\r\n $(\".configabsencesmallcube\").bind('click', function () {\r\n $('.smallcube').removeClass('active');\r\n\r\n $(this).addClass('active');\r\n var filter = $('#Filter').val();\r\n\r\n var verlofregelingid = $(this).data('verlofregelingid');\r\n\r\n var options = {};\r\n\r\n options[\"tofadein\"] = \"div[id*='_ContainerId']\";\r\n Api.APIcaller.CallAction(\"/Ajax/LoadAbsenceConfig\", { verlofregelingid: verlofregelingid, isCaching: false, filter: filter }, \"GET\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n\r\n });\r\n\r\n $(\".verlofkleuronchange\").bind('change', function () {\r\n $('.verlofkleur').css('background-color', $(this).val());\r\n });\r\n $(\".verlofkleuronchange\").trigger('change');\r\n\r\n APPLOYED.configuration.absence.bindConfigAbsenceActionEvents();\r\n },\r\n initVerlofRegelingModal: function () {\r\n APPLOYED.modal.initPopup('large');\r\n\r\n var element = $('#VerlofRegelingPopupTable');\r\n var columDefs = [];\r\n\r\n APPLOYED.table.dataTable(element, false, true, false, true, columDefs);\r\n\r\n $('#btnchangeverlofregelingid').unbind('click');\r\n $('#btnchangeverlofregelingid').bind('click', function () {\r\n $('#VerlofRegelingId').val($(\".VerlofRegelingPopupTr.selected\").data('pkrecordid'));\r\n $('#VerlofRegeling, #VerlofRegelingId_Name').val($(\".VerlofRegelingPopupTr.selected td\").data('value'));\r\n $('#modal_popup button[data-mdb-dismiss=\"modal\"]').trigger('click');\r\n });\r\n\r\n $('#VerlofRegelingPopupTable tbody tr').unbind('dblclick');\r\n $('#VerlofRegelingPopupTable tbody tr').bind('dblclick', function () {\r\n element.find('tr.selected').removeClass('selected');\r\n $(this).addClass('selected');\r\n $('#VerlofRegelingId').val($(\".VerlofRegelingPopupTr.selected\").data('pkrecordid'));\r\n $('#VerlofRegeling, #VerlofRegelingId_Name').val($(\".VerlofRegelingPopupTr.selected td\").data('value'));\r\n $('#modal_popup button[data-mdb-dismiss=\"modal\"]').trigger('click');\r\n });\r\n\r\n },\r\n}","APPLOYED.configuration.companyconfig = {\r\n init: function () {\r\n APPLOYED.tableOverview.init();\r\n },\r\n customerdocumenten: function () {\r\n APPLOYED.tools.tools.bibliotheek();\r\n },\r\n documentcategorieen: function () {\r\n\r\n $(document).off('click', '.toprow');\r\n $(document).on('click', '.toprow', function () {\r\n toggleRow(this, false);\r\n\r\n if (!APPLOYED.tableOverview.disableRowSelect) {\r\n selectRow(this);\r\n }\r\n });\r\n\r\n function toggleRow(e, toggleClicked = true) {\r\n if ($(e).parent().hasClass(\"row-collapsed\")) {\r\n openRow(e);\r\n } else if (toggleClicked) {\r\n closeRow(e);\r\n }\r\n }\r\n\r\n function selectRow(e) {\r\n $('.toprow').removeClass('selectedRow');\r\n $(e).addClass('selectedRow');\r\n\r\n let recordid = $(e).data('tableid');\r\n updateLink(recordid);\r\n updateDeleteAction(recordid);\r\n }\r\n\r\n function updateDeleteAction(id) {\r\n $('.btndeletedocumentcategorie').attr('data-recordid', id);\r\n $('.btndeletedocumentcategorie').removeClass('disabled');\r\n }\r\n\r\n function updateLink(id) {\r\n let link = $('#editlink').attr('href');\r\n\r\n if (typeof link != 'undefined') {\r\n let replacePatern = /\\/\\d+/gm;\r\n let regexp = new RegExp(replacePatern, \"g\");\r\n\r\n $('#editlink').attr('href', link.replace(regexp, '/' + id));\r\n $('#editlink').removeClass('disabled');\r\n }\r\n }\r\n\r\n\r\n function openRow(e) {\r\n $(e).parent().removeClass(\"row-collapsed\");\r\n $(e).find(\".closed\").hide();\r\n $(e).find(\".opened\").show();\r\n }\r\n\r\n function closeRow(e) {\r\n $(e).parent().addClass(\"row-collapsed\");\r\n $(e).find(\".closed\").show();\r\n $(e).find(\".opened\").hide();\r\n }\r\n\r\n $(document).off('click', '.btndeletedocumentcategorie');\r\n $(document).on('click', '.btndeletedocumentcategorie', function () {\r\n\r\n var recordid = $(this).data('recordid');\r\n\r\n $('#confirmdeletemodalaction').one('click', function () {\r\n $('#confirmdeletemodal').modal('hide');\r\n APPLOYED.configuration.companyconfig.deletedocumentcategorie(recordid);\r\n });\r\n\r\n $('#confirmdeletemodal').modal('show');\r\n $('#confirmdeletemodal').one('hidden.bs.modal', function () {\r\n unbindDeleteModal();\r\n });\r\n });\r\n\r\n function unbindDeleteModal() {\r\n $('#confirmdeletemodalaction').off('click');\r\n $('#confirmdeletemodalaction').unbind('click');\r\n };\r\n\r\n },\r\n deletedocumentcategorie: function (recordid) {\r\n\r\n var options = {};\r\n\r\n options[\"tofadein\"] = null;\r\n options[\"loading\"] = null;\r\n\r\n Api.APIcaller.CallAction(\"/Configuration/CompanyConfig/DeleteDocumentcategorieRecord\", { recordId: recordid }, \"POST\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n },\r\n passwordpolicy: function () {\r\n $(document).on('click', '#emailCheck', function () {\r\n var options = {};\r\n\r\n options[\"tofadein\"] = null;\r\n options[\"loading\"] = 'button[id=\"emailCheck\"]';\r\n\r\n Api.APIcaller.CallAction(\"/ajax/GetEmailCheckUsers\", {}, \"POST\", null, null, FinishGetEmailCheckUsers, options, Api.APIcaller.CancelOptions.None);\r\n\r\n function FinishGetEmailCheckUsers(e) {\r\n let results = e.jsoNresults[0];\r\n\r\n if (results.length == 0) {\r\n $('#emailCheckNoErrors').show();\r\n $('#emailCheckErrors').hide();\r\n } else {\r\n $('#emailCheckErrors > ul').empty();\r\n\r\n $.each(results, function (i, result) {\r\n $('#emailCheckErrors > ul').append('
  • ' + result + '
  • ');\r\n });\r\n\r\n $('#emailCheckNoErrors').hide();\r\n $('#emailCheckErrors').show();\r\n }\r\n }\r\n });\r\n },\r\n users: function () {\r\n APPLOYED.configuration.companyconfig.userInitPassword();\r\n\r\n $(document).on('click', '#GebruikersProfile_result a', function () {\r\n let section = $('.section-selector.active').data('target').substring(1);\r\n\r\n location = '?user=' + $(this).data('value') + '§ion=' + section;\r\n });\r\n\r\n $(document).on('click', '.section-selector', function () {\r\n let target = $(this).data('target'); // section target\r\n\r\n // remove active from selectors and hide content\r\n $('.section-selector').removeClass('active');\r\n $('.section-content').hide();\r\n\r\n // set current selector active and show target\r\n $(this).addClass('active');\r\n $(target).show();\r\n });\r\n\r\n $(document).off('click', '.btnremoveuserrole');\r\n $(document).on('click', '.btnremoveuserrole', function () {\r\n let options = {};\r\n options[\"tofadein\"] = null;\r\n options[\"loading\"] = this;\r\n\r\n var roleSeq = $(this).data('userroleid');\r\n var userSeq = $(this).data('userseq');\r\n\r\n Api.APIcaller.CallAction(\"/Configuration/CompanyConfig/DeleteUserRole\", { roleSeq: roleSeq, userSeq: userSeq }, \"POST\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n });\r\n\r\n $('#GebruikersProfile').mousemove(function () {\r\n $('#GebruikersProfile').css('cursor', ($('#GebruikersProfile').width() - (event.pageX - $(this).offset().left) < 20 ? 'pointer' : 'text'));\r\n });\r\n\r\n $('#GebruikersProfile_btn').on('shown.bs.dropdown', function () {\r\n $(\"#GebruikersProfile\").focus();\r\n })\r\n\r\n $('#GebruikersProfile_btn').on('hidden.bs.dropdown', function () {\r\n\r\n $('#GebruikersProfile').val(\"\");\r\n $(\"#GebruikersProfile_result a.dropdown-item.disabled\").hide();\r\n })\r\n\r\n $('#GebruikersProfile').unbind('keyup paste copy');\r\n $('#GebruikersProfile').bind('keyup paste copy', function (e) {\r\n if (e.keyCode == 40) {\r\n if ($(\"#GebruikersProfile_result\").html().length > 0) {\r\n $(\"#GebruikersProfile_result .dropdown-item:first\").focus();\r\n return false;\r\n }\r\n }\r\n else {\r\n if ($(\"#GebruikersProfile_result a\").length > 0) {\r\n var value = $(this).val().toLowerCase();\r\n $(\"#GebruikersProfile_result a\").filter(function () {\r\n $(this).toggle($(this).text().toLowerCase().indexOf(value) > -1)\r\n });\r\n }\r\n\r\n if ($('#GebruikersProfile_result a[class=\"dropdown-item\"]:not(.disabled):visible').length === 0) {\r\n $(\"#GebruikersProfile_result a.dropdown-item.disabled\").removeAttr('style');\r\n }\r\n else {\r\n $(\"#GebruikersProfile_result a.dropdown-item.disabled\").hide();\r\n }\r\n }\r\n\r\n return false;\r\n });\r\n },\r\n useredit: function () {\r\n APPLOYED.configuration.companyconfig.userInitPassword(true);\r\n\r\n $(document).on('change', '#RoleType', function () {\r\n let val = $(this).val();\r\n\r\n showHoofdGebruiker(false);\r\n showWerknemer(false);\r\n showHrGebruiker(false);\r\n\r\n switch (val) {\r\n case \"3\": // werknemer\r\n showWerknemer(true);\r\n //fall trough\r\n case \"4\": // manager\r\n //fall trough\r\n case \"7\": // HR gebruiker\r\n showHrGebruiker(true);\r\n break;\r\n case \"2\": // hoofdgebruiker\r\n showHoofdGebruiker(true);\r\n break;\r\n }\r\n\r\n APPLOYED.validator.bindRequiredFields('#userroleedit', '.btn-save', false);\r\n\r\n function showHoofdGebruiker(show) {\r\n let element = $('#productOwnerCheckbox')\r\n\r\n show ? element.show() : element.hide();\r\n }\r\n\r\n function showHrGebruiker(show) {\r\n let element = $('#ProfileSeq');\r\n let parent = element.closest('.mdb-input-group');\r\n\r\n if (show) {\r\n parent.show();\r\n element.addClass('validation-required');\r\n parent.find('label').addClass('required');\r\n }\r\n else {\r\n parent.hide();\r\n element.removeClass('validation-required');\r\n parent.find('label').removeClass('required');\r\n }\r\n }\r\n\r\n function showWerknemer(show) {\r\n let element = $('#WerknemerId');\r\n let parent = element.closest('.mdb-input-group');\r\n\r\n if (show) {\r\n parent.show();\r\n element.addClass('validation-required');\r\n parent.find('label').addClass('required');\r\n }\r\n else {\r\n parent.hide();\r\n element.removeClass('validation-required');\r\n parent.find('label').removeClass('required');\r\n }\r\n }\r\n });\r\n },\r\n deleteUserEvent: function () {\r\n $(document).off('click', '.btndeleterecord');\r\n $(document).on('click', '.btndeleterecord', function () {\r\n let recordid = $('.deleteaction').data('record');\r\n\r\n location = \"/configuration/companyconfig/userdelete/\" + recordid;\r\n });\r\n },\r\n userInitPassword: function (newUser = false) {\r\n let prefix = newUser ? 'NewUser' : '';\r\n\r\n $(document).on('click', '#wachtwoordAanmaken', function () {\r\n let options = {};\r\n options[\"tofadein\"] = null;\r\n options[\"loading\"] = \"button[id='wachtwoordAanmaken']\";\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/GetNewPassword\", null, \"POST\", null, null, succes, options, Api.APIcaller.CancelOptions.None);\r\n\r\n function succes(e) {\r\n let passwd = e.jsoNresults[0];\r\n\r\n $('#' + prefix + 'Password').val(passwd);\r\n $('#' + prefix + 'Password').closest('.form-group').attr('class', 'form-group');\r\n $('#' + prefix + 'Password').trigger('change');\r\n $('#' + prefix + 'Password').trigger('focus');\r\n $('#' + prefix + 'Password').trigger('blur');\r\n\r\n $('#' + prefix + 'PasswordRepeat').val(passwd);\r\n $('#' + prefix + 'PasswordRepeat').closest('.form-group').attr('class', 'form-group');\r\n $('#' + prefix + 'PasswordRepeat').trigger('change');\r\n $('#' + prefix + 'PasswordRepeat').trigger('focus');\r\n $('#' + prefix + 'PasswordRepeat').trigger('blur');\r\n }\r\n });\r\n\r\n $(document).on('click', '#toonWachtwoord', function () {\r\n if ($('#' + prefix + 'Password').prop('type') == 'password') {\r\n $('#' + prefix + 'Password').prop('type', 'text');\r\n $('#' + prefix + 'PasswordRepeat').prop('type', 'text');\r\n } else {\r\n $('#' + prefix + 'Password').prop('type', 'password');\r\n $('#' + prefix + 'PasswordRepeat').prop('type', 'password');\r\n }\r\n });\r\n\r\n $(document).on('click', '#wachtwoordSterkte', function () {\r\n let options = {};\r\n options[\"tofadein\"] = null;\r\n options[\"loading\"] = \"button[id='wachtwoordSterkte']\";\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/GetPasswordPolicy\", null, \"POST\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n });\r\n },\r\n roleedit: function () {\r\n $(document).on('change', '#RoleType', function () {\r\n let val = $(this).val();\r\n \r\n $('#productOwnerCheckbox, #ZichtbaarInVerlofOverzicht').hide();\r\n $('#ZichtbaarInVerlofOverzicht').hide();\r\n $('.profileSeq_Container').hide();\r\n $('.WerknemerId_Container').hide();\r\n $('.WerknemerId_Container').find('select').removeClass('validation-required');\r\n $('.WerknemerId_Container').find('label').removeClass('required');\r\n $('.profileSeq_Container').find('select').addClass('validation-required');\r\n $('.profileSeq_Container').find('label').addClass('required');\r\n\r\n switch (val) {\r\n case \"3\": // werknemer\r\n $('.WerknemerId_Container').show();\r\n $('.profileSeq_Container').show();\r\n $('.WerknemerId_Container').find('select').addClass('validation-required');\r\n $('.WerknemerId_Container').find('label').addClass('required');\r\n break;\r\n //fall trough\r\n case \"4\": // manager\r\n $('#ZichtbaarInVerlofOverzicht').show();\r\n $('.profileSeq_Container').show();\r\n break;\r\n //fall trough\r\n case \"7\": // HR gebruiker\r\n $('#ZichtbaarInVerlofOverzicht').show();\r\n $('.profileSeq_Container').show();\r\n break;\r\n case \"2\": // hoofdgebruiker\r\n $('#productOwnerCheckbox, #ZichtbaarInVerlofOverzicht').show();\r\n $('.profileSeq_Container').find('select').removeClass('validation-required');\r\n $('.profileSeq_Container').find('label').removeClass('required');\r\n break;\r\n }\r\n\r\n APPLOYED.validator.bindRequiredFields('#userroleedit', '.btn-save', false);\r\n });\r\n \r\n $('#RoleType').trigger('change');\r\n },\r\n managersgroups: function () {\r\n APPLOYED.element.dynamicHeight('#managersgroupcontainer', '.mainscreensized', 120);\r\n APPLOYED.configuration.companyconfig.initAddWerknemer();\r\n\r\n $(document).off('click', '.managersgroup');\r\n $(document).on('click', '.managersgroup', function () {\r\n $('.managersgroup').removeClass('active');\r\n $(this).addClass('active');\r\n\r\n let options = {};\r\n options[\"tofadein\"] = \"#ManagersGroups_ContainerId\";\r\n options[\"loading\"] = \"\";\r\n\r\n var groupId = $(this).data('groupid');\r\n \r\n Api.APIcaller.CallAction(\"/Configuration/CompanyConfig/GetManagersGroups_Medewerkers\", { groupId: groupId }, \"GET\", null, null, updateActions(groupId), options, Api.APIcaller.CancelOptions.None);\r\n });\r\n\r\n function updateActions(id) {\r\n $('.deleteaction').data('recordid', id);\r\n $('.deleteaction').removeClass('disabled');\r\n }\r\n\r\n $(document).off('click', '.addmanagersgroups');\r\n $(document).on('click', '.addmanagersgroups', function () {\r\n let options = {};\r\n options[\"tofadein\"] = null;\r\n options[\"loading\"] = \"div[id='dropdownMenu3']\";\r\n\r\n Api.APIcaller.CallAction(\"/Configuration/CompanyConfig/ShowAddManagersGroups\", null, \"GET\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n });\r\n\r\n $(document).off('click', '.editmanagersgroups');\r\n $(document).on('click', '.editmanagersgroups', function () {\r\n let options = {};\r\n options[\"tofadein\"] = null;\r\n options[\"loading\"] = null;\r\n\r\n Api.APIcaller.CallAction(\"/Configuration/CompanyConfig/ShowEditManagersGroups\", { groupId: $(this).data('groupid') }, \"GET\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n });\r\n\r\n $(document).off('click', '.addgroupsmanager');\r\n $(document).on('click', '.addgroupsmanager', function () {\r\n let options = {};\r\n options[\"tofadein\"] = null;\r\n options[\"loading\"] = null;\r\n\r\n Api.APIcaller.CallAction(\"/Configuration/CompanyConfig/ShowAddManager\", { groupId: $(this).data('groupid') }, \"GET\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n });\r\n\r\n $(document).off('click', '.btnremovegroupsmanager');\r\n $(document).on('click', '.btnremovegroupsmanager', function () {\r\n let options = {};\r\n options[\"tofadein\"] = null;\r\n options[\"loading\"] = this;\r\n\r\n var groupId = $(this).data('groupid');\r\n var userseq = $(this).data('userseq');\r\n \r\n Api.APIcaller.CallAction(\"/Configuration/CompanyConfig/RemoveGroupsManager\", { groupId: groupId, userseq: userseq }, \"POST\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n });\r\n\r\n APPLOYED.element.scrollToElementInList(\"#managersgroupcontainer\", \".managersgroup[data-groupid='\" + $(\"#GroupId\").val() + \"']\", 10);\r\n\r\n function initFilterStatus() {\r\n var value = [];\r\n $(\".chkFilterStatus\").each(function () {\r\n if ($(this).is(':checked')) {\r\n value.push($(this).val().toLowerCase());\r\n $('div.filterstatuscheckbox' + $(this).val().toLowerCase() + '').show();\r\n }\r\n else {\r\n $('div.filterstatuscheckbox' + $(this).val().toLowerCase() + '').hide();\r\n }\r\n });\r\n $(\"#managersgroupcontainer div[data-searchstatus]\").hide();\r\n $.each(value, function (i, val) {\r\n $(\"#managersgroupcontainer div[data-searchstatus]\").filter(function () {\r\n $(\"#managersgroupcontainer div[data-searchstatus='\" + val + \"']\").show();\r\n });\r\n });\r\n };\r\n initFilterStatus();\r\n\r\n },\r\n addgroup: function () {\r\n $(document).off('click', '#btnaddmanagersgroups');\r\n $(document).on('click', '#btnaddmanagersgroups', function () {\r\n let options = {};\r\n options[\"tofadein\"] = null;\r\n options[\"loading\"] = this;\r\n\r\n var data = {\r\n GroupSeq: $('#Group_GroupSeq').val(),\r\n GroupName: $('#GroupName').val(),\r\n HideEmployees: $('#ChkHideEmployees').is(':checked'),\r\n Active: $('#Active').is(':checked')\r\n };\r\n\r\n var userSeq = 0;\r\n var profileSeq = 0;\r\n\r\n if ($('#ChkAddManager').is(':checked')) {\r\n userSeq = $('#UserSeq').val();\r\n profileSeq = $('#ProfileSeq').val();\r\n }\r\n\r\n Api.APIcaller.CallAction(\"/Configuration/CompanyConfig/AddManagersGroups\", { newGroup: data, userSeq: userSeq, profileSeq: profileSeq }, \"POST\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n });\r\n\r\n $(document).off('click', '#ChkAddManager');\r\n $(document).on('click', '#ChkAddManager', function () {\r\n if ($(this).is(':checked')) {\r\n $(\"div[class*='addmanager_']\").each(function () {\r\n $(this).removeClass('hide');\r\n $(this).find('input').addClass('validation-required');\r\n $(this).find('label').addClass('required');\r\n });\r\n $('#UserSeq').trigger('change');\r\n }\r\n else {\r\n $(\"div[class*='addmanager_']\").each(function () {\r\n $(this).addClass('hide');\r\n $(this).find('input').removeClass('validation-required');\r\n $(this).find('label').removeClass('required');\r\n });\r\n $('#GroupName').trigger('change');\r\n }\r\n });\r\n\r\n $(document).off('change copy paste keyup', '#GroupName');\r\n $(document).on('change copy paste keyup', '#GroupName', function () {\r\n if ($(this).val() != \"\") {\r\n if ($('#ChkAddManager').is(':checked')) {\r\n var user_selected_option = $('#UserSeq option:selected');\r\n var profile_selected_option = $('#ProfileSeq option:selected');\r\n\r\n if (user_selected_option.val() != \"\" && profile_selected_option.val() != \"\") {\r\n enableAddButton();\r\n }\r\n else {\r\n disableAddButton();\r\n }\r\n }\r\n else {\r\n enableAddButton();\r\n }\r\n }\r\n else {\r\n disableAddButton();\r\n }\r\n });\r\n\r\n $(document).off('change', 'select');\r\n $(document).on('change', 'select', function () {\r\n var user_selected_option = $('#UserSeq option:selected');\r\n var profile_selected_option = $('#ProfileSeq option:selected');\r\n\r\n if (user_selected_option.val() != \"\" && profile_selected_option.val() != \"\") {\r\n if ($('#GroupName').val() != \"\") {\r\n enableAddButton();\r\n }\r\n else {\r\n disableAddButton();\r\n }\r\n }\r\n else {\r\n disableAddButton();\r\n }\r\n });\r\n\r\n function enableAddButton() {\r\n $('#btnaddmanagersgroups').attr('disabled', false);\r\n }\r\n\r\n function disableAddButton() {\r\n $('#btnaddmanagersgroups').attr('disabled', true);\r\n }\r\n\r\n },\r\n editgroup: function () {\r\n\r\n $(document).off('click', '#btneditmanagersgroups');\r\n $(document).on('click', '#btneditmanagersgroups', function () {\r\n let options = {};\r\n options[\"tofadein\"] = null;\r\n options[\"loading\"] = this;\r\n\r\n var data = {\r\n GroupSeq: $('#Group_GroupSeq').val(),\r\n GroupName: $('#GroupName').val(),\r\n HideEmployees: $('#ChkHideEmployees').is(':checked'),\r\n Active: $('#Active').is(':checked')\r\n };\r\n\r\n var userSeq = $('#UserSeq').val();\r\n\r\n Api.APIcaller.CallAction(\"/Configuration/CompanyConfig/EditManagersGroups\", { newGroup: data, userSeq: userSeq }, \"POST\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n });\r\n\r\n $(document).off('change copy paste keyup', '#GroupName');\r\n $(document).on('change copy paste keyup', '#GroupName', function () {\r\n if ($(this).val() != \"\") {\r\n enableAddButton();\r\n }\r\n else {\r\n disableAddButton();\r\n }\r\n });\r\n\r\n function enableAddButton() {\r\n $('#btneditmanagersgroups').attr('disabled', false);\r\n }\r\n\r\n function disableAddButton() {\r\n $('#btneditmanagersgroups').attr('disabled', true);\r\n }\r\n\r\n if ($('#GroupName').val() != \"\") {\r\n enableAddButton();\r\n }\r\n else {\r\n disableAddButton();\r\n }\r\n\r\n },\r\n addmanager: function () {\r\n $(document).off('click', '.dropdown-user');\r\n $(document).on('click', '.dropdown-user', function () {\r\n let value = $(this).data('value');\r\n let text = $(this).html();\r\n\r\n $('#dropdownsearch').val(text);\r\n $('#UserSeq').val(value);\r\n $('#UserSeq').trigger(\"change\");\r\n });\r\n\r\n $(document).off('change', '#UserId');\r\n $(document).on('change', '#UserId', function () {\r\n $('#btnaddwerknemer').attr('disabled', !$(this).val());\r\n });\r\n\r\n $(document).off('change', '#dropdownsearch');\r\n $(document).on('change', '#dropdownsearch', function () {\r\n $('#UserSeq').val(null);\r\n $('#UserSeq').trigger(\"change\");\r\n });\r\n\r\n $(document).off('click', '#btnaddmanager');\r\n $(document).on('click', '#btnaddmanager', function () {\r\n let options = {};\r\n options[\"tofadein\"] = null;\r\n options[\"loading\"] = this;\r\n \r\n var groupId = $('#Group_GroupSeq').val();\r\n var userSeq = $('#UserSeq').val();\r\n var mainManager = $('#MainManager').is(':checked');\r\n var profileSeq = $('#ProfileSeq').val();\r\n\r\n if ($('#ManagerBodyId').hasClass('hide')) {\r\n mainManager = null;\r\n profileSeq = null;\r\n }\r\n\r\n\r\n Api.APIcaller.CallAction(\"/Configuration/CompanyConfig/AddManager\", { groupId: groupId, userSeq: userSeq, mainManager: mainManager, profileSeq: profileSeq }, \"POST\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n });\r\n\r\n $(document).off('change', '#UserSeq');\r\n $(document).on('change', '#UserSeq', function () {\r\n var userSeq = $(this).val();\r\n\r\n if (userSeq <= 0 || userSeq == null) {\r\n $('#ManagerBodyId').addClass('hide');\r\n return;\r\n }\r\n\r\n let options = {};\r\n options[\"tofadein\"] = null;\r\n options[\"loading\"] = null;\r\n\r\n Api.APIcaller.CallAction(\"/Configuration/CompanyConfig/CheckHasManager\", { userSeq: userSeq }, \"GET\", checkSuccess, null, null, options, Api.APIcaller.CancelOptions.None);\r\n\r\n checkAddButton();\r\n\r\n });\r\n\r\n $(document).off('change', '#ProfileSeq');\r\n $(document).on('change', '#ProfileSeq', function () {\r\n checkAddButton();\r\n });\r\n\r\n function checkSuccess(response) {\r\n if (!response.jsoNresults[0].hasManager) {\r\n $('#ManagerBodyId').removeClass('hide');\r\n }\r\n else {\r\n $('#ManagerBodyId').addClass('hide');\r\n enableAddButton();\r\n }\r\n }\r\n\r\n function checkAddButton() {\r\n var user_selected_option = $('#UserSeq option:selected');\r\n var profile_selected_option = $('#ProfileSeq option:selected');\r\n\r\n if (user_selected_option.val() != \"\" && profile_selected_option.val() != \"\") {\r\n enableAddButton();\r\n }\r\n else {\r\n disableAddButton();\r\n }\r\n }\r\n\r\n function enableAddButton() {\r\n $('#btnaddmanager').attr('disabled', false);\r\n }\r\n\r\n function disableAddButton() {\r\n $('#btnaddmanager').attr('disabled', true);\r\n }\r\n\r\n },\r\n initAddWerknemer: function () {\r\n $(document).off('click', '.addwerknemer');\r\n $(document).on('click', '.addwerknemer', function () {\r\n let groupId = +$('.managersgroup.active').data('groupid');\r\n\r\n let options = {};\r\n options[\"tofadein\"] = \"#ManagersGroups_ContainerId\";\r\n options[\"loading\"] = \"\";\r\n\r\n Api.APIcaller.CallAction(\"/Configuration/CompanyConfig/AddGroepWerknemerPopup\", { groupId: groupId }, \"GET\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n });\r\n },\r\n initAddWerknemerPopup: function () {\r\n $(document).off('click', '.dropdown-user');\r\n $(document).on('click', '.dropdown-user', function () {\r\n let value = $(this).data('value');\r\n let text = $(this).html();\r\n\r\n $('#dropdownsearch').val(text);\r\n $('#UserId').val(value);\r\n $('#UserId').trigger(\"change\");\r\n });\r\n\r\n $(document).off('change', '#UserId');\r\n $(document).on('change', '#UserId', function () {\r\n $('#btnaddwerknemer').attr('disabled', !$(this).val());\r\n });\r\n\r\n $(document).off('change', '#dropdownsearch');\r\n $(document).on('change', '#dropdownsearch', function () {\r\n $('#UserId').val(null);\r\n $('#UserId').trigger(\"change\");\r\n });\r\n\r\n $(document).off('click', '#btnaddwerknemer');\r\n $(document).on('click', '#btnaddwerknemer', function () {\r\n let groupId = +$('#GroupAddId').val();\r\n let userId = +$('#UserId').val();\r\n\r\n let options = {};\r\n options[\"tofadein\"] = \"#ManagersGroups_ContainerId\";\r\n options[\"loading\"] = \"\";\r\n\r\n Api.APIcaller.CallAction(\"/Configuration/CompanyConfig/AddGroepWerknemer\", { groupId: groupId, werknemerId: userId }, \"POST\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n });\r\n },\r\n deleteGroupEvent: function () {\r\n $(document).off('click', '.btndeleterecord');\r\n $(document).on('click', '.btndeleterecord', function () {\r\n var options = {};\r\n\r\n let recordid = $(this).data('recordid');\r\n \r\n options[\"tofadein\"] = null;\r\n options[\"loading\"] = this;\r\n\r\n Api.APIcaller.CallAction(\"/Configuration/companyconfig/deleteManagersgroup\", { recordId: recordid }, \"POST\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n });\r\n },\r\n licenses: function () {\r\n $('[id*=\"check_\"]').bind('change', function () {\r\n enableSave(true);\r\n });\r\n\r\n $('#savemodules').bind('click', function () {\r\n Api.Main.clearNotify();\r\n\r\n var options = {};\r\n\r\n options[\"tofadein\"] = '#Modules';\r\n options[\"loading\"] = this;\r\n\r\n var modules = getModules();\r\n\r\n Api.APIcaller.CallAction(\"/Configuration/companyconfig/saveModules\", { modules }, \"POST\", success, null, null, options, Api.APIcaller.CancelOptions.None);\r\n\r\n function success(response) {\r\n if (!response.hasErrorText) {\r\n enableSave(false);\r\n }\r\n Api.APIcaller.defaultSuccessHandler(response);\r\n }\r\n\r\n function getModules() {\r\n let checkboxes = $('[id*=\"check_\"]');\r\n\r\n var modules = [];\r\n for (let i = 0; i < checkboxes.length; i++) {\r\n var checkbox = $(checkboxes[i]);\r\n\r\n var id = checkbox.attr('id').split('_')[1];\r\n var active = checkbox.is(':checked');\r\n var name = $(\"#name_\" + id).text()\r\n\r\n modules.push({ id, active, name });\r\n }\r\n\r\n return modules;\r\n }\r\n });\r\n\r\n function enableSave(enabled) {\r\n if (enabled) {\r\n $('#savemodules').prop('disabled', false);\r\n } else {\r\n $('#savemodules').prop('disabled', true);\r\n }\r\n }\r\n },\r\n externalapi: function () {\r\n APPLOYED.configuration.companyconfig.externalapiBindEvent();\r\n\r\n var externalApiKeySeq = $('#ExternalApiKeySeq').val();\r\n\r\n if (externalApiKeySeq == 0) {\r\n $('button[data-action=\"btndeletekey\"]').attr('disabled', 'disabled');\r\n $('.btnregenkey').attr('disabled', 'disabled');\r\n $('.btnmodifykey').attr('disabled', 'disabled');\r\n $('.btnmodifykey').addClass('disabled');\r\n }\r\n\r\n APPLOYED.cookies.set('ExternalApiTab', externalApiKeySeq, 1);\r\n APPLOYED.configuration.companyconfig.externalapiGetView();\r\n },\r\n externalapiGetView: function () {\r\n var options = {};\r\n options[\"tofadein\"] = \"div[id*='_ContainerId']\";\r\n\r\n var externalApiKeySeq = APPLOYED.cookies.get('ExternalApiTab');\r\n\r\n if (externalApiKeySeq == 0) {\r\n return;\r\n }\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/LoadExternalApiPermissions\", { externalApiKeySeq }, \"GET\", null, null, finished, options, Api.APIcaller.CancelOptions.None);\r\n\r\n function finished() {\r\n APPLOYED.element.dynamicHeight('.externalapipermissiontable', '.mainscreensized', 100);\r\n }\r\n },\r\n externalapiBindEvent: function () {\r\n $(\".smallcube\").unbind('click');\r\n $(\".smallcube\").bind('click', function () {\r\n $('.smallcube').removeClass('active');\r\n $(this).addClass('active');\r\n\r\n APPLOYED.cookies.set('ExternalApiTab', $(this).data('externalapikeyseq'), 1);\r\n\r\n APPLOYED.configuration.companyconfig.externalapiGetView();\r\n });\r\n\r\n $(\"#btnregenkey\").unbind('click');\r\n $(\"#btnregenkey\").bind('click', function () {\r\n var options = {};\r\n options[\"tofadein\"] = null;\r\n options[\"loading\"] = this;\r\n\r\n var externalApiKeySeq = APPLOYED.cookies.get('ExternalApiTab');\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/RegenExternalApiSecret\", { externalApiKeySeq }, \"POST\", null, null, () => { $('#confirmregenmodal').hide(); } , options, Api.APIcaller.CancelOptions.None);\r\n \r\n });\r\n\r\n $(\".btndeletekey\").unbind('click');\r\n $(\".btndeletekey\").bind('click', function () {\r\n var options = {};\r\n\r\n options[\"tofadein\"] = null;\r\n options[\"loading\"] = this;\r\n\r\n var externalApiKeySeq = APPLOYED.cookies.get('ExternalApiTab');\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/DeleteExternalApiKey\", { externalApiKeySeq }, \"POST\", null, null, () => { $('#confirmregenmodal').hide(); }, options, Api.APIcaller.CancelOptions.None);\r\n \r\n });\r\n\r\n $(\".btnaddkey\").unbind('click');\r\n $(\".btnaddkey\").bind('click', function () {\r\n var options = {};\r\n options[\"tofadein\"] = \"div[id*='_ContainerId']\";\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/AddExternalApiKeyScreen\", { } , \"GET\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n });\r\n\r\n $(\".btnmodifykey\").unbind('click');\r\n $(\".btnmodifykey\").bind('click', function () {\r\n var options = {};\r\n options[\"tofadein\"] = \"div[id*='_ContainerId']\";\r\n\r\n var externalApiKeySeq = APPLOYED.cookies.get('ExternalApiTab');\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/ModifyExternalApiKeyScreen\", { externalApiKeySeq }, \"GET\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n });\r\n },\r\n initExternalAPiPermissionsPV: function () {\r\n APPLOYED.element.dynamicHeight('.externalapipermissiontable', '.mainscreensized', 100);\r\n\r\n var element = $('#ExternalApiPermTable');\r\n var columDefs = [\r\n {\r\n \"targets\": 2,\r\n \"orderDataType\": \"dom-checkbox\"\r\n }];\r\n\r\n APPLOYED.table.dataTable(element, false, true, false, true, columDefs);\r\n\r\n $('.btnsaveperm').unbind('click');\r\n $('.btnsaveperm').bind('click', function () {\r\n $('#ExternalApiPermTable_filter').find('input').val('').keyup();\r\n\r\n var permissions = [];\r\n var externalApiKeySeq = APPLOYED.cookies.get('ExternalApiTab');\r\n var table = element.find('tbody');\r\n\r\n table.find('tr').each(function () {\r\n var item = $(this);\r\n\r\n if (item.find('td input[type=\"checkbox\"]').eq(0).is(':checked')) {\r\n permissions.push($(item).data('externalapiviewseq'));\r\n }\r\n });\r\n\r\n var options = {};\r\n options[\"tofadein\"] = \"div[id*='_ContainerId']\";\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/UpdateExternalApiPermissions\", { permissions, externalApiKeySeq }, \"POST\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n });\r\n },\r\n initExternalApiAddPV: function () {\r\n $(\".btnexternalapikeyname\").bind('click', function () {\r\n var options = {};\r\n options[\"tofadein\"] = \"div[id*='_ContainerId']\";\r\n\r\n let body = {\r\n keyname = $('#keyname').val(),\r\n languageseq = $('#languageSelection').find(\":selected\").val()\r\n }\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/AddExternalApiKey\", body, \"POST\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n });\r\n },\r\n initExternalApiModifyPV: function () {\r\n $(\".btnexternalapikeyname\").bind('click', function () {\r\n var options = {};\r\n options[\"tofadein\"] = \"div[id*='_ContainerId']\";\r\n\r\n let body = {\r\n externalApiKeySeq: $('#ModifyExternalApiKeySeq').val(),\r\n keyname = $('#keyname').val()\r\n }\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/ModifyExternalApiKey\", body, \"POST\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n });\r\n },\r\n initExternalApiAddModal: function () {\r\n function redirect() {\r\n var newId = $('#modal_popup').find('#ExternalApiKeySeq').val();\r\n window.location = 'externalapi?externalapikeyseq=' + newId;\r\n }\r\n\r\n $('#modal_popup').on('hidden.bs.modal', function () {\r\n redirect();\r\n });\r\n\r\n $(document).on('click', '.btn_close', function () {\r\n redirect();\r\n });\r\n\r\n $(document).off('click', '#copy-clientid');\r\n $(document).on('click', '#copy-clientid', function () {\r\n let val = $('#clientid').data('value');\r\n\r\n navigator.clipboard.writeText(val);\r\n });\r\n\r\n $(document).off('click', '#copy-clientsecret');\r\n $(document).on('click', '#copy-clientsecret', function () {\r\n let val = $('#clientsecret').data('value');\r\n\r\n navigator.clipboard.writeText(val);\r\n });\r\n },\r\n securityprofiles: function () {\r\n APPLOYED.configuration.companyconfig.securityProfilesBindEvent();\r\n\r\n var permissionId = $('#PermissionId').val();\r\n APPLOYED.cookies.set('SecurityProfilesTab', permissionId, 1);\r\n APPLOYED.configuration.companyconfig.securityProfilesGetView();\r\n },\r\n securityProfilesGetView: function () {\r\n var options = {};\r\n\r\n options[\"tofadein\"] = \"div[id*='_ContainerId']\";\r\n\r\n var profileId = $('#ProfileId').val();\r\n\r\n var tabContainer = APPLOYED.cookies.get('SecurityProfilesTab');\r\n\r\n var profileName = $('#ProfileId option:selected').text();\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/LoadSecurityProfiles\", { profileId: profileId, tabContainer: tabContainer, profileName: profileName }, \"GET\", null, null, finished, options, Api.APIcaller.CancelOptions.None);\r\n\r\n function finished() {\r\n APPLOYED.element.dynamicHeight('.securitypermissiontable', '.mainscreensized', 175);\r\n }\r\n },\r\n securityProfilesBindEvent: function () {\r\n\r\n $(\".smallcube\").unbind('click');\r\n $(\".smallcube\").bind('click', function () {\r\n $('.smallcube').removeClass('active');\r\n $(this).addClass('active');\r\n\r\n APPLOYED.cookies.set('SecurityProfilesTab', $(this).data('permission'), 1);\r\n\r\n APPLOYED.configuration.companyconfig.securityProfilesGetView();\r\n });\r\n\r\n $(\".btnaddprofile\").unbind('click');\r\n $(\".btnaddprofile\").bind('click', function () {\r\n\r\n var options = {};\r\n\r\n options[\"tofadein\"] = \"div[id*='_ContainerId']\";\r\n\r\n Api.APIcaller.CallAction(\"/Configuration/CompanyConfig/SecurityAddProfile\", {}, \"GET\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n\r\n });\r\n\r\n $(\".btndeleteprofile\").unbind('click');\r\n $(\".btndeleteprofile\").bind('click', function () {\r\n\r\n var options = {};\r\n\r\n options[\"tofadein\"] = \"div[id*='_ContainerId']\";\r\n\r\n var profileId = $('#ProfileId').val();\r\n\r\n Api.APIcaller.CallAction(\"/Configuration/CompanyConfig/SecurityDeleteProfile\", { ProfileId: profileId }, \"POST\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n\r\n $('#confirmdeletemodal').hide();\r\n\r\n });\r\n\r\n $(\".btnresetprofile\").unbind('click');\r\n $(\".btnresetprofile\").bind('click', function () {\r\n var profileId = $('#ProfileId').val();\r\n var profileName = $('#ProfileId option:selected').text();\r\n\r\n var options = {};\r\n options[\"tofadein\"] = \"div[id*='_ContainerId']\";\r\n\r\n Api.APIcaller.CallAction(\"/Configuration/CompanyConfig/SecurityResetProfile\", { profileId, profileName }, \"GET\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n });\r\n\r\n APPLOYED.configuration.companyconfig.initProfileList();\r\n },\r\n initResetProfile() {\r\n APPLOYED.modal.initPopup();\r\n APPLOYED.validator.bindRequiredFields('.resetprofiletemplateselect', '#confirmprofileresetmodalaction', true);\r\n\r\n $('#confirmprofileresetmodalaction').unbind('click');\r\n $('#confirmprofileresetmodalaction').bind('click', function () {\r\n var profileId = $('#ProfileId').val();\r\n var templateProfileId = $('#TemplateProfilesList').val();\r\n var permission = $('.smallcube.active').data('permission');\r\n\r\n var options = {};\r\n options[\"tofadein\"] = \"div[id*='_ContainerId']\";\r\n\r\n Api.APIcaller.CallAction(\"/Configuration/CompanyConfig/SecurityResetProfile\", { profileId, templateProfileId, permission }, \"POST\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n });\r\n },\r\n initCategoryPermPV: function () {\r\n APPLOYED.element.dynamicHeight('.securitypermissiontable', '.mainscreensized', 175);\r\n\r\n var element = $('#CategoryPermTable');\r\n var columDefs = [\r\n {\r\n \"targets\": [1],\r\n \"orderDataType\": \"dom-checkbox\"\r\n }];\r\n\r\n APPLOYED.table.dataTable(element, false, true, false, true, columDefs);\r\n\r\n $('.btnsavecategoryperm').unbind('click');\r\n $('.btnsavecategoryperm').bind('click', function () {\r\n $('#CategoryPermTable_filter').find('input').val('').keyup();\r\n\r\n var permissions = [];\r\n var table = element.find('tbody');\r\n\r\n table.find('tr').each(function () {\r\n var item = $(this);\r\n\r\n var permission = {\r\n CategorySeq: item.data('categoryseq'),\r\n DisplayName: item.find('td').eq(0).text(),\r\n CanView: item.find('td input[type=\"checkbox\"]').eq(0).is(':checked')\r\n };\r\n permissions.push(permission);\r\n });\r\n\r\n var permissionContainer = {\r\n ProfileSeq: $('#ProfileId').val(),\r\n Permissions: permissions\r\n };\r\n var options = {};\r\n\r\n options[\"tofadein\"] = \"div[id*='_ContainerId']\";\r\n\r\n Api.APIcaller.CallAction(\"/Configuration/CompanyConfig/SecurityprofilesSaveCategoryPerm\", { PermissionContainer: permissionContainer, CategoryPermissionList: permissions }, \"POST\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n });\r\n },\r\n initAttachmentPermPV: function () {\r\n APPLOYED.element.dynamicHeight('.securitypermissiontable', '.mainscreensized', 175);\r\n\r\n var element = $('#AttachmentPermTable');\r\n var columDefs = [\r\n {\r\n \"targets\": [1, 2, 3],\r\n \"orderDataType\": \"dom-checkbox\"\r\n }];\r\n\r\n APPLOYED.table.dataTable(element, false, true, false, true, columDefs);\r\n\r\n $('.btnsaveattachmentperm').unbind('click');\r\n $('.btnsaveattachmentperm').bind('click', function () {\r\n $('#AttachmentPermTable_filter').find('input').val('').keyup();\r\n\r\n var permissions = [];\r\n var table = element.find('tbody');\r\n\r\n table.find('tr').each(function () {\r\n var item = $(this);\r\n\r\n var permission = {\r\n TableSeq: item.data('attachmentseq'),\r\n DisplayName: item.find('td').eq(0).text(),\r\n CanViewDocs: item.find('td input[type=\"checkbox\"]').eq(0).is(':checked'),\r\n CanUpdateDocs: item.find('td input[type=\"checkbox\"]').eq(1).is(':checked'),\r\n CanDeleteDocs: item.find('td input[type=\"checkbox\"]').eq(2).is(':checked')\r\n };\r\n permissions.push(permission);\r\n });\r\n\r\n var permissionContainer = {\r\n ProfileSeq: $('#ProfileId').val(),\r\n Permissions: permissions\r\n };\r\n var options = {};\r\n\r\n options[\"tofadein\"] = \"div[id*='_ContainerId']\";\r\n\r\n Api.APIcaller.CallAction(\"/Configuration/CompanyConfig/SecurityprofilesSaveAttachmentPerm\", { PermissionContainer: permissionContainer, AttachmentPermissionList: permissions }, \"POST\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n });\r\n\r\n },\r\n initConfigItemPermPV: function () {\r\n APPLOYED.element.dynamicHeight('.securitypermissiontable', '.mainscreensized', 175);\r\n\r\n var element = $('#ConfigItemPermTable');\r\n var columDefs = [\r\n {\r\n \"targets\": 2,\r\n \"orderDataType\": \"dom-checkbox\"\r\n }];\r\n\r\n APPLOYED.table.dataTable(element, false, true, false, true, columDefs);\r\n\r\n $('.btnsaveconfigitemperm').unbind('click');\r\n $('.btnsaveconfigitemperm').bind('click', function () {\r\n $('#ConfigItemPermTable_filter').find('input').val('').keyup();\r\n\r\n var permissions = [];\r\n var table = element.find('tbody');\r\n\r\n table.find('tr').each(function () {\r\n var item = $(this);\r\n\r\n var permission = {\r\n ConfigurationItemSeq: item.data('configitemseq'),\r\n OwnerName: item.find('td').eq(0).text(),\r\n DisplayName: item.find('td').eq(1).text(),\r\n CanOpen: item.find('td input[type=\"checkbox\"]').eq(0).is(':checked')\r\n };\r\n permissions.push(permission);\r\n });\r\n\r\n var permissionContainer = {\r\n ProfileSeq: $('#ProfileId').val(),\r\n Permissions: permissions\r\n };\r\n var options = {};\r\n\r\n options[\"tofadein\"] = \"div[id*='_ContainerId']\";\r\n\r\n Api.APIcaller.CallAction(\"/Configuration/CompanyConfig/SecurityprofilesSaveConfigItemPerm\", { PermissionContainer: permissionContainer, ConfigItemPermissionList: permissions }, \"POST\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n });\r\n\r\n },\r\n initLetterPermPV: function () {\r\n APPLOYED.element.dynamicHeight('.securitypermissiontable', '.mainscreensized', 175);\r\n\r\n var element = $('#LetterPermTable');\r\n var columDefs = [\r\n {\r\n \"targets\": [2, 3],\r\n \"orderDataType\": \"dom-checkbox\"\r\n }];\r\n\r\n APPLOYED.table.dataTable(element, false, true, false, true, columDefs);\r\n\r\n $('.btnsaveletterperm').unbind('click');\r\n $('.btnsaveletterperm').bind('click', function () {\r\n $('#LetterPermTable_filter').find('input').val('').keyup();\r\n\r\n var permissions = [];\r\n var table = element.find('tbody');\r\n\r\n table.find('tr').each(function () {\r\n var item = $(this);\r\n\r\n var permission = {\r\n LetterSeq: item.data('letterseq'),\r\n DisplayName: item.find('td').eq(0).text(),\r\n OwnerName: item.find('td').eq(1).text(),\r\n CanOpen: item.find('td input[type=\"checkbox\"]').eq(0).is(':checked'),\r\n CanEdit: item.find('td input[type=\"checkbox\"]').eq(1).is(':checked')\r\n };\r\n permissions.push(permission);\r\n });\r\n\r\n var permissionContainer = {\r\n ProfileSeq: $('#ProfileId').val(),\r\n Permissions: permissions\r\n };\r\n var options = {};\r\n\r\n options[\"tofadein\"] = \"div[id*='_ContainerId']\";\r\n\r\n Api.APIcaller.CallAction(\"/Configuration/CompanyConfig/SecurityprofilesSaveLetterPerm\", { PermissionContainer: permissionContainer, LetterPermissionList: permissions }, \"POST\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n });\r\n\r\n },\r\n initReportPermPV: function () {\r\n APPLOYED.element.dynamicHeight('.securitypermissiontable', '.mainscreensized', 175);\r\n\r\n var element = $('#ReportPermTable');\r\n var columDefs = [\r\n {\r\n \"targets\": 2,\r\n \"orderDataType\": \"dom-checkbox\"\r\n }];\r\n\r\n APPLOYED.table.dataTable(element, false, true, false, true, columDefs);\r\n\r\n $('.btnsavereportperm').unbind('click');\r\n $('.btnsavereportperm').bind('click', function () {\r\n $('#ReportPermTable_filter').find('input').val('').keyup();\r\n\r\n var permissions = [];\r\n var table = element.find('tbody');\r\n\r\n table.find('tr').each(function () {\r\n var item = $(this);\r\n\r\n var permission = {\r\n ReportSeq: item.data('reportseq'),\r\n DisplayName: item.find('td').eq(0).text(),\r\n OwnerName: item.find('td').eq(1).text(),\r\n CanOpen: item.find('td input[type=\"checkbox\"]').eq(0).is(':checked')\r\n };\r\n permissions.push(permission);\r\n });\r\n\r\n var permissionContainer = {\r\n ProfileSeq: $('#ProfileId').val(),\r\n Permissions: permissions\r\n };\r\n var options = {};\r\n\r\n options[\"tofadein\"] = \"div[id*='_ContainerId']\";\r\n\r\n Api.APIcaller.CallAction(\"/Configuration/CompanyConfig/SecurityprofilesSaveReportPerm\", { PermissionContainer: permissionContainer, ReportPermissionList: permissions }, \"POST\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n });\r\n\r\n },\r\n initScreenPermPV: function () {\r\n APPLOYED.element.dynamicHeight('.securitypermissiontable', '.mainscreensized', 175);\r\n\r\n var element = $('#ScreenPermTable');\r\n var columDefs = [\r\n {\r\n \"targets\": [1, 2, 3, 4],\r\n \"orderDataType\": \"dom-checkbox\"\r\n }];\r\n\r\n APPLOYED.table.dataTable(element, false, true, false, true, columDefs);\r\n\r\n $('.btnsavesscreenperm').unbind('click');\r\n $('.btnsavesscreenperm').bind('click', function () {\r\n $('#ScreenPermTable_filter').find('input').val('').keyup();\r\n\r\n var permissions = [];\r\n var table = element.find('tbody');\r\n\r\n table.find('tr').each(function () {\r\n var item = $(this);\r\n\r\n var permission = {\r\n TableSeq: item.data('tableseq'),\r\n DisplayName: item.find('td').eq(0).text(),\r\n CanViewData: item.find('td input[type=\"checkbox\"]').eq(0).is(':checked'),\r\n CanUpdateData: item.find('td input[type=\"checkbox\"]').eq(1).is(':checked'),\r\n CanDeleteData: item.find('td input[type=\"checkbox\"]').eq(2).is(':checked'),\r\n CanUpdatePicklists: item.find('td input[type=\"checkbox\"]').eq(3).is(':checked')\r\n };\r\n permissions.push(permission);\r\n });\r\n\r\n var permissionContainer = {\r\n ProfileSeq: $('#ProfileId').val(),\r\n Permissions: permissions\r\n };\r\n var options = {};\r\n\r\n options[\"tofadein\"] = \"div[id*='_ContainerId']\";\r\n\r\n Api.APIcaller.CallAction(\"/Configuration/CompanyConfig/SecurityprofilesSaveScreenPerm\", { PermissionContainer: permissionContainer, ScreenPermissionList: permissions }, \"POST\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n });\r\n\r\n },\r\n initProfilesPV: function () {\r\n $(\".btnsaveprofilename\").unbind('click');\r\n $(\".btnsaveprofilename\").bind('click', function () {\r\n\r\n var options = {};\r\n\r\n options[\"tofadein\"] = \"button[id='save']\";\r\n\r\n var profileId = $(this).data('profileid');\r\n\r\n var profileName = $('#ProfileName').val();\r\n\r\n Api.APIcaller.CallAction(\"/Configuration/CompanyConfig/SecurityprofilesSaveProfileName\", { ProfileId: profileId, ProfileName: profileName }, \"POST\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n\r\n });\r\n },\r\n initProfileList: function () {\r\n $(\"#ProfileId\").unbind('change');\r\n $(\"#ProfileId\").bind('change', function () {\r\n APPLOYED.configuration.companyconfig.securityProfilesGetView();\r\n });\r\n },\r\n}","APPLOYED.configuration.development = {\r\n init: function () {\r\n APPLOYED.tableOverview.init();\r\n\r\n $('#childrenpages').removeAttr('disabled');\r\n },\r\n gespreksformulieren: function () {\r\n APPLOYED.element.dynamicHeight('#searchlist', '.mainscreensized', 65);\r\n APPLOYED.element.dynamicHeight('#gespreksformulierItemDetail', '.mainscreensized', 95);\r\n\r\n $(document).off('click', '.gespreksformulierItemSelect');\r\n $(document).on('click', '.gespreksformulierItemSelect', function () {\r\n selectItem(this);\r\n });\r\n\r\n let selectedId = $('#GespreksformulierId').val();\r\n\r\n if ($('tr[data-gespreksformulierid=\"' + selectedId + '\"]').length > 0) {\r\n $('tr[data-gespreksformulierid=\"' + selectedId + '\"]').trigger('click');\r\n }\r\n else {\r\n $('.gespreksformulierItemSelect').first().trigger('click');\r\n }\r\n\r\n function selectItem(item) {\r\n let id = $(item).data('gespreksformulierid');\r\n let filter = $('#Filter').val();\r\n $('#editlink').attr('href', \"/configuration/development/Gespreksformulieredit/\" + id + \"?filter=\" + filter);\r\n $('#editlink').removeClass('disabled');\r\n $('.deleteaction').data('record', id);\r\n $('.deleteaction').removeClass('disabled');\r\n\r\n $('.gespreksformulierItemSelect').removeClass('active');\r\n $(item).addClass('active');\r\n\r\n APPLOYED.loader.WaitLoaderOn(\"div[id='gespreksformulierItemDetail']\");\r\n\r\n var option = {};\r\n option[\"tofadein\"] = null;\r\n Api.APIcaller.CallAction(\"/Ajax/GetGespreksformulier\", { id, filter }, \"GET\", null, null, finished, option, Api.APIcaller.CancelOptions.None);\r\n\r\n function finished() {\r\n APPLOYED.loader.ClearLoaderList();\r\n }\r\n }\r\n\r\n $(document).off('click', '.collapse-open');\r\n $(document).on('click', '.collapse-open', function () {\r\n let target = $(this).data('target');\r\n\r\n $(this).hide();\r\n $('.collapse-close[data-target=\"' + target + '\"]').show();\r\n $(target).show();\r\n });\r\n\r\n $(document).off('click', '.collapse-close');\r\n $(document).on('click', '.collapse-close', function () {\r\n let target = $(this).data('target');\r\n\r\n $(this).hide();\r\n $('.collapse-open[data-target=\"' + target + '\"]').show();\r\n $(target).hide();\r\n });\r\n },\r\n gespreksformulieredit: function () {\r\n $(document).off('click', '.collapse-open');\r\n $(document).on('click', '.collapse-open', function () {\r\n let target = $(this).data('target');\r\n\r\n $(this).hide();\r\n $('.collapse-close[data-target=\"' + target + '\"]').show();\r\n $(this).closest('.onderdeel').find(target).show();\r\n });\r\n\r\n $(document).off('click', '.collapse-close');\r\n $(document).on('click', '.collapse-close', function () {\r\n let target = $(this).data('target');\r\n\r\n $(this).hide();\r\n $('.collapse-open[data-target=\"' + target + '\"]').show();\r\n $(this).closest('.onderdeel').find(target).hide();\r\n });\r\n\r\n $(document).off('click', '.delete_part');\r\n $(document).on('click', '.delete_part', function () {\r\n let onderdeel = $(this).closest('.onderdeel');\r\n let data = jQuery.parseJSON($(onderdeel).find('input[name=\"OnderdelenJson[]\"]').val());\r\n\r\n $(onderdeel).find('input[name=\"GesprekscriteriaId[]\"]').remove();\r\n\r\n if (data.GespreksformulierOnderdeelId > 0) {\r\n data.Delete = true;\r\n $(onderdeel).find('input[name=\"OnderdelenJson[]\"]').val(JSON.stringify(data));\r\n\r\n $(onderdeel).hide();\r\n } else {\r\n $(onderdeel).remove();\r\n }\r\n });\r\n\r\n $(document).off('click', '#add-onderdeel');\r\n $(document).on('click', '#add-onderdeel', function (e) {\r\n e.preventDefault(); // prevent default\r\n\r\n let blacklistIds = [];\r\n\r\n $('input[name=\"GesprekscriteriaId[]\"]').each(function () {\r\n blacklistIds.push($(this).val());\r\n });\r\n\r\n let options = {};\r\n options[\"tofadein\"] = \"\";\r\n options[\"loading\"] = \"a[id='add-onderdeel']\";\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/GetCriteriaWaardesFormulier\", { blacklistJson: JSON.stringify(blacklistIds) }, \"GET\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n });\r\n\r\n $(\"#onderdeelBody\").sortable({\r\n handle: \".handle\",\r\n axis: \"y\",\r\n containment: \"#onderdeelContainer\",\r\n change: function () { }\r\n });\r\n },\r\n initCriteriaPopup: function () {\r\n $(document).off('click', '.collapse-popup-open');\r\n $(document).on('click', '.collapse-popup-open', function () {\r\n let target = $(this).data('target');\r\n\r\n $(this).hide();\r\n $('.collapse-popup-close[data-target=\"' + target + '\"]').show();\r\n $(target).show();\r\n });\r\n\r\n $(document).off('click', '.collapse-popup-close');\r\n $(document).on('click', '.collapse-popup-close', function () {\r\n let target = $(this).data('target');\r\n\r\n $(this).hide();\r\n $('.collapse-popup-open[data-target=\"' + target + '\"]').show();\r\n $(target).hide();\r\n });\r\n\r\n $(document).off('click', '.add-part');\r\n $(document).on('click', '.add-part', function () {\r\n let id = $(this).closest('.row').data('gesprekscriteriaid');\r\n\r\n let options = {};\r\n options[\"tofadein\"] = \"\";\r\n options[\"loading\"] = \".add-part[data-gesprekscriteriaid='\" + id + \"']\";\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/AddFormulierCriteria\", { id }, \"GET\", null, null, finished, options, Api.APIcaller.CancelOptions.None);\r\n\r\n function finished() {\r\n $('#modal_popup').modal('hide'); // close modal after adding\r\n }\r\n });\r\n },\r\n gesprekscriteria: function () {\r\n let gesprekscriteriaid = $('#GesprekscriteriaId').val();\r\n\r\n $(\"tr[data-tableid='\" + gesprekscriteriaid + \"']\").trigger('click');\r\n\r\n if ($(\"tr[data-tableid='\" + gesprekscriteriaid + \"']\").length > 0) {\r\n $(\"tr[data-tableid='\" + gesprekscriteriaid + \"']\")[0].scrollIntoView({ behavior: \"smooth\", block: \"end\" });\r\n }\r\n\r\n $(document).on('click', '.toprow', function () {\r\n let id = $(this).data('tableid');\r\n\r\n var optionsConfig = {};\r\n optionsConfig[\"nofading\"] = false;\r\n optionsConfig[\"tofadein\"] = \"div[id='criteriawaardes']\";\r\n\r\n Api.APIcaller.CallAction(\"/ajax/getCriteriawaardes\", { id: id }, \"GET\", null, null, null, optionsConfig, Api.APIcaller.CancelOptions.None);\r\n });\r\n },\r\n criteriaWaardenDelete: function () {\r\n $(document).off('click', '.btndeleterecord');\r\n $(document).on('click', '.btndeleterecord', function () {\r\n let recordid = $('#confirmdeletemodalaction').data('record');\r\n let gesprekscriteriaid = $('#confirmdeletemodalaction').data('gesprekscriteriaid');\r\n let section = $('#confirmdeletemodalaction').data('section');\r\n\r\n let options = {};\r\n options[\"tofadein\"] = null;\r\n options[\"loading\"] = \"a[data-record='\" + recordid + \"']\";\r\n\r\n Api.APIcaller.CallAction(section, { recordid: recordid, gesprekscriteriaid: gesprekscriteriaid }, \"POST\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n });\r\n },\r\n gespreksdefinities: function () {\r\n let functiedefinitiesId = $('#FunctiedefinitiesId').val();\r\n\r\n $(\"tr[data-tableid='\" + functiedefinitiesId + \"']\").trigger('click');\r\n\r\n if ($(\"tr[data-tableid='\" + functiedefinitiesId + \"']\").length > 0) {\r\n $(\"tr[data-tableid='\" + functiedefinitiesId + \"']\")[0].scrollIntoView({ behavior: \"smooth\", block: \"end\" });\r\n }\r\n\r\n $(document).on('click', '.toprow', function () {\r\n let id = $(this).data('tableid');\r\n\r\n var optionsConfig = {};\r\n optionsConfig[\"nofading\"] = false;\r\n optionsConfig[\"tofadein\"] = \"div[id='definities']\";\r\n\r\n Api.APIcaller.CallAction(\"/ajax/GetGespreksdefinitiesItems\", { id: id }, \"GET\", null, null, null, optionsConfig, Api.APIcaller.CancelOptions.None);\r\n });\r\n },\r\n gespreksdefinitieDelete: function () {\r\n $(document).off('click', '.btndeleterecord');\r\n $(document).on('click', '.btndeleterecord', function () {\r\n let recordid = $('#confirmdeletemodalaction').data('record');\r\n let functiedefinitieId = $('#confirmdeletemodalaction').data('functiedefinitieId');\r\n let section = $('#confirmdeletemodalaction').data('section');\r\n\r\n let options = {};\r\n options[\"tofadein\"] = null;\r\n options[\"loading\"] = \"a[data-record='\" + recordid + \"']\";\r\n\r\n Api.APIcaller.CallAction(section, { recordid: recordid, functiedefinitieId: functiedefinitieId }, \"POST\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n });\r\n }\r\n}","APPLOYED.configuration.employment = {\r\n init: function () {\r\n APPLOYED.tableOverview.init();\r\n },\r\n contracten: function () {\r\n APPLOYED.tableOverview.init();\r\n $('#childrenpages').attr('disabled', false);\r\n },\r\n contractduur: function () {\r\n APPLOYED.configuration.employment.contracten();\r\n },\r\n contractcyclus: function () {\r\n APPLOYED.configuration.employment.contracten();\r\n },\r\n salarisschalen: function () {\r\n APPLOYED.element.dynamicHeight('#searchlist', '.mainscreensized', 65);\r\n\r\n initSelectedSchaal();\r\n initSelectedTrede();\r\n\r\n $(\".configsalarisschalensmallcube\").unbind('click');\r\n $(\".configsalarisschalensmallcube\").bind('click', function () {\r\n $('.configsalarisschalensmallcube').removeClass('active');\r\n $(this).addClass('active');\r\n\r\n setJaarSelected(this);\r\n\r\n var salarisschalenId = $(this).data('salarisschalenid');\r\n var filter = $('#Filter').val();\r\n\r\n var options = {};\r\n\r\n options[\"tofadein\"] = \"div[id*='Salarisschaal_ContainerId']\";\r\n Api.APIcaller.CallAction(\"/Configuration/Employment/LoadSalarisschaal\", { salarisschalenId, filter }, \"GET\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n });\r\n\r\n $(\".configjaarsmallcube\").unbind('click');\r\n $(\".configjaarsmallcube\").bind('click', function () {\r\n var isOpen = $(this).hasClass(\"opened\");\r\n\r\n if (isOpen) {\r\n closeJaar(this)\r\n } else {\r\n openJaar(this);\r\n }\r\n });\r\n\r\n function initSelectedSchaal() {\r\n var selectedRecordId = $('#SalarisschalenId').val();\r\n var selschaal = $('.configsalarisschalensmallcube[data-salarisschalenid=' + selectedRecordId + ']');\r\n $('.configsalarisschalensmallcube').removeClass('active');\r\n if (selschaal.data('salarisschalenid') == undefined || selschaal.data('salarisschalenid') == 'undefined') {\r\n selschaal = $('#searchlist div.configsalarisschalensmallcube').first();\r\n selectedRecordId = selschaal.data('salarisschalenid');\r\n }\r\n\r\n selschaal.addClass('active');\r\n\r\n var seljaar = getSelectedJaar(selschaal);\r\n if (seljaar.length > 0) {\r\n openJaar(seljaar);\r\n seljaar.addClass('selected');\r\n }\r\n\r\n if (!APPLOYED.element.isInScrollView(selschaal, \"#searchlist\")) {\r\n APPLOYED.element.scrollToElementInList(\"#searchlist\", selschaal, 0);\r\n }\r\n }\r\n\r\n function initSelectedTrede() {\r\n var tredeId = $('#SalaristredenId').val();\r\n if (typeof (tredeId) != 'undefined' && !!tredeId) {\r\n var seltrede = $('#trede_' + tredeId);\r\n if (seltrede.length > 0) {\r\n if (!APPLOYED.element.isInScrollView(seltrede, \"#tredenlist\")) {\r\n APPLOYED.element.scrollToElementInList(\"#tredenlist\", seltrede, 50);\r\n }\r\n seltrede.addClass('active');\r\n }\r\n }\r\n }\r\n\r\n function getSelectedJaar(selschaal) {\r\n return $(selschaal).closest('div[id^=\"schalen_\"]').prev();\r\n }\r\n\r\n function setJaarSelected(selschaal) {\r\n $(\".configjaarsmallcube\").removeClass('selected');\r\n var seljaar = getSelectedJaar(selschaal);\r\n seljaar.addClass('selected');\r\n }\r\n\r\n function closeJaar(el) {\r\n var target = $(el).data('target');\r\n $(target).hide();\r\n $(el).removeClass('opened');\r\n $(el).find('i.chevron').removeClass('fa-angle-down');\r\n $(el).find('i.chevron').addClass('fa-angle-right');\r\n }\r\n\r\n function openJaar(el) {\r\n var target = $(el).data('target');\r\n $(target).show();\r\n $(el).addClass('opened');\r\n $(el).find('i.chevron').removeClass('fa-angle-right');\r\n $(el).find('i.chevron').addClass('fa-angle-down');\r\n }\r\n\r\n APPLOYED.configuration.employment.bindSalarisTreden();\r\n },\r\n bindSalarisTreden: function () {\r\n $(\".configsalaristreden\").unbind('click');\r\n $(\".configsalaristreden\").bind('click', function () {\r\n $('.configsalaristreden').removeClass('active');\r\n $(this).addClass('active');\r\n });\r\n },\r\n salarisschaaledit: function () {\r\n $(\"#SoortSchaal\").unbind('click');\r\n $(\"#SoortSchaal\").bind('click', function () {\r\n var minMaxSchaalId = $('#MinMaxSchaalId').val();\r\n var soortSchaalId = $(this).val();\r\n var minMaxEnabled = (minMaxSchaalId == soortSchaalId);\r\n\r\n var minmaxvelden = $('#minmaxvelden');\r\n if (minMaxEnabled) {\r\n minmaxvelden.show();\r\n } else {\r\n minmaxvelden.hide();\r\n }\r\n });\r\n },\r\n salarisschaalloaded: function () {\r\n APPLOYED.configuration.employment.bindSalarisTreden();\r\n },\r\n bindSalarisSchaalDelete: function () {\r\n $(\".btndeletesalarisschaal\").unbind('click');\r\n $(\".btndeletesalarisschaal\").bind('click', function () {\r\n var salarisschalenId = $(this).data('salarisschalenid');\r\n var filter = $('#Filter').val();\r\n\r\n var options = {};\r\n\r\n options[\"tofadein\"] = \"\";\r\n Api.APIcaller.CallAction(\"/Configuration/Employment/DeleteSalarisschaalRecord\", { salarisschalenId, filter }, \"POST\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n $('#confirmdeletemodal').hide();\r\n });\r\n },\r\n bindSalarisTredeDelete: function (selId) {\r\n var seltrede = \".btndeletesalaristrede_\" + selId;\r\n $(seltrede).unbind('click');\r\n $(seltrede).bind('click', function () {\r\n var salaristredenId = $(this).data('salaristredenid');\r\n var salarisschalenId = $(this).data('salarisschalenid');\r\n var filter = $('#Filter').val();\r\n\r\n var options = {};\r\n\r\n options[\"tofadein\"] = \"\";\r\n Api.APIcaller.CallAction(\"/Configuration/Employment/DeleteSalaristredeRecord\", { salarisschalenId, salaristredenId, filter }, \"POST\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n $('#confirmdeletemodal').hide();\r\n });\r\n },\r\n weekroosterdefinities: function () {\r\n APPLOYED.weekroosters.weekroosterdefinities(\"employment\", false);\r\n },\r\n weekroosterdefinitieedit: function () {\r\n APPLOYED.weekroosters.weekroosterdefinitieedit(\"employment\", false);\r\n },\r\n looncomponentenedit: function () {\r\n $(document).off('change', '#ComponentTypeId');\r\n $(document).on('change', '#ComponentTypeId', function () {\r\n EmptyDeltaLoonComponent();\r\n });\r\n\r\n $(document).off('change', '#InvoerTypeId');\r\n $(document).on('change', '#InvoerTypeId', function () {\r\n EmptyDeltaLoonComponent();\r\n });\r\n\r\n function EmptyDeltaLoonComponent() {\r\n $(\"#DeltaLoonComponentId\").val($(\"#DeltaLoonComponentId option:first\").val());\r\n }\r\n }\r\n}","APPLOYED.configuration.expenses = {\r\n init: function () {\r\n APPLOYED.tableOverview.init();\r\n },\r\n declaratiedefinities: function () {\r\n $(document).off('click', \".btndeletedeclaratiedefinities\");\r\n $(document).on('click', \".btndeletedeclaratiedefinities\", function () {\r\n var employeeId = $(\"#EmployeeId\").val();\r\n var recordId = $(this).data('record');\r\n let filter = $('#Filter').val();\r\n\r\n var options = {};\r\n\r\n options[\"tofadein\"] = \"\";\r\n Api.APIcaller.CallAction(\"/Configuration/Expenses/DeleteDeclaratieDefinitiesRecord\", { recordId: recordId, employeeid: employeeId, filter: filter }, \"POST\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n\r\n $('#confirmdeletemodal').hide();\r\n });\r\n },\r\n declaratiedefinitiesedit: function () {\r\n $('#NaarEmalsId').unbind('change');\r\n $('#NaarEmalsId').bind('change', function () {\r\n ShowHideVergoedingContainer($(this).val());\r\n EmptyLoonComponent();\r\n $('#Vergoeding').trigger('change');\r\n });\r\n\r\n $('#NaarEmalsId').unbind('keyup click');\r\n $('#NaarEmalsId').bind('keyup click', function () {\r\n ShowHideVergoedingContainer($(this).val());\r\n $('#Vergoeding').trigger('change');\r\n });\r\n\r\n function ShowHideVergoedingContainer(value) {\r\n if (value == \"183\" || value == 183) {\r\n $('#vergoeding_container').show();\r\n }\r\n else {\r\n $('#vergoeding_container').hide();\r\n }\r\n }\r\n\r\n function EmptyLoonComponent() {\r\n $(\"#LoonComponentId\").val($(\"#LoonComponentId option:first\").val());\r\n }\r\n\r\n }\r\n}","APPLOYED.configuration.hours = {\r\n projecten: function () {\r\n APPLOYED.element.dynamicHeight('#searchlist', '.mainscreensized', 65);\r\n APPLOYED.element.dynamicHeight('#ProjectHoursConfigProject_Edit_ContainerId', '.mainscreensized', 95);\r\n\r\n var selectedRecordId = $('#ProjectId').val();\r\n var obj = $('.configprojecthoursmallcube[data-projectid=' + selectedRecordId + ']');\r\n\r\n $('.smallcube').removeClass('active');\r\n\r\n if (obj.data('projectid') == undefined || obj.data('projectid') == 'undefined') {\r\n obj = $('#searchlist div.configprojecthoursmallcube').first();\r\n selectedRecordId = obj.data('projectid');\r\n }\r\n\r\n obj.addClass('active');\r\n\r\n $(\".configprojecthoursmallcube\").unbind('click');\r\n $(\".configprojecthoursmallcube\").bind('click', function () {\r\n $('.smallcube').removeClass('active');\r\n\r\n $(this).addClass('active');\r\n var filter = $('#Filter').val();\r\n\r\n var projectId = $(this).data('projectid');\r\n\r\n var options = {};\r\n\r\n options[\"tofadein\"] = \"div[id*='ProjectHoursConfigProject_Edit_ContainerId']\";\r\n Api.APIcaller.CallAction(\"/Ajax/LoadProjectHoursConfigProjectHour\", { projectId: projectId, filter: filter, isCaching: false }, \"GET\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n });\r\n\r\n APPLOYED.configuration.hours.bindConfigHoursActionEvents();\r\n },\r\n bindConfigHoursActionEvents: function () {\r\n $('.deelprojectgetactivities').closest('tr[data-deelprojectid=' + $('#DeelProjectId').val() + ']').addClass('active');\r\n\r\n $(\".btndeleteactivity\").unbind('click');\r\n $(\".btndeleteactivity\").bind('click', function () {\r\n var recordId = $(this).data('activityid');\r\n var projectid = $(this).data('projectid');\r\n var deelprojectid = $(this).data('deelprojectid');\r\n var filter = $(this).data('filter');\r\n\r\n var options = {};\r\n\r\n options[\"tofadein\"] = \"\";\r\n Api.APIcaller.CallAction(\"/Configuration/Hours/DeleteActivityRecord\", { recordId: recordId, projectid: projectid, deelprojectid: deelprojectid, filter: filter }, \"POST\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n\r\n $('#confirmdeletemodal').hide();\r\n });\r\n\r\n $(\".btndeletedeelproject\").unbind('click');\r\n $(\".btndeletedeelproject\").bind('click', function () {\r\n var employeeId = $(this).data('employeeid');\r\n var recordId = $(this).data('deelprojectid');\r\n var projectid = $(this).data('projectid');\r\n var filter = $(this).data('filter');\r\n\r\n var options = {};\r\n\r\n options[\"tofadein\"] = \"\";\r\n Api.APIcaller.CallAction(\"/Configuration/Hours/DeleteDeelProjectRecord\", { recordId: recordId, projectid: projectid, employeeid: employeeId, filter: filter }, \"POST\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n\r\n $('#confirmdeletemodal').hide();\r\n });\r\n\r\n $(\".btndeleteprojecten\").unbind('click');\r\n $(\".btndeleteprojecten\").bind('click', function () {\r\n var employeeId = $(this).data('employeeid');\r\n var recordId = $(this).data('projectid');\r\n var filter = $(this).data('filter');\r\n\r\n var options = {};\r\n\r\n options[\"tofadein\"] = \"\";\r\n Api.APIcaller.CallAction(\"/Configuration/Hours/DeleteProjectRecord\", { recordId: recordId, employeeid: employeeId, filter: filter }, \"POST\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n $('#confirmdeletemodal').hide();\r\n });\r\n\r\n $('.deelprojectgetactivities').unbind('click');\r\n $('.deelprojectgetactivities').bind('click', function () {\r\n $('.deelprojectgetactivities').closest('tr').removeClass('active');\r\n $(this).closest('tr').addClass('active');\r\n var filter = $(this).data('filter');\r\n\r\n var options = {};\r\n\r\n options[\"tofadein\"] = \"#ProjectActivities_ContainerId\";\r\n\r\n var projectId = $(this).closest('tr').data('projectid');\r\n var deelProjectId = $(this).closest('tr').data('deelprojectid');\r\n $('#DeelProjectId').val(deelProjectId);\r\n\r\n Api.APIcaller.CallAction(\"/Configuration/Hours/GetActivities\", { projectId: projectId, deelProjectId: deelProjectId, filter: filter }, \"GET\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n });\r\n },\r\n weekregistratieinstellingen: function () {\r\n $('input[id^=\"UurLonersVerlonen\"]').unbind('change');\r\n $('input[id^=\"UurLonersVerlonen\"]').bind('change', function () {\r\n\r\n if (APPLOYED.common.isTrue($('#UurLonersVerlonen').is(':checked'))) {\r\n $('.hideonnotspecific').show();\r\n }\r\n else {\r\n $('.hideonnotspecific').hide();\r\n }\r\n });\r\n\r\n $('input[id^=\"UurLonersVerlonen').trigger('change');\r\n }\r\n}","APPLOYED.configuration.personnel = {\r\n cookieSettingName = 'SettingsTab', // cookie\r\n\r\n init: function () {\r\n APPLOYED.tableOverview.init(APPLOYED.configuration.personnel.updateChildrenLink);\r\n },\r\n aanvraagedit: function () {\r\n APPLOYED.configuration.personnel.initEditMessage();\r\n },\r\n taakedit: function () {\r\n APPLOYED.configuration.personnel.initEditMessage();\r\n },\r\n taakcopy: function () {\r\n APPLOYED.configuration.personnel.initEditMessage();\r\n },\r\n aanvraagcopy: function () {\r\n APPLOYED.configuration.personnel.initEditMessage();\r\n },\r\n messagecenter: function () {\r\n\r\n var element = $('#MessageCenterOverViewtable');\r\n var columDefs = [\r\n {\r\n orderDataType: \"dom-checkbox\",\r\n targets: 0,\r\n },\r\n {\r\n searchable: false,\r\n targets: 6\r\n }\r\n ];\r\n var order = [\r\n //[1, 'desc'],\r\n //[2, 'asc']\r\n ];\r\n\r\n APPLOYED.table.dataTable(element, false, true, false, true, columDefs, order);\r\n \r\n $('#MessageCenterOverViewtable_filter').hide();\r\n\r\n var cook = APPLOYED.cookies.get(\"messagecenter_tablefilter\");\r\n if (cook != null && cook != \"\") {\r\n $('#searchinputbox').val(cook);\r\n var table = element.DataTable();\r\n table.search(cook).draw();\r\n }\r\n\r\n $(document).off('keyup copy paste', \"#searchinputbox\");\r\n $(document).on('keyup copy paste', \"#searchinputbox\", function () {\r\n var table = element.DataTable();\r\n table.search($(this).val()).draw();\r\n\r\n APPLOYED.cookies.set(\"messagecenter_tablefilter\", $(this).val(), 1);\r\n });\r\n\r\n $(document).off('click', '#MessageCenterOverViewtable tr');\r\n $(document).on('click', '#MessageCenterOverViewtable tr', function () {\r\n if ($(this).hasClass(\"selected\")) {\r\n let recordid = $(this).data('recordid');\r\n\r\n $('#MessageCenterRecordId').val($(this).data('recordid'));\r\n $('#MessageCenterIsTaak').val($(this).data('istaak'));\r\n \r\n if (recordid) {\r\n updateRelatedActions(recordid);\r\n }\r\n }\r\n else {\r\n $(this).addClass('selected');\r\n }\r\n });\r\n\r\n function updateRelatedActions(id) {\r\n $('.copyaction').removeClass('disabled');\r\n $('.editaction').removeClass('disabled');\r\n \r\n $('.deleteaction').removeClass('disabled');\r\n $('.deleteaction').data('record', id);\r\n $('.deleteaction').attr('data-record', id);\r\n };\r\n\r\n if ($('#MessageCenterRecordId').val() > 0)\r\n {\r\n $(\"#MessageCenterOverViewtable tr[data-recordid='\" + $('#MessageCenterRecordId').val() + \"']\").trigger('click');\r\n }\r\n\r\n APPLOYED.element.scrollToElementInList(\".mainscreensized\", \"[data-recordid='\" + $('#MessageCenterRecordId').val() + \"']\", 45);\r\n\r\n $(document).off('click', '.copyaction');\r\n $(document).on('click', '.copyaction', function (e) {\r\n\r\n APPLOYED.loader.WaitLoaderOn('#dropdownMenu3');\r\n let isTaak = $('#MessageCenterIsTaak').val();\r\n\r\n if (APPLOYED.common.isTrue(isTaak)) {\r\n window.location.href = \"/Configuration/Personnel/TaakCopy?userTaskSeq=\" + $('#MessageCenterRecordId').val();\r\n } else {\r\n window.location.href = \"/Configuration/Personnel/AanvraagCopy?userTaskSeq=\" + $('#MessageCenterRecordId').val();\r\n }\r\n });\r\n\r\n $(document).off('click', '.editaction');\r\n $(document).on('click', '.editaction', function (e) {\r\n\r\n APPLOYED.loader.WaitLoaderOn('#dropdownMenu3');\r\n \r\n let isTaak = $('#MessageCenterIsTaak').val();\r\n\r\n if (APPLOYED.common.isTrue(isTaak)) {\r\n window.location.href = \"/Configuration/Personnel/TaakEdit?userTaskSeq=\" + $('#MessageCenterRecordId').val();\r\n } else {\r\n window.location.href = \"/Configuration/Personnel/AanvraagEdit?userTaskSeq=\" + $('#MessageCenterRecordId').val();\r\n }\r\n\r\n });\r\n \r\n\r\n },\r\n initEditMessage: function () {\r\n initPage();\r\n initEditTextEditor();\r\n\r\n function HideShowFixedEmail(value) {\r\n if (value == 9) {\r\n $(\"#FixedEmail, label[data-id='lbl_FixedEmail']\").css('visibility', 'visible');\r\n } else {\r\n $(\"#FixedEmail, label[data-id='lbl_FixedEmail']\").css('visibility', 'hidden');\r\n }\r\n }\r\n\r\n function HideShowEmailTab(isActive) {\r\n if (isActive) {\r\n $('a[href=\"#email-tab\"]').css('display','block');\r\n $('a[href=\"#email-tab\"]').trigger('click');\r\n \r\n } else {\r\n $('a[href=\"#text-tab\"]').trigger('click');\r\n $('a[href=\"#email-tab\"]').hide();\r\n }\r\n }\r\n\r\n function initPage() {\r\n let emailRecipient = $(\"#RecipientId\").val();\r\n\r\n HideShowFixedEmail(emailRecipient);\r\n \r\n $(document).off('dblclick', '.movetext');\r\n $(document).on('dblclick', '.movetext', function (e) {\r\n var obj = $('#' + $(this).data('moveto') + '');\r\n\r\n if ($(this).data('moveto') == \"EmailTekst\") {\r\n tinymce.activeEditor.execCommand('mceInsertContent', false, $(this).html());\r\n }\r\n else {\r\n var cursorPosition = obj.prop(\"selectionStart\");\r\n var textValue = obj.val().substr(0, cursorPosition);\r\n var newValue = textValue + $(this).html();\r\n\r\n obj.val(newValue + obj.val().substr(cursorPosition));\r\n }\r\n });\r\n\r\n $(document).off('change', '#sendEmail');\r\n $(document).on('change', '#sendEmail', function (e) {\r\n HideShowEmailTab(this.checked);\r\n });\r\n\r\n $(document).off('change', '#TableName');\r\n $(document).on('change', '#TableName', function (e) {\r\n\r\n let value = $(this).val();\r\n\r\n var options = {};\r\n options[\"nofading\"] = false;\r\n options[\"tofadein\"] = \"div[id*='row-field-screen']\";\r\n Api.APIcaller.CallAction(\"/Configuration/Personnel/GetDropdownScreen\", { tableName: value }, \"GET\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n\r\n var options = {};\r\n options[\"nofading\"] = false;\r\n options[\"tofadein\"] = \"div[id*='mergeTextField']\";\r\n Api.APIcaller.CallAction(\"/Configuration/Personnel/GetMergesTextFields\", { tableName: value }, \"GET\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n\r\n });\r\n\r\n $(document).off('change', '#ModuleId');\r\n $(document).on('change', '#ModuleId', function (e) {\r\n\r\n let value = $(this).val();\r\n\r\n var options = {};\r\n options[\"nofading\"] = false;\r\n options[\"tofadein\"] = \"div[id*='row-field-module'], div[id*='row-field-recipient']\";\r\n Api.APIcaller.CallAction(\"/Configuration/Personnel/GetDropdownModule\", { requestmodule: value }, \"GET\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n\r\n var options = {};\r\n options[\"nofading\"] = false;\r\n options[\"tofadein\"] = \"div[id*='mergeTextField']\";\r\n Api.APIcaller.CallAction(\"/Configuration/Personnel/GetMergesTextRequestFields\", { requestmodule: value }, \"GET\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n\r\n \r\n });\r\n\r\n $(document).off('change', '#RecipientId');\r\n $(document).on('change', '#RecipientId', function (e) {\r\n HideShowFixedEmail($(this).val());\r\n });\r\n\r\n $(document).off('change', '#FieldId');\r\n $(document).on('change', '#FieldId', function (e) {\r\n\r\n let value = $(this).val();\r\n\r\n $(\"#FieldId\").val(value);\r\n });\r\n\r\n }\r\n\r\n function initEditTextEditor() {\r\n\r\n tinymce.init({\r\n selector: '#EmailTekst',\r\n plugins: [\r\n \"advlist anchor autolink codesample colorpicker contextmenu image imagetools\",\r\n \"lists link media noneditable preview fullscreen\",\r\n \"searchreplace table textcolor visualblocks\"\r\n ],\r\n init_instance_callback: function (editor) {\r\n $('#EmailTekst').css('visibility', 'visible');\r\n },\r\n height: '300',\r\n branding: false,\r\n statusbar: false,\r\n language: (APPLOYED.language.getUserLanguage() == 1 ? 'nl' : null),\r\n paste_data_images: true,\r\n block_unsupported_drop: true,\r\n images_upload_handler: function (blobInfo, success, failure) {\r\n var image_size = blobInfo.blob().size / 1000; // image size in kbytes\r\n var max_size = 1024 // max size in kbytes\r\n if (image_size > max_size) {\r\n if (APPLOYED.language.getUserLanguage() == 1) {\r\n failure('Bestaand te groot ( ' + image_size + ') , Maximaal groot is:' + max_size + ' kB');\r\n }\r\n else {\r\n failure('Image is too large( ' + image_size + ') , Maximum image size is:' + max_size + ' kB');\r\n }\r\n return;\r\n } else {\r\n success(\"data:\" + blobInfo.blob().type + \";base64,\" + blobInfo.base64());\r\n }\r\n },\r\n toolbar: \"cut copy paste | undo redo | bold italic underline | forecolor backcolor | alignleft aligncenter alignright alignjustify | bullist numlist | link image | fullscreen\",\r\n menu: {\r\n file: { title: 'File', items: 'newdocument restoredraft | preview | print' },\r\n edit: { title: 'Edit', items: 'undo redo | cut copy paste | selectall | searchreplace' },\r\n view: { title: 'View', items: 'code | visualaid visualchars visualblocks | fullscreen' },\r\n insert: { title: 'Insert', items: 'image link media template codesample inserttable | charmap emoticons hr | pagebreak nonbreaking anchor toc | insertdatetime' },\r\n format: { title: 'Format', items: 'strikethrough superscript subscript | formats blockformats fontformats fontsizes lineheight | removeformat' },\r\n tools: { title: 'Tools', items: 'spellchecker spellcheckerlanguage | code wordcount' },\r\n table: { title: 'Table', items: 'inserttable | cell row column | tableprops deletetable' }\r\n }\r\n });\r\n }\r\n },\r\n acsvvglobaal: function () { // settings page\r\n APPLOYED.configuration.personnel.SettingsBindEvent();\r\n\r\n let settingsId = $('#SettingsId').val();\r\n APPLOYED.cookies.set(APPLOYED.configuration.personnel.cookieSettingName, settingsId, 1);\r\n APPLOYED.configuration.personnel.GetSettingsView();\r\n },\r\n deleteTask: function () {\r\n $(document).off('click', '.btndeleterecord');\r\n $(document).on('click', '.btndeleterecord', function () {\r\n let recordid = $(this).data('record');\r\n\r\n window.location.href = \"/Configuration/Personnel/UserTaskDelete?userTaskSeq=\" + recordid;\r\n });\r\n },\r\n afdelingen: function () {\r\n $('#childrenpages').prop('disabled', false);\r\n },\r\n afdelingenedit: function () {\r\n $(document).on('keyup', '#OrgEenheidsCode', function () {\r\n let stripped = $('#OrgEenheidsCode').val().replace(/^\\.|[^\\d.]/g, '');\r\n stripped = stripped.replace(/[.]{2,}/g, '.');\r\n\r\n $('#OrgEenheidsCode').val(stripped);\r\n });\r\n },\r\n vestigingen: function () {\r\n $('#childrenpages').prop('disabled', false);\r\n },\r\n externerelaties: function () {\r\n $('#childrenpages').prop('disabled', false);\r\n },\r\n bedrijfsvrijedagen: function () {\r\n $('#childrenpages').prop('disabled', false);\r\n\r\n $(document).off('click', '.jaarimporteren');\r\n $(document).on('click', '.jaarimporteren', function () {\r\n let options = {};\r\n options[\"tofadein\"] = null;\r\n options[\"loading\"] = \"div[id='dropdownMenu3']\";\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/BedrijfvenVrijeDagenImportJaar\", { bedrijfId: $(this).data('parentid') }, \"GET\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n });\r\n\r\n },\r\n configuraties: function () {\r\n $('#childrenpages').prop('disabled', false);\r\n\r\n $(\".smallcube\").unbind('click');\r\n $(\".smallcube\").bind('click', function () {\r\n $('.smallcube').removeClass('active');\r\n $(this).addClass('active');\r\n\r\n let configuratie = $(this).data('configuratie');\r\n let bedrijfId = $('#BedrijfId').val();\r\n\r\n getConfiguratie(configuratie, bedrijfId);\r\n });\r\n\r\n $(\".smallcube\").first().trigger('click'); // select first item of configuraties\r\n\r\n function getConfiguratie(configuratie, bedrijfid) {\r\n var options = {};\r\n options[\"tofadein\"] = \"div[id*='_ContainerId']\";\r\n options[\"loading\"] = null;\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/GetCompanyConfiguration\", { configuratie, bedrijfid }, \"POST\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n }\r\n },\r\n initConfiguraties: function () {\r\n $(document).off('submit', '#configuratieform');\r\n $(document).on('submit', '#configuratieform', function (e) {\r\n e.preventDefault(); // prevent form submit\r\n\r\n let configuratie = $('#Configuratie').val();\r\n\r\n var model = {};\r\n $.each($(this).serializeArray(), function () {\r\n model[this.name] = this.value;\r\n });\r\n\r\n // build list with checkbox values. Note: serializeArray does not map unchecked checkboxes!\r\n var serialized = $('input:checkbox').map(function () {\r\n return { name: this.name, value: this.checked ? this.value : \"false\" };\r\n });\r\n\r\n // add checkbox values to model\r\n $(serialized).each(function () {\r\n model[this.name] = this.value;\r\n });\r\n\r\n let options = {};\r\n options[\"tofadein\"] = null;\r\n options[\"loading\"] = \"button[id='save']\";\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/SaveConfiguration\" + configuratie, { model }, \"POST\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n });\r\n },\r\n initImportJaar: function () {\r\n $(document).off('click', '#confirmimportjaarmodalaction');\r\n $(document).on('click', '#confirmimportjaarmodalaction', function () {\r\n let filter = $('#Filter').val();\r\n\r\n let options = {};\r\n options[\"tofadein\"] = null;\r\n options[\"loading\"] = this;\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/BedrijfvenVrijeDagenImportJaarSave\", { bedrijfId: $(this).data('bedrijfid'), year: $('#DDLYearId').val(), filter: filter }, \"POST\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n });\r\n },\r\n updateChildrenLink: function(id) {\r\n\r\n $('.childrenPagesParentId').each(function () {\r\n let link = $(this).attr('href');\r\n\r\n if (link.indexOf(\"bedrijfid=\") >= 0) {\r\n let replacePatern = /bedrijfid=\\d+/gmi;\r\n let regexp = new RegExp(replacePatern, \"g\");\r\n $(this).attr('href', link.replace(regexp, 'bedrijfid=' + id));\r\n }\r\n else {\r\n $(this).attr('href', link + '&bedrijfid=' + id);\r\n }\r\n });\r\n\r\n $('#childrenpages').prop('disabled', false);\r\n },\r\n GetSettingsView: function () {\r\n let options = {};\r\n options[\"tofadein\"] = \"div[id*='_ContainerId']\";\r\n\r\n let body = {\r\n settingsContainer: APPLOYED.cookies.get(APPLOYED.configuration.personnel.cookieSettingName)\r\n }\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/LoadSettings\", body, \"GET\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n },\r\n SettingsBindEvent: function () {\r\n $(\".smallcube\").unbind('click');\r\n $(\".smallcube\").bind('click', function () {\r\n $('.smallcube').removeClass('active');\r\n $(this).addClass('active');\r\n\r\n APPLOYED.cookies.set(APPLOYED.configuration.personnel.cookieSettingName, $(this).data('settingsid'), 1);\r\n\r\n APPLOYED.configuration.personnel.GetSettingsView();\r\n });\r\n },\r\n initAlgemeneInstellingPV: function () {\r\n APPLOYED.element.dynamicHeight('.settings-algemeen', '.mainscreensized', 75);\r\n\r\n $(document).off('change', \".verlofkleuronchange\");\r\n $(document).on('change', \".verlofkleuronchange\", function () {\r\n $('div.' + $(this).attr('id')).css('background-color', $(this).val());\r\n });\r\n\r\n $(\".verlofkleuronchange\").each(function () {\r\n $(this).trigger('change');\r\n });\r\n\r\n $(document).off('change', '#AfWezigheidFunctieurenGebruiken');\r\n $(document).on('change', '#AfWezigheidFunctieurenGebruiken', function () {\r\n if ($('#Permissions_CanModifyRecords').val().toLowerCase() == \"true\") {\r\n if (APPLOYED.common.isTrue($('#AfWezigheidFunctieurenGebruiken').is(':checked'))) {\r\n $(\"#AfWezigheiDuurlonersNietTonen\").prop('disabled', false);\r\n }\r\n else {\r\n $(\"#AfWezigheiDuurlonersNietTonen\").prop('disabled', true);\r\n $(\"#AfWezigheiDuurlonersNietTonen\").prop('checked', false);\r\n }\r\n }\r\n });\r\n\r\n $('#AfWezigheidFunctieurenGebruiken').trigger('change');\r\n\r\n // form submit\r\n $(document).off('submit', '#generalSettingsForm');\r\n $(document).on('submit', '#generalSettingsForm', function (e) {\r\n e.preventDefault();\r\n\r\n // data map\r\n let permissionsCanModifyRecords = $('#Permissions_CanModifyRecords');\r\n let acsvvGlobaalId = $('#AcsvvGlobaalId');\r\n\r\n let formData = {};\r\n formData[\"Permissions\"] = {\r\n CanModifyRecords = permissionsCanModifyRecords.val().toLowerCase() == \"true\" ? true : false,\r\n };\r\n formData[\"AcsvvGlobaalId\"] = parseInt(acsvvGlobaalId.val());\r\n\r\n $(this).find(\"input[name].form-check-input\").each(function (index, node) { // checkbox input\r\n formData[node.name] = $(this).is(':checked');\r\n });\r\n\r\n $(this).find(\"input[name].validation-integer-positive\").each(function (index, node) { // input year\r\n formData[node.name] = $(this).val();\r\n });\r\n\r\n $(this).find(\"select[name].kleurSelect\").each(function (index, node) { // select kleur\r\n formData[node.name] = $(this).find(\":selected\").val();\r\n });\r\n\r\n $(this).find(\"select[name].langSeq\").each(function (index, node) { // select lang seq\r\n formData[node.name] = parseInt($(this).find(\":selected\").val());\r\n });\r\n\r\n // caption and required\r\n formData[\"Captions\"] = [];\r\n let captions = $('input[name^=Captions]');\r\n for (let x = 0; x < captions.length / 2; x++) {\r\n let key = $('input[name=\"Captions[' + x + '].Key\"]').val();\r\n let value = $('input[name=\"Captions[' + x + '].Value\"]').val();\r\n formData.Captions.push({Key: key, Value: value});\r\n }\r\n\r\n formData[\"Required\"] = [];\r\n let required = $('input[name^=Required]');\r\n for (let x = 0; x < required.length / 2; x++) {\r\n let key = $('input[name=\"Required[' + x + '].Key\"]').val();\r\n let value = $('input[name=\"Required[' + x + '].Value\"]').val();\r\n formData.Required.push({ Key: key, Value: value.toLowerCase() == \"true\" ? true : false });\r\n }\r\n\r\n // send\r\n if (formData.Permissions.CanModifyRecords) {\r\n APPLOYED.loader.WaitLoaderOn(\"button[id='save']\");\r\n $('#save').attr('disabled', 'disabled');\r\n\r\n $.ajax({\r\n url: '/Configuration/Personnel/Acsvvglobaal',\r\n type: 'POST',\r\n data: formData,\r\n success: function (data) {\r\n\r\n if (data.errorText != undefined && data.errorText != '') {\r\n Api.Main.displayNotify(data.errorText, true);\r\n }\r\n\r\n if (data.notifyText != undefined && data.notifyText != '') {\r\n Api.Main.displayNotify(data.message, false);\r\n }\r\n\r\n APPLOYED.loader.WaitLoaderOff(\"button[id='save']\");\r\n $('#save').removeAttr('disabled');\r\n },\r\n error: function (e) {\r\n APPLOYED.loader.WaitLoaderOff(\"button[id='save']\");\r\n $('#save').removeAttr('disabled');\r\n Api.Main.displayNotify(e, false);\r\n }\r\n });\r\n }\r\n });\r\n },\r\n initSmoelenboekPV: function (visibleTab) {\r\n APPLOYED.element.dynamicHeight('.settings-algemeen', '.mainscreensized', 75);\r\n var permissionsCanModifyRecords = $('#Permissions_CanModifyRecords');\r\n var fixHelper = function (e, ui) {\r\n ui.children().each(function () {\r\n $(this).width($(this).width());\r\n });\r\n\r\n return ui;\r\n };\r\n\r\n APPLOYED.loader.ClearLoaderList();\r\n\r\n if (permissionsCanModifyRecords.val().toLowerCase() == \"true\" ? true : false) {\r\n let smoelElements = [\r\n {\r\n smoelenboekField: \"#smoelenboekFieldsBodyWeb\",\r\n handle: \".handleWeb\",\r\n containment: \".smoelenboekFieldsWeb\",\r\n },\r\n {\r\n smoelenboekField: \"#smoelenboekFieldsBodyMobile\",\r\n handle: \".handleMobile\",\r\n containment: \".smoelenboekFieldsMobile\",\r\n },\r\n ];\r\n\r\n smoelElements.forEach(element => {\r\n $(element.smoelenboekField).sortable({\r\n handle: element.handle,\r\n axis: \"y\",\r\n containment: element.containment,\r\n helper: function (e, ui) {\r\n ui.children().each(function () {\r\n $(this).width($(this).width());\r\n });\r\n\r\n return ui;\r\n },\r\n });\r\n });\r\n\r\n $('#saveSmoelenboekWeb').unbind('click');\r\n $('#saveSmoelenboekWeb').bind('click', function () {\r\n updateSmoelenboek(\"/Configuration/Personnel/UpdateSmoelenboekWebSettings\");\r\n });\r\n\r\n $('#saveSmoelenboekMobile').unbind('click');\r\n $('#saveSmoelenboekMobile').bind('click', function () {\r\n updateSmoelenboek(\"/Configuration/Personnel/UpdateSmoelenboekMobileSettings\");\r\n });\r\n \r\n }\r\n\r\n if (visibleTab == undefined || visibleTab == 'undefined') {\r\n visibleTab = \"smoelenboek\";\r\n }\r\n\r\n if (visibleTab == \"smoelenboek\") {\r\n $(\"#web-tab\").tab('show');\r\n }\r\n else {\r\n $(\"#mobiel-tab\").tab('show');\r\n }\r\n\r\n function updateSmoelenboek(api) {\r\n var options = {};\r\n options[\"tofadein\"] = \"div[id*='_ContainerId']\";\r\n\r\n let web = {\r\n table: $('#smoelenboek-web-table').find('tbody'),\r\n items: [],\r\n order: 0,\r\n }\r\n\r\n let mobile = {\r\n table: $('#smoelenboek-mobile-table').find('tbody'),\r\n items: [],\r\n order: 0,\r\n }\r\n\r\n let body = {};\r\n\r\n web.table.find('tr').each(function () {\r\n let row = $(this);\r\n\r\n let item = {\r\n orderBy: web.order,\r\n fieldName: row.data('id'),\r\n visible: row.find(\"input.form-check-input\").first().is(\":checked\"),\r\n };\r\n\r\n web.items.push(item);\r\n\r\n web.order++;\r\n });\r\n\r\n mobile.table.find('tr').each(function () {\r\n let row = $(this);\r\n\r\n let item = {\r\n orderBy: mobile.order,\r\n fieldName: row.data('id'),\r\n visible: row.find(\"input.form-check-input\").first().is(\":checked\"),\r\n };\r\n\r\n mobile.items.push(item);\r\n\r\n mobile.order++;\r\n });\r\n\r\n body[\"Permissions\"] = {\r\n CanModifyRecords = permissionsCanModifyRecords.val().toLowerCase() == \"true\" ? true : false,\r\n };\r\n\r\n body[\"ConfigurationFieldsWeb\"] = web.items;\r\n body[\"ConfigurationFieldsMobile\"] = mobile.items;\r\n\r\n Api.APIcaller.CallAction(api, body, \"POST\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n }\r\n }\r\n}","APPLOYED.configuration.timeregistration = {\r\n init: function () {\r\n APPLOYED.tableOverview.init();\r\n },\r\n planningsgroepen: function () {\r\n APPLOYED.element.dynamicHeight('#searchlist', '.mainscreensized', 65, 100);\r\n APPLOYED.element.dynamicHeight('#Planningsgroep_ContainerId', '.mainscreensized', 100, 100);\r\n\r\n var selectedRecordId = $('#PlanningsgroepId').val();\r\n var obj = $('.configplanningsgroepsmallcube[data-planningsgroepid=' + selectedRecordId + ']');\r\n $('.smallcube').removeClass('active');\r\n if (obj.data('planningsgroepid') == undefined || obj.data('planningsgroepid') == 'undefined') {\r\n obj = $('#searchlist div.configplanningsgroepsmallcube').first();\r\n selectedRecordId = obj.data('planningsgroepid');\r\n }\r\n\r\n bindSelect();\r\n\r\n if (!!selectedRecordId) {\r\n obj.addClass('active');\r\n loadPlanningsgroep(selectedRecordId);\r\n }\r\n\r\n function bindSelect() {\r\n $(\".configplanningsgroepsmallcube\").off('click');\r\n $(\".configplanningsgroepsmallcube\").on('click', function () {\r\n var planningsgroepId = $(this).data('planningsgroepid');\r\n\r\n var current = $('div.configplanningsgroepsmallcube.active');\r\n if (!!current) {\r\n var currentId = $(current).data('planningsgroepid');\r\n if (currentId == planningsgroepId) {\r\n return;\r\n }\r\n }\r\n\r\n $('.smallcube').removeClass('active');\r\n $(this).addClass('active');\r\n\r\n loadPlanningsgroep(planningsgroepId);\r\n });\r\n }\r\n\r\n function loadPlanningsgroep(planningsgroepId) {\r\n var filter = $('#ReturnFilter').val();\r\n\r\n var options = {};\r\n options[\"tofadein\"] = \"div[id*='_ContainerId']\";\r\n Api.APIcaller.CallAction(`/configuration/Timeregistration/planningsgroepLoad`, { planningsgroepId: planningsgroepId, filter: filter }, \"GET\", null, null, (response) => loadComplete(response, planningsgroepId), options, Api.APIcaller.CancelOptions.None);\r\n\r\n function loadComplete(response, planningsgroepId) {\r\n $('#PlanningsgroepId').val(planningsgroepId);\r\n }\r\n }\r\n },\r\n bindPlanningsgroepDelete: function () {\r\n $(\".btndeleteplanningsgroep\").unbind('click');\r\n $(\".btndeleteplanningsgroep\").bind('click', function () {\r\n var recordId = $(this).data('recordid');\r\n var filter = $('#Filter').val();\r\n\r\n var options = {};\r\n\r\n options[\"tofadein\"] = \"\";\r\n Api.APIcaller.CallAction(\"/Configuration/Timeregistration/PlanningsgroepDelete\", { recordId: recordId, filter: filter }, \"POST\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n\r\n $('#confirmdeletemodal').modal('hide');\r\n });\r\n },\r\n bindPlanningsgroepToeslagDelete: function () {\r\n $(\".btndeletetoeslag\").unbind('click');\r\n $(\".btndeletetoeslag\").bind('click', function () {\r\n var recordId = $(this).data('recordid');\r\n var planningsgroepId = $(this).data('planningsgroepid');\r\n\r\n var options = {};\r\n\r\n options[\"tofadein\"] = \"\";\r\n Api.APIcaller.CallAction(\"/Configuration/Timeregistration/PlanningsgroepToeslagDelete\",\r\n { recordId: recordId, planningsgroepId: planningsgroepId }, \"POST\",\r\n null, null, (response) => complete(response, recordId), options, Api.APIcaller.CancelOptions.None);\r\n\r\n $('#confirmdeletemodal').modal('hide');\r\n\r\n function complete(response, recordId) {\r\n if (response.hasErrorText) {\r\n return;\r\n }\r\n\r\n $(`#toeslag-${recordId}`).remove();\r\n }\r\n });\r\n },\r\n weekroosterdefinities: function () {\r\n APPLOYED.weekroosters.weekroosterdefinities(\"timeregistration\", true);\r\n },\r\n weekroosterdefinitieedit: function () {\r\n APPLOYED.weekroosters.weekroosterdefinitieedit(\"timeregistration\", true);\r\n },\r\n tijdregistratietypes: function () {\r\n APPLOYED.element.dynamicHeight('#searchlist', '.mainscreensized', 65, 100);\r\n APPLOYED.element.dynamicHeight('#Tijdregistratietype_ContainerId', '.mainscreensized', 100, 100);\r\n APPLOYED.element.dynamicHeight('#Pauzes_ContainerId', '#Tijdregistratietype_ContainerId', 300, 100);\r\n APPLOYED.element.dynamicHeight('#Toeslagen_ContainerId', '#Tijdregistratietype_ContainerId', 300, 100);\r\n\r\n var self = this;\r\n\r\n var selectedRecordId = $('#TijdregistratietypeId').val();\r\n var obj = $('.configtijdregistratietypesmallcube[data-tijdregiestratietypeid=' + selectedRecordId + ']');\r\n $('.smallcube').removeClass('active');\r\n if (obj.data('tijdregiestratietypeid') == undefined || obj.data('tijdregiestratietypeid') == 'undefined') {\r\n obj = $('#searchlist div.configtijdregistratietypesmallcube').first();\r\n selectedRecordId = obj.data('tijdregiestratietypeid');\r\n }\r\n\r\n bindSelect();\r\n\r\n if (!!selectedRecordId) {\r\n obj.addClass('active');\r\n self.loadTijdregistratietype(selectedRecordId);\r\n }\r\n\r\n function bindSelect() {\r\n $(\".configtijdregistratietypesmallcube\").off('click');\r\n $(\".configtijdregistratietypesmallcube\").on('click', function () {\r\n var tijdregistratietypeId = $(this).data('tijdregiestratietypeid');\r\n\r\n var current = $('div.configtijdregistratietypesmallcube.active');\r\n if (!!current) {\r\n var currentId = $(current).data('tijdregiestratietypeid');\r\n if (currentId == tijdregistratietypeId) {\r\n return;\r\n }\r\n }\r\n\r\n $('.smallcube').removeClass('active');\r\n $(this).addClass('active');\r\n\r\n self.loadTijdregistratietype(tijdregistratietypeId);\r\n });\r\n }\r\n },\r\n loadTijdregistratietype: function (tijdregistratietypeId) {\r\n var filter = $('#ReturnFilter').val();\r\n var activeTab = $('#ActiveTab').val();\r\n\r\n var options = {};\r\n options[\"tofadein\"] = \"div[id*='_ContainerId']\";\r\n Api.APIcaller.CallAction(`/configuration/Timeregistration/tijdregistratietypeLoad`, { tijdregistratietypeId: tijdregistratietypeId, tab: activeTab, filter: filter }, \"GET\", null, null, (response) => loadComplete(response, tijdregistratietypeId), options, Api.APIcaller.CancelOptions.None);\r\n\r\n function loadComplete(response, tijdregistratietypeId) {\r\n $('#TijdregistratietypeId').val(tijdregistratietypeId);\r\n bindTabs();\r\n $(window).trigger('resize');\r\n }\r\n\r\n function bindTabs() {\r\n $(\".tijdregtype-tab\").off('click');\r\n $(\".tijdregtype-tab\").on('click', function () {\r\n var href = $(this).attr('href');\r\n if (href) {\r\n var tabname = href.split('-')[1];\r\n $('#ActiveTab').val(tabname);\r\n }\r\n });\r\n }\r\n },\r\n bindTijdregistratietypeDelete: function () {\r\n $(\".btndeletetijdregistratietype\").unbind('click');\r\n $(\".btndeletetijdregistratietype\").bind('click', function () {\r\n var recordId = $(this).data('recordid');\r\n var filter = $('#Filter').val();\r\n var activeTab = $('#ActiveTab').val();\r\n\r\n var options = {};\r\n\r\n options[\"tofadein\"] = \"\";\r\n Api.APIcaller.CallAction(\"/Configuration/Timeregistration/TijdregistratietypeDelete\", { recordId: recordId, tab: activeTab, filter: filter }, \"POST\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n\r\n $('#confirmdeletemodal').modal('hide');\r\n });\r\n },\r\n bindPauzeDelete: function () {\r\n $(\".btndeletepauze\").unbind('click');\r\n $(\".btndeletepauze\").bind('click', function () {\r\n var recordId = $(this).data('recordid');\r\n var tijdregistratietypeId = $(this).data('tijdregistratietypeid');\r\n\r\n var options = {};\r\n\r\n options[\"tofadein\"] = \"\";\r\n Api.APIcaller.CallAction(\"/Configuration/Timeregistration/PauzeDelete\",\r\n { recordId: recordId, tijdregistratietypeId: tijdregistratietypeId }, \"POST\",\r\n null, null, (response) => complete(response, recordId), options, Api.APIcaller.CancelOptions.None);\r\n\r\n $('#confirmdeletemodal').modal('hide');\r\n\r\n function complete(response, recordId) {\r\n if (response.hasErrorText) {\r\n return;\r\n }\r\n\r\n $(`#pauzeregel-${recordId}`).remove();\r\n }\r\n });\r\n },\r\n bindTijdregistratietypeToeslagDelete: function () {\r\n $(\".btndeletetoeslag\").unbind('click');\r\n $(\".btndeletetoeslag\").bind('click', function () {\r\n var recordId = $(this).data('recordid');\r\n var tijdregistratietypeId = $(this).data('tijdregistratietypeid');\r\n\r\n var options = {};\r\n\r\n options[\"tofadein\"] = \"\";\r\n Api.APIcaller.CallAction(\"/Configuration/Timeregistration/TijdregistratietypeToeslagDelete\",\r\n { recordId: recordId, tijdregistratietypeId: tijdregistratietypeId }, \"POST\",\r\n null, null, (response) => complete(response, recordId), options, Api.APIcaller.CancelOptions.None);\r\n\r\n $('#confirmdeletemodal').modal('hide');\r\n\r\n function complete(response, recordId) {\r\n if (response.hasErrorText) {\r\n return;\r\n }\r\n\r\n $(`#toeslag-${recordId}`).remove();\r\n }\r\n });\r\n },\r\n toeslagen: function () {\r\n APPLOYED.element.dynamicHeight('#searchlist', '.mainscreensized', 65, 100);\r\n APPLOYED.element.dynamicHeight('#Toeslag_ContainerId', '.mainscreensized', 100, 100);\r\n APPLOYED.element.dynamicHeight('#Toeslagregels_ContainerId', '#Toeslag_ContainerId', 280, 100);\r\n\r\n var self = this;\r\n\r\n var selectedRecordId = $('#ToeslagId').val();\r\n var obj = $('.configtoeslagsmallcube[data-toeslagid=' + selectedRecordId + ']');\r\n $('.smallcube').removeClass('active');\r\n if (obj.data('toeslagid') == undefined || obj.data('toeslagid') == 'undefined') {\r\n obj = $('#searchlist div.configtoeslagsmallcube').first();\r\n selectedRecordId = obj.data('toeslagid');\r\n }\r\n\r\n bindSelect();\r\n\r\n if (!!selectedRecordId) {\r\n obj.addClass('active');\r\n loadToeslag(selectedRecordId);\r\n }\r\n\r\n function bindSelect() {\r\n $(\".configtoeslagsmallcube\").off('click');\r\n $(\".configtoeslagsmallcube\").on('click', function () {\r\n var toeslagId = $(this).data('toeslagid');\r\n\r\n var current = $('div.configtoeslagsmallcube.active');\r\n if (!!current) {\r\n var currentId = $(current).data('toeslagid');\r\n if (currentId == toeslagId) {\r\n return;\r\n }\r\n }\r\n\r\n $('.smallcube').removeClass('active');\r\n $(this).addClass('active');\r\n\r\n loadToeslag(toeslagId);\r\n });\r\n }\r\n\r\n function loadToeslag(toeslagId) {\r\n var filter = $('#ReturnFilter').val();\r\n\r\n var options = {};\r\n options[\"tofadein\"] = \"div[id*='_ContainerId']\";\r\n Api.APIcaller.CallAction(`/configuration/timeregistration/toeslagLoad`, { toeslagId: toeslagId, filter: filter }, \"GET\", null, null, (response) => loadComplete(response, toeslagId), options, Api.APIcaller.CancelOptions.None);\r\n\r\n function loadComplete(response, toeslagId) {\r\n $('#ToeslagId').val(toeslagId);\r\n $(window).trigger('resize');\r\n }\r\n }\r\n },\r\n bindToeslagDelete: function () {\r\n $(\".btndeletetoeslag\").unbind('click');\r\n $(\".btndeletetoeslag\").bind('click', function () {\r\n var recordId = $(this).data('recordid');\r\n var filter = $('#Filter').val();\r\n\r\n var options = {};\r\n\r\n options[\"tofadein\"] = \"\";\r\n Api.APIcaller.CallAction(\"/Configuration/Timeregistration/ToeslagDelete\", { recordId: recordId, filter: filter }, \"POST\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n\r\n $('#confirmdeletemodal').modal('hide');\r\n });\r\n },\r\n toeslagedit: function () {\r\n bindOverwerk();\r\n bindDagtype();\r\n bindSave();\r\n\r\n function bindOverwerk() {\r\n $('#Toeslagmethode').on('change', function () {\r\n var methodeId = $(this).val();\r\n var overwerkId = $('#OverwerkId').val();\r\n $('#drempeloverwerk-container').toggle(methodeId == overwerkId);\r\n });\r\n }\r\n\r\n function bindDagtype() {\r\n $('#Dagtype').on('change', function () {\r\n var dagtypeId = $(this).val();\r\n var datumId = $('#DagtypeDatumId').val();\r\n $('#dagtype-dagen').toggle(dagtypeId && dagtypeId != datumId);\r\n $('#dagtype-datum').toggle(dagtypeId && dagtypeId == datumId);\r\n\r\n var feestdagenId = $('#DagtypeFeestdagenId').val();\r\n $('#chk-toepassenopfeestdag').toggle(dagtypeId != feestdagenId);\r\n });\r\n }\r\n\r\n function bindSave() {\r\n $('#toeslagsave').off('click');\r\n $('#toeslagsave').on('click', function (event) {\r\n var methode = $('#Toeslagmethode').val();\r\n var orgMethode = $('#OrgToeslagmethode').val();\r\n var toeslagId = parseInt($('#ToeslagId').val());\r\n var heeftToeslagregels = APPLOYED.common.isTrue($('#HeeftToeslagregels').val());\r\n\r\n if (toeslagId > 0 && (methode != orgMethode) && heeftToeslagregels) {\r\n bindConfirm();\r\n event.preventDefault();\r\n $('#confirmsavemodal').modal('show');\r\n return false;\r\n }\r\n });\r\n\r\n function bindConfirm() {\r\n $('#confirmsavemodalaction').off('click');\r\n $('#confirmsavemodalaction').on('click', function () {\r\n $(\"form\").submit();\r\n });\r\n }\r\n }\r\n },\r\n toeslagregeledit: function () {\r\n bindRekenmethode();\r\n\r\n function bindRekenmethode() {\r\n $(\"#Rekenmethode\").off('change');\r\n $(\"#Rekenmethode\").on('change', function () {\r\n var tvt = $('#rekenmethode_tvt').val();\r\n var verlof = $('#rekenmethode_verlof').val();\r\n var rekenmethode = $(this).val();\r\n\r\n var toonverlof = rekenmethode && (rekenmethode == tvt || rekenmethode == verlof);\r\n $('#verlofregeling').toggle(toonverlof);\r\n });\r\n }\r\n },\r\n bindToeslagregelDelete: function (id) {\r\n $(\".btndeletetoeslagregel\").unbind('click');\r\n $(\".btndeletetoeslagregel\").bind('click', function () {\r\n var recordId = $(this).data('recordid');\r\n var toeslagId = $(this).data('toeslagid');\r\n var filter = $('#Filter').val();\r\n\r\n var options = {};\r\n\r\n options[\"tofadein\"] = \"\";\r\n Api.APIcaller.CallAction(\"/Configuration/Timeregistration/ToeslagregelDelete\",\r\n { recordId: recordId, toeslagId: toeslagId, filter: filter }, \"POST\",\r\n null, null, (response) => complete(response, recordId), options, Api.APIcaller.CancelOptions.None);\r\n\r\n $('#confirmdeletemodal').modal('hide');\r\n\r\n function complete(response, recordId) {\r\n if (response.hasErrorText) {\r\n return;\r\n }\r\n\r\n $(`#toeslagregel-${recordId}`).remove();\r\n }\r\n });\r\n },\r\n periodetoeslagen: function () {\r\n APPLOYED.element.dynamicHeight('#searchlist', '.mainscreensized', 65, 100);\r\n APPLOYED.element.dynamicHeight('#Periodetoeslag_ContainerId', '.mainscreensized', 100, 100);\r\n APPLOYED.element.dynamicHeight('#Periodetoeslagregels_ContainerId', '#Periodetoeslag_ContainerId', 250, 100);\r\n APPLOYED.element.dynamicHeight('#Periodetoeslagboekingen_ContainerId', '#Periodetoeslag_ContainerId', 250, 100);\r\n\r\n var selectedRecordId = $('#PeriodetoeslagId').val();\r\n var obj = $('.configperiodetoeslagsmallcube[data-periodetoeslagid=' + selectedRecordId + ']');\r\n $('.smallcube').removeClass('active');\r\n if (obj.data('periodetoeslagid') == undefined || obj.data('periodetoeslagid') == 'undefined') {\r\n obj = $('#searchlist div.configperiodetoeslagsmallcube').first();\r\n selectedRecordId = obj.data('periodetoeslagid');\r\n }\r\n\r\n bindSelect();\r\n\r\n if (!!selectedRecordId) {\r\n obj.addClass('active');\r\n loadPeriodetoeslag(selectedRecordId);\r\n }\r\n\r\n function bindSelect() {\r\n $(\".configperiodetoeslagsmallcube\").off('click');\r\n $(\".configperiodetoeslagsmallcube\").on('click', function () {\r\n var periodetoeslagId = $(this).data('periodetoeslagid');\r\n\r\n var current = $('div.configperiodetoeslagsmallcube.active');\r\n if (!!current) {\r\n var currentId = $(current).data('periodetoeslagid');\r\n if (currentId == periodetoeslagId) {\r\n return;\r\n }\r\n }\r\n\r\n $('.smallcube').removeClass('active');\r\n $(this).addClass('active');\r\n\r\n loadPeriodetoeslag(periodetoeslagId);\r\n });\r\n }\r\n\r\n function loadPeriodetoeslag(periodetoeslagId) {\r\n var filter = $('#ReturnFilter').val();\r\n var activeTab = $('#ActiveTab').val();\r\n\r\n var options = {};\r\n options[\"tofadein\"] = \"div[id*='_ContainerId']\";\r\n Api.APIcaller.CallAction(`/configuration/timeregistration/periodetoeslagLoad`, { periodetoeslagId: periodetoeslagId, tab: activeTab, filter: filter }, \"GET\", null, null, (response) => loadComplete(response, periodetoeslagId), options, Api.APIcaller.CancelOptions.None);\r\n\r\n function loadComplete(response, periodetoeslagId) {\r\n $('#PeriodetoeslagId').val(periodetoeslagId);\r\n bindTabs();\r\n $(window).trigger('resize');\r\n }\r\n\r\n function bindTabs() {\r\n $(\".periodetoeslag-tab\").off('click');\r\n $(\".periodetoeslag-tab\").on('click', function () {\r\n var href = $(this).attr('href');\r\n if (href) {\r\n var tabname = href.split('-')[1];\r\n $('#ActiveTab').val(tabname);\r\n }\r\n });\r\n }\r\n }\r\n },\r\n bindPeriodetoeslagDelete: function () {\r\n $(\".btndeleteperiodetoeslag\").unbind('click');\r\n $(\".btndeleteperiodetoeslag\").bind('click', function () {\r\n var recordId = $(this).data('recordid');\r\n var filter = $('#Filter').val();\r\n var activeTab = $('#ActiveTab').val();\r\n\r\n var options = {};\r\n\r\n options[\"tofadein\"] = \"\";\r\n Api.APIcaller.CallAction(\"/Configuration/Timeregistration/PeriodetoeslagDelete\", { recordId: recordId, tab: activeTab, filter: filter }, \"POST\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n\r\n $('#confirmdeletemodal').modal('hide');\r\n });\r\n },\r\n bindPeriodetoeslagregelDelete: function () {\r\n $(\".btndeleteperiodetoeslagregel\").unbind('click');\r\n $(\".btndeleteperiodetoeslagregel\").bind('click', function () {\r\n var recordId = $(this).data('recordid');\r\n var periodetoeslagId = $(this).data('periodetoeslagid');\r\n var filter = $('#Filter').val();\r\n\r\n var options = {};\r\n\r\n options[\"tofadein\"] = \"\";\r\n Api.APIcaller.CallAction(\"/Configuration/Timeregistration/PeriodetoeslagregelDelete\",\r\n { recordId: recordId, periodetoeslagId: periodetoeslagId, filter: filter }, \"POST\",\r\n null, null, (response) => complete(response, recordId), options, Api.APIcaller.CancelOptions.None);\r\n\r\n $('#confirmdeletemodal').modal('hide');\r\n\r\n function complete(response, recordId) {\r\n if (response.hasErrorText) {\r\n return;\r\n }\r\n\r\n $(`#periodetoeslagregel-${recordId}`).remove();\r\n }\r\n });\r\n },\r\n periodetoeslagboekingedit: function () {\r\n bindBoekingsactie();\r\n\r\n function bindBoekingsactie() {\r\n $(\"#Boekingsactie\").off('change');\r\n $(\"#Boekingsactie\").on('change', function () {\r\n var tvtuitbetalen = $('#boekingsactie_tvtuitbetalen').val();\r\n var tvt = $('#boekingsactie_tvt').val();\r\n var boekingsactie = $(this).val();\r\n\r\n var toonverlof = boekingsactie && (boekingsactie == tvtuitbetalen || boekingsactie == tvt);\r\n $('#verlofregeling').toggle(toonverlof);\r\n\r\n var toonlooncomponent = boekingsactie && (boekingsactie == tvtuitbetalen);\r\n $('#looncomponent').toggle(toonlooncomponent);\r\n });\r\n }\r\n },\r\n bindPeriodetoeslagBoekingDelete: function () {\r\n $(\".btndeleteperiodetoeslagboekingsregel\").unbind('click');\r\n $(\".btndeleteperiodetoeslagboekingsregel\").bind('click', function () {\r\n var recordId = $(this).data('recordid');\r\n var periodetoeslagId = $(this).data('periodetoeslagid');\r\n var filter = $('#Filter').val();\r\n\r\n var options = {};\r\n\r\n options[\"tofadein\"] = \"\";\r\n Api.APIcaller.CallAction(\"/Configuration/Timeregistration/PeriodetoeslagBoekingDelete\",\r\n { recordId: recordId, periodetoeslagId: periodetoeslagId, filter: filter }, \"POST\",\r\n null, null, (response) => complete(response, recordId), options, Api.APIcaller.CancelOptions.None);\r\n\r\n $('#confirmdeletemodal').modal('hide');\r\n\r\n function complete(response, recordId) {\r\n if (response.hasErrorText) {\r\n return;\r\n }\r\n\r\n $(`#periodetoeslagboekingsregel-${recordId}`).remove();\r\n }\r\n });\r\n },\r\n navigateTo: function (url, id, filter) {\r\n var activeTab = $('#ActiveTab').val();\r\n\r\n var params = [];\r\n if (id || id == 0) { params.push(`id=${id}`); }\r\n if (filter || filter == 0) { params.push(`filter=${filter}`) };\r\n if (activeTab) { params.push(`tab=${activeTab}`) };\r\n\r\n url = url + '?' + params.join('&');\r\n window.location.href = url;\r\n },\r\n periodedefinities: function () {\r\n APPLOYED.element.dynamicHeight('#searchlist', '.mainscreensized', 65, 100);\r\n APPLOYED.element.dynamicHeight('#Periodedefinitie_ContainerId', '.mainscreensized', 100, 100);\r\n APPLOYED.element.dynamicHeight('#Perioderegels_ContainerId', '#Periodedefinitie_ContainerId', 150, 100);\r\n\r\n var self = this;\r\n\r\n var selectedRecordId = $('#PeriodedefinitieId').val();\r\n var obj = $('.configperiodedefinitiesmallcube[data-periodedefinitieid=' + selectedRecordId + ']');\r\n $('.smallcube').removeClass('active');\r\n if (obj.data('periodedefinitieid') == undefined || obj.data('periodedefinitieid') == 'undefined') {\r\n obj = $('#searchlist div.configperiodedefinitiesmallcube').first();\r\n selectedRecordId = obj.data('periodedefinitieid');\r\n }\r\n\r\n bindSelect();\r\n\r\n if (!!selectedRecordId) {\r\n obj.addClass('active');\r\n loadPeriodedefinitie(selectedRecordId);\r\n }\r\n\r\n function bindSelect() {\r\n $(\".configperiodedefinitiesmallcube\").off('click');\r\n $(\".configperiodedefinitiesmallcube\").on('click', function () {\r\n var periodedefinitieId = $(this).data('periodedefinitieid');\r\n\r\n var current = $('div.configperiodedefinitiemallcube.active');\r\n if (!!current) {\r\n var currentId = $(current).data('periodedefinitieid');\r\n if (currentId == periodedefinitieId) {\r\n return;\r\n }\r\n }\r\n\r\n $('.smallcube').removeClass('active');\r\n $(this).addClass('active');\r\n\r\n loadPeriodedefinitie(periodedefinitieId);\r\n });\r\n }\r\n\r\n function loadPeriodedefinitie(periodedefinitieId) {\r\n var filter = $('#ReturnFilter').val();\r\n\r\n var options = {};\r\n options[\"tofadein\"] = \"div[id*='_ContainerId']\";\r\n Api.APIcaller.CallAction(`/configuration/timeregistration/periodedefinitieLoad`, { periodedefinitieId: periodedefinitieId, filter: filter }, \"GET\", null, null, (response) => loadComplete(response, periodedefinitieId), options, Api.APIcaller.CancelOptions.None);\r\n\r\n function loadComplete(response, periodedefinitieId) {\r\n $('#PeriodedefinitieId').val(periodedefinitieId);\r\n $(window).trigger('resize');\r\n }\r\n }\r\n },\r\n bindPeriodedefinitieDelete: function () {\r\n $(\".btndeleteperiodedefinitie\").unbind('click');\r\n $(\".btndeleteperiodedefinitie\").bind('click', function () {\r\n var recordId = $(this).data('recordid');\r\n var filter = $('#Filter').val();\r\n\r\n var options = {};\r\n\r\n options[\"tofadein\"] = \"\";\r\n Api.APIcaller.CallAction(\"/Configuration/Timeregistration/PeriodedefinitieDelete\", { recordId: recordId, filter: filter }, \"POST\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n\r\n $('#confirmdeletemodal').modal('hide');\r\n });\r\n },\r\n bindPeriodedefinitieregelDelete: function () {\r\n $(\".btndeleteperiodedefinitieregel\").unbind('click');\r\n $(\".btndeleteperiodedefinitieregel\").bind('click', function () {\r\n var recordId = $(this).data('recordid');\r\n var periodedefinitieId = $(this).data('periodedefinitieid');\r\n var filter = $('#Filter').val();\r\n\r\n var options = {};\r\n\r\n options[\"tofadein\"] = \"\";\r\n Api.APIcaller.CallAction(\"/Configuration/Timeregistration/PeriodedefinitieregelDelete\",\r\n { recordId: recordId, periodedefinitieId: periodedefinitieId, filter: filter }, \"POST\",\r\n null, null, (response) => complete(response, recordId), options, Api.APIcaller.CancelOptions.None);\r\n\r\n $('#confirmdeletemodal').modal('hide');\r\n\r\n function complete(response, recordId) {\r\n if (response.hasErrorText) {\r\n return;\r\n }\r\n\r\n $(`#periodedefinitieregel-${recordId}`).remove();\r\n }\r\n });\r\n },\r\n periodedefinitieedit: function () {\r\n },\r\n periodedefinitieregeledit: function () {\r\n var savedEinddatum = \"\";\r\n var ja = $('#doorlopend_ja').val();\r\n var nee = $('#doorlopend_nee').val();\r\n var eenheiddag = $('#eenheid_dag').val();\r\n var eenheidweek = $('#eenheid_week').val();\r\n var eenheidmaand = $('#eenheid_maand').val();\r\n\r\n bindDoorlopend();\r\n bindEinddatum();\r\n bindCalcEinddatum();\r\n\r\n function bindDoorlopend() {\r\n $(\"#Doorlopend\").off('change');\r\n $(\"#Doorlopend\").on('change', function () {\r\n var doorlopend = $(this).val();\r\n\r\n var isDoorlopend = doorlopend == ja;\r\n $('#Einddatum').prop(\"disabled\", !isDoorlopend);\r\n\r\n calcEinddatum();\r\n });\r\n }\r\n\r\n function bindEinddatum() {\r\n saveEinddatum();\r\n\r\n $(\"#Einddatum\").off('change');\r\n $(\"#Einddatum\").on('change', function () {\r\n saveEinddatum();\r\n });\r\n }\r\n\r\n function bindCalcEinddatum() {\r\n $(\"#Eenheid, #Aantal, #Startdatum\").off('change');\r\n $(\"#Eenheid, #Aantal, #Startdatum\").on('change', function () {\r\n calcEinddatum();\r\n });\r\n }\r\n\r\n function saveEinddatum() {\r\n var doorlopend = $('#Doorlopend').val();\r\n if (doorlopend != nee) {\r\n var einddatum = $('#Einddatum').val().trim();\r\n if (APPLOYED.validator.isValidDate(einddatum) || einddatum == \"\") {\r\n savedEinddatum = einddatum;\r\n }\r\n }\r\n }\r\n\r\n function calcEinddatum() {\r\n var doorlopend = $('#Doorlopend').val();\r\n\r\n if (doorlopend == nee) {\r\n var aantal = +($('#Aantal').val() || 0);\r\n var eenheid = $('#Eenheid').val();\r\n var startdatum = $('#Startdatum').val();\r\n\r\n var enddate = null;\r\n if (aantal && eenheid && startdatum && APPLOYED.validator.isValidDate(startdatum)) {\r\n var date = DateService.ToDate(startdatum);\r\n\r\n if (eenheid == eenheiddag) {\r\n enddate = DateService.AddDays(date, aantal);\r\n } else if (eenheid == eenheidweek) {\r\n enddate = DateService.AddWeeks(date, aantal);\r\n } else if (eenheid == eenheidmaand) {\r\n enddate = DateService.AddMonths(date, aantal);\r\n }\r\n\r\n enddate = DateService.AddDays(enddate, -1);\r\n }\r\n\r\n $('#Einddatum').val(DateService.ToString(enddate));\r\n }\r\n else {\r\n $('#Einddatum').val(savedEinddatum);\r\n }\r\n }\r\n },\r\n urensoorten: function () {\r\n APPLOYED.tableOverview.altUpdateEditLink = updateEditLink;\r\n APPLOYED.tableOverview.altUpdateDeleteAction = updateDeleteAction;\r\n\r\n $(document).off('click', \".btndeleteurensoort\");\r\n $(document).on('click', \".btndeleteurensoort\", function () {\r\n var recordId = $(this).data('record');\r\n let filter = $('#Filter').val();\r\n\r\n var options = {};\r\n\r\n options[\"tofadein\"] = \"\";\r\n Api.APIcaller.CallAction(\"/Configuration/Timeregistration/UrensoortDelete\", { recordId: recordId, filter: filter }, \"POST\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n\r\n $('#confirmdeletemodal').modal('hide');\r\n });\r\n\r\n function updateEditLink(row, id) {\r\n var editlink = $(row).closest('.tab-content').find('#editlink');\r\n let link = editlink.attr('href');\r\n\r\n if (link == undefined) {\r\n return false;\r\n }\r\n\r\n let replacePatern = /\\/\\d+/gm;\r\n let regexp = new RegExp(replacePatern, \"g\");\r\n editlink.attr('href', link.replace(regexp, '/' + id));\r\n\r\n var canModify = $(row).data(\"canmodify\");\r\n if (APPLOYED.common.isTrue(canModify)) {\r\n editlink.removeClass('disabled');\r\n } else if (!editlink.hasClass('disabled')) {\r\n editlink.addClass('disabled');\r\n }\r\n }\r\n\r\n function updateDeleteAction(row, id) {\r\n var deleteAction = $(row).closest('.tab-content').find('.deleteaction');\r\n deleteAction.data('record', id);\r\n\r\n var canDelete = $(row).data(\"candelete\");\r\n if (APPLOYED.common.isTrue(canDelete)) {\r\n deleteAction.removeClass('disabled');\r\n } else if (!deleteAction.hasClass('disabled')) {\r\n deleteAction.addClass('disabled');\r\n }\r\n }\r\n },\r\n categorien: function () {\r\n $(document).off('click', \".btndeletecategorie\");\r\n $(document).on('click', \".btndeletecategorie\", function () {\r\n var employeeId = $(\"#EmployeeId\").val();\r\n var recordId = $(this).data('record');\r\n let filter = $('#Filter').val();\r\n\r\n var options = {};\r\n\r\n options[\"tofadein\"] = \"\";\r\n Api.APIcaller.CallAction(\"/Configuration/Timeregistration/CategorieDelete\", { recordId: recordId, employeeid: employeeId, filter: filter }, \"POST\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n\r\n $('#confirmdeletemodal').modal('hide');\r\n });\r\n },\r\n categorieedit: function () {\r\n }\r\n}","APPLOYED.customer.absence = {\r\n groupCalendarService = null,\r\n init: function () {\r\n\r\n $(document).off('click', '.smallcube');\r\n $(document).on('click', '.smallcube', function () {\r\n $('.smallcube').removeClass('active');\r\n $(this).addClass('active');\r\n\r\n var recordId = $(this).data('recordid');\r\n $('#SelectedRecordId').val(recordId);\r\n\r\n var employeeid = $(this).data('employeeid');\r\n\r\n if (employeeid == undefined || employeeid == \"undefined\") {\r\n if (APPLOYED.url.getUrlParam(\"employeeid\") != null) {\r\n employeeid = APPLOYED.url.getUrlParam(\"employeeid\");\r\n }\r\n }\r\n\r\n var year = '';\r\n var yearparam = '';\r\n if (APPLOYED.url.getUrlParam(\"year\") != null && APPLOYED.url.getUrlParam(\"year\") != \"0\" && APPLOYED.url.getUrlParam(\"year\") != 0) {\r\n yearparam = \"&year=\";\r\n year = APPLOYED.url.getUrlParam(\"year\");\r\n }\r\n else {\r\n if ($('#YearsList').val().split(',').length > 0) {\r\n yearparam = \"&year=\";\r\n year = $('#YearsList').val();\r\n }\r\n }\r\n\r\n var extraParam = '/' + recordId + '?employeeid=' + employeeid + yearparam + year;\r\n\r\n var option = {};\r\n option[\"tofadein\"] = null;\r\n Api.APIcaller.CallAction(\"/Ajax/GetEmployeesUrl\", { controlle: $('body').data('controller'), actio: $('body').data('action'), parameters: extraParam }, \"GET\", APPLOYED.url.setNewEmployeeUrl, null, null, option, Api.APIcaller.CancelOptions.None);\r\n\r\n var canaddprojectonpage = false;\r\n if (APPLOYED.common.isTrue($(this).data('canaddprojectonpage'))) {\r\n canaddprojectonpage = true;\r\n }\r\n var tablename = $(this).data('tablename');\r\n var mustReload = $(this).data('mustreload');\r\n\r\n var options = {};\r\n options[\"tofadein\"] = \"div[id*='_ContainerId']\";\r\n Api.APIcaller.CallAction(\"/Ajax/LoadAbsenceEdit\", { recordId: recordId, canAddProjectOnPage: canaddprojectonpage, tablename: tablename, mustReload: mustReload, year: year }, \"GET\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n\r\n });\r\n\r\n APPLOYED.customer.bindRefreshOverview(APPLOYED.customer.absence.approve);\r\n },\r\n approve: function () {\r\n APPLOYED.element.dynamicHeight('#searchlist', '.mainscreensized', 65);\r\n\r\n APPLOYED.customer.absence.init();\r\n APPLOYED.requestStatus.bindChangeRequestStatus();\r\n\r\n var selectedRecordId = $('#SelectedRecordId').val();\r\n var obj = $('.smallcube[data-recordid=' + selectedRecordId + ']');\r\n $('.smallcube').removeClass('active');\r\n if (obj.data('recordid') == undefined || obj.data('recordid') == 'undefined') {\r\n obj = $('#searchlist div.smallcube').first();\r\n selectedRecordId = obj.data('recordid');\r\n $('#SelectedRecordId').val(selectedRecordId);\r\n }\r\n\r\n APPLOYED.element.scrollToElementInList(\"#searchlist\", \"[data-recordid='\" + selectedRecordId + \"']\", 45);\r\n\r\n obj.addClass('active');\r\n $('#RecordId').val(selectedRecordId);\r\n var employeeid = obj.data('employeeid');\r\n if (employeeid == undefined || typeof employeeid == 'undefined') {\r\n employeeid = 0;\r\n }\r\n var employeeQS = '?employeeid=' + employeeid;\r\n var extraParam = employeeQS;\r\n\r\n var option = {};\r\n option[\"tofadein\"] = null;\r\n Api.APIcaller.CallAction(\"/Ajax/GetEmployeesUrl\", { controlle: $('body').data('controller'), actio: $('body').data('action'), parameters: extraParam }, \"GET\", APPLOYED.url.setNewEmployeeUrl, null, null, option, Api.APIcaller.CancelOptions.None);\r\n\r\n APPLOYED.expenses.bindExpensesActionEvents();\r\n APPLOYED.filter.bindDropdown('.groupFilter');\r\n },\r\n groupoverview: function () {\r\n APPLOYED.employees.absence.groupCalendarService = new GroupOverviewService();\r\n APPLOYED.employees.absence.groupCalendarService.initCalendar($('#calendar-scheduler').data('showdate'), false);\r\n\r\n APPLOYED.filter.checkAllInit();\r\n\r\n $(document).off('click', '#add-verlof');\r\n $(document).on('click', '#add-verlof', function () {\r\n let data = {\r\n verlofId: 0,\r\n selectedstartDate: $('#startDatum').val(),\r\n selectedendDate: $('#startDatum').val(),\r\n werknemerId: +$(\"#werknemerId\").val(),\r\n status: 387,\r\n typeCalendar: \"group\"\r\n };\r\n\r\n let options = {};\r\n options[\"nofading\"] = false;\r\n options[\"tofadein\"] = this;\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/GetPersonnelCalendarVerlofDetail\", data, \"Post\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n return;\r\n });\r\n },\r\n}","APPLOYED.customer.development = {\r\n init: function () {\r\n\r\n },\r\n gesprekscyclus: function () {\r\n APPLOYED.element.dynamicHeight('#searchlist', '.mainscreensized', 65); // set dynamic height\r\n APPLOYED.element.dynamicHeight('#gesprekscyclusItemDetail', '.mainscreensized', 100); // set dynamic height\r\n\r\n $(document).off('click', '.details-open');\r\n $(document).on('click', '.details-open', function () {\r\n let criterium = $(this).closest('.criterium');\r\n let id = $(criterium).data('id');\r\n\r\n $(criterium).find('.details-close').show();\r\n $(criterium).find('.details-open').hide();\r\n $('.answers[data-id=\"' + id + '\"]').show();\r\n });\r\n\r\n $(document).off('click', '.details-close');\r\n $(document).on('click', '.details-close', function () {\r\n let criterium = $(this).closest('.criterium');\r\n let id = $(criterium).data('id');\r\n\r\n $(criterium).find('.details-close').hide();\r\n $(criterium).find('.details-open').show();\r\n $('.answers[data-id=\"' + id + '\"]').hide();\r\n });\r\n\r\n $(document).off('click', '.gespreksCyclusAddBtn');\r\n $(document).on('click', '.gespreksCyclusAddBtn', function (e) {\r\n e.preventDefault();\r\n\r\n let employeeId = $('#EmployeeId').val();\r\n\r\n let options = {};\r\n options[\"tofadein\"] = \"\";\r\n options[\"loading\"] = \"div[id*='dropdownMenu3']\";\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/GespreksCyclusNewPopup\", { employeeId, section: 'customer' }, \"GET\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n });\r\n\r\n $(document).off('click', '.gesprekscyclusItemSelect');\r\n $(document).on('click', '.gesprekscyclusItemSelect', function () {\r\n selectItem(this);\r\n });\r\n\r\n $(document).off('click', '.gesprekscyclusstatusdelete');\r\n $(document).on('click', '.gesprekscyclusstatusdelete', function () {\r\n let id = $(this).data('statusid');\r\n\r\n $('.gespreksCyclusStatusfilter[data-statusid=\"' + id + '\"]').prop(\"checked\", false);\r\n $(this).closest('.status-container-standaard').hide();\r\n\r\n applyFilter(id, false);\r\n });\r\n\r\n $(document).off('change', '.gespreksCyclusStatusfilter');\r\n $(document).on('change', '.gespreksCyclusStatusfilter', function () {\r\n let checked = $(this).is(':checked');\r\n\r\n let id = $(this).data('statusid');\r\n\r\n if (checked) {\r\n $('.gesprekscyclusstatusdisplay-' + id).show();\r\n } else {\r\n $('.gesprekscyclusstatusdisplay-' + id).hide();\r\n }\r\n\r\n applyFilter(id, checked);\r\n });\r\n\r\n let selectedId = $('#GesprekscyclusId').val();\r\n\r\n if ($('tr[data-gesprekscyclusid=\"' + selectedId + '\"]').length) {\r\n $('tr[data-gesprekscyclusid=\"' + selectedId + '\"]').trigger('click');\r\n }\r\n else {\r\n $('.gesprekscyclusItemSelect').first().trigger('click');\r\n }\r\n\r\n function applyFilter(id, show) {\r\n if (show) {\r\n $('.gesprekscyclusstatus-' + id).closest('.gesprekscyclusItemSelect').show();\r\n } else {\r\n $('.gesprekscyclusstatus-' + id).closest('.gesprekscyclusItemSelect').hide();\r\n }\r\n\r\n if ($('.gesprekscyclusstatus-' + id).closest('.gesprekscyclusItemSelect.active').length) {\r\n $('#gesprekscyclusItemDetail').html(\"\");\r\n $('.gesprekscyclusstatus-' + id).closest('.gesprekscyclusItemSelect.active').removeClass('active');\r\n }\r\n }\r\n\r\n function selectItem(item) {\r\n let id = $(item).data('gesprekscyclusid');\r\n\r\n APPLOYED.report.recordId = id;\r\n\r\n $('.gesprekscyclusItemSelect').removeClass('active');\r\n $(item).addClass('active');\r\n\r\n APPLOYED.loader.WaitLoaderOn(\"div[id='gesprekscyclusItemDetail']\");\r\n\r\n var option = {};\r\n option[\"tofadein\"] = null;\r\n Api.APIcaller.CallAction(\"/Ajax/GetCustomergesprekscyclusDetail\", { id }, \"GET\", null, null, finished, option, Api.APIcaller.CancelOptions.None);\r\n\r\n function finished() {\r\n APPLOYED.loader.ClearLoaderList();\r\n }\r\n\r\n let employeeId = $(item).data('employeeid');\r\n var extraParam = '?employeeid=' + employeeId;\r\n\r\n var option = {};\r\n option[\"tofadein\"] = null;\r\n Api.APIcaller.CallAction(\"/Ajax/GetEmployeesUrl\", { controlle: $('body').data('controller'), actio: $('body').data('action'), parameters: extraParam }, \"GET\", APPLOYED.url.setNewEmployeeUrl, null, null, option, Api.APIcaller.CancelOptions.None);\r\n }\r\n }\r\n}","APPLOYED.customer.expenses = {\r\n init: function () {\r\n\r\n $(document).off('click', '.smallcube');\r\n $(document).on('click', '.smallcube', function () {\r\n $('.smallcube').removeClass('active');\r\n $(this).addClass('active');\r\n\r\n var recordId = $(this).data('recordid');\r\n $('#SelectedRecordId').val(recordId);\r\n\r\n var employeeid = $(this).data('employeeid');\r\n\r\n if (employeeid == undefined || employeeid == \"undefined\") {\r\n if (APPLOYED.url.getUrlParam(\"employeeid\") != null) {\r\n employeeid = APPLOYED.url.getUrlParam(\"employeeid\");\r\n }\r\n }\r\n\r\n var years = '';\r\n var yearparam = '';\r\n if (APPLOYED.url.getUrlParam(\"years\") != null && APPLOYED.url.getUrlParam(\"years\") != \"0\" && APPLOYED.url.getUrlParam(\"years\") != 0) {\r\n yearparam = \"&years=\";\r\n years = APPLOYED.url.getUrlParam(\"years\");\r\n }\r\n else {\r\n if ($('#YearsList').val().split(',').length > 0) {\r\n yearparam = \"&years=\";\r\n years = $('#YearsList').val();\r\n }\r\n }\r\n\r\n var extraParam = '/' + recordId + '?employeeid=' + employeeid + yearparam + years;\r\n\r\n var option = {};\r\n option[\"tofadein\"] = null;\r\n Api.APIcaller.CallAction(\"/Ajax/GetEmployeesUrl\", { controlle: $('body').data('controller'), actio: $('body').data('action'), parameters: extraParam }, \"GET\", APPLOYED.url.setNewEmployeeUrl, null, null, option, Api.APIcaller.CancelOptions.None);\r\n\r\n var canaddprojectonpage = false;\r\n if (APPLOYED.common.isTrue($(this).data('canaddprojectonpage'))) {\r\n canaddprojectonpage = true;\r\n }\r\n var tablename = $(this).data('tablename');\r\n var mustReload = $(this).data('mustreload');\r\n let group = $('#FilterGroup').val();\r\n\r\n var options = {};\r\n\r\n options[\"tofadein\"] = \"div[id*='_ContainerId']\";\r\n Api.APIcaller.CallAction(\"/Ajax/LoadExpensesEdit\", { recordId: recordId, canAddProjectOnPage: canaddprojectonpage, tablename: tablename, mustReload: mustReload, years: years, group, isCustomer = true }, \"GET\", null, null, APPLOYED.customer.expenses.getDeclaratieDocumentCounts(recordId), options, Api.APIcaller.CancelOptions.None);\r\n });\r\n\r\n APPLOYED.customer.bindRefreshOverview(APPLOYED.customer.expenses.declaraties);\r\n },\r\n declaraties: function () {\r\n APPLOYED.element.dynamicHeight('#searchlist', '.mainscreensized', 65);\r\n APPLOYED.customer.expenses.init();\r\n APPLOYED.expenses.downloadBon();\r\n APPLOYED.requestStatus.bindChangeRequestStatus();\r\n\r\n var selectedRecordId = $('#SelectedRecordId').val();\r\n var obj = $('.smallcube[data-recordid=' + selectedRecordId + ']');\r\n $('.smallcube').removeClass('active');\r\n if (obj.data('recordid') == undefined || obj.data('recordid') == 'undefined') {\r\n obj = $('#searchlist div.smallcube').first();\r\n selectedRecordId = obj.data('recordid');\r\n $('#SelectedRecordId').val(selectedRecordId);\r\n }\r\n\r\n obj.addClass('active');\r\n $('#RecordId').val(selectedRecordId);\r\n var employeeid = obj.data('employeeid');\r\n\r\n if (selectedRecordId == undefined || selectedRecordId == \"undefined\") {\r\n selectedRecordId = 0;\r\n }\r\n\r\n var employeeQS = '?employeeid=' + employeeid;\r\n if (employeeid == undefined || employeeid == \"undefined\") {\r\n employeeQS = \"\";\r\n }\r\n\r\n var extraParam = '/' + selectedRecordId + employeeQS;\r\n\r\n var option = {};\r\n option[\"tofadein\"] = null;\r\n Api.APIcaller.CallAction(\"/Ajax/GetEmployeesUrl\", { controlle: $('body').data('controller'), actio: $('body').data('action'), parameters: extraParam }, \"GET\", APPLOYED.url.setNewEmployeeUrl, null, null, option, Api.APIcaller.CancelOptions.None);\r\n\r\n APPLOYED.expenses.bindExpensesActionEvents();\r\n APPLOYED.customer.expenses.getDeclaratieDocumentCounts(selectedRecordId);\r\n\r\n let selectedId = $('#DeclaratieId').val();\r\n\r\n if (selectedId) {\r\n $('div[data-recordid=\"' + selectedId + '\"]').trigger('click');\r\n }\r\n\r\n APPLOYED.element.scrollToElementInList(\"#searchlist\", \"[data-recordid='\" + selectedId + \"']\", 45);\r\n APPLOYED.filter.bindDropdown('.groupFilter');\r\n },\r\n getDeclaratieDocumentCounts: function (recordId) {\r\n APPLOYED.documents.setParameters(\"declaraties\", recordId, \"\", \"\");\r\n APPLOYED.documents.enableOpenButton();\r\n APPLOYED.documents.GetCount();\r\n }\r\n}","APPLOYED.customer.hours = {\r\n init: function () {\r\n $(\".smallcube\").unbind('click');\r\n $(\".smallcube\").bind('click', function () {\r\n $('.smallcube').removeClass('active');\r\n $(this).addClass('active');\r\n\r\n var recordId = $(this).data('weekregistratieid');\r\n $('#SelectedWeekRegistratieRecordId').val(recordId);\r\n\r\n var employeeid = $(this).data('employeeid');\r\n\r\n if (employeeid == undefined || employeeid == \"undefined\") {\r\n if (APPLOYED.url.getUrlParam(\"employeeid\") != null) {\r\n employeeid = APPLOYED.url.getUrlParam(\"employeeid\");\r\n }\r\n }\r\n\r\n var years = '';\r\n var yearparam = '';\r\n if (APPLOYED.url.getUrlParam(\"years\") != null && APPLOYED.url.getUrlParam(\"years\") != \"0\" && APPLOYED.url.getUrlParam(\"years\") != 0) {\r\n yearparam = \"&years=\";\r\n years = APPLOYED.url.getUrlParam(\"years\");\r\n }\r\n else {\r\n if ($('#YearsList').val().split(',').length > 0) {\r\n yearparam = \"&years=\";\r\n years = $('#YearsList').val();\r\n }\r\n }\r\n\r\n var extraParam = '?employeeid=' + employeeid + yearparam + years;\r\n\r\n if ($('body').data('area').toLowerCase() == \"employees\" && (recordId != undefined || recordId != \"undefined\")) {\r\n extraParam = '/' + recordId + '?employeeid=' + employeeid + yearparam + years;\r\n }\r\n\r\n var option = {};\r\n option[\"tofadein\"] = null;\r\n Api.APIcaller.CallAction(\"/Ajax/GetEmployeesUrl\", { controlle: $('body').data('controller'), actio: $('body').data('action'), parameters: extraParam }, \"GET\", APPLOYED.url.setNewEmployeeUrl, null, null, option, Api.APIcaller.CancelOptions.None);\r\n\r\n var canaddprojectonpage = false;\r\n if (APPLOYED.common.isTrue($(this).data('canaddprojectonpage'))) {\r\n canaddprojectonpage = true;\r\n }\r\n var tablename = $(this).data('tablename');\r\n var mustReload = $(this).data('mustreload');\r\n\r\n var options = {};\r\n\r\n options[\"tofadein\"] = \"div[id*='_ContainerId']\";\r\n Api.APIcaller.CallAction(\"/Ajax/LoadProjectHoursEdit\", { recordId: recordId, canAddProjectOnPage: canaddprojectonpage, tablename: tablename, mustReload: mustReload, years: years }, \"GET\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n\r\n APPLOYED.documents.setParameters(\"projecten\", recordId);\r\n APPLOYED.documents.enableOpenButton();\r\n\r\n });\r\n\r\n },\r\n weekregistratie: function () {\r\n APPLOYED.element.dynamicHeight('#searchlist', '.mainscreensized', 65);\r\n APPLOYED.customer.hours.init();\r\n APPLOYED.customer.bindRefreshOverview(APPLOYED.customer.hours.weekregistratie);\r\n APPLOYED.requestStatus.bindChangeRequestStatus();\r\n\r\n var selectedRecordId = $('#SelectedWeekRegistratieRecordId').val();\r\n var obj = $('.smallcube[data-weekregistratieid=' + selectedRecordId + ']');\r\n $('.smallcube').removeClass('active');\r\n\r\n if (obj.data('weekregistratieid') == undefined || obj.data('weekregistratieid') == 'undefined') {\r\n obj = $('#searchlist div.smallcube').first();\r\n selectedRecordId = obj.data('weekregistratieid');\r\n $('#SelectedWeekRegistratieRecordId').val(selectedRecordId);\r\n }\r\n\r\n APPLOYED.element.scrollToElementInList(\"#searchlist\", \"[data-weekregistratieid='\" + selectedRecordId + \"']\", 45);\r\n\r\n obj.addClass('active');\r\n $('#RecordId').val(selectedRecordId);\r\n var employeeid = obj.data('employeeid');\r\n\r\n if (selectedRecordId == undefined || selectedRecordId == \"undefined\") {\r\n selectedRecordId = 0;\r\n }\r\n\r\n var employeeQS = '?employeeid=' + employeeid;\r\n if (employeeid == undefined || employeeid == \"undefined\") {\r\n employeeQS = \"\";\r\n }\r\n\r\n var extraParam = '/' + selectedRecordId + employeeQS;\r\n\r\n var option = {};\r\n option[\"tofadein\"] = null;\r\n Api.APIcaller.CallAction(\"/Ajax/GetEmployeesUrl\", { controlle: $('body').data('controller'), actio: $('body').data('action'), parameters: extraParam }, \"GET\", APPLOYED.url.setNewEmployeeUrl, null, null, option, Api.APIcaller.CancelOptions.None);\r\n\r\n APPLOYED.documents.setParameters(\"projecten\", selectedRecordId);\r\n APPLOYED.documents.enableOpenButton();\r\n\r\n APPLOYED.filter.bindDropdown('.groupFilter');\r\n },\r\n initoveruren: function () {\r\n $(\".smallcube\").unbind('click');\r\n $(\".smallcube\").bind('click', function () {\r\n $('.smallcube').removeClass('active');\r\n $(this).addClass('active');\r\n\r\n var recordId = $(this).data('overtimeid');\r\n $('#SelectedRecordId').val(recordId);\r\n\r\n var employeeid = $(this).data('employeeid');\r\n\r\n if (employeeid == undefined || employeeid == \"undefined\") {\r\n if (APPLOYED.url.getUrlParam(\"employeeid\") != null) {\r\n employeeid = APPLOYED.url.getUrlParam(\"employeeid\");\r\n }\r\n }\r\n\r\n var years = '';\r\n var yearparam = '';\r\n if (APPLOYED.url.getUrlParam(\"years\") != null && APPLOYED.url.getUrlParam(\"years\") != \"0\" && APPLOYED.url.getUrlParam(\"years\") != 0) {\r\n yearparam = \"&years=\";\r\n years = APPLOYED.url.getUrlParam(\"years\");\r\n }\r\n else {\r\n if ($('#YearsList').val().split(',').length > 0) {\r\n yearparam = \"&years=\";\r\n years = $('#YearsList').val();\r\n }\r\n }\r\n\r\n var extraParam = '?employeeid=' + employeeid + yearparam + years;\r\n\r\n if ($('body').data('area').toLowerCase() == \"employees\" && (recordId != undefined || recordId != \"undefined\")) {\r\n extraParam = '/' + recordId + '?employeeid=' + employeeid + yearparam + years;\r\n }\r\n\r\n var option = {};\r\n option[\"tofadein\"] = null;\r\n Api.APIcaller.CallAction(\"/Ajax/GetEmployeesUrl\", { controlle: $('body').data('controller'), actio: $('body').data('action'), parameters: extraParam }, \"GET\", APPLOYED.url.setNewEmployeeUrl, null, null, option, Api.APIcaller.CancelOptions.None);\r\n\r\n var canaddprojectonpage = false;\r\n if (APPLOYED.common.isTrue($(this).data('canaddprojectonpage'))) {\r\n canaddprojectonpage = true;\r\n }\r\n var tablename = $(this).data('tablename');\r\n var mustReload = $(this).data('mustreload');\r\n let group = $('#FilterGroup').val();\r\n\r\n var options = {};\r\n\r\n options[\"tofadein\"] = \"div[id*='_ContainerId']\";\r\n Api.APIcaller.CallAction(\"/Ajax/LoadOverTimeEdit\", { recordId: recordId, canAddProjectOnPage: canaddprojectonpage, tablename: tablename, group, mustReload: mustReload, years: years, werknemerId: employeeid }, \"GET\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n\r\n APPLOYED.documents.setParameters(\"overurenaanvragen\", recordId);\r\n APPLOYED.documents.enableOpenButton();\r\n\r\n });\r\n },\r\n overuren: function () {\r\n APPLOYED.element.dynamicHeight('#searchlist', '.mainscreensized', 65);\r\n APPLOYED.customer.hours.initoveruren();\r\n APPLOYED.customer.bindRefreshOverview(APPLOYED.customer.hours.overuren);\r\n APPLOYED.requestStatus.bindChangeRequestStatus();\r\n\r\n var selectedRecordId = $('#SelectedRecordId').val();\r\n var obj = $('.smallcube[data-overtimeid=' + selectedRecordId + ']');\r\n $('.smallcube').removeClass('active');\r\n if (obj.data('overtimeid') == undefined || obj.data('overtimeid') == 'undefined') {\r\n obj = $('#searchlist div.smallcube').first();\r\n selectedRecordId = obj.data('overtimeid');\r\n $('#SelectedRecordId').val(selectedRecordId);\r\n }\r\n\r\n obj.addClass('active');\r\n $('#RecordId').val(selectedRecordId);\r\n var employeeid = obj.data('employeeid');\r\n\r\n if (selectedRecordId == undefined || selectedRecordId == \"undefined\") {\r\n selectedRecordId = 0;\r\n }\r\n\r\n var employeeQS = '?employeeid=' + employeeid;\r\n if (employeeid == undefined || employeeid == \"undefined\") {\r\n employeeQS = \"\";\r\n }\r\n\r\n var extraParam = '/' + selectedRecordId + employeeQS;\r\n\r\n var option = {};\r\n option[\"tofadein\"] = null;\r\n Api.APIcaller.CallAction(\"/Ajax/GetEmployeesUrl\", { controlle: $('body').data('controller'), actio: $('body').data('action'), parameters: extraParam }, \"GET\", APPLOYED.url.setNewEmployeeUrl, null, null, option, Api.APIcaller.CancelOptions.None);\r\n\r\n APPLOYED.documents.setParameters(\"overurenaanvragen\", selectedRecordId);\r\n APPLOYED.documents.enableOpenButton();\r\n\r\n let selectedId = $('#OverurenId').val();\r\n\r\n if (selectedId) {\r\n $('div[data-overtimeid=\"' + selectedId + '\"]').trigger('click');\r\n }\r\n\r\n APPLOYED.element.scrollToElementInList(\"#searchlist\", \"[data-overtimeid='\" + selectedId + \"']\", 45);\r\n\r\n APPLOYED.filter.bindDropdown('.groupFilter');\r\n }\r\n}","APPLOYED.customer.personnel = {\r\n init: function () {\r\n \r\n },\r\n werknemeroverzicht: function () {\r\n var element = $('#EmployeeOverViewtable');\r\n var columDefs = [];\r\n\r\n APPLOYED.table.dataTable(element, false, true, false, true, columDefs, []);\r\n\r\n $('#EmployeeOverViewtable_filter').hide();\r\n\r\n $(element).find('tbody').off('click', 'tr');\r\n $(element).find('tbody').on('click', 'tr', function () {\r\n $('tr.selected').removeClass('selected');\r\n $(this).addClass('selected');\r\n });\r\n\r\n $(document).off('click', '#EmployeeOverViewtable tr');\r\n $(document).on('click', '#EmployeeOverViewtable tr', function () {\r\n let employeeid = $(this).data('id');\r\n\r\n if (employeeid) {\r\n let employeeName = $(this).find('a').html();\r\n updateDeleteAction(employeeid, employeeName);\r\n APPLOYED.report.UpdateRecordId(employeeid);\r\n }\r\n });\r\n\r\n $(document).off('click', '#actions > a');\r\n $(document).on('click', '#actions > a', function () {\r\n APPLOYED.loader.WaitLoaderOn(\"div[id*='dropdownMenu3']\");\r\n });\r\n\r\n function updateDeleteAction(id, employeeName) {\r\n $('.deleteaction').removeClass('disabled');\r\n $('.deleteaction').data('record', id);\r\n $('.deleteaction').attr('data-record', id);\r\n $('#confirmdeletemodalitemname').html(\"| \" + employeeName);\r\n $('#confirmdeletemodalitemname').show();\r\n };\r\n\r\n $(\"#searchinputbox\").unbind('keyup copy paste');\r\n $(\"#searchinputbox\").bind('keyup copy paste', function () {\r\n var table = $('#EmployeeOverViewtable').DataTable();\r\n table.search($(this).val()).draw();\r\n });\r\n\r\n $('.filterstatuscheckbox').unbind('click');\r\n $('.filterstatuscheckbox').bind('click', function () {\r\n var filtername = $(this).data(\"filterstatus\").toString();\r\n $('div.filterstatuscheckbox' + filtername.toLowerCase() + '').hide();\r\n $('.chkFilterStatusTable[id=customCheck' + filtername + ']').prop('checked', false);\r\n redrawTable();\r\n });\r\n\r\n function redrawTable() {\r\n var value = [];\r\n $(\".chkFilterStatusTable\").each(function () {\r\n if ($(this).is(':checked')) {\r\n value.push($(this).val());\r\n $('div.filterstatuscheckbox' + $(this).attr('id').replace(\"customCheck\", \"\") + '').show();\r\n } else {\r\n $('div.filterstatuscheckbox' + $(this).attr('id').replace(\"customCheck\", \"\") + '').hide();\r\n }\r\n });\r\n \r\n var table = $('#EmployeeOverViewtable').DataTable();\r\n \r\n if (value == \"\") {\r\n value.push(\"-1\");\r\n }\r\n var pattern = (\"\\\\b\" + value.join('\\\\b|\\\\b') + '\\\\b');\r\n \r\n table.column(2).search(pattern, true, false).draw();\r\n };\r\n\r\n $(\".chkFilterStatusTable\").unbind('click');\r\n $(\".chkFilterStatusTable\").bind('click', function () {\r\n redrawTable();\r\n });\r\n\r\n redrawTable();\r\n },\r\n deleteWerknemerEvent: function () {\r\n $(document).off('click', '.btndeleterecord');\r\n $(document).on('click', '.btndeleterecord', function () {\r\n let recordid = $('.deleteaction').data('record');\r\n let customerid = $('.deleteaction').data('customer');\r\n let section = $('.deleteaction').data('section');\r\n\r\n let options = {};\r\n options[\"tofadein\"] = null;\r\n options[\"loading\"] = 'div[id=\"dropdownMenu3\"]';\r\n\r\n Api.APIcaller.CallAction(section, { recordid: recordid, customerid: customerid }, \"POST\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n });\r\n },\r\n zelfinvullenwerknemers: function() {\r\n APPLOYED.tableOverview.init();\r\n APPLOYED.tableOverview.altUpdateEditLink = updateEditLink;\r\n APPLOYED.tableOverview.altUpdateDeleteAction = updateDeleteAction;\r\n\r\n initSelectedRow();\r\n \r\n function updateEditLink(row, id) {\r\n updateEditAction(row, id);\r\n updateViewAction(row, id);\r\n }\r\n\r\n function updateEditAction(row, id) {\r\n var editlink = $(row).closest('.tab-content').find('#editlink');\r\n let link = editlink.attr('href');\r\n\r\n if (link == undefined) {\r\n return false;\r\n }\r\n\r\n let replacePatern = /\\/\\d+/gm;\r\n let regexp = new RegExp(replacePatern, \"g\");\r\n editlink.attr('href', link.replace(regexp, '/' + id));\r\n\r\n var canModify = $(row).data(\"canmodify\");\r\n if (APPLOYED.common.isTrue(canModify)) {\r\n editlink.removeClass('disabled');\r\n } else if (!editlink.hasClass('disabled')){\r\n editlink.addClass('disabled');\r\n }\r\n }\r\n\r\n function updateViewAction(row, id) {\r\n var viewaction = $(row).closest('.tab-content').find('.viewaction');\r\n let link = viewaction.attr('href');\r\n\r\n if (link == undefined) {\r\n return false;\r\n }\r\n\r\n let replacePatern = /\\/\\d+/gm;\r\n let regexp = new RegExp(replacePatern, \"g\");\r\n viewaction.attr('href', link.replace(regexp, '/' + id));\r\n viewaction.removeClass('disabled');\r\n }\r\n\r\n function updateDeleteAction(row, id) {\r\n var deleteAction = $(row).closest('.tab-content').find('.deleteaction');\r\n deleteAction.data('record', id);\r\n\r\n var canDelete = $(row).data(\"candelete\");\r\n if (APPLOYED.common.isTrue(canDelete)) {\r\n deleteAction.removeClass('disabled');\r\n } else if (!deleteAction.hasClass('disabled')) {\r\n deleteAction.addClass('disabled');\r\n }\r\n }\r\n\r\n function initSelectedRow() {\r\n var selectedRecordId = $('#ZelfinvullenwerknemersId').val();\r\n var row = $('.toprow[data-tableid=' + selectedRecordId + ']');\r\n APPLOYED.tableOverview.selectRow(row);\r\n }\r\n },\r\n zelfinvullenwerknemersedit: function () {\r\n APPLOYED.customer.personnel.initZelfInvullenForm(false);\r\n\r\n // disable going to any step when at step one and new record is being added\r\n if (APPLOYED.wizard.curStep == 1 && APPLOYED.common.isTrue($('#isnewrecord').val())) {\r\n APPLOYED.wizard.allowAnyStep = false;\r\n }\r\n },\r\n zelfinvullenwerknemersingediend: function () {\r\n APPLOYED.customer.personnel.initZelfInvullenForm(true);\r\n },\r\n zelfinvullenwerknemersview: function () {\r\n APPLOYED.customer.personnel.initZelfInvullenForm(true);\r\n },\r\n initZelfInvullenForm: function (readOnly) {\r\n // Clear notifications\r\n Api.Main.clearNotify();\r\n\r\n // Init wizard\r\n var hasValidation = APPLOYED.common.isTrue($('#validatesteps').val());\r\n APPLOYED.wizard.init($('#Step').val(), hasValidation);\r\n APPLOYED.wizard.allowAnyStep = true;\r\n\r\n APPLOYED.wizard.callback.next = navigate;\r\n APPLOYED.wizard.callback.previous = navigate;\r\n APPLOYED.wizard.callback.goto = navigate;\r\n\r\n if (hasValidation) {\r\n validateSteps();\r\n }\r\n\r\n $(document).on('change', '.form-control, .custom-control-input', function () {\r\n if (hasValidation) {\r\n var step = $(this).closest('.wizardContentItem').attr('id');\r\n validateStep(step);\r\n }\r\n enableSave(true);\r\n });\r\n\r\n APPLOYED.validator.bindRequiredFields('#email', '#emailNext', false);\r\n APPLOYED.validator.bindRequiredFields('#steps-container', '#submit', false);\r\n\r\n if (readOnly) {\r\n $('.input-group-addon.date-addon-offset.date').unbind('click');\r\n }\r\n\r\n $(document).off('change', '#' + $.escapeSelector('Contract_BedrijfId'));\r\n $(document).on('change', '#' + $.escapeSelector('Contract_BedrijfId'), function () {\r\n APPLOYED.picklist.updateFkRecordId('Contract_AfdelingId', $(this).val());\r\n });\r\n\r\n $(document).off('change', '#DocumentenToegevoegd');\r\n $(document).on('change', '#DocumentenToegevoegd', function () {\r\n var checked = $(this).is(':checked');\r\n updateCheckBoxValue(\"Documenten\", \"DocumentenToegevoegd\", checked);\r\n checkEnableDocuments();\r\n });\r\n\r\n $(document).off('change', '#NaarWaarheidIngevuld');\r\n $(document).on('change', '#NaarWaarheidIngevuld', function () {\r\n var checked = $(this).is(':checked');\r\n updateCheckBoxValue(\"Indienen\", \"NaarWaarheidIngevuld\", checked);\r\n });\r\n\r\n $(document).off('click', '#getNewEmployeeNumber');\r\n $(document).on('click', '#getNewEmployeeNumber', function () {\r\n let options = {};\r\n options[\"tofadein\"] = null;\r\n options[\"loading\"] = this;\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/GetNewEmployeeNumber\", null, \"POST\", null, null, complete, options, Api.APIcaller.CancelOptions.None);\r\n\r\n function complete(e) {\r\n let nummer = e.jsoNresults[0];\r\n \r\n $(\"#Personeelsnummer\").val(nummer);\r\n $(\"#Personeelsnummer\").trigger('keyup');\r\n $(\"#Personeelsnummer\").trigger('focus');\r\n $(\"#Personeelsnummer\").trigger('blur');\r\n }\r\n });\r\n\r\n $(document).off('click', '#getNewEmployeeNumberOnboarding');\r\n $(document).on('click', '#getNewEmployeeNumberOnboarding', function () {\r\n let options = {};\r\n options[\"tofadein\"] = null;\r\n options[\"loading\"] = this;\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/GetNewEmployeeNumber\", null, \"POST\", null, null, complete, options, Api.APIcaller.CancelOptions.None);\r\n\r\n function complete(e) {\r\n let nummer = e.jsoNresults[0];\r\n\r\n $(\"#Goedkeuren_Personeelsnummer\").val(nummer);\r\n $(\"#Goedkeuren_Personeelsnummer\").trigger('keyup');\r\n $(\"#Goedkeuren_Personeelsnummer\").trigger('focus');\r\n $(\"#Goedkeuren_Personeelsnummer\").trigger('blur');\r\n }\r\n });\r\n\r\n $(document).off('click', '#emailNext');\r\n $(document).on('click', '#emailNext', function () {\r\n APPLOYED.wizard.allowAnyStep = true; // user is now allowed to go to any step.\r\n\r\n var isNewRecord = $('#isnewrecord').val();\r\n\r\n if (!APPLOYED.common.isTrue(isNewRecord)) {\r\n return;\r\n }\r\n\r\n var email = $(\"[name$='.Email']\").val();\r\n\r\n let options = {};\r\n options[\"tofadein\"] = null;\r\n options[\"loading\"] = this;\r\n\r\n Api.APIcaller.CallAction(\"/Customer/Personnel/ZelfinvullenwerknemersAdd\", { email }, \"POST\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n });\r\n\r\n $(document).off('keydown', '.enable-enter');\r\n $(document).on('keydown', '.enable-enter', function (event) {\r\n if (event.key == \"Enter\") {\r\n if ($(this).val() != '') {\r\n $('#emailNext').attr('disabled', false);\r\n $('#emailNext').trigger('click');\r\n }\r\n }\r\n });\r\n\r\n $(document).off('click', '.save, #submit');\r\n $(document).on('click', '.save, #submit', function () {\r\n Api.Main.clearNotify();\r\n\r\n let options = {};\r\n\r\n options[\"tofadein\"] = $(this).closest('.wizardContentItem').find('.wizardForm');\r\n options[\"loading\"] = this;\r\n\r\n var nieuweStatus = $(this).data(\"status\");\r\n $('#NieuweStatus').val(nieuweStatus);\r\n\r\n var form = $(this).closest(\"form\");\r\n var data = Api.Main.serialize(form);\r\n\r\n Api.APIcaller.CallAction(\"/Customer/Personnel/ZelfinvullenwerknemersSave\", data, \"POST\", success, null, null, options, Api.APIcaller.CancelOptions.None);\r\n\r\n function success(response) {\r\n if (!response.hasErrorText) {\r\n enableSave(false);\r\n }\r\n Api.APIcaller.defaultSuccessHandler(response);\r\n }\r\n });\r\n\r\n bindContractUren();\r\n bindDocuments();\r\n checkEnableDocuments();\r\n\r\n var doLogoff = $('#DoLogoff').val();\r\n if (APPLOYED.common.isTrue(doLogoff)) {\r\n showLogoff();\r\n }\r\n\r\n function showLogoff() {\r\n let title = $('#StatusNaam').val();\r\n let body = $('#StatusMessage').val();\r\n\r\n $('#confirmmessagemodaltitle').html(title);\r\n $('#confirmmessagemodalbody').html(body);\r\n\r\n $('#confirmmessagemodalaction').one('click', function () {\r\n $('#confirmmessagemodal').modal('hide');\r\n logoff();\r\n });\r\n\r\n $('#confirmmessagemodal').modal('show');\r\n $('#confirmmessagemodal').one('hidden.bs.modal', function () {\r\n $('#confirmmessagemodalaction').off('click');\r\n $('#confirmmessagemodalaction').unbind('click');\r\n });\r\n\r\n function logoff() {\r\n Api.APIcaller.CallAction(\"/auth/session/logoff\", {}, \"POST\", null, null, null, null, Api.APIcaller.CancelOptions.None);\r\n }\r\n }\r\n\r\n function bindContractUren() {\r\n $(document).on('change', \"[id$='Maandag'], [id$='Dinsdag'], [id$='Woensdag'], [id$='Donderdag'], [id$='Vrijdag'], [id$='Zaterdag'], [id$='Zondag']\", function () {\r\n let total =\r\n Number($(\"[id$='Maandag']\").val()) +\r\n Number($(\"[id$='Dinsdag']\").val()) +\r\n Number($(\"[id$='Woensdag']\").val()) +\r\n Number($(\"[id$='Donderdag']\").val()) +\r\n Number($(\"[id$='Vrijdag']\").val()) +\r\n Number($(\"[id$='Zaterdag']\").val()) +\r\n Number($(\"[id$='Zondag']\").val());\r\n\r\n $(\"[id$='TotaalUren']\").val(total.toFixed(2));\r\n });\r\n\r\n }\r\n\r\n function bindDocuments() {\r\n $(document).off('click', '#documentAdd');\r\n $(document).on('click', '#documentAdd', function () {\r\n editDocument(0);\r\n });\r\n\r\n $(document).off('click', '.documenteditlink');\r\n $(document).on('click', '.documenteditlink', function () {\r\n var id = $(this).closest('tr').data('documentid');\r\n var key = $(this).closest('tr').data('documentkey');\r\n editDocument(id, key);\r\n });\r\n\r\n $(document).off('click', '#btndocumentcancel');\r\n $(document).on('click', '#btndocumentcancel', function (event) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n showDocumentsOverview();\r\n });\r\n\r\n $(document).off('click', '#btndocumentsave');\r\n $(document).on('click', '#btndocumentsave', function (event) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n saveDocument();\r\n });\r\n\r\n $(document).off('change keyup', '#FileName');\r\n $(document).on('change keyup', '#FileName', function (event) {\r\n let hasFileExtension = APPLOYED.validator.hasFileExtension(this);\r\n hasFileExtension == true ? $('.invalidFileExtension').hide() : $('.invalidFileExtension').show();\r\n\r\n if (!hasFileExtension) {\r\n $('#btndocumentsave').prop('disabled', true)\r\n } else if ($('#DocumentId').val() != \"0\") {\r\n $('#btndocumentsave').prop('disabled', false)\r\n } else {\r\n var input = $('#File');\r\n if (input[0].files && input[0].files[0]) {\r\n $('#btndocumentsave').prop('disabled', false)\r\n }\r\n }\r\n });\r\n\r\n $(document).off('click', '.downloadDocument');\r\n $(document).on('click', '.downloadDocument', function (e) {\r\n e.preventDefault();\r\n\r\n let documentid = $(this).parents('tr').data('documentid');\r\n let documentkey = $(this).parents('tr').data('documentkey');\r\n\r\n APPLOYED.documents.overview.getdocument(documentid, documentkey);\r\n });\r\n\r\n $(document).off('click', '.documentdelete');\r\n $(document).on('click', '.documentdelete', function () {\r\n let title = $(this).data('title');\r\n let body = $(this).data('body');\r\n let documentid = $(this).data('documentid');\r\n let documentkey = $(this).data('documentkey');\r\n let recordId = $(\"#ZelfinvullenwerknemersId\").val();\r\n\r\n $('#confirmdeletemodaltitle').html(title);\r\n $('#confirmdeletemodalbody').html(body);\r\n\r\n $('#confirmdeletemodalaction').one('click', function () {\r\n $('#confirmdeletemodal').modal('hide');\r\n deleteDocument(recordId, documentid, documentkey);\r\n });\r\n\r\n $('#confirmdeletemodal').modal('show');\r\n $('#confirmdeletemodal').one('hidden.bs.modal', function () {\r\n $('#confirmdeletemodalaction').off('click');\r\n $('#confirmdeletemodalaction').unbind('click');\r\n });\r\n });\r\n }\r\n\r\n function editDocument(documentId, documentKey) {\r\n var recordId = $(\"#ZelfinvullenwerknemersId\").val();\r\n\r\n let options = {};\r\n options[\"tofadein\"] = \"#documenten\";\r\n options[\"loading\"] = null;\r\n\r\n Api.APIcaller.CallAction(\"/Customer/Personnel/ZelfinvullenwerknemersEditDocument\", { recordId, documentId, documentKey }, \"GET\", success, null, null, options, Api.APIcaller.CancelOptions.None);\r\n\r\n function success(response) {\r\n Api.APIcaller.defaultSuccessHandler(response);\r\n if (!response.hasErrorText) {\r\n showDocumentEdit();\r\n }\r\n }\r\n }\r\n\r\n function saveDocument() {\r\n\r\n var formDataTemp = new FormData();\r\n var fileTooLargeTemp = false;\r\n var file = document.getElementById('File');\r\n\r\n var { formData, fileTooLarge } = APPLOYED.file.CheckIfMaxFileSize(file, formDataTemp, fileTooLargeTemp);\r\n\r\n // do not proceed if any file is too large\r\n if (fileTooLarge) {\r\n Api.Main.displayNotify($('#FileTooLargeErrorText').val(), true);\r\n APPLOYED.loader.WaitLoaderOff(\"button[id='btndocumentsave']\");\r\n } else {\r\n\r\n formData.append(\"documentId\", $(\"#DocumentId\").val());\r\n formData.append(\"recordId\", $(\"#ZelfinvullenwerknemersId\").val());\r\n formData.append(\"documentKey\", $(\"#DocumentKey\").val());\r\n formData.append(\"fileName\", $(\"#FileName\").val());\r\n formData.append(\"tableName\", $(\"#TableName\").val());\r\n\r\n let options = {};\r\n options[\"tofadein\"] = \"#documenten\";\r\n options[\"loading\"] = null;\r\n options.contentType = false;\r\n options.processData = false;\r\n\r\n Api.APIcaller.CallAction(\"/Customer/Personnel/ZelfinvullenwerknemersSaveDocument\", formData, \"POST\", success, null, null, options, Api.APIcaller.CancelOptions.None);\r\n }\r\n \r\n }\r\n\r\n function success(response) {\r\n Api.APIcaller.defaultSuccessHandler(response);\r\n if (!response.hasErrorText) {\r\n showDocumentsOverview();\r\n enableSave(true);\r\n updateDocumentenToegevoegd();\r\n }\r\n }\r\n\r\n function deleteDocument(recordId, documentId, documentKey) {\r\n if (documentId) {\r\n let options = {};\r\n options[\"tofadein\"] = \"#documentsOverview\";\r\n options[\"loading\"] = null;\r\n\r\n Api.APIcaller.CallAction(\"/Customer/Personnel/ZelfinvullenwerknemersDeleteDocument\", { recordId, documentId, documentKey }, \"POST\", (response) => success(response, documentId), null, null, options, Api.APIcaller.CancelOptions.None);\r\n }\r\n\r\n function success(response, documentId) {\r\n Api.APIcaller.defaultSuccessHandler(response);\r\n if (!response.hasErrorText) {\r\n var row = $('#documentsOverview').find('tr[data-documentid=\"' + documentId + '\"]');\r\n row.remove();\r\n showDocumentsOverview();\r\n enableSave(true);\r\n updateDocumentenToegevoegd();\r\n }\r\n }\r\n }\r\n\r\n function hasDocuments() {\r\n var rows = $('.documenttoprow').length;\r\n return rows > 0;\r\n }\r\n\r\n function updateDocumentenToegevoegd() {\r\n var hasDocs = hasDocuments();\r\n\r\n var label = \"\";\r\n if (hasDocs) {\r\n label = $('#LabelDocumentenToegevoegd').val();\r\n } else {\r\n label = $('#LabelDocumentenOverslaan').val();\r\n }\r\n\r\n if (label != $('.lbl_documententoegevoegd').text()) {\r\n $('.lbl_documententoegevoegd').text(label);\r\n if (!hasDocs) {\r\n $('#DocumentenToegevoegd').prop('checked', false);\r\n $('#DocumentenToegevoegd').trigger('change');\r\n }\r\n }\r\n\r\n checkEnableDocuments();\r\n }\r\n\r\n function showDocumentEdit() {\r\n $('#documentsView').hide();\r\n $('#documentEdit').show();\r\n APPLOYED.wizard.navigate.disabled = true;\r\n $('.actionButtons').hide();\r\n }\r\n\r\n function showDocumentsOverview() {\r\n $('#documentEdit').hide();\r\n $('#documentsView').show();\r\n APPLOYED.wizard.navigate.disabled = false;\r\n $('.actionButtons').show();\r\n }\r\n\r\n function navigate() {\r\n Api.Main.clearNotify();\r\n }\r\n\r\n function updateCheckBoxValue(section, name, value) {\r\n var id = $.escapeSelector(section + '_' + name);\r\n $('#' + id).val(value)\r\n }\r\n\r\n function checkEnableDocuments() {\r\n var checked = $('#DocumentenToegevoegd').is(':checked');\r\n\r\n if (checked) {\r\n $('#documentAdd').addClass('disabled');\r\n } else {\r\n $('#documentAdd').removeClass('disabled');\r\n }\r\n }\r\n\r\n function validateSteps() {\r\n var steps = $('#wizardContent').find('.wizardContentItem');\r\n\r\n steps.each(function () {\r\n var step = $(this).attr('id');\r\n validateStep(step);\r\n });\r\n }\r\n\r\n function validateStep(curStep) {\r\n var isvalid = isValid(curStep);\r\n if (isvalid) {\r\n APPLOYED.wizard.validate.validated(curStep);\r\n } else {\r\n APPLOYED.wizard.validate.unvalidated(curStep);\r\n }\r\n }\r\n\r\n function isValid(curStep) {\r\n return APPLOYED.validator.validateRequiredFields('#' + curStep);\r\n }\r\n\r\n function enableSave(enabled) {\r\n if (enabled) {\r\n $('#navbaruser').hide()\r\n $('.save').prop('disabled', false);\r\n } else {\r\n $('#navbaruser').show()\r\n $('.save').prop('disabled', true);\r\n }\r\n }\r\n }\r\n}","APPLOYED.customer.salary = {\r\n init: function () {\r\n\r\n },\r\n salarisperiodes: function () {\r\n APPLOYED.element.dynamicHeight('#searchlist', '.mainscreensized', 65);\r\n selectFirstItem();\r\n\r\n $(document).off('click', '.salaryperiodItemSelect');\r\n $(document).on('click', '.salaryperiodItemSelect', function () {\r\n selectItem(this);\r\n });\r\n\r\n $(document).off('change', '.salaryperiodfilter');\r\n $(document).on('change', '.salaryperiodfilter', function () {\r\n selectfilter(this);\r\n });\r\n\r\n $(document).off('click', '.salarydocumentsButton');\r\n $(document).on('click', '.salarydocumentsButton', function () {\r\n let salaryPeriodId = $(this).data('salaryperiodid');\r\n\r\n downloadZipFile(salaryPeriodId);\r\n });\r\n\r\n $(document).off('click', '.editNote');\r\n $(document).on('click', '.editNote', function () {\r\n $(this).hide();\r\n $('.btn-aanleveren').attr('disabled', true);\r\n $(this).parent().find('.saveNote').show();\r\n $(this).closest('.row').find('textarea').removeAttr('readonly');\r\n $(this).closest('.row').find('textarea').focus();\r\n });\r\n\r\n $(document).off('click', '.saveNote');\r\n $(document).on('click', '.saveNote', function () {\r\n var self = this;\r\n\r\n let id = $(this).data('salaryperiodid');\r\n let parentid = $(this).data('parentid');\r\n let newNote = $(this).closest('.row').find('textarea').val();\r\n\r\n var options = {};\r\n options[\"tofadein\"] = null;\r\n options[\"loading\"] = 'a[class*=\"saveNote\"]';\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/EditSalaryPeriodNote\", { salaryPeriodId: id, parentid: parentid, note: newNote }, \"POST\", null, null, EditSalaryPeriodNoteEdit, options, Api.APIcaller.CancelOptions.None);\r\n\r\n function EditSalaryPeriodNoteEdit() {\r\n $(self).hide();\r\n $(self).parent().find('.editNote').show();\r\n $(self).closest('.row').find('textarea').attr('readonly', 'readonly');\r\n }\r\n\r\n $('.btn-aanleveren').attr('disabled', false);\r\n });\r\n\r\n function downloadZipFile(id) {\r\n var options = {};\r\n options[\"tofadein\"] = null;\r\n options[\"loading\"] = 'a[class*=\"salarydocumentsButton\"]';\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/DownloadSalarisPeriodDocuments\", { salaryPeriodId: id }, \"POST\", null, null, DownloadSalarisPeriodDocumentsFinished, options, Api.APIcaller.CancelOptions.None);\r\n\r\n function DownloadSalarisPeriodDocumentsFinished(e) {\r\n let link = e.jsoNresults[0];\r\n\r\n if (link != \"\") {\r\n window.location.href = link;\r\n }\r\n }\r\n }\r\n\r\n function selectFirstItem() {\r\n id = $('.salaryperiodItemSelect.active').data('salaryperiodid');\r\n\r\n if (id > 0) {\r\n getHasDocuments(id);\r\n APPLOYED.documents.setParameters('salarisperiode', id);\r\n APPLOYED.documents.enableOpenButton();\r\n }\r\n }\r\n\r\n function selectItem(item) {\r\n let id = $(item).data('salaryperiodid');\r\n\r\n $('.salaryperiodItemSelect').removeClass('active');\r\n $(item).addClass('active');\r\n\r\n APPLOYED.documents.setParameters('salarisperiode', id);\r\n APPLOYED.documents.enableOpenButton();\r\n\r\n $('.salaryperiodItem').hide()\r\n $('#salaryperiod-' + id).show();\r\n\r\n getHasDocuments(id);\r\n }\r\n\r\n function getHasDocuments(id) {\r\n if (APPLOYED.common.isTrue($('#salaryperiod-' + id).find('.salarydocumentsButton').data('fetched'))) {\r\n return;\r\n }\r\n\r\n var options = {};\r\n options[\"tofadein\"] = null;\r\n options[\"loading\"] = 'a[class*=\"salarydocumentsButton\"]';\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/SalaryPeriodHasDocuments\",\r\n { salaryPeriodId: id }, \"POST\", null, null, finished, options, Api.APIcaller.CancelOptions.None);\r\n\r\n function finished(data) {\r\n if (APPLOYED.common.isTrue(data.jsoNresults[0])) {\r\n $('#salaryperiod-' + id).find('.salarydocumentsButton').removeClass('disabled');\r\n }\r\n\r\n $('#salaryperiod-' + id).find('.salarydocumentsButton').data('fetched', true);\r\n }\r\n }\r\n\r\n function selectfilter(item) {\r\n let type = $(item).data('filtername');\r\n let value = $(item).val();\r\n let redirectTo = $(item).data('redirectto');\r\n let checked = $(item).is(':checked');\r\n\r\n $(\".salaryperiodfilter\").each(function () {\r\n if ($(this).val() != value && $(this).data('filtername') == type) {\r\n $(this).attr('checked', false);\r\n }\r\n });\r\n\r\n APPLOYED.filter.set(redirectTo, type, value, checked);\r\n }\r\n },\r\n salarisaanleveren: function () {\r\n // init\r\n APPLOYED.wizard.init();\r\n\r\n // callbacks\r\n APPLOYED.wizard.on('next', next); // on click next callback\r\n\r\n // bindings\r\n $(document).on('click', '#copyResult', function () {\r\n $('#remarks').select();\r\n document.execCommand(\"copy\");\r\n });\r\n\r\n // checkbox logic for declarations\r\n $(document).on('change', '#salaryAllCheckbox', function () {\r\n $('input[type=\"checkbox\"].salaryCheckbox').prop('checked', $(this).is(':checked'));\r\n });\r\n\r\n $(document).on('change', 'input[type=\"checkbox\"].salaryCheckbox', function () {\r\n $('#salaryAllCheckbox').prop(\"checked\", ($('input[type=\"checkbox\"]:not(:checked).salaryCheckbox').length <= 0));\r\n });\r\n\r\n // checkbox logic for hours\r\n $(document).on('change', '#urenAllCheckbox', function () {\r\n $('input[type=\"checkbox\"].urenCheckbox').prop('checked', $(this).is(':checked'));\r\n });\r\n\r\n $(document).on('change', 'input[type=\"checkbox\"].urenCheckbox', function () {\r\n $('#urenAllCheckbox').prop(\"checked\", ($('input[type=\"checkbox\"]:not(:checked).urenCheckbox').length <= 0));\r\n });\r\n\r\n $('form').submit(function (e) {\r\n var self = this;\r\n\r\n $(\"button[id*='WizardSubmit']\").prop('disabled', true);\r\n APPLOYED.loader.WaitLoaderOn(\"button[id*='WizardSubmit']\");\r\n\r\n $('.salaryCheckbox').each(function () {\r\n let id = $(this).data('id');\r\n\r\n if ($('#salaryCheckbox-' + id).is(':checked')) {\r\n $(self).append('');\r\n }\r\n });\r\n\r\n $('.urenCheckbox').each(function () {\r\n let id = $(this).data('id');\r\n\r\n if ($('#urenCheckbox-' + id).is(':checked')) {\r\n $(self).append('');\r\n }\r\n });\r\n });\r\n\r\n /**\r\n * Callback function for wizard next. \r\n * Handle valiations etc.\r\n * \r\n * @param {any} curStep\r\n * @param {any} nextStep\r\n */\r\n function next(curStep, nextStep) {\r\n APPLOYED.wizard.validate.validated(curStep);\r\n }\r\n },\r\n eenmaligemutaties: function () {\r\n APPLOYED.element.dynamicHeight('#searchlist', '.mainscreensized', 65);\r\n\r\n $(document).off('click', '.eenmaligemutatieItemSelect');\r\n $(document).on('click', '.eenmaligemutatieItemSelect', function () {\r\n selectItem(this);\r\n });\r\n\r\n $(document).off('change', '.loonFilter');\r\n $(document).on('change', '.loonFilter', function () {\r\n selectfilter(this);\r\n });\r\n\r\n let selectedId = $('#EenmaligeMutatieId').val();\r\n \r\n if (selectedId) {\r\n $('tr[data-eenmaligemutatieid=\"' + selectedId + '\"]').trigger('click');\r\n }\r\n else {\r\n $('.eenmaligemutatieItemSelect').first().trigger('click');\r\n }\r\n\r\n function selectItem(item)\r\n {\r\n let id = $(item).data('eenmaligemutatieid');\r\n\r\n $('.eenmaligemutatieItemSelect').removeClass('active');\r\n $(item).addClass('active');\r\n\r\n $('.eenmaligemutatieItem').hide()\r\n $('#eenmaligemutatie-' + id).show();\r\n\r\n let employeeId = $(item).data('employeeid');\r\n\r\n var extraParam = '?employeeid=' + employeeId;\r\n\r\n var option = {};\r\n option[\"tofadein\"] = null;\r\n Api.APIcaller.CallAction(\"/Ajax/GetEmployeesUrl\", { controlle: $('body').data('controller'), actio: $('body').data('action'), parameters: extraParam }, \"GET\", APPLOYED.url.setNewEmployeeUrl, null, null, option, Api.APIcaller.CancelOptions.None);\r\n }\r\n\r\n function selectfilter(item) {\r\n let type = $(item).data('filtername');\r\n let value = $(item).val();\r\n let redirectTo = $(item).data('redirectto');\r\n let checked = $(item).is(':checked');\r\n\r\n $(\".loonFilter\").each(function () {\r\n if ($(this).val() != value && $(this).data('filtername') == type) {\r\n $(this).attr('checked', false);\r\n }\r\n });\r\n\r\n APPLOYED.filter.set(redirectTo, type, value, checked);\r\n }\r\n },\r\n svloon: function () {\r\n APPLOYED.element.dynamicHeight('#searchlist', '.mainscreensized', 65);\r\n\r\n $(document).off('click', '.svLoonItemSelect');\r\n $(document).on('click', '.svLoonItemSelect', function () {\r\n selectItem(this);\r\n });\r\n\r\n $(document).off('change', '.loonFilter');\r\n $(document).on('change', '.loonFilter', function () {\r\n selectfilter(this);\r\n });\r\n\r\n let selectedId = $('#SvLoonId').val();\r\n\r\n if (selectedId) {\r\n $('tr[data-svloonid=\"' + selectedId + '\"]').trigger('click');\r\n }\r\n else {\r\n $('.svLoonItemSelect').first().trigger('click');\r\n }\r\n\r\n function selectItem(item) {\r\n let id = $(item).data('svloonid');\r\n\r\n $('.svLoonItemSelect').removeClass('active');\r\n $(item).addClass('active');\r\n\r\n $('.svloonItem').hide()\r\n $('#svloon-' + id).show();\r\n\r\n let employeeId = $(item).data('employeeid');\r\n\r\n var extraParam = '?employeeid=' + employeeId;\r\n\r\n var option = {};\r\n option[\"tofadein\"] = null;\r\n Api.APIcaller.CallAction(\"/Ajax/GetEmployeesUrl\", { controlle: $('body').data('controller'), actio: $('body').data('action'), parameters: extraParam }, \"GET\", APPLOYED.url.setNewEmployeeUrl, null, null, option, Api.APIcaller.CancelOptions.None);\r\n }\r\n\r\n function selectfilter(item) {\r\n let type = $(item).data('filtername');\r\n let value = $(item).val();\r\n let redirectTo = $(item).data('redirectto');\r\n let checked = $(item).is(':checked');\r\n\r\n $(\".loonFilter\").each(function () {\r\n if ($(this).val() != value && $(this).data('filtername') == type) {\r\n $(this).attr('checked', false);\r\n }\r\n });\r\n\r\n APPLOYED.filter.set(redirectTo, type, value, checked);\r\n }\r\n },\r\n svloon_importeren: function () {\r\n $(function () {\r\n $('[data-mdb-toggle=\"tooltip\"]').tooltip()\r\n });\r\n\r\n $(document).off('change', '#importFile');\r\n $(document).on('change', '#importFile', function () {\r\n $('label[for*=\"importFile\"]').html($(this).val().split('\\\\').pop());\r\n });\r\n\r\n $(document).off('click', '.btn-save');\r\n $(document).on('click', '.btn-save', function (e) {\r\n APPLOYED.loader.WaitLoaderOn('button[class*=\"btn-save\"]');\r\n });\r\n },\r\n eenmalige_mutaties_importeren: function () {\r\n $(function () {\r\n $('[data-mdb-toggle=\"tooltip\"]').tooltip()\r\n });\r\n\r\n $(document).off('change', '#importFile');\r\n $(document).on('change', '#importFile', function () {\r\n $('label[for*=\"importFile\"]').html($(this).val().split('\\\\').pop());\r\n });\r\n\r\n $(document).off('click', '.btn-save');\r\n $(document).on('click', '.btn-save', function (e) {\r\n APPLOYED.loader.WaitLoaderOn('button[class*=\"btn-save\"]');\r\n });\r\n },\r\n mutatie_aanvragen_verwerken: function () {\r\n $(document).on('change', 'input.urenCheckbox, input.salaryCheckbox, #Verloningsdatum', function () {\r\n if (($('input:checked.salaryCheckbox').length || $('input:checked.urenCheckbox').length) && $('#Verloningsdatum').val()) {\r\n $('#btn_aanleveren').prop('disabled', false);\r\n } else {\r\n $('#btn_aanleveren').prop('disabled', true);\r\n }\r\n });\r\n\r\n // checkbox logic for salaryAllCheckbox\r\n $(document).on('change', '#salaryAllCheckbox', function () {\r\n $('input[type=\"checkbox\"].salaryCheckbox').prop('checked', $(this).is(':checked'));\r\n });\r\n\r\n $(document).on('change', 'input[type=\"checkbox\"].salaryCheckbox', function () {\r\n $('#salaryAllCheckbox').prop(\"checked\", ($('input[type=\"checkbox\"]:not(:checked).salaryCheckbox').length <= 0));\r\n });\r\n\r\n // checkbox logic for urenAllCheckbox\r\n $(document).on('change', '#urenAllCheckbox', function () {\r\n $('input[type=\"checkbox\"].urenCheckbox').prop('checked', $(this).is(':checked'));\r\n });\r\n\r\n $(document).on('change', 'input[type=\"checkbox\"].urenCheckbox', function () {\r\n $('#urenAllCheckbox').prop(\"checked\", ($('input[type=\"checkbox\"]:not(:checked).urenCheckbox').length <= 0));\r\n });\r\n\r\n $('form').submit(function (e) {\r\n var self = this;\r\n\r\n APPLOYED.loader.WaitLoaderOn(\"button[id*='btn_aanleveren']\");\r\n\r\n $('.salaryCheckbox').each(function () {\r\n let id = $(this).data('id');\r\n\r\n if ($('#salaryCheckbox-' + id).is(':checked')) {\r\n $(self).append('');\r\n }\r\n });\r\n\r\n $('.urenCheckbox').each(function () {\r\n let id = $(this).data('id');\r\n\r\n if ($('#urenCheckbox-' + id).is(':checked')) {\r\n $(self).append('');\r\n }\r\n });\r\n });\r\n },\r\n\r\n // Delta documenten portaal\r\n documentenportaal: function () {\r\n // tabblad switch\r\n let link = '.filter-link';\r\n let filterviews = [];\r\n let curtarget = null;\r\n\r\n $(link).each(function () {\r\n filterviews.push($(this).data('view'));\r\n });\r\n\r\n filterviews.forEach(view => {\r\n let navlink = $('.nav-link[data-view=\"' + view + '\"]');\r\n if (navlink.hasClass('active')) {\r\n updateFilter(view);\r\n curtarget = view;\r\n return;\r\n }\r\n });\r\n\r\n $(document).off('click', link);\r\n $(document).on('click', link, function () {\r\n let target = $(this).data('view');\r\n\r\n filterviews.forEach(view => {\r\n let navlink = $('.nav-link[data-view=\"' + view + '\"]');\r\n\r\n if (target == view) {\r\n if (!$('#' + view).hasClass('show')) {\r\n $('#' +view).addClass('show');\r\n navlink.addClass('active');\r\n };\r\n }\r\n else {\r\n if ($('#' + view).hasClass('show')) {\r\n $('#' + view).removeClass('show');\r\n navlink.removeClass('active');\r\n };\r\n };\r\n });\r\n\r\n curtarget = target;\r\n updateFilter(target);\r\n });\r\n\r\n $(document).off('change', '.switch-checkbox');\r\n $(document).on('change', '.switch-checkbox', function () {\r\n switch (this.id) {\r\n case \"verwerkingfilter-jpp\": toggleSwitch(this.id, \"verwerkingfilter-opna\", true, '*[datatype=\"verwerkingfilter-jpp\"]','input[datatype=\"verwerkingfilter-opna\"]'); break;\r\n case \"verwerkingfilter-opna\": toggleSwitch(this.id, \"verwerkingfilter-jpp\", false, 'input[datatype=\"verwerkingfilter-opna\"]', '*[datatype=\"verwerkingfilter-jpp\"]'); break;\r\n case \"loonfilter-jpp\": toggleSwitch(this.id, \"loonfilter-opna\", true, '*[datatype=\"loonfilter-jpp\"]', 'input[datatype=\"loonfilter-opna\"]'); break;\r\n case \"loonfilter-opna\": toggleSwitch(this.id, \"loonfilter-jpp\", false, 'input[datatype=\"loonfilter-opna\"]', '*[datatype=\"loonfilter-jpp\"]'); break;\r\n default: throw Error(\"No id is met\"); break;\r\n }\r\n });\r\n\r\n function toggleSwitch(firstSwitch, secondSwitch, isYearBased, firstInputs, secondInputs) {\r\n let isYearBasedEl = $('#' + curtarget).find('#IsYearBased');\r\n let firstInputEls = $('#' + curtarget).find(firstInputs);\r\n let secondInputEls = $('#' + curtarget).find(secondInputs);\r\n\r\n if ($('#' + firstSwitch).is(\":checked\")) {\r\n isYearBased ? $(isYearBasedEl).val(\"True\") : $(isYearBasedEl).val(\"False\");\r\n $('#' + secondSwitch).prop(\"checked\", false);\r\n\r\n firstInputEls.each(function () { $(this).prop(\"disabled\", false); });\r\n secondInputEls.each(function () { $(this).prop(\"disabled\", true); });\r\n }\r\n else {\r\n !isYearBased ? $(isYearBasedEl).val(\"True\") : $(isYearBasedEl).val(\"False\");\r\n $('#' + secondSwitch).prop(\"checked\", true);\r\n\r\n firstInputEls.each(function () { $(this).prop(\"disabled\", true); });\r\n secondInputEls.each(function () { $(this).prop(\"disabled\", false); });\r\n }\r\n }\r\n\r\n function updateFilter(view) {\r\n const isYearBased = $('#'+ view).find('#IsYearBased');\r\n\r\n if ($(isYearBased).val().toLowerCase() == \"true\") {\r\n $(\"#\" + view + \"filter-opna\").prop(\"checked\", false);\r\n $('input[datatype=\"' + view + 'filter-opna\"]').each(function () {\r\n $(this).prop(\"disabled\", true);\r\n });\r\n }\r\n else {\r\n $(\"#\" + view + \"filter-jpp\").prop(\"checked\", false);\r\n $('*[datatype=\"' + view + 'filter-jpp\"]').each(function () {\r\n $(this).prop(\"disabled\", true);\r\n });\r\n }\r\n };\r\n\r\n // form\r\n var loading = false;\r\n\r\n $(document).off('click', '.submit-filter');\r\n $(document).on('click', '.submit-filter', function (e) {\r\n e.preventDefault();\r\n if (loading) {\r\n return;\r\n }\r\n loading = true;\r\n\r\n APPLOYED.loader.WaitLoaderOn(\"button[class='submit-filter']\");\r\n $('#' + curtarget + 'filter-form').submit();\r\n });\r\n\r\n // filter collapse events\r\n $(document).off('hidden.bs.collapse', '#collapseFilter');\r\n $(document).on('hidden.bs.collapse', '#collapseFilter', function () {\r\n const btnImg = $(this).parent().find('.accordion-btn');\r\n $(btnImg).children().each(function () {\r\n $(this).css(\"transform\", \"rotate(0)\");\r\n });\r\n\r\n $('#card-title').css('display', 'block');\r\n $('#card-tabs').css('display', 'none');\r\n\r\n $('#delta-table_responsive').css(\"max-height\", \"calc(100vh - 264px)\");\r\n });\r\n\r\n $(document).off('shown.bs.collapse', '#collapseFilter');\r\n $(document).on('shown.bs.collapse', '#collapseFilter', function () {\r\n const btnImg = $(this).parent().find('.accordion-btn');\r\n $(btnImg).children().each(function () {\r\n $(this).css(\"transform\", \"rotate(180deg)\");\r\n });\r\n\r\n $('#card-title').css('display', 'none');\r\n $('#card-tabs').css('display', 'flex');\r\n $('#delta-table_responsive').css(\"max-height\", \"calc(100vh - 620px)\");\r\n });\r\n\r\n // datatable functions\r\n function getUrlParameter(sParam) {\r\n var sPageURL = window.location.search.substring(1),\r\n sURLVariables = sPageURL.split('&'),\r\n sParameterName,\r\n i;\r\n\r\n for (i = 0; i < sURLVariables.length; i++) {\r\n sParameterName = sURLVariables[i].split('=');\r\n\r\n if (sParameterName[0] === sParam) {\r\n return sParameterName[1] === undefined ? true : decodeURIComponent(sParameterName[1]);\r\n }\r\n }\r\n return false;\r\n };\r\n\r\n function datatableInit(table, columnTargets) {\r\n var columDefs = [\r\n {\r\n \"targets\": 0,\r\n \"orderDataType\": \"dom-checkbox\"\r\n },\r\n {\r\n \"targets\": columnTargets,\r\n \"orderable\": false\r\n }\r\n ];\r\n\r\n APPLOYED.table.dataTable($(table), false, true, false, false, columDefs, []);\r\n APPLOYED.downloadTable.init(table, '#select-all', 'customCheck', ['.downloadZip']);\r\n }\r\n\r\n function getDownloadLink(downloadSingle, row, ajaxCall) {\r\n $(document).off('click', downloadSingle);\r\n $(document).on('click', downloadSingle, function (e) {\r\n e.preventDefault();\r\n\r\n const parentTableRow = $(this).parents('tr');\r\n let documentId = parentTableRow.data('documentid');\r\n let fileName = parentTableRow.data('filename');\r\n\r\n let options = {};\r\n options[\"tofadein\"] = null;\r\n options[\"loading\"] = \"tr\" + row + \"[data-documentid= '\" + documentId + \"'][data-filename= '\" + fileName + \"'] .download-deltaVerwerkingsDocument\";\r\n\r\n let body = {\r\n documentId = documentId,\r\n documentName = fileName,\r\n }\r\n\r\n Api.APIcaller.CallAction(ajaxCall, body, \"GET\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n });\r\n }\r\n\r\n function getBase64Document(deltaDocClass, row, ajaxCall) {\r\n $(document).off('click', deltaDocClass);\r\n $(document).on('click', deltaDocClass, function (e) {\r\n e.preventDefault();\r\n\r\n const parentTableRow = $(this).parents('tr');\r\n let documentId = parentTableRow.data('documentid');\r\n let fileName = parentTableRow.data('filename');\r\n\r\n let options = {};\r\n options[\"tofadein\"] = null;\r\n options[\"loading\"] = \"tr\" + row +\"[data-documentid= '\" + documentId + \"'][data-filename= '\" + fileName + \"'] .view-deltaVerwerkingsDocument\";\r\n\r\n let body = {\r\n documentId = documentId,\r\n documentName = fileName,\r\n }\r\n\r\n Api.APIcaller.CallAction(ajaxCall, body, \"GET\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n });\r\n }\r\n\r\n function GetZippedLink(row, ajaxCallSingle, ajaxCallMulti) {\r\n $(document).off('click', '.downloadZip');\r\n $(document).on('click', '.downloadZip', function (e) {\r\n e.preventDefault();\r\n\r\n let options = {};\r\n options[\"tofadein\"] = null;\r\n options[\"loading\"] = \"div[id^='dropdownMenu3']\";\r\n\r\n var documentIds = [];\r\n\r\n $('input[type=\"checkbox\"][name^=\"customCheck\"]').each(function () {\r\n if ($(this).is(':checked')) {\r\n var document = $(this).parents('tr').data('documentid');\r\n\r\n documentIds.push(document)\r\n }\r\n });\r\n\r\n if (documentIds.length > 1) {\r\n Api.APIcaller.CallAction(ajaxCallMulti, { documentIds: documentIds }, \"POST\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n }\r\n else {\r\n const id = documentIds[0];\r\n const name = $(\"tr\" + row + \"[data-documentid='\" + id + \"']\").data('filename');\r\n\r\n let body = {\r\n documentId = id,\r\n documentName = name,\r\n }\r\n\r\n Api.APIcaller.CallAction(ajaxCallSingle, body, \"GET\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n }\r\n });\r\n }\r\n\r\n // datatable vars\r\n const verwerking = {\r\n table: '.delta-verwerking-table',\r\n downloadSingle: '.download-deltaVerwerkingsDocument',\r\n row: '.delta-verwerking-table-row',\r\n pdfViewer: '.view-deltaVerwerkingsDocument',\r\n ajax: {\r\n downloadSingle: \"/Ajax/GetVerwerkingDocumentDownloadLink\",\r\n documentView: \"/Ajax/GetVerwerkingBase64Document\",\r\n downloadZip: \"/Ajax/GetVerwerkingDocumentenZippedLink\",\r\n }\r\n };\r\n\r\n const loon = {\r\n table: '.delta-loon-table',\r\n downloadSingle: '.download-deltaLoonaangiftDocument',\r\n row: '.delta-loon-table-row',\r\n pdfViewer: '.view-deltaLoonDocument',\r\n ajax: {\r\n downloadSingle: \"/Ajax/GetLoonaangifteDownloadLink\",\r\n documentView: \"/Ajax/GetLoonaangifteBase64Document\",\r\n downloadZip: \"/Ajax/GetLoonaangiftesZippedLink\",\r\n }\r\n };\r\n\r\n // datatable implementations\r\n let type = getUrlParameter(\"type\");\r\n\r\n if (!type || type == \"Verwerking\") {\r\n datatableInit(verwerking.table, [0, 7]);\r\n getDownloadLink(verwerking.downloadSingle, verwerking.row, verwerking.ajax.downloadSingle); // download in table\r\n getBase64Document(verwerking.pdfViewer, verwerking.row, verwerking.ajax.documentView); // view in table\r\n GetZippedLink(verwerking.row, verwerking.ajax.downloadSingle, verwerking.ajax.downloadZip); // zipped dropdown function\r\n }\r\n else {\r\n datatableInit(loon.table, [0, 6]);\r\n getDownloadLink(loon.downloadSingle, loon.row, loon.ajax.downloadSingle); // download in table\r\n getBase64Document(loon.pdfViewer, loon.row, loon.ajax.documentView); // view in table\r\n GetZippedLink(loon.row, loon.ajax.downloadSingle ,loon.ajax.downloadZip); // zipped dropdown function\r\n }\r\n },\r\n verwerkingsDocumentportaalViewer: function (documentId, documentName) {\r\n var documentid = documentId;\r\n var documentname = documentName;\r\n\r\n $('#downloadPdfBtn').removeAttr('disabled');\r\n\r\n $(document).off('click', '#downloadPdfBtn');\r\n $(document).on('click', '#downloadPdfBtn', function () {\r\n let options = {};\r\n options[\"tofadein\"] = null;\r\n options[\"loading\"] = \"button[id='downloadPdfBtn']\";\r\n\r\n let body = { documentid, documentname };\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/GetVerwerkingDocumentDownloadLink\", body, \"GET\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n });\r\n },\r\n loonDocumentportaalViewer: function (documentId, documentName) {\r\n var documentid = documentId;\r\n var documentname = documentName;\r\n\r\n $('#downloadPdfBtn').removeAttr('disabled');\r\n\r\n $(document).off('click', '#downloadPdfBtn');\r\n $(document).on('click', '#downloadPdfBtn', function () {\r\n let options = {};\r\n options[\"tofadein\"] = null;\r\n options[\"loading\"] = \"button[id='downloadPdfBtn']\";\r\n\r\n let body = { documentid, documentname };\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/GetLoonaangifteDownloadLink\", body, \"GET\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n });\r\n },\r\n\r\n verwerkingen: function () {\r\n \r\n\r\n $('#delta-verwerking-tabs a.nav-link').click(function (event) {\r\n event.preventDefault();\r\n $('.nav-link.active').removeClass('active');\r\n $(this).addClass('active');\r\n\r\n let options = {};\r\n options[\"tofadein\"] = null;\r\n options[\"loading\"] = this;\r\n\r\n let body = { year: $('#SelectedYear').val(), type: $(this).data('type') };\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/GetVerwerkingSwitchPartials\", body, \"GET\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n });\r\n if ($(this).data('type') == 0 || $(this).data('type') === undefined) {\r\n APPLOYED.customer.salary.verwerkingenView();\r\n }\r\n },\r\n verwerkingenView: function () {\r\n $(document).off('change', 'select[id=\"ActiefJaar\"]');\r\n $(document).on('change', 'select[id=\"ActiefJaar\"]', function () {\r\n $('#SelectedYear').val($(this).val());\r\n let options = {};\r\n options[\"tofadein\"] = null;\r\n options[\"loading\"] = \"\";\r\n\r\n let body = { year: $('#SelectedYear').val() };\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/GetVerwerkingPartial\", body, \"GET\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n \r\n });\r\n APPLOYED.customer.salary.verwerkingtableInit();\r\n\r\n },\r\n verwerkingplanningView: function() {\r\n APPLOYED.table.dataTable($(\"#delta-planning-table\"), false, true, false, false, [], []);\r\n },\r\n verwerkingtableInit: function () {\r\n var idTable = \"#delta-verwerking-table\";\r\n \r\n if ($.fn.dataTable.isDataTable(idTable)) {\r\n $('#delta-verwerking-table').DataTable().destroy();\r\n }\r\n \r\n var columDefs = [\r\n {\r\n \"targets\": 4,\r\n \"orderable\": false\r\n }\r\n ];\r\n APPLOYED.table.dataTable($(idTable), false, true, false, false, columDefs, []);\r\n\r\n function filterPeriodProduction(filter) {\r\n let records = $('#delta-verwerking-table tbody tr');\r\n let filterInput = $(filter).val().split(\"-\");\r\n records.each(function () {\r\n $(this).css('display', ''); // reset\r\n\r\n let period = $(this).data('periode');\r\n let production = $(this).data('productie');\r\n\r\n if (filterInput[0] == period && filterInput[1] == production) {\r\n $(this).css('display', 'inhert');\r\n }\r\n else {\r\n $(this).css('display', 'none');\r\n }\r\n });\r\n }\r\n\r\n filterPeriodProduction($('#actiefPeriodeProductie'));\r\n\r\n // Periode productie select\r\n $(document).on('change', '#actiefPeriodeProductie', function () {\r\n filterPeriodProduction(this);\r\n });\r\n }\r\n}","APPLOYED.customer.timeregistration = {\r\n init: function () {\r\n APPLOYED.tableOverview.init();\r\n },\r\n\r\n planning: function () {\r\n APPLOYED.time_weekplanning.planning();\r\n },\r\n\r\n planningedit: function () {\r\n APPLOYED.time_weekplanning.planningedit();\r\n },\r\n\r\n dagstatusoverview: function () {\r\n APPLOYED.time_dagstatusoverview.dagstatus();\r\n },\r\n\r\n periodestatusoverview: function () {\r\n APPLOYED.time_periodestatusoverview.periodestatus();\r\n },\r\n\r\n periodeoverzicht: function () {\r\n APPLOYED.time_periodeoverzicht.periodeoverzicht();\r\n },\r\n\r\n periodeafsluitenoverview: function () {\r\n APPLOYED.time_periodeafsluitenoverview.periodeafsluiten();\r\n },\r\n\r\n periodeafsluiten: function () {\r\n APPLOYED.time_periodeafsluiten.periodeafsluiten();\r\n },\r\n\r\n klokregistratie: function () {\r\n APPLOYED.time_klokregistratie.klokregistratie();\r\n },\r\n\r\n klokregistratieedit: function () {\r\n APPLOYED.time_klokregistratie.klokregistratieedit();\r\n }\r\n}","APPLOYED.customer.wizard = {\r\n init: function () {\r\n APPLOYED.wizard.curStep = $('#Step').val();\r\n if (APPLOYED.wizard.curStep == 2) {\r\n APPLOYED.customer.wizard.initFunctieDefinitiesWizard();\r\n }\r\n else if (APPLOYED.wizard.curStep == 3) {\r\n APPLOYED.customer.wizard.initAfdelingenWizard();\r\n }\r\n else if (APPLOYED.wizard.curStep == 4) {\r\n APPLOYED.customer.wizard.initInvullenwerknemersWizard();\r\n }\r\n else if (APPLOYED.wizard.curStep == 5) {\r\n APPLOYED.customer.wizard.initZelfInvullenwerknemersWizard();\r\n }\r\n \r\n },\r\n index: function () {\r\n // init\r\n APPLOYED.wizard.init();\r\n APPLOYED.wizard.maxStep = 6;\r\n \r\n APPLOYED.validator.bindRequiredFields('#bedrijven', '#bedrijvenSubmit', false);\r\n //APPLOYED.validator.bindRequiredFields('#werknemerEdit', '#saveWerknemer', false); // this has been replaced by a manual validation, also checks if email addres was already added\r\n\r\n // callbacks\r\n APPLOYED.wizard.on('next', next); // on click next callback\r\n\r\n $('#wizardSteps').css('pointer-events', 'none');\r\n\r\n /**\r\n * Callback function on wizard next\r\n * \r\n * @param {any} curStep\r\n * @param {any} nextStep\r\n */\r\n function next(curStep, nextStep) {\r\n validateRecord(curStep);\r\n\r\n return false;\r\n }\r\n\r\n /**\r\n * Validate record function\r\n * \r\n * @param {any} table\r\n */\r\n function validateRecord(table) {\r\n $('#errorbar').hide();\r\n \r\n $('#Step').val(APPLOYED.wizard.curStep);\r\n $('#TableName').val(table);\r\n\r\n let options = {};\r\n options[\"tofadein\"] = null;\r\n options[\"loading\"] = \"button[id='\" + table + \"Submit']\";\r\n\r\n var stepNames = [];\r\n\r\n var stepNameItem = {};\r\n\r\n $('input[name^=\"StepNames\"]').each(function (i) {\r\n if (i % 2) {\r\n //Value\r\n stepNameItem.Value = $(this).val();\r\n }\r\n else {\r\n //Key\r\n stepNameItem = {\r\n Key: $(this).val(),\r\n Value: null\r\n };\r\n }\r\n\r\n if ((i % 2) && i > 0) {\r\n stepNames.push(stepNameItem);\r\n }\r\n });\r\n\r\n if ($('#Step').val() == 1 || $('#Step').val() == 4) {\r\n var form = $(\"#wizardform\");\r\n var data = Api.Main.serialize(form);\r\n\r\n if ($('#Step').val() == 4 && $('#InvullenModel_ChkZelfInvullen').is(\":checked\")) {\r\n options[\"loading\"] = \"button[id='WizardSubmit']\";\r\n }\r\n \r\n Api.APIcaller.CallAction(\"/Ajax/ValidateCustomerWizard\", data, \"POST\", null, null, succes, options, Api.APIcaller.CancelOptions.None);\r\n }\r\n else if ($('#Step').val() == 2) {\r\n var functies = [];\r\n\r\n $('input[name=\"FunctiedefinitieList\"]').each(function () {\r\n var json = $.parseJSON($(this).val());\r\n functies.push(json);\r\n });\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/ValidateCustomerWizard\", { Step: APPLOYED.wizard.curStep, TableName: table, StepNames: stepNames, BedrijfId: $('#BedrijfId').val(), FunctiedefinitieList: functies }, \"POST\", null, null, succes, options, Api.APIcaller.CancelOptions.None);\r\n }\r\n else if ($('#Step').val() == 3) {\r\n var afdelingen = [];\r\n\r\n $('input[name=\"AfdelingList\"]').each(function () {\r\n var json = $.parseJSON($(this).val());\r\n afdelingen.push(json);\r\n });\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/ValidateCustomerWizard\", { Step: APPLOYED.wizard.curStep, TableName: table, StepNames: stepNames, BedrijfId: $('#BedrijfId').val(), AfdelingList: afdelingen }, \"POST\", null, null, succes, options, Api.APIcaller.CancelOptions.None);\r\n }\r\n else if ($('#Step').val() == 5) {\r\n var werknemers = [];\r\n\r\n $('input[name=\"werknemerList\"]').each(function () {\r\n var json = $.parseJSON($(this).val());\r\n werknemers.push(json);\r\n });\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/ValidateCustomerWizard\", { Step: APPLOYED.wizard.curStep, TableName: table, StepNames: stepNames, BedrijfId: $('#BedrijfId').val(), WerknemerList: werknemers }, \"POST\", null, null, succes, options, Api.APIcaller.CancelOptions.None);\r\n }\r\n\r\n function succes(e) {\r\n if (!e.hasErrorText) {\r\n if (e.redirectUrl == null || e.redirectUrl == '') {\r\n $('#Step').val(e.jsoNresults[0].step);\r\n $('#TableName').val(e.jsoNresults[0].tableName);\r\n $('#BedrijfId').val(e.jsoNresults[0].bedrijfId);\r\n\r\n APPLOYED.wizard.validate.validated(table);\r\n APPLOYED.wizard.curStep++;\r\n APPLOYED.wizard.navigate.to(APPLOYED.wizard.curStep);\r\n $('#' + table + 'content').empty();\r\n }\r\n }\r\n }\r\n }\r\n\r\n },\r\n initFunctieDefinitiesWizard: function () {\r\n APPLOYED.validator.bindRequiredFields('#functiedefinitieEdit', '#saveFunctiedefinitie', false);\r\n\r\n // vars\r\n var editing = null;\r\n var index = 0;\r\n var orgData = JSON.stringify(getModel());\r\n \r\n index = $('tr.functiedefinitieRow').length;\r\n \r\n //bindings\r\n $(document).on('click', '#functiedefinitieAdd', function (e) {\r\n e.preventDefault();\r\n\r\n editing = null;\r\n $('#Functie').removeClass('active');\r\n\r\n $('#functiedefinitieTable').hide();\r\n $('#functiedefinitieEdit').show();\r\n $('.actionButtons').hide();\r\n });\r\n\r\n $(document).on('click', '#cancelFunctiedefinitie', function (e) {\r\n e.preventDefault();\r\n\r\n $('#functiedefinitieTable').show();\r\n $('#functiedefinitieEdit').hide();\r\n $('.actionButtons').show();\r\n\r\n resetFields();\r\n });\r\n\r\n $(document).on('click', '#saveFunctiedefinitie', function () {\r\n \r\n var model = getModel();\r\n \r\n var row = null;\r\n \r\n if (editing != null) {\r\n row = $('tr[class=\"functiedefinitieRow\"][data-id=\"' + editing + '\"]');\r\n $(row).find('input[name=\"FunctiedefinitieList\"]').remove();\r\n } else {\r\n row = $('#functiedefinitieRow').clone().appendTo('#functiedefinitieBody');\r\n \r\n $(row).show();\r\n $(row).removeAttr('id');\r\n $(row).data('id', index);\r\n $(row).attr('data-id', index);\r\n $(row).attr('class', \"functiedefinitieRow\");\r\n\r\n index++;\r\n }\r\n\r\n if (row == null) return;\r\n\r\n $(row).append('');\r\n\r\n $('#functiedefinitieEdit :input, #functiedefinitieEdit textarea').each(function () {\r\n let value = '';\r\n\r\n if ($(this).is('select')) {\r\n value = $(this).find(':selected').html();\r\n } else {\r\n let attr = $(this).attr('data-val-number');\r\n\r\n if (typeof attr !== 'undefined' && attr !== false) {\r\n value = parseFloat($(this).val()).toFixed(2).replace('.', ',');\r\n } else {\r\n value = $(this).val();\r\n }\r\n }\r\n\r\n $(row).find('.' + $(this).attr('name')).html(value)\r\n });\r\n\r\n $('#functiedefinitieTable').show();\r\n $('#functiedefinitieEdit').hide();\r\n $('.actionButtons').show();\r\n\r\n resetFields();\r\n });\r\n\r\n $(document).on('click', '.deleteFunctiedefinitie', function () {\r\n var self = this;\r\n $('#confirmdeletemodal').modal('show');\r\n $('#confirmdeletemodaltitle').html($('#deleteFunctiedefinitieTitle').val());\r\n $('#confirmdeletemodalbody').html($('#deleteFunctiedefinitieBody').val());\r\n\r\n $(document).one('click', '#confirmdeletemodalaction', function () {\r\n $(self).closest('tr').remove();\r\n $('#confirmdeletemodal').modal('hide');\r\n });\r\n\r\n $('#confirmdeletemodal').on('hidden.bs.modal', function () {\r\n $(document).off('click', '#confirmdeletemodalaction');\r\n })\r\n });\r\n\r\n $(document).on('click', '.editFunctiedefinitie', function () {\r\n let dataJson = $(this).closest('tr').find('input[name=\"FunctiedefinitieList\"]').val();\r\n let data = jQuery.parseJSON(dataJson);\r\n\r\n editing = $(this).closest('tr').data('id');\r\n\r\n $('#functiedefinitieEdit :input, #functiedefinitieEdit textarea').each(function () {\r\n let name = $(this).attr('name');\r\n let value = data[name];\r\n\r\n if (value != \"\") {\r\n $(this).val(value);\r\n $(this).trigger('change');\r\n }\r\n });\r\n\r\n $('#functiedefinitieTable').hide();\r\n $('#functiedefinitieEdit').show();\r\n $('.actionButtons').hide();\r\n });\r\n\r\n /**\r\n * Build model\r\n */\r\n function getModel() {\r\n var model = {};\r\n\r\n $.each($('#functiedefinitieEdit :input, #functiedefinitieEdit textarea').serializeArray(), function () {\r\n model[this.name] = this.value;\r\n });\r\n\r\n return model;\r\n }\r\n\r\n /**\r\n * Reset fields\r\n */\r\n function resetFields() {\r\n let data = jQuery.parseJSON(orgData);\r\n\r\n editing = null;\r\n\r\n $('#functiedefinitieEdit :input, #functiedefinitieEdit textarea').each(function () {\r\n let name = $(this).attr('name');\r\n let value = data[name];\r\n\r\n $(this).val(value);\r\n $(this).trigger('change');\r\n });\r\n }\r\n },\r\n initAfdelingenWizard: function () {\r\n APPLOYED.validator.bindRequiredFields('#afdelingen', '#saveAfdelingen', false);\r\n\r\n // vars\r\n var editing = null;\r\n var index = 0;\r\n var orgData = JSON.stringify(getModel());\r\n\r\n index = $('tr.afdelingenRow').length;\r\n\r\n //bindings\r\n $(document).on('click', '#afdelingenAdd', function (e) {\r\n e.preventDefault();\r\n\r\n editing = null;\r\n $('#Afdeling').removeClass('active');\r\n\r\n $('#afdelingenTable').hide();\r\n $('#afdelingenEdit').show();\r\n $('.actionButtons').hide();\r\n });\r\n\r\n $(document).on('click', '#cancelAfdelingen', function (e) {\r\n e.preventDefault();\r\n\r\n $('#afdelingenTable').show();\r\n $('#afdelingenEdit').hide();\r\n $('.actionButtons').show();\r\n\r\n resetFields();\r\n });\r\n\r\n $(document).on('click', '#saveAfdelingen', function () {\r\n\r\n var model = getModel();\r\n\r\n var row = null;\r\n\r\n if (editing != null) {\r\n row = $('tr[class=\"afdelingenRow\"][data-id=\"' + editing + '\"]');\r\n $(row).find('input[name=\"AfdelingList\"]').remove();\r\n } else {\r\n row = $('#afdelingenRow').clone().appendTo('#afdelingenBody');\r\n\r\n $(row).show();\r\n $(row).removeAttr('id');\r\n $(row).data('id', index);\r\n $(row).attr('data-id', index);\r\n $(row).attr('class', \"afdelingenRow\");\r\n\r\n index++;\r\n }\r\n\r\n if (row == null) return;\r\n\r\n $(row).append('');\r\n\r\n $('#afdelingenEdit :input, #afdelingenEdit textarea').each(function () {\r\n let value = '';\r\n\r\n if ($(this).is('select')) {\r\n value = $(this).find(':selected').html();\r\n } else {\r\n let attr = $(this).attr('data-val-number');\r\n\r\n if (typeof attr !== 'undefined' && attr !== false) {\r\n value = parseFloat($(this).val()).toFixed(2).replace('.', ',');\r\n } else {\r\n value = $(this).val();\r\n }\r\n }\r\n\r\n $(row).find('.' + $(this).attr('name')).html(value)\r\n });\r\n\r\n $('#afdelingenTable').show();\r\n $('#afdelingenEdit').hide();\r\n $('.actionButtons').show();\r\n\r\n resetFields();\r\n });\r\n\r\n $(document).on('click', '.deleteAfdelingen', function () {\r\n var self = this;\r\n $('#confirmdeletemodal').modal('show');\r\n $('#confirmdeletemodaltitle').html($('#deleteAfdelingenTitle').val());\r\n $('#confirmdeletemodalbody').html($('#deleteAfdelingenBody').val());\r\n\r\n $(document).one('click', '#confirmdeletemodalaction', function () {\r\n $(self).closest('tr').remove();\r\n $('#confirmdeletemodal').modal('hide');\r\n });\r\n\r\n $('#confirmdeletemodal').on('hidden.bs.modal', function () {\r\n $(document).off('click', '#confirmdeletemodalaction');\r\n })\r\n });\r\n\r\n $(document).on('click', '.editAfdelingen', function () {\r\n let dataJson = $(this).closest('tr').find('input[name=\"AfdelingList\"]').val();\r\n let data = jQuery.parseJSON(dataJson);\r\n\r\n editing = $(this).closest('tr').data('id');\r\n\r\n $('#afdelingenEdit :input, #afdelingenEdit textarea').each(function () {\r\n let name = $(this).attr('name');\r\n let value = data[name];\r\n\r\n if (value != \"\") {\r\n $(this).val(value);\r\n $(this).trigger('change');\r\n }\r\n });\r\n\r\n $('#afdelingenTable').hide();\r\n $('#afdelingenEdit').show();\r\n $('.actionButtons').hide();\r\n });\r\n\r\n /**\r\n * Build model\r\n */\r\n function getModel() {\r\n var model = {};\r\n\r\n $.each($('#afdelingenEdit :input, #afdelingenEdit textarea').serializeArray(), function () {\r\n model[this.name] = this.value;\r\n });\r\n\r\n return model;\r\n }\r\n\r\n /**\r\n * Reset fields\r\n */\r\n function resetFields() {\r\n let data = jQuery.parseJSON(orgData);\r\n\r\n editing = null;\r\n\r\n $('#afdelingenEdit :input, #afdelingenEdit textarea').each(function () {\r\n let name = $(this).attr('name');\r\n let value = data[name];\r\n\r\n $(this).val(value);\r\n $(this).trigger('change');\r\n });\r\n }\r\n },\r\n initInvullenwerknemersWizard: function () {\r\n \r\n $(document).on('click', '#InvullenModel_ChkZelfInvullen', function (e) {\r\n\r\n if ($(this).is(\":checked\")) {\r\n $('#InvullenModel_ChkInvullen').prop('checked', false);\r\n $('#WizardSubmit').prop('disabled', false);\r\n $('#invullenwerknemersSubmit').prop('disabled', true);\r\n }\r\n else {\r\n $('#WizardSubmit').prop('disabled', true);\r\n }\r\n \r\n });\r\n\r\n $(document).on('click', '#InvullenModel_ChkInvullen', function (e) {\r\n if ($(this).is(\":checked\")) {\r\n $('#InvullenModel_ChkZelfInvullen').prop('checked', false);\r\n $('#WizardSubmit').prop('disabled', true);\r\n $('#invullenwerknemersSubmit').prop('disabled', false);\r\n }\r\n else {\r\n $('#invullenwerknemersSubmit').prop('disabled', true);\r\n }\r\n });\r\n },\r\n initZelfInvullenwerknemersWizard: function () {\r\n // vars\r\n var editing = null;\r\n var index = 0;\r\n var orgData = JSON.stringify(getModel());\r\n\r\n index = $('tr.werknemerRow').length;\r\n\r\n //bindings\r\n $(document).on('click', '#werknemerAdd', function (e) {\r\n e.preventDefault();\r\n\r\n $('#saveWerknemer').attr('disabled', true);\r\n $('#email_duplicate_warning').hide();\r\n $('#invalid_username_warning').hide();\r\n\r\n editing = null;\r\n $('#Email').removeClass('active');\r\n\r\n $('#werknemerTable').hide();\r\n $('#werknemerEdit').show();\r\n $('.actionButtons').hide();\r\n });\r\n\r\n $(document).on('click', '#cancelWerknemer', function (e) {\r\n e.preventDefault();\r\n\r\n $('#werknemerTable').show();\r\n $('#werknemerEdit').hide();\r\n $('.actionButtons').show();\r\n\r\n resetFields();\r\n });\r\n\r\n $(document).on('click', '#saveWerknemer', function () {\r\n // peform validation on usernmae given.\r\n let username = $('#werknemerEdit').find('#Email').val();\r\n\r\n let options = {};\r\n options[\"tofadein\"] = null;\r\n options[\"loading\"] = \"button[id='saveWerknemer']\";\r\n\r\n data = {\r\n username: username\r\n }\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/ValidateUserName\", data, \"GET\", null, null, succes, options, Api.APIcaller.CancelOptions.None);\r\n\r\n function succes(e) {\r\n if (!e.jsoNresults[0].isValid) {\r\n $('#invalid_username_warning').html(e.jsoNresults[0].reasonInvalid);\r\n $('#invalid_username_warning').show();\r\n } else {\r\n\r\n var model = getModel();\r\n var row = null;\r\n\r\n if (editing != null) {\r\n row = $('tr[class=\"werknemerRow\"][data-id=\"' + editing + '\"]');\r\n $(row).find('input[name=\"werknemerList\"]').remove();\r\n } else {\r\n row = $('#werknemerRow').clone().appendTo('#werknemerBody');\r\n\r\n $(row).show();\r\n $(row).removeAttr('id');\r\n $(row).data('id', index);\r\n $(row).attr('data-id', index);\r\n $(row).attr('class', \"werknemerRow\");\r\n\r\n index++;\r\n }\r\n\r\n if (row == null) return;\r\n\r\n $(row).append('');\r\n\r\n $('#werknemerEdit :input, #werknemerEdit textarea').each(function () {\r\n let value = '';\r\n\r\n if ($(this).is('select')) {\r\n value = $(this).find(':selected').html();\r\n } else {\r\n let attr = $(this).attr('data-val-number');\r\n\r\n if (typeof attr !== 'undefined' && attr !== false) {\r\n value = parseFloat($(this).val()).toFixed(2).replace('.', ',');\r\n } else {\r\n value = $(this).val();\r\n }\r\n }\r\n\r\n $(row).find('.' + $(this).attr('name')).html(value)\r\n });\r\n\r\n $('#werknemerTable').show();\r\n $('#werknemerEdit').hide();\r\n $('.actionButtons').show();\r\n\r\n resetFields();\r\n }\r\n }\r\n });\r\n\r\n $(document).on('click', '.deleteWerknemer', function () {\r\n var self = this;\r\n $('#confirmdeletemodal').modal('show');\r\n $('#confirmdeletemodaltitle').html($('#deleteWerknemerTitle').val());\r\n $('#confirmdeletemodalbody').html($('#deleteWerknemerBody').val());\r\n\r\n $(document).one('click', '#confirmdeletemodalaction', function () {\r\n $(self).closest('tr').remove();\r\n $('#confirmdeletemodal').modal('hide');\r\n });\r\n\r\n $('#confirmdeletemodal').on('hidden.bs.modal', function () {\r\n $(document).off('click', '#confirmdeletemodalaction');\r\n })\r\n });\r\n\r\n $(document).on('click', '.editWerknemer', function () {\r\n let dataJson = $(this).closest('tr').find('input[name=\"werknemerList\"]').val();\r\n let data = jQuery.parseJSON(dataJson);\r\n\r\n editing = $(this).closest('tr').data('id');\r\n $('#email_duplicate_warning').hide();\r\n $('#invalid_username_warning').hide();\r\n\r\n $('#werknemerEdit :input, #werknemerEdit textarea').each(function () {\r\n let name = $(this).attr('name');\r\n let value = data[name];\r\n\r\n if (value != \"\") {\r\n $(this).val(value);\r\n $(this).trigger('change');\r\n }\r\n });\r\n\r\n $('#werknemerTable').hide();\r\n $('#werknemerEdit').show();\r\n $('.actionButtons').hide();\r\n });\r\n \r\n $(document).on('keyup', '#Email', function () {\r\n $('#saveWerknemer').attr('disabled', false);\r\n $('#email_duplicate_warning').hide();\r\n let val = $(this).val();\r\n\r\n if (checkIfDuplicate(val)) {\r\n $('#saveWerknemer').attr('disabled', true);\r\n $('#email_duplicate_warning').show();\r\n }\r\n\r\n if (val.length <= 0) {\r\n $('#saveWerknemer').attr('disabled', true);\r\n }\r\n });\r\n\r\n /**\r\n * check if email provicded already exists.\r\n * If duplicate email is found, but editing id equals that from the found email id it returns false.\r\n * \r\n * @param {any} email\r\n */\r\n function checkIfDuplicate(email) {\r\n var found = false;\r\n\r\n $('#werknemerBody').find('.Email').each(function () {\r\n let editingId = $(this).closest('tr').data('id');\r\n\r\n if ($(this).html().length > 0 &&\r\n $(this).html() == email &&\r\n editingId != editing\r\n ) {\r\n found = true;\r\n\r\n return;\r\n }\r\n });\r\n\r\n return found;\r\n }\r\n\r\n /**\r\n * Build model\r\n */\r\n function getModel() {\r\n var model = {};\r\n\r\n $.each($('#werknemerEdit :input, #werknemerEdit textarea').serializeArray(), function () {\r\n model[this.name] = this.value;\r\n });\r\n\r\n return model;\r\n }\r\n\r\n /**\r\n * Reset fields\r\n */\r\n function resetFields() {\r\n let data = jQuery.parseJSON(orgData);\r\n\r\n editing = null;\r\n\r\n $('#werknemerEdit :input, #werknemerEdit textarea').each(function () {\r\n let name = $(this).attr('name');\r\n let value = data[name];\r\n\r\n $(this).val(value);\r\n $(this).trigger('change');\r\n });\r\n }\r\n }\r\n}","APPLOYED.dashboard.index = {\r\n init: function () {\r\n \r\n },\r\n index: function () {\r\n if (APPLOYED.common.isTrue($('#ShowIntroductionTextEnabled').val())) {\r\n let options = {};\r\n options[\"tofadein\"] = \"\";\r\n options[\"loading\"] = \"\";\r\n\r\n Api.APIcaller.CallAction(\"/Dashboard/Index/GetIntroductionTextModal\", { step: 1 }, \"GET\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n }\r\n\r\n if (APPLOYED.common.isTrue($('#ShowReleaseNotesEnabled').val()) && !APPLOYED.common.isTrue($('#ShowIntroductionTextEnabled').val())) {\r\n let options = {};\r\n options[\"tofadein\"] = \"\";\r\n options[\"loading\"] = \"\";\r\n\r\n Api.APIcaller.CallAction(\"/Dashboard/Index/GetReleasenotesModel\", null, \"GET\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n }\r\n\r\n $(document).off('click', '.btn-approve');\r\n $(document).on('click', '.btn-approve', function () {\r\n let self = this;\r\n let notificationLinkId = $(this).data(\"notificatieid\");\r\n let year = $(this).data('recordjaar');\r\n\r\n let options = {};\r\n options[\"tofadein\"] = \"\";\r\n options[\"loading\"] = \"a[data-notificatieid*='\" + notificationLinkId + \"']\";\r\n\r\n let body = {\r\n notificationLinkId: notificationLinkId,\r\n year\r\n };\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/ApproveNotification\", body, \"GET\", null, null, finished, options, Api.APIcaller.CancelOptions.None);\r\n\r\n function finished(data) {\r\n if (data.jsoNresults[0]) {\r\n $(self).closest('.taskItem').hide();\r\n $('#taskCounter').html($('#taskCounter').html() - 1);\r\n }\r\n }\r\n });\r\n\r\n $(document).off('click', '.notification-btn');\r\n $(document).on('click', '.notification-btn', function () {\r\n let self = this;\r\n let id = $(this).data(\"notificatieid\");\r\n\r\n let options = {};\r\n options[\"tofadein\"] = \"\";\r\n options[\"loading\"] = \"a[data-notificatieid*='\" + id + \"']\";\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/CloseNotification\", { notificationId: id }, \"GET\", null, null, finished, options, Api.APIcaller.CancelOptions.None);\r\n\r\n function finished(data) {\r\n if (data.jsoNresults[0]) {\r\n $(self).closest('.notification-item').hide();\r\n $('#notificationCounter').html($('#notificationCounter').html() - 1);\r\n }\r\n }\r\n });\r\n\r\n },\r\n introductionText: function () {\r\n var currentStep = parseInt($('#Step').val());\r\n var loading = false;\r\n \r\n $(document).off('click', '#IntroTextNext');\r\n $(document).on('click', '#IntroTextNext', function () {\r\n ProcessCall(this, true, false);\r\n });\r\n\r\n $(document).off('click', '#IntroTextPrevious');\r\n $(document).on('click', '#IntroTextPrevious', function () {\r\n ProcessCall(this, false, false);\r\n });\r\n\r\n $(document).off('click', '#IntroTextFinal');\r\n $(document).on('click', '#IntroTextFinal', function () {\r\n ProcessCall(this, true, true);\r\n });\r\n\r\n function ProcessCall(el, nextOrNot, finalStep) {\r\n if (loading) {\r\n return;\r\n }\r\n\r\n loading = true;\r\n\r\n if (nextOrNot) {\r\n currentStep = currentStep + 1;\r\n }\r\n else {\r\n currentStep = currentStep - 1;\r\n }\r\n\r\n let options = {};\r\n options[\"tofadein\"] = \"\";\r\n options[\"loading\"] = el;\r\n\r\n Api.APIcaller.CallAction(\"/Dashboard/Index/GetIntroductionTextModal\", { step: currentStep, finalStep: finalStep }, \"GET\", null, null, succesNext, options, Api.APIcaller.CancelOptions.None);\r\n }\r\n \r\n function succesNext(e) {\r\n if (!e.hasErrorText) {\r\n $('#Step').val(currentStep);\r\n }\r\n\r\n loading = false;\r\n }\r\n\r\n $(document).off('click', '#IntroTextDone');\r\n $(document).on('click', '#IntroTextDone', function () {\r\n let options = {};\r\n options[\"tofadein\"] = \"\";\r\n options[\"loading\"] = this;\r\n\r\n Api.APIcaller.CallAction(\"/Dashboard/Index/GetIntroductionTextFinalModal\", { dontShowAnymore: $('#DontShowAnymore').is(':checked') }, \"GET\", null, null, finished, options, Api.APIcaller.CancelOptions.None);\r\n\r\n function finished() {\r\n APPLOYED.modal.closePopup();\r\n\r\n if (APPLOYED.common.isTrue($('#ShowReleaseNotesEnabled').val())) {\r\n let options = {};\r\n options[\"tofadein\"] = \"\";\r\n options[\"loading\"] = \"\";\r\n\r\n Api.APIcaller.CallAction(\"/Dashboard/Index/GetReleasenotesModel\", null, \"GET\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n }\r\n }\r\n });\r\n\r\n },\r\n initReleasenotesModal: function () {\r\n $(document).off('click', '.closeReleaseNote');\r\n $(document).on('click', '.closeReleaseNote', function () {\r\n var id = $(this).data('id');\r\n var close = APPLOYED.common.isTrue($(this).data('last'));\r\n\r\n let options = {};\r\n options[\"tofadein\"] = \"\";\r\n options[\"loading\"] = \"\";\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/CloseReleaseNote\", { id, close }, \"GET\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n\r\n // close modal if last item\r\n if (APPLOYED.common.isTrue($(this).data('last'))) {\r\n $('#modal_popup').modal('hide');\r\n } else {\r\n $('.modal-content[data-id=\"' + id + '\"]').hide();\r\n $('.modal-content[data-id=\"' + $(this).data('next') + '\"]').show();\r\n }\r\n });\r\n },\r\n becomecustomer: function () {\r\n checkIfPayService();\r\n calculatePrice();\r\n checkIfSuccessed();\r\n\r\n $(document).off('click', '.becomecustomerchoice');\r\n $(document).on('click', '.becomecustomerchoice', function () {\r\n $(\".becomecustomerchoice\").toggleClass(\"active\");\r\n\r\n if ($(\".becomecustomerchoice\").hasClass(\"active\")) {\r\n $('#InputData_PayServiceIncluded').val(true);\r\n }\r\n else {\r\n $('#InputData_PayServiceIncluded').val(false);\r\n }\r\n\r\n calculatePrice();\r\n });\r\n\r\n function checkIfPayService() {\r\n if (APPLOYED.common.isTrue($('#InputData_PayServiceIncluded').val())) {\r\n $(\".becomecustomerchoice\").addClass(\"active\");\r\n }\r\n else {\r\n $(\".becomecustomerchoice\").removeClass(\"active\");\r\n }\r\n }\r\n\r\n function calculatePrice() {\r\n var elemToSearch = $(\".becomecustomerstandardchoice\");\r\n\r\n if (APPLOYED.common.isTrue($('#InputData_PayServiceIncluded').val())) {\r\n elemToSearch = $(\".becomecustomerchoice\");\r\n }\r\n\r\n var NoE = $('#InputData_NumberOfEmployees').val();\r\n var typeSal = elemToSearch.find('.name').text();\r\n $(\"#NumberOfEmployees\").html(NoE);\r\n $(\"#TypeSalary\").html(typeSal);\r\n\r\n var iNoE = parseFloat(NoE);\r\n var iStandardPrice = parseFloat($('#standardValue').data('price'));\r\n var iSalaryPrice = parseFloat($('#salaryValue').data('price'));\r\n\r\n if (isNaN(iNoE)) {\r\n $(\"#TotalPrice\").html(0);\r\n }\r\n else {\r\n var finalPrice = iStandardPrice;\r\n\r\n var extra = 0;\r\n $('#SalaryCostLess10Employees').hide();\r\n if (APPLOYED.common.isTrue($('#InputData_PayServiceIncluded').val())) {\r\n\r\n if (iNoE > 0 && iNoE <= 10) {\r\n extra = 77;\r\n $('#SalaryCostLess10Employees').show();\r\n }\r\n else {\r\n finalPrice += iSalaryPrice;\r\n }\r\n }\r\n\r\n $(\"#TotalPrice\").val((iNoE * finalPrice) + extra);\r\n $(\"#TotalPrice\").html(parseFloat($(\"#TotalPrice\").val().replace(/,/g, '.')).toFixed(2));\r\n }\r\n }\r\n\r\n function checkIfSuccessed() {\r\n if (APPLOYED.common.isTrue($('#Successed').val())) {\r\n $(\".becomecustomerchoice\").css(\"pointer-events\", \"none\");\r\n $(\"#language-dutch\").prop(\"disabled\", true);\r\n $(\"#language-english\").prop(\"disabled\", true);\r\n }\r\n }\r\n\r\n $(document).off('paste keyup', '#InputData_NumberOfEmployees');\r\n $(document).on('paste keyup', '#InputData_NumberOfEmployees', function () {\r\n calculatePrice();\r\n });\r\n\r\n $(document).off('click', '#btncreatecustomer');\r\n $(document).on('click', '#btncreatecustomer', function () {\r\n\r\n var form = $(this).closest(\"form\");\r\n var data = Api.Main.serialize(form);\r\n\r\n let options = {};\r\n options[\"tofadein\"] = \"\";\r\n options[\"loading\"] = \"#btncreatecustomer\";\r\n\r\n Api.APIcaller.CallAction(\"/Dashboard/Index/Becomecustomer\", data, \"POST\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n \r\n });\r\n \r\n APPLOYED.validator.bindRequiredFields('#becomecustomeredit', '#btncreatecustomer');\r\n }\r\n}","APPLOYED.employees.absence = {\r\n init: function () {\r\n APPLOYED.tableOverview.init();\r\n },\r\n personnalCalendarService = null,\r\n groupCalendarService = null,\r\n afwezigheidsprofiel: function () {\r\n APPLOYED.tableOverview.disableRowSelect = true;\r\n APPLOYED.dataCards.init();\r\n },\r\n reintegratiedossier: function () {\r\n let reintegratiedossierId = $('#ReintegratiedossierId').val();\r\n\r\n $(\"tr[data-tableid='\" + reintegratiedossierId + \"']\").trigger('click');\r\n\r\n $(document).on('click', '.toprow', function () {\r\n let id = $(this).data('tableid');\r\n\r\n getDossieropbouw(id);\r\n });\r\n\r\n let rId = APPLOYED.url.getQueryParam('rid');\r\n\r\n if (rId) {\r\n getDossieropbouw(rId);\r\n }\r\n\r\n function getDossieropbouw(id) {\r\n let employeeid = $('#EmployeeId').val();\r\n\r\n var optionsConfig = {};\r\n optionsConfig[\"nofading\"] = false;\r\n optionsConfig[\"tofadein\"] = \"div[id='dossieropbouw']\";\r\n\r\n Api.APIcaller.CallAction(\"/ajax/getDossieropbouw\", { id: id, werknemerid: employeeid }, \"GET\", null, null, null, optionsConfig, Api.APIcaller.CancelOptions.None);\r\n }\r\n },\r\n dossierOpbouwDelete: function () {\r\n $(document).off('click', '.btndeleterecord');\r\n $(document).on('click', '.btndeleterecord', function () {\r\n let recordid = $('.dossieropbouwdeleteaction').data('record');\r\n let reintegratiedossierid = $('.dossieropbouwdeleteaction').data('reintegratiedossierid');\r\n let employeeid = $('#EmployeeId').val();\r\n let section = $('.dossieropbouwdeleteaction').data('section');\r\n\r\n let options = {};\r\n options[\"tofadein\"] = null;\r\n options[\"loading\"] = \"a[data-record='\" + recordid + \"']\";\r\n\r\n Api.APIcaller.CallAction(section, { recordid: recordid, reintegratiedossierid: reintegratiedossierid, employeeid: employeeid }, \"POST\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n });\r\n },\r\n personaloverview: function () {\r\n APPLOYED.employees.absence.personnalCalendarService = new PersonalCalendarService();\r\n APPLOYED.employees.absence.personnalCalendarService.initCalendar($('#CurrentYear').val(), false);\r\n APPLOYED.employees.absence.getPersonaloverviewList($('#CurrentYear').val());\r\n\r\n $(document).off('click', '#btn-calendar');\r\n $(document).on('click', '#btn-calendar', function () {\r\n $(this).attr('disabled', true);\r\n $('#btn-list').attr('disabled', false);\r\n $('#hidecalendar').show();\r\n $('#hidelist').hide();\r\n });\r\n\r\n $(document).off('click', '#btn-list');\r\n $(document).on('click', '#btn-list', function () {\r\n $(this).attr('disabled', true);\r\n $('#btn-calendar').attr('disabled', false);\r\n $('#hidecalendar').hide();\r\n $('#hidelist').show();\r\n\r\n APPLOYED.employees.absence.getPersonaloverviewList($('#CurrentYear').val());\r\n });\r\n\r\n $(document).off('click', '#add-verlof');\r\n $(document).on('click', '#add-verlof', function () {\r\n let data = {\r\n verlofId: 0,\r\n selectedstartDate: $('#startDatum').val(),\r\n selectedendDate: $('#startDatum').val(),\r\n werknemerId: +$(\"#calendar-container\").data(\"employeeid\"),\r\n status: 387,\r\n typeCalendar: \"personal\"\r\n };\r\n\r\n let options = {};\r\n options[\"nofading\"] = false;\r\n options[\"tofadein\"] = this;\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/GetPersonnelCalendarVerlofDetail\", data, \"Post\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n return;\r\n });\r\n },\r\n groupoverview: function () {\r\n APPLOYED.employees.absence.groupCalendarService = new GroupOverviewService();\r\n APPLOYED.employees.absence.groupCalendarService.initCalendar($('#calendar-scheduler').data('showdate'), false);\r\n\r\n APPLOYED.filter.checkAllInit();\r\n\r\n $(document).off('click', '#add-verlof');\r\n $(document).on('click', '#add-verlof', function () {\r\n let data = {\r\n verlofId: 0,\r\n selectedstartDate: $('#startDatum').val(),\r\n selectedendDate: $('#startDatum').val(),\r\n werknemerId: +$(\"#werknemerId\").val(),\r\n status: 387,\r\n typeCalendar: \"group\"\r\n };\r\n\r\n let options = {};\r\n options[\"nofading\"] = false;\r\n options[\"tofadein\"] = this;\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/GetPersonnelCalendarVerlofDetail\", data, \"Post\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n return;\r\n });\r\n },\r\n overview: function () {\r\n APPLOYED.element.dynamicHeight('#searchlist', '.mainscreensized', 65);\r\n\r\n let verlofId = $('#Verlofid').val();\r\n\r\n if (verlofId > 0) {\r\n let verlof = $(\"div[data-verlofid='\" + verlofId + \"']\");\r\n $(verlof).closest('.mainregeling').find(\"div[data-mdb-toggle='collapse']\").trigger('click');\r\n\r\n setActive(verlof);\r\n\r\n let werknemerid = $(verlof).data('werknemerid');\r\n getAfwezigheidRegistratieSaldi(verlofId, werknemerid);\r\n }\r\n\r\n if ($('.regeling.row.active').length > 0) {\r\n let item = $('.regeling.row.active').first();\r\n\r\n updateLetterDropdown(true, false);\r\n APPLOYED.letter.recordId = $(item).data('verlofsaldiid');\r\n $(item).trigger('click');\r\n }\r\n\r\n $(document).off('change', '.afwezigheidsregistratieFilter');\r\n $(document).on('change', '.afwezigheidsregistratieFilter', function () {\r\n selectfilter(this);\r\n });\r\n\r\n function toggleVerlofItem(element) {\r\n let id = $(element).data('verlofsaldiid');\r\n let werknemerid = $(element).data('werknemerid');\r\n let year = $(\"#FilterYear\").val();\r\n\r\n setActive(element);\r\n getAfwezigheidRegistratieDetail(id, werknemerid, year);\r\n\r\n if ($(element).hasClass('active')) {\r\n $(element).children('.chevron').css('transform', 'rotate(-90deg)');\r\n }\r\n else {\r\n $(element).children('.chevron').css('transform', '');\r\n }\r\n\r\n updateLetterDropdown(true, false);\r\n APPLOYED.letter.recordId = id;\r\n }\r\n\r\n $(document).off('click', '.hidechevron');\r\n $(document).on('click', '.hidechevron', function (e) {\r\n toggleVerlofItem($(this).parent());\r\n e.stopPropagation();\r\n });\r\n\r\n $(document).off('click', '.regeling');\r\n $(document).on('click', '.regeling', function (e) {\r\n if ($(e.target).is(\"svg\") || $(e.target).is(\"img\") || $(e.target).is(\".hidechevron\")) return;\r\n\r\n toggleVerlofItem(this);\r\n e.stopPropagation();\r\n });\r\n\r\n $(document).off('click', '.verlof-item');\r\n $(document).on('click', '.verlof-item', function () {\r\n let id = $(this).data('verlofid');\r\n let werknemerid = $(this).data('werknemerid');\r\n\r\n setActive(this);\r\n getAfwezigheidRegistratieSaldi(id, werknemerid);\r\n\r\n updateLetterDropdown(false, true);\r\n APPLOYED.letter.recordId = id;\r\n });\r\n\r\n $(document).off('click', '.absenceStatusFilter');\r\n $(document).on('click', '.absenceStatusFilter', function () {\r\n let id = $(this).data('filterstatus');\r\n\r\n $(this).closest('.verlofstatusiconandtext-' + id).hide();\r\n $('#customCheck-' + id).prop(\"checked\", false).trigger('change');\r\n CheckFilterVisibleItem();\r\n });\r\n\r\n function updateLetterDropdown(regelingActive, verlofActive) {\r\n var items = $('#letteraction').find('li.dropdown-submenu');\r\n\r\n var disabled = true;\r\n items.each(function () {\r\n var letterId = $(this).find('li.actionbutton').data('letterid');\r\n var isVerlof = isVerlofLetter(letterId);\r\n\r\n if ((regelingActive && !isVerlof) || (verlofActive && isVerlof)) {\r\n $(this).show();\r\n disabled = false;\r\n } else {\r\n $(this).hide();\r\n }\r\n });\r\n\r\n $('#letters-dropdown').attr('disabled', disabled);\r\n\r\n function isVerlofLetter(letterId) {\r\n var verlofIds = $('#VerlofLetters').val().split(',');\r\n return verlofIds.includes(letterId.toString());\r\n }\r\n }\r\n\r\n function CheckFilterVisibleItem() {\r\n if ($('.verlof-item.active').is(':hidden')) {\r\n $('.verlof-item.active').removeClass('active');\r\n $('div[id*=\"afwezigheidregistratie\"]').html('');\r\n }\r\n }\r\n\r\n $(document).off('change', '.absenceStatusFilterCheckbox');\r\n $(document).on('change', '.absenceStatusFilterCheckbox', function () {\r\n let id = $(this).data('filterstatus');\r\n let check = $(this).prop('checked');\r\n\r\n if (!check) {\r\n $('.verlofstatusiconandtext-' + id).hide();\r\n\r\n $('.verlofstatus-' + id).closest('.verlof-item').hide();\r\n } else {\r\n $('.verlofstatusiconandtext-' + id).show();\r\n\r\n $('.verlofstatus-' + id).closest('.verlof-item').show();\r\n }\r\n $(\".mainregeling\").each(function () {\r\n var hidechevron = true;\r\n $(this).children('.verlof-items').children('.verlof-item').each(function () {\r\n if ($(this).css('display') != 'none') {\r\n hidechevron = false;\r\n }\r\n });\r\n\r\n if (hidechevron == false) {\r\n $(this).children('.regeling').children('.hidechevron').css('visibility', 'visible');\r\n }\r\n else {\r\n $(this).children('.regeling').children('.hidechevron').css('visibility', 'hidden');\r\n }\r\n\r\n });\r\n\r\n CheckFilterVisibleItem();\r\n });\r\n\r\n $('.absenceStatusFilterCheckbox').trigger('change');\r\n\r\n function setActive(e) {\r\n $('#searchlist').find('.active').removeClass('active');\r\n $(e).addClass('active');\r\n }\r\n\r\n function getAfwezigheidRegistratieDetail(id, werknemerid, year) {\r\n $('#afwezigheidregistratie-loader').show();\r\n $('#afwezigheidregistratie').empty();\r\n\r\n var optionsConfig = {};\r\n optionsConfig[\"nofading\"] = false;\r\n optionsConfig[\"tofadein\"] = null;\r\n Api.APIcaller.CallAction(\"/ajax/getAfwezigheidRegistratieDetail\", { id: id, werknemerid: werknemerid, year: year }, \"GET\", null, null, updateActionContainer, optionsConfig, Api.APIcaller.CancelOptions.None);\r\n }\r\n\r\n function getAfwezigheidRegistratieSaldi(id, werknemerid) {\r\n $('#afwezigheidregistratie-loader').show();\r\n $('#afwezigheidregistratie').empty();\r\n\r\n var optionsConfig = {};\r\n optionsConfig[\"nofading\"] = false;\r\n optionsConfig[\"tofadein\"] = null;\r\n Api.APIcaller.CallAction(\"/ajax/getAfwezigheidRegistratieSaldi\", { id: id, werknemerid: werknemerid }, \"GET\", null, null, null, optionsConfig, Api.APIcaller.CancelOptions.None);\r\n }\r\n\r\n function updateActionContainer(results) {\r\n $('#SaldiRestantSpan_' + results.jsoNresults[0].verlofRegelingId + '').text(results.jsoNresults[0].restant);\r\n }\r\n\r\n $(document).off('click', '.mutatie-toevoegen');\r\n $(document).on('click', '.mutatie-toevoegen', function () {\r\n let options = {};\r\n options[\"tofadein\"] = null;\r\n options[\"loading\"] = \"div[id='dropdownMenu3']\";\r\n\r\n let verlofsaldiId = $(this).data(\"verlofsaldiid\");\r\n let verlofregelinid = $(this).data(\"verlofregelingid\");\r\n\r\n Api.APIcaller.CallAction(\"/Employees/Absence/NewMutatieRecord\", { verlofsaldiId: verlofsaldiId, verlofRegelingId: verlofregelinid }, \"GET\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n });\r\n\r\n $(document).off('click', '.verlofregeling-toevoegen');\r\n $(document).on('click', '.verlofregeling-toevoegen', function () {\r\n let options = {};\r\n options[\"tofadein\"] = null;\r\n options[\"loading\"] = \"div[id='dropdownMenu3']\";\r\n\r\n let jaar = $(this).data(\"jaar\");\r\n let werknemerId = $(this).data(\"werknemerid\");\r\n\r\n Api.APIcaller.CallAction(\"/Employees/Absence/NewVerlofRegelingSaldi\", { jaar: jaar, werknemerId: werknemerId }, \"GET\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n });\r\n\r\n function selectfilter(item) {\r\n let type = $(item).data('filtername');\r\n let value = $(item).val();\r\n let redirectTo = $(item).data('redirectto');\r\n let checked = $(item).is(':checked');\r\n\r\n $(\".afwezigheidsregistratieFilter\").each(function () {\r\n if ($(this).val() != value && $(this).data('filtername') == type) {\r\n $(this).attr('checked', false);\r\n }\r\n });\r\n\r\n APPLOYED.filter.set(redirectTo, type, value, checked);\r\n }\r\n },\r\n deleteverlofregelingsaldi: function () {\r\n APPLOYED.employees.absence.overview()\r\n },\r\n initMutatieBetaling: function () {\r\n $(document).off('click', '.mutatietype');\r\n $(document).on('click', '.mutatietype', function () {\r\n selectRow(this);\r\n });\r\n\r\n $(document).off('click', '#confirmmutatietypemodalaction');\r\n $(document).on('click', '#confirmmutatietypemodalaction', function () {\r\n if (!$(this).prop('disabled')) {\r\n let selectedValue = $('.mutatietype.selected').data('brontype');\r\n let verlofsaldiId = $('#verlofsaldiid').val();\r\n let verlofRegelingId = $('#verlofregelingid').val();\r\n let Year = $('#FilterYear').val();\r\n\r\n redirectToEditPage(selectedValue, verlofsaldiId, verlofRegelingId, Year);\r\n }\r\n });\r\n\r\n function selectRow(element) {\r\n $('.mutatietype').each(function () {\r\n $(this).removeClass('selected');\r\n });\r\n\r\n if (element) {\r\n $(element).addClass('selected');\r\n enableAddButton();\r\n }\r\n }\r\n\r\n function enableAddButton() {\r\n $('#confirmmutatietypemodalaction').attr('disabled', false);\r\n }\r\n\r\n function redirectToEditPage(brontype, verlofSaldiId, verlofRegelingId, year) {\r\n APPLOYED.loader.WaitLoaderOn(\"button[id='confirmmutatietypemodalaction']\");\r\n window.location.href = 'MutatieEdit?verlofsaldimutatiedetailid=0&verlofSaldiId=' + verlofSaldiId + '&verlofRegelingId=' + verlofRegelingId + '&betaling=' + (brontype == 1 ? true : false) + '&year=' + year;\r\n }\r\n },\r\n initVerlofCheck: function () {\r\n $(document).off('click', '#confirmverlofcheck');\r\n $(document).on('click', '#confirmverlofcheck', function () {\r\n var statusId = $(\"#Status\").val();\r\n var verlofId = $(\"#VerlofId\").val();\r\n\r\n let data = {\r\n status: statusId,\r\n verlofid: verlofId,\r\n typecalendar: $(\"#TypeCalendar\").val(),\r\n rowguid: $(\"#RowGuid\").val(),\r\n werknemerId: $(\"#WerknemerId\").val(),\r\n selectedVerlofRegelingId: $(\"#SelectedVerlofRegelingId\").val(),\r\n selectedReden: +$(\"#SelectedReden\").val(),\r\n notities: $(\"#Notities\").val(),\r\n selectedStartdate: $(\"#SelectedStartDate\").val(),\r\n selectedEnddate: $(\"#SelectedEndDate\").val(),\r\n startDate: $(\"#StartDate\").val(),\r\n endDate: $(\"#EndDate\").val()\r\n };\r\n\r\n var options = {};\r\n options[\"nofading\"] = false;\r\n options[\"tofadein\"] = \"div[class='modal-content']\";\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/NextStatusVerlof\", data, \"Get\", null, null, function (response) {\r\n if (!response.errorText) {\r\n $('div[data-verloficonid=\"' + verlofId + '\"]').attr('class', 'status-' + statusId);\r\n }\r\n }, options, Api.APIcaller.CancelOptions.None);\r\n });\r\n },\r\n initVerlofFinalCheck: function () {\r\n $(document).off('click', '#confirmverlofcheck');\r\n $(document).on('click', '#confirmverlofcheck', function () {\r\n $(\"#aanvraagform\").submit();\r\n });\r\n },\r\n initVerlofRegelingPopup: function () {\r\n $(document).off('change', '#SelectedRegeling');\r\n $(document).on('change', '#SelectedRegeling', function () {\r\n enableAddButton();\r\n });\r\n\r\n function enableAddButton() {\r\n $('#confirmmodalaction').attr('disabled', false);\r\n }\r\n\r\n $(document).off('change', '#SelectedYear');\r\n $(document).on('change', '#SelectedYear', function () {\r\n $('#confirmmodalaction').attr('disabled', true);\r\n\r\n var options = {};\r\n options[\"nofading\"] = false;\r\n options[\"tofadein\"] = \"div[id='verlofregelingSaldi']\";\r\n\r\n let werknemerId = $(\"#WerknemerId\").val();\r\n\r\n Api.APIcaller.CallAction(\"/Employees/Absence/VerlofRegelingSaldiDropDown\", { jaar: this.value, werknemerId: werknemerId }, \"GET\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n });\r\n\r\n $(document).off('click', '#confirmmodalaction');\r\n $(document).on('click', '#confirmmodalaction', function () {\r\n if (!$(this).prop('disabled')) {\r\n let selectedValue = $('.type.selected').data('brontype');\r\n let verlofsaldiId = $('#verlofsaldiid').val();\r\n\r\n redirectToEditPage(selectedValue, verlofsaldiId);\r\n }\r\n });\r\n\r\n function redirectToEditPage(brontype, verlofSaldiId) {\r\n APPLOYED.loader.WaitLoaderOn(\"button[id='confirmmodalaction']\");\r\n let werknemerId = $(\"#WerknemerId\").val();\r\n let verlofRegelingId = $(\"#SelectedRegeling\").val();\r\n let year = $(\"#SelectedYear\").val();\r\n\r\n window.location.href = 'AddVerlofRegelingSaldi?werknemerId=' + werknemerId + '&verlofRegelingId=' + verlofRegelingId + '&year=' + year;\r\n }\r\n },\r\n opbouwedit: function () {\r\n $('#handmatigeinvoer').on('change', function () {\r\n if (this.checked) {\r\n $(\"#handmatigemutatie\").prop('disabled', false);\r\n $(\"#vervaldatum\").prop('disabled', false);\r\n } else {\r\n $(\"#handmatigemutatie\").prop('disabled', true);\r\n $(\"#vervaldatum\").prop('disabled', true);\r\n }\r\n });\r\n\r\n $('form').submit(function (e) {\r\n $(':disabled').each(function (e) {\r\n $(this).removeAttr('disabled');\r\n $(this).attr('readonly', true);\r\n })\r\n });\r\n\r\n\r\n },\r\n saveaanvraagedit: function () {\r\n APPLOYED.employees.absence.aanvraagedit();\r\n },\r\n aanvraagedit: function () {\r\n checkSicknessItem();\r\n setVerlofToekennenInDagen();\r\n\r\n VerlofDeviantDaysService.bindDeviantDaysBtn();\r\n VerlofDeviantDaysService.checkAfwijkendeDagenBtn(true);\r\n\r\n if ($(\"#SelectedRegeling\").val() == null) {\r\n $(\".wizard-deviant-days-label\").hide();\r\n }\r\n\r\n $(document).off('change keyup', '#Percentage');\r\n $(document).on('change keyup', '#Percentage', function () {\r\n APPLOYED.validator.keepValueBetweenMinAndMax('#Percentage', 0, 100);\r\n });\r\n\r\n $(document).off('change', '#PerchGebruiken');\r\n $(document).on('change', '#PerchGebruiken', function () {\r\n if ($(this).is(':checked')) {\r\n $('#afwijkende-dagen-container').hide();\r\n $('#afwijkende-dagen-checkbox-container').hide();\r\n } else {\r\n $('#afwijkende-dagen-checkbox-container').show();\r\n\r\n if ($('#AfwijkendeDagen').is(':checked')) {\r\n \r\n $('#afwijkende-dagen-container').show();\r\n }\r\n }\r\n });\r\n \r\n $(document).off('change', '#SelectedRegeling');\r\n $(document).on('change', '#SelectedRegeling', function () {\r\n $(\".wizard-deviant-days-label\").show();\r\n\r\n setVerlofToekennenInDagen();\r\n VerlofDeviantDaysService.checkAfwijkendeDagen();\r\n\r\n checkSicknessItem();\r\n });\r\n\r\n function checkSicknessItem() {\r\n var sicknessList = $(\"#SicknessList\").val().split(',');\r\n\r\n if (sicknessList.indexOf($('#SelectedRegeling').val()) > -1) {\r\n $('.notsickparam').hide();\r\n $('.sickparam').show();\r\n $('#SelectedReden').val('');\r\n\r\n if (APPLOYED.common.isTrue($('#PerchGebruikenDefault').val()) && !$('#AfwijkendeDagen').is(':checked')) {\r\n if ($('#VerlofId').val() == 0) {\r\n $(\"#PerchGebruiken\").prop(\"checked\", true);\r\n $(\"#PerchGebruiken\").trigger('change');\r\n }\r\n }\r\n }\r\n else {\r\n $('.notsickparam').show();\r\n $('.sickparam').hide();\r\n $('#afwijkende-dagen-checkbox-container').show();\r\n }\r\n };\r\n\r\n $(document).off('click', '#btn-save');\r\n $(document).on('click', '#btn-save', function () {\r\n let verlofId = $(\"#VerlofId\").val();\r\n let werknemerId = $(\"#WerknemerId\").val();\r\n let startDatum = DateService.GetDateFromString($(\"#StartDatum\").val());\r\n let eindDatum = null;\r\n if ($(\"#EindDatum\").val() != \"\") {\r\n eindDatum = DateService.GetDateFromString($(\"#EindDatum\").val());\r\n }\r\n let verlofregelingId = $(\"#SelectedRegeling\").val();\r\n let dagen = [];\r\n\r\n if (startDatum && eindDatum != null && $('input#AfwijkendeDagen')[0].checked) {\r\n dagen = VerlofDeviantDaysService.GetDeviantDays();\r\n }\r\n \r\n var options = {};\r\n options[\"nofading\"] = false;\r\n options[\"loading\"] = \"button[id*='btn-save']\";\r\n \r\n let body = {\r\n verlofId: verlofId,\r\n werknemerId: werknemerId,\r\n startDatum: DateService.GetDateFromString($(\"#StartDatum\").val()).toDateString(),\r\n eindDatum: eindDatum != null ? eindDatum.toDateString() : null,\r\n verlofRegelingId: verlofregelingId,\r\n dagen,\r\n verlofToekennenInDagen: VerlofDeviantDaysService.verlofToekennenInDagen\r\n };\r\n\r\n Api.Main.clearNotify();\r\n\r\n if (eindDatum != null) {\r\n Api.APIcaller.CallAction(\"/Employees/Absence/CheckFinalRecord\", body, \"post\", null, null,\r\n function (e) {\r\n if (e.errorText == '' && e.htmLresults.length == 0) {\r\n APPLOYED.loader.WaitLoaderOn('#confirmverlofcheck');\r\n $(\"#aanvraagform\").submit();\r\n }\r\n }, options, Api.APIcaller.CancelOptions.None);\r\n }\r\n else {\r\n APPLOYED.loader.WaitLoaderOn(\"button[id*='btn-save']\");\r\n $(\"#aanvraagform\").submit();\r\n }\r\n });\r\n\r\n $(document).off('change', '#AfwijkendeDagen');\r\n $(document).on('change', '#AfwijkendeDagen', function () {\r\n $(\"#afwijkende-dagen-container\").toggle(this.checked);\r\n $('#percentage-hersteld-container').toggle(!this.checked);\r\n\r\n if (this.checked) {\r\n let startdate = DateService.ToDate($(\"#StartDatum\").val());\r\n let enddate = DateService.ToDate($(\"#EindDatum\").val());\r\n\r\n var data = {\r\n startDate: DateService.ToInvariantDate(startdate),\r\n endDate: DateService.ToInvariantDate(enddate),\r\n werknemerId: $(\"#WerknemerId\").val(),\r\n canUpdate: true,\r\n verlofregelingId = $(\"#SelectedRegeling\").val() || null,\r\n verlofToekennenInDagen: VerlofDeviantDaysService.verlofToekennenInDagen\r\n };\r\n\r\n VerlofDeviantDaysService.checkLoadAfwijkendeDagen(data);\r\n }\r\n });\r\n\r\n $(\"#StartDatum\").on('change', function () {\r\n getVerlofRegelingen();\r\n VerlofDeviantDaysService.checkRemoveDeviantDays($('#StartDatum').val(), $('#EindDatum').val());\r\n });\r\n\r\n $(\"#EindDatum\").on('change', function () {\r\n VerlofDeviantDaysService.checkRemoveDeviantDays($('#StartDatum').val(), $('#EindDatum').val());\r\n });\r\n\r\n function setVerlofToekennenInDagen() {\r\n var verlofregelingId = $('#SelectedRegeling').val();\r\n VerlofDeviantDaysService.verlofToekennenInDagen = !!$('#VerlofRegelingenInDagen').val().split(',').find(id => id == verlofregelingId);\r\n $('#VerlofToekennenInDagen').val(VerlofDeviantDaysService.verlofToekennenInDagen);\r\n }\r\n\r\n function getVerlofRegelingen() {\r\n if (!$('#StartDatum').val() || !APPLOYED.validator.isValidDate($('#StartDatum').val())) {\r\n return;\r\n }\r\n\r\n let selectedRegeling = $('#SelectedRegeling').val();\r\n\r\n var options = {};\r\n options[\"tofadein\"] = null;\r\n\r\n let body = {\r\n container: \"SelectedRegeling\",\r\n type: \"absencealgemeen\",\r\n jaar: $('#StartDatum').val().split(\"-\")[2],\r\n werknemerId: $(\"#WerknemerId\").val()\r\n }\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/GetVerlofRegelingenDropdown\", body, \"POST\", null, null, finished, options, Api.APIcaller.CancelOptions.None);\r\n\r\n function finished(e) {\r\n $('#SicknessList').val(e.jsoNresults[0].join(\",\"));\r\n $('#SelectedRegeling').find('option[value=\"' + selectedRegeling + '\"]').attr('selected', true);\r\n $('#SelectedRegeling').trigger('change');\r\n }\r\n }\r\n\r\n $('#AfwijkendeDagen').trigger('change');\r\n },\r\n deleteEvent: function () {\r\n $(document).off('click', '.btndeleterecord');\r\n $(document).on('click', '.btndeleterecord', function () {\r\n let recordid = $(this).data('record');\r\n let employeeid = $(this).data('employeeid');\r\n let section = $(this).data('section');\r\n let year = $('#FilterYear').val();\r\n\r\n window.location.href = section + '?employeeid=' + employeeid + '&recordid='+ recordid +'&year=' + year + '&verlofsaldiid=' + recordid;\r\n });\r\n },\r\n deleteEventOpbouw: function () {\r\n\r\n $(document).off('click', '.btndeleterecord');\r\n $(document).on('click', '.btndeleterecord', function () {\r\n let recordid = $(this).data('recordid');\r\n let verlofsaldiid = $(this).data('verlofsaldiid');\r\n\r\n let options = {};\r\n options[\"tofadein\"] = null;\r\n options[\"loading\"] = null;\r\n\r\n Api.APIcaller.CallAction(\"OpbouwDelete\", { recordId: recordid, verlofsaldiId: verlofsaldiid }, \"GET\", null, null, function (e) {\r\n if (e.response) {\r\n $(\"#overgenomenregel-\" + recordid).hide()\r\n }\r\n }, options, Api.APIcaller.CancelOptions.None);\r\n\r\n APPLOYED.modal.closePopup('confirmdeletemodal');\r\n });\r\n },\r\n deleteEventMutatie: function () {\r\n\r\n $(document).off('click', '.btndeleterecord');\r\n $(document).on('click', '.btndeleterecord', function () {\r\n let recordid = $(this).data('verlofsaldimutatiedetailid');\r\n let verlofsaldiid = $(this).data('verlofsaldiid');\r\n\r\n let options = {};\r\n options[\"tofadein\"] = null;\r\n options[\"loading\"] = null;\r\n\r\n Api.APIcaller.CallAction(\"MutatieDelete\", { recordId: recordid, verlofsaldiId: verlofsaldiid }, \"GET\", null, null, function (e) {\r\n if (e.response) {\r\n $('#mutatieregel-' + recordid).hide();\r\n }\r\n\r\n APPLOYED.modal.closePopup('confirmdeletemodal');\r\n }, options, Api.APIcaller.CancelOptions.None);\r\n });\r\n },\r\n mutatieedit: function () {\r\n $(document).off('change', '#AutomatischToepassen');\r\n $(document).on('change', '#AutomatischToepassen', function () {\r\n let el = $('#AutomatischToepassen');\r\n let automatisch = $('#AutomatischToepassen').is(':checked');\r\n enableVerlofOpbouw(!automatisch);\r\n });\r\n\r\n function enableVerlofOpbouw (enabled) {\r\n let div = $('#VerlofOpbouwSection');\r\n if (enabled) {\r\n div.show();\r\n } else {\r\n div.hide();\r\n $(\"#VerlofOpbouwId\")[0].selectedIndex = 0;\r\n }\r\n }\r\n },\r\n initPersonaloverviewList: function () {\r\n var startYear = +$('#calendar-container').data('startjaar');\r\n var endYear = +$('#calendar-container').data('eindjaar');\r\n\r\n buildYearSelector();\r\n\r\n $(document).off('click', '#list .prev');\r\n $(document).on('click', '#list .prev', function () {\r\n let clickedYear = +$('#CurrentYear').val() - 1;\r\n\r\n if (+$('#CurrentYear').val() == clickedYear || clickedYear < startYear ) {\r\n return;\r\n }\r\n\r\n $('#CurrentYear').val(clickedYear);\r\n $('#calendar').find('.year-title:contains(' + clickedYear + ')').trigger('click');\r\n\r\n APPLOYED.employees.absence.getPersonaloverviewList($('#CurrentYear').val());\r\n });\r\n\r\n $(document).off('click', '#list .next');\r\n $(document).on('click', '#list .next', function () {\r\n let clickedYear = +$('#CurrentYear').val() + 1;\r\n\r\n if (+$('#CurrentYear').val() == clickedYear || clickedYear > endYear) {\r\n return;\r\n }\r\n\r\n $('#CurrentYear').val(clickedYear);\r\n $('#calendar').find('.year-title:contains(' + clickedYear + ')').trigger('click');\r\n\r\n APPLOYED.employees.absence.getPersonaloverviewList($('#CurrentYear').val());\r\n });\r\n\r\n $(document).off('click', '#list .year-title');\r\n $(document).on('click', '#list .year-title', function () {\r\n let clickedYear = +$(this).html()\r\n\r\n if (+$('#CurrentYear').val() == clickedYear || $(this).hasClass('disabled')) {\r\n return;\r\n }\r\n\r\n $('#CurrentYear').val(clickedYear);\r\n $('#calendar').find('.year-title:contains(' + clickedYear + ')').trigger('click');\r\n\r\n APPLOYED.employees.absence.getPersonaloverviewList($('#CurrentYear').val());\r\n });\r\n\r\n function buildYearSelector() {\r\n let yearTitleStartYear = +$('#CurrentYear').val() - 2;\r\n\r\n $('#list .year-title').each(function () {\r\n $(this).removeClass('disabled');\r\n $(this).html(yearTitleStartYear);\r\n\r\n if (yearTitleStartYear < startYear || yearTitleStartYear > endYear) {\r\n $(this).addClass('disabled');\r\n }\r\n\r\n yearTitleStartYear++;\r\n });\r\n\r\n\r\n if (+$('#CurrentYear').val() == startYear) {\r\n $('#list .prev').css('visibility', 'hidden');\r\n }\r\n\r\n if (+$('#CurrentYear').val() == endYear) {\r\n $('#list .next').css('visibility', 'hidden');\r\n }\r\n }\r\n },\r\n getPersonaloverviewList: function (year) {\r\n var data = {\r\n employeeId: $('#calendar-container').data('employeeid'),\r\n year: year\r\n }\r\n\r\n let options = {};\r\n options[\"nofading\"] = false;\r\n options[\"tofadein\"] = false;\r\n\r\n Api.APIcaller.CallAction(\"/Employees/Absence/PersonalOverviewList\", data, \"GET\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n\r\n $(document).off('click', '.absence-information-icon');\r\n $(document).on('click', '.absence-information-icon', function () {\r\n let data = {\r\n verlofId: $(this).data('verlof'),\r\n selectedstartDate: $(this).data('startdate'),\r\n selectedendDate: $(this).data('enddate'),\r\n werknemerId: +$(\"#calendar-container\").data(\"employeeid\"),\r\n status: $(this).data('status'),\r\n typeCalendar: \"personal\"\r\n };\r\n\r\n let options = {};\r\n options[\"nofading\"] = false;\r\n options[\"tofadein\"] = this;\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/GetPersonnelCalendarVerlofDetailNote\", data, \"Post\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n });\r\n }\r\n}","APPLOYED.employees.development = {\r\n init: function () {\r\n APPLOYED.tableOverview.init();\r\n },\r\n gesprekken: function () {\r\n APPLOYED.tableOverview.disableRowSelect = true;\r\n APPLOYED.dataCards.init();\r\n },\r\n ontwikkelingsprofiel: function () {\r\n APPLOYED.tableOverview.disableRowSelect = true;\r\n APPLOYED.dataCards.init();\r\n },\r\n gesprekscyclus: function () {\r\n APPLOYED.element.dynamicHeight('#searchlist', '.mainscreensized', 65);\r\n APPLOYED.element.dynamicHeight('#gesprekscyclusItemDetail', '.mainscreensized', 100); // set dynamic height\r\n\r\n $(document).off('click', '.details-open');\r\n $(document).on('click', '.details-open', function () {\r\n let criterium = $(this).closest('.criterium');\r\n let id = $(criterium).data('id');\r\n\r\n $(criterium).find('.details-close').show();\r\n $(criterium).find('.details-open').hide();\r\n $('.answers[data-id=\"' + id + '\"]').show();\r\n });\r\n\r\n $(document).off('click', '.details-close');\r\n $(document).on('click', '.details-close', function () {\r\n let criterium = $(this).closest('.criterium');\r\n let id = $(criterium).data('id');\r\n\r\n $(criterium).find('.details-close').hide();\r\n $(criterium).find('.details-open').show();\r\n $('.answers[data-id=\"' + id + '\"]').hide();\r\n });\r\n\r\n $(document).off('click', '.gespreksCyclusAddBtn');\r\n $(document).on('click', '.gespreksCyclusAddBtn', function (e) {\r\n e.preventDefault();\r\n\r\n let employeeId = $('#EmployeeId').val();\r\n\r\n let options = {};\r\n options[\"tofadein\"] = \"\";\r\n options[\"loading\"] = \"div[id*='dropdownMenu3']\";\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/GespreksCyclusNewPopup\", { employeeId, section: 'employees' }, \"GET\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n });\r\n\r\n $(document).off('click', '.gesprekscyclusItemSelect');\r\n $(document).on('click', '.gesprekscyclusItemSelect', function () {\r\n selectItem(this);\r\n });\r\n\r\n $(document).off('click', '.gesprekscyclusstatusdelete');\r\n $(document).on('click', '.gesprekscyclusstatusdelete', function () {\r\n let id = $(this).data('statusid');\r\n\r\n $('.gespreksCyclusStatusfilter[data-statusid=\"' + id + '\"]').prop(\"checked\", false);\r\n $(this).closest('.status-container-standaard').hide();\r\n\r\n applyFilter(id, false);\r\n });\r\n\r\n $(document).off('change', '.gespreksCyclusStatusfilter');\r\n $(document).on('change', '.gespreksCyclusStatusfilter', function () {\r\n let checked = $(this).is(':checked');\r\n\r\n let id = $(this).data('statusid');\r\n\r\n if (checked) {\r\n $('.gesprekscyclusstatusdisplay-' + id).show();\r\n } else {\r\n $('.gesprekscyclusstatusdisplay-' + id).hide();\r\n }\r\n\r\n applyFilter(id, checked);\r\n });\r\n\r\n $(document).off('change', '.gespreksCyclusfilter');\r\n $(document).on('change', '.gespreksCyclusfilter', function () {\r\n selectfilter(this);\r\n });\r\n\r\n let selectedId = $('#GesprekscyclusId').val();\r\n\r\n if ($('tr[data-gesprekscyclusid=\"' + selectedId + '\"]').length) {\r\n $('tr[data-gesprekscyclusid=\"' + selectedId + '\"]').trigger('click');\r\n }\r\n else {\r\n $('.gesprekscyclusItemSelect').first().trigger('click');\r\n }\r\n\r\n function applyFilter(id, show) {\r\n if (show) {\r\n $('.gesprekscyclusstatus-' + id).closest('.gesprekscyclusItemSelect').show();\r\n } else {\r\n $('.gesprekscyclusstatus-' + id).closest('.gesprekscyclusItemSelect').hide();\r\n }\r\n\r\n if ($('.gesprekscyclusstatus-' + id).closest('.gesprekscyclusItemSelect.active').length) {\r\n $('#gesprekscyclusItemDetail').html(\"\");\r\n $('.gesprekscyclusstatus-' + id).closest('.gesprekscyclusItemSelect.active').removeClass('active');\r\n }\r\n }\r\n\r\n function selectItem(item) {\r\n let id = $(item).data('gesprekscyclusid');\r\n\r\n APPLOYED.report.recordId = id;\r\n\r\n $('.gesprekscyclusItemSelect').removeClass('active');\r\n $(item).addClass('active');\r\n\r\n APPLOYED.loader.WaitLoaderOn(\"div[id='gesprekscyclusItemDetail']\");\r\n\r\n var option = {};\r\n option[\"tofadein\"] = null;\r\n Api.APIcaller.CallAction(\"/Ajax/GetEmployeesGesprekscyclusDetail\", { id }, \"GET\", null, null, finished, option, Api.APIcaller.CancelOptions.None);\r\n\r\n function finished() {\r\n APPLOYED.loader.ClearLoaderList();\r\n }\r\n }\r\n\r\n function selectfilter(item) {\r\n let type = $(item).data('filtername');\r\n let value = $(item).val();\r\n let redirectTo = $(item).data('redirectto');\r\n let checked = $(item).is(':checked');\r\n\r\n $(\".gespreksCyclusfilter\").each(function () {\r\n if ($(this).val() != value && $(this).data('filtername') == type) {\r\n $(this).attr('checked', false);\r\n }\r\n });\r\n\r\n APPLOYED.filter.set(redirectTo, type, value, checked);\r\n }\r\n },\r\n InitAddGespreksformulierPopup: function () {\r\n APPLOYED.validator.bindRequiredFields('#modal_popup_formcontent', '#addGesprekscyclus', false);\r\n },\r\n gesprekscyclusedit: function () {\r\n APPLOYED.element.dynamicHeight('#searchlist', '.mainscreensized', 100);\r\n APPLOYED.element.dynamicHeight('#questions', '.mainscreensized', 100);\r\n\r\n APPLOYED.requestStatus.bindChangeRequestStatus();\r\n \r\n var selectedType = \"intro\"; // default is intro (starting item)\r\n var changedFields = {}; // stores changed fields\r\n var canUpdate = $('#CanUpdate').val();\r\n\r\n if (APPLOYED.common.isTrue(canUpdate)) {\r\n $('#closeEditScreen').attr('onclick', null); // overwrite default behaviour\r\n $(document).off('click', '#closeEditScreen');\r\n $(document).on('click', '#closeEditScreen', function () {\r\n APPLOYED.loader.WaitLoaderOn('button[id=\"closeEditScreen\"]');\r\n save(true);\r\n });\r\n }\r\n\r\n $(document).off('change', '#questions input, #questions select, #questions textarea');\r\n $(document).on('change', '#questions input, #questions select, #questions textarea', function () {\r\n let val = this.value;\r\n if (!$(this).is(\"select\") && $.isNumeric(val)) { val += \" \"; }\r\n\r\n changedFields[this.name] = val;\r\n });\r\n\r\n $(document).off('click', '.questionoverview-item');\r\n $(document).on('click', '.questionoverview-item', function () {\r\n save(false, this);\r\n });\r\n\r\n $(document).off('click', '#closeGesprek');\r\n $(document).on('click', '#closeGesprek', function () {\r\n APPLOYED.loader.WaitLoaderOn('button[id=\"closeGesprek\"]');\r\n save(true);\r\n });\r\n\r\n function save(exit = false, element = null) {\r\n let parentValue = 0;\r\n let id = 0;\r\n\r\n if (selectedType == \"intro\") {\r\n parentValue = $('#WerknemerId').val();\r\n id = $('#GesprekscyclusId').val();\r\n } else if (selectedType == \"question\") {\r\n parentValue = $('#GesprekscyclusId').val();\r\n id = $('.questionoverview-item.selected').data('id');\r\n }\r\n\r\n body = {\r\n type: selectedType,\r\n id: id,\r\n parentValue: parentValue,\r\n changedValues = changedFields\r\n };\r\n\r\n if (!jQuery.isEmptyObject(changedFields)) {\r\n let options = {};\r\n options[\"tofadein\"] = \"\";\r\n options[\"loading\"] = \"\";\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/GespreksCyclusSave\", body, \"POST\", null, null, finished, options, Api.APIcaller.CancelOptions.None);\r\n } else if (exit) {\r\n window.location.href = $('#ReturnUrl').val();\r\n } else {\r\n getNewData(element);\r\n }\r\n\r\n function finished(e) {\r\n changedFields = {}; // reset changed fields\r\n\r\n if (exit && !e.hasErrorText) {\r\n window.location.href = $('#ReturnUrl').val();\r\n } else if (element != null) {\r\n getNewData(element);\r\n }\r\n \r\n APPLOYED.loader.ClearLoaderList();\r\n }\r\n\r\n function getNewData(element) {\r\n var target = $(element).data('target');\r\n\r\n let options = {};\r\n options[\"tofadein\"] = \"\";\r\n options[\"loading\"] = \"\";\r\n APPLOYED.loader.WaitLoaderOn('div[id=\"gespreksData\"]');\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/GespreksCyclusGet\", {\r\n id: $('#GesprekscyclusId').val(), employeeId: $('#WerknemerId').val()\r\n }, \"POST\", null, null, finished, options, Api.APIcaller.CancelOptions.None);\r\n\r\n function finished() {\r\n $('.question').hide();\r\n $('.questionoverview-item').removeClass('selected');\r\n $('tr[data-target=\"' + target + '\"]').addClass('selected');\r\n $(target).show();\r\n\r\n APPLOYED.loader.ClearLoaderList();\r\n }\r\n\r\n selectedType = (target == \"#intro\" ? \"intro\" : \"question\"); // update selected item type\r\n }\r\n }\r\n }\r\n}","APPLOYED.employees.employment = {\r\n weekroosterService = null,\r\n tijdregistratieChanged = false,\r\n\r\n init: function () {\r\n APPLOYED.tableOverview.init();\r\n\r\n $('#childrenpages').removeAttr('disabled');\r\n },\r\n dienstverbandgegevens: function () {\r\n $(document).off('click', '#newSalfunctieLink');\r\n $(document).on('click', '#newSalfunctieLink', function (e) {\r\n e.preventDefault(); // prevent default behiavor\r\n\r\n let options = {};\r\n options[\"tofadein\"] = null;\r\n options[\"loading\"] = \"div[id^='dropdownMenu3']\";\r\n\r\n let employeeId = $('#EmployeeId').val();\r\n Api.APIcaller.CallAction(\"/Ajax/SalfunctiesWizardPopup\", { employeeId }, \"GET\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n });\r\n\r\n $(document).off('click', '#newContractLink');\r\n $(document).on('click', '#newContractLink', function (e) {\r\n e.preventDefault(); // prevent default behiavor\r\n\r\n let options = {};\r\n options[\"tofadein\"] = null;\r\n options[\"loading\"] = \"div[id^='dropdownMenu3']\";\r\n\r\n let employeeId = $('#EmployeeId').val();\r\n Api.APIcaller.CallAction(\"/Ajax/ContractWizardPopup\", { employeeId }, \"GET\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n });\r\n },\r\n updateLooncomponenten: function (brontype, referenceDate, dropdown = '.looncomponentenDropdown') {\r\n var dropdownElement = dropdown;\r\n\r\n let options = {};\r\n options[\"tofadein\"] = null;\r\n options[\"loading\"] = \"div[id='dropdownMenu3']\";\r\n\r\n let body = {\r\n brontype: brontype,\r\n referenceDate: referenceDate\r\n }\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/GetLooncomponenten\", body, \"GET\", success, null, null, options, Api.APIcaller.CancelOptions.None);\r\n\r\n function success(data) {\r\n let selected = $(dropdownElement + ' :selected').val();\r\n let results = data.jsoNresults[0];\r\n var dropdownContent = '';\r\n\r\n $(dropdownElement).empty();\r\n\r\n jQuery.each(results, function (i, e) {\r\n if (e.key == selected) {\r\n dropdownContent += '';\r\n } else {\r\n dropdownContent += '';\r\n }\r\n });\r\n\r\n $(dropdownElement).html(dropdownContent);\r\n }\r\n },\r\n inhvergoedingen: function () {\r\n $(document).off('change', '*[data-paramname=\"brontype\"], *[data-paramname=\"startdatum\"]');\r\n $(document).on('change', '*[data-paramname=\"brontype\"], *[data-paramname=\"startdatum\"]', function () {\r\n let brontype = $('*[data-paramname=\"brontype\"]').find('option:selected').val();\r\n let date = $('*[data-paramname=\"startdatum\"]').val();\r\n\r\n if (brontype != '') {\r\n APPLOYED.employees.employment.updateLooncomponenten(brontype, date, '*[data-paramname=\"looncomponentid\"]');\r\n }\r\n });\r\n\r\n $(document).off('click', '.inhvergoedingenAdd');\r\n $(document).on('click', '.inhvergoedingenAdd', function () {\r\n let options = {};\r\n options[\"tofadein\"] = null;\r\n options[\"loading\"] = \"div[id='dropdownMenu3']\";\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/NewInhvergoedingenRecord\", null, \"GET\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n });\r\n },\r\n inhvergoedingenedit: function () {\r\n $(document).off('change', '#Startdatum');\r\n $(document).on('change', '#Startdatum', function () {\r\n let date = $(this).val();\r\n let brontype = $('#BrontypeId').val();\r\n\r\n APPLOYED.employees.employment.updateLooncomponenten(brontype, date);\r\n });\r\n },\r\n initNewInhvergoedingenRecord: function () {\r\n $(document).off('click', '.inhvergoedingentype');\r\n $(document).on('click', '.inhvergoedingentype', function () {\r\n selectRow(this);\r\n });\r\n\r\n $(document).off('click', '#confirminhvergoedingenmodalaction');\r\n $(document).on('click', '#confirminhvergoedingenmodalaction', function () {\r\n if (!$(this).prop('disabled')) {\r\n let selectedValue = $('.inhvergoedingentype.selected').data('brontype');\r\n let employeeid = $('#EmployeeId').val();\r\n let filter = $('#Filter').val();\r\n\r\n redirectToEditPage(selectedValue, employeeid, filter);\r\n }\r\n });\r\n\r\n function selectRow(element) {\r\n $('.inhvergoedingentype').each(function () {\r\n $(this).removeClass('selected');\r\n });\r\n\r\n if (element) {\r\n $(element).addClass('selected');\r\n enableAddButton();\r\n }\r\n }\r\n\r\n function enableAddButton() {\r\n $('#confirminhvergoedingenmodalaction').attr('disabled', false);\r\n }\r\n\r\n function redirectToEditPage(brontype, werknemerid, filter) {\r\n APPLOYED.loader.WaitLoaderOn(\"button[id='confirminhvergoedingenmodalaction']\");\r\n\r\n if (brontype && werknemerid) {\r\n window.location.href = 'inhvergoedingenedit/0/?brontype=' + brontype + '&employeeid=' + werknemerid + '&filter=' + filter;\r\n }\r\n }\r\n },\r\n salfuncties: function () {\r\n $(document).off('click', '.newlink');\r\n $(document).on('click', '.newlink', function (e) {\r\n e.preventDefault(); // prevent default behiavor\r\n\r\n let options = {};\r\n options[\"tofadein\"] = null;\r\n options[\"loading\"] = \"div[id^='dropdownMenu3']\";\r\n\r\n let employeeId = $('#EmployeeId').val();\r\n Api.APIcaller.CallAction(\"/Ajax/SalfunctiesWizardPopup\", { employeeId }, \"GET\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n });\r\n\r\n },\r\n salfunctiesedit: function () {\r\n var self = this;\r\n\r\n APPLOYED.wizard.init();\r\n APPLOYED.wizard.on('next', next);\r\n\r\n APPLOYED.contract.init('#StartdatumContract', '#EinddatumContract');\r\n\r\n APPLOYED.picklist.callback.add(\"ContractsoortDefinitieId\", APPLOYED.contract.DisableEnddateCallback);\r\n APPLOYED.picklist.callback.add(\"ContractduurDefinitieId\", APPLOYED.contract.SetEnddateCallback);\r\n\r\n $('#StartdatumContract').on('change', function () {\r\n APPLOYED.contract.setStartDate($('#StartdatumContract'), $('#EinddatumContract'));\r\n });\r\n\r\n /* Bindings */\r\n APPLOYED.validator.bindRequiredFields('#Contract', '#ContractSubmit', false);\r\n APPLOYED.validator.bindRequiredFields('#Functie', '#FunctieSubmit', false);\r\n APPLOYED.validator.bindRequiredFields('#Salarisgegevens', '#SalarisSubmit', false);\r\n APPLOYED.validator.bindRequiredFields('#wizardContent', '#WizardSubmit', false);\r\n\r\n $(document).on('change', '#SalarisSchaalId', function () {\r\n APPLOYED.picklist.updateFkRecordId('SalaristredeId', $(this).val());\r\n });\r\n\r\n $(document).on('change', '#BedrijfId', function () {\r\n APPLOYED.picklist.updateFkRecordId('AfdelingId', $(this).val());\r\n APPLOYED.picklist.updateFkRecordId('VestigingId', $(this).val());\r\n });\r\n\r\n $(document).on('change', '#MaxSalarisSchaalid', function () {\r\n APPLOYED.picklist.updateFkRecordId('MaxSalarisTredeId', $(this).val());\r\n });\r\n\r\n $(document).on('change', '#Maandag, #Dinsdag, #Woensdag, #Donderdag, #Vrijdag, #Zaterdag, #Zondag, #CorrectieUren', function () {\r\n let total =\r\n Number($('#Maandag').val()) +\r\n Number($('#Dinsdag').val()) +\r\n Number($('#Woensdag').val()) +\r\n Number($('#Donderdag').val()) +\r\n Number($('#Vrijdag').val()) +\r\n Number($('#Zaterdag').val()) +\r\n Number($('#Zondag').val());\r\n\r\n if ($('#CorrectieUren').length) {\r\n total -= Number($('#CorrectieUren').val());\r\n }\r\n\r\n $('#TotaalUren').val(total.toFixed(2));\r\n $('#TotaalUren').trigger('change');\r\n });\r\n\r\n $(document).on('change', '#TotaalUren, #BedrijfId', function () {\r\n GetCalculatedFte();\r\n GetCalculatedSalaris();\r\n });\r\n\r\n $(document).on('change', '#SalarisSchaalId, #SalaristredeId, #BetalingsbasisId, #BetalingsperiodeId, #Vakantiepercentage, #FulltimeSalaris', function () {\r\n GetCalculatedSalaris();\r\n });\r\n\r\n function GetCalculatedFte() {\r\n let totaalUren = $('#TotaalUren').val();\r\n let bedrijfId = $('#BedrijfId').val();\r\n\r\n let options = {};\r\n options[\"tofadein\"] = null;\r\n options[\"loading\"] = null;\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/GetCalculatedFte\", { bedrijfId: bedrijfId, totaalUren: totaalUren }, \"GET\", null, null, succes, options, Api.APIcaller.CancelOptions.None);\r\n\r\n function succes(e) {\r\n let newValue = null;\r\n\r\n if (!e.hasErrorText) {\r\n newValue = Number(+e.jsoNresults[0]).toFixed(2);\r\n }\r\n\r\n $('#Fte').val(newValue);\r\n }\r\n }\r\n\r\n function GetCalculatedSalaris() {\r\n let options = {};\r\n options[\"tofadein\"] = null;\r\n options[\"loading\"] = null;\r\n\r\n let body = {\r\n BedrijfId: $('#BedrijfId').val(),\r\n FulltimeSalaris: $('#FulltimeSalaris').val(),\r\n SalarisSchaal: $('#SalarisSchaalId').val(),\r\n SalarisTrede: $('#SalaristredeId').val(),\r\n BetalingsBasis: $('#BetalingsbasisId').val(),\r\n BetalingsPeriode: $('#BetalingsperiodeId').val(),\r\n VakantiePerc: $('#Vakantiepercentage').val(),\r\n TotaalUren: $('#TotaalUren').val()\r\n };\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/GetCalculatedSalaris\", body, \"POST\", null, null, succes, options, Api.APIcaller.CancelOptions.None);\r\n\r\n function succes(e) {\r\n if (!e.hasErrorText) {\r\n let newValues = e.jsoNresults[0];\r\n\r\n $('#PeriodiekSalaris').val(+newValues.perodiekSalaris.toFixed(2));\r\n $('#JaarSalaris').val(+newValues.jaarSalaris.toFixed(2));\r\n $('#Uurtarief').val(+newValues.uurtarief.toFixed(2));\r\n $('#JaarSalarisIncl').val(+newValues.jaarSalarisIncl.toFixed(2));\r\n }\r\n }\r\n }\r\n\r\n $('form').submit(function () {\r\n APPLOYED.loader.WaitLoaderOn(\"button[id*='WizardSubmit']\");\r\n\r\n $(':disabled').each(function () {\r\n $(this).removeAttr('disabled');\r\n $(this).attr('readonly', true);\r\n });\r\n });\r\n\r\n function next(curStep, nextStep) {\r\n var validated = APPLOYED.validator.checkRequiredFields('#' + curStep, '#' + curStep + 'Submit');\r\n\r\n if (curStep == \"Contract\") {\r\n validateContract()\r\n\r\n return false;\r\n }\r\n\r\n if (curStep == 'FunctieUren') {\r\n self.weekroosterService.saveWeekrooster();\r\n }\r\n\r\n if (validated) {\r\n APPLOYED.wizard.validate.validated(curStep);\r\n } else {\r\n return false\r\n }\r\n }\r\n\r\n function validateContract() {\r\n $('#errorbar').hide();\r\n\r\n var model = {};\r\n $.each($('.form-horizontal').serializeArray(), function () {\r\n model[this.name] = this.value;\r\n });\r\n\r\n let options = {};\r\n options[\"tofadein\"] = null;\r\n options[\"loading\"] = \"button[id='ContractSubmit']\";\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/ValidateDienstverband\", { model: model }, \"POST\", null, null, succes, options, Api.APIcaller.CancelOptions.None);\r\n\r\n function succes(e) {\r\n if (!e.hasErrorText) {\r\n APPLOYED.wizard.validate.validated(\"Contract\");\r\n APPLOYED.wizard.curStep = 2;\r\n APPLOYED.wizard.navigate.to(APPLOYED.wizard.curStep);\r\n }\r\n }\r\n }\r\n\r\n // #region Weekroosters\r\n self.weekroosterService = new WeekroosterService();\r\n self.weekroosterService.init();\r\n // #endregion\r\n\r\n // #region Tijdregistratie\r\n if (APPLOYED.common.isTrue($(\"#HasTijdregistratie\").val())) {\r\n initTijdregistratie();\r\n }\r\n\r\n function initTijdregistratie() {\r\n self.tijdregistratieChanged = false;\r\n CheckTijdregistratie();\r\n APPLOYED.validator.checkRequiredFields('#wizardContent', '#WizardSubmit');\r\n\r\n $('#TijdregistratietypeId, #Toeslagfunctie, #Klokken').on('change', function () {\r\n self.tijdregistratieChanged = true;\r\n CheckTijdregistratie();\r\n });\r\n\r\n $(document).on('change', '#Klokken', function () {\r\n $('#alleenviaterminal-container').toggle(this.checked);\r\n });\r\n\r\n $(document).on('change', '#Startdatum', function () {\r\n UpdateTijdregistratie();\r\n });\r\n\r\n function CheckTijdregistratie() {\r\n var tijdregtype = $('#TijdregistratietypeId').val();\r\n var toeslagfunctie = $('#Toeslagfunctie').val();\r\n\r\n if ((tijdregtype && !toeslagfunctie) || (!tijdregtype && toeslagfunctie)) {\r\n APPLOYED.validator.setRequired('#TijdregistratietypeId, #Toeslagfunctie', true);\r\n }\r\n else if (!tijdregtype && !toeslagfunctie) {\r\n APPLOYED.validator.setRequired('#TijdregistratietypeId, #Toeslagfunctie', false);\r\n }\r\n }\r\n\r\n function UpdateTijdregistratie() {\r\n var date = DateService.GetDateFromString($('#Startdatum').val());\r\n if (!date || self.tijdregistratieChanged) {\r\n return;\r\n }\r\n\r\n var body = {\r\n referenceDate: DateService.ToString(date, 'yyyy-mm-dd'),\r\n employeeId: $('#WerknemerId').val()\r\n };\r\n\r\n let options = {};\r\n options[\"tofadein\"] = null;\r\n options[\"loading\"] = null;\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/GetRecentTijdregistratie\", body, \"GET\", null, null, success, options, Api.APIcaller.CancelOptions.None);\r\n\r\n function success(e) {\r\n if (!e.hasErrorText) {\r\n let newValues = e.jsoNresults[0];\r\n\r\n if (newValues.tijdregistratietypeId != null && newValues.toeslagfunctie != null && newValues.klokken != null) {\r\n $('#TijdregistratietypeId').val(newValues.tijdregistratietypeId);\r\n $('#Toeslagfunctie').val(newValues.toeslagfunctie);\r\n $('#Klokken').prop(\"checked\", !!newValues.klokken);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n // #endregion\r\n },\r\n contractenedit: function () {\r\n APPLOYED.contract.init('#Startdatum', '#Einddatum');\r\n\r\n APPLOYED.picklist.callback.add(\"ContractsoortDefinitieId\", APPLOYED.contract.DisableEnddateCallback);\r\n APPLOYED.picklist.callback.add(\"ContractduurDefinitieId\", APPLOYED.contract.SetEnddateCallback);\r\n\r\n $('#Startdatum').on('change', function () {\r\n APPLOYED.contract.setStartDate($('#Startdatum'), $('#Einddatum'));\r\n });\r\n },\r\n initSalfunctieWizardPopup: function () {\r\n $(document).off('change', '#begindatum');\r\n $(document).on('change', '#begindatum', function () {\r\n validate();\r\n });\r\n\r\n $(document).off('click', '.salcofunctietype');\r\n $(document).on('click', '.salcofunctietype', function () {\r\n toggleRow(this);\r\n });\r\n\r\n $(document).off('click', '#confirmsalcowizardmodalaction');\r\n $(document).on('click', '#confirmsalcowizardmodalaction', function () {\r\n if (!$(this).prop('disabled')) {\r\n APPLOYED.loader.WaitLoaderOn(\"button[id^='confirmsalcowizardmodalaction']\");\r\n\r\n let employeeid = $('#EmployeeId').val();\r\n let startdate = $('#begindatum').val().split(\"-\");\r\n let startdateCorrect = startdate[2] + \"-\" + startdate[1] + \"-\" + startdate[0];\r\n let type = $('.salcofunctietype.selected').data('type');\r\n\r\n window.location.href = '/employees/employment/salfunctiesedit/?employeeid=' + employeeid + '&contract=' + type + '&begindatum=' + startdateCorrect;\r\n }\r\n });\r\n\r\n function toggleRow(element) {\r\n $('.salcofunctietype').removeClass('selected');\r\n $(element).addClass('selected');\r\n\r\n validate();\r\n }\r\n\r\n function validate() {\r\n let validated = true;\r\n\r\n if ($('#begindatum').val() == '') validated = false;\r\n\r\n let typeSelected = false;\r\n\r\n $('.salcofunctietype').each(function () {\r\n if ($(this).hasClass('selected')) {\r\n typeSelected = true;\r\n\r\n return false;\r\n }\r\n });\r\n\r\n if (typeSelected == false) validated = false;\r\n\r\n $('#confirmsalcowizardmodalaction').attr('disabled', !validated);\r\n }\r\n },\r\n autogebruikedit: function () {\r\n $(document).on('change', '#BedrijfsautosId', function () {\r\n updateDefaultValues();\r\n });\r\n\r\n function updateDefaultValues() {\r\n var autoId = $('#BedrijfsautosId').val();\r\n\r\n var options = {};\r\n\r\n Api.APIcaller.CallAction(\"/Employees/Employment/AutoGebruikDefaults\", { autoId }, \"GET\", success, null, null, options, Api.APIcaller.CancelOptions.None);\r\n }\r\n\r\n function success(response) {\r\n if (!response.hasErrorText) {\r\n var data = response.jsoNresults[0];\r\n\r\n $('#BijtellingPercentage').val(data[\"bijtelling\"]);\r\n $('#GrensLaagHoog').val(data[\"laagHoog\"]);\r\n $('#BijtellingPercHoog').val(data[\"bijtellingHoog\"]);\r\n $('#FiscaleWaarde').val(data[\"fiscaleWaarde\"]);\r\n $('#DisplayFiscaleWaarde').val(data[\"displayFiscaleWaarde\"]);\r\n }\r\n\r\n Api.APIcaller.defaultSuccessHandler(response);\r\n }\r\n }\r\n}","APPLOYED.employees.expenses = {\r\n init: function () {\r\n APPLOYED.requestStatus.bindChangeRequestStatus();\r\n },\r\n initEmployeesExpenses: function () {\r\n APPLOYED.expenses.bindExpensesActionButton();\r\n $('#documentsButton span.badge').hide();\r\n },\r\n declaraties: function () {\r\n APPLOYED.element.dynamicHeight('#searchlist', '.mainscreensized', 65);\r\n\r\n APPLOYED.employees.expenses.init();\r\n \r\n\r\n $(document).off('click', '.smallcube');\r\n $(document).on('click', '.smallcube', function () {\r\n $('.smallcube').removeClass('active');\r\n $(this).addClass('active');\r\n\r\n var recordId = $(this).data('recordid');\r\n $('#SelectedRecordId').val(recordId);\r\n\r\n var employeeid = $(this).data('employeeid');\r\n\r\n if (employeeid == undefined || employeeid == \"undefined\") {\r\n if (APPLOYED.url.getUrlParam(\"employeeid\") != null) {\r\n employeeid = APPLOYED.url.getUrlParam(\"employeeid\");\r\n }\r\n }\r\n\r\n var years = '';\r\n var yearparam = '';\r\n if (APPLOYED.url.getUrlParam(\"years\") != null && APPLOYED.url.getUrlParam(\"years\") != \"0\" && APPLOYED.url.getUrlParam(\"years\") != 0) {\r\n yearparam = \"&years=\";\r\n years = APPLOYED.url.getUrlParam(\"years\");\r\n }\r\n else {\r\n if ($('#YearsList').val().split(',').length > 0) {\r\n yearparam = \"&years=\";\r\n years = $('#YearsList').val();\r\n }\r\n }\r\n\r\n var employeeBaseUrl = '/Employees' + '/' + $('body').data('controller') + '/' + $('body').data('action') + '/' + recordId + '?employeeid=' + employeeid + yearparam + years;\r\n\r\n $('#navbaremployeeidquerystring').attr('href', employeeBaseUrl);\r\n $('#searchmedewerker_baseurl').data('url', employeeBaseUrl);\r\n\r\n var canaddprojectonpage = false;\r\n if (APPLOYED.common.isTrue($(this).data('canaddprojectonpage'))) {\r\n canaddprojectonpage = true;\r\n }\r\n var tablename = $(this).data('tablename');\r\n var mustReload = $(this).data('mustreload');\r\n\r\n var options = {};\r\n\r\n options[\"tofadein\"] = \"div[id*='_ContainerId']\";\r\n Api.APIcaller.CallAction(\"/Ajax/LoadExpensesEdit\", { recordId: recordId, canAddProjectOnPage: canaddprojectonpage, tablename: tablename, mustReload: mustReload, years: years }, \"GET\", null, null, APPLOYED.employees.expenses.getDeclaratieDocumentCounts(recordId), options, Api.APIcaller.CancelOptions.None);\r\n\r\n });\r\n\r\n var selectedRecordId = $('#SelectedRecordId').val();\r\n var obj = $('.smallcube[data-recordid=' + selectedRecordId + ']');\r\n $('.smallcube').removeClass('active');\r\n if (obj.data('recordid') == undefined || obj.data('recordid') == 'undefined') {\r\n obj = $('#searchlist div.smallcube').first();\r\n selectedRecordId = obj.data('recordid');\r\n $('#SelectedRecordId').val(selectedRecordId);\r\n }\r\n\r\n if (APPLOYED.url.getUrlParam(\"years\") != null && APPLOYED.url.getUrlParam(\"years\") != \"0\" && APPLOYED.url.getUrlParam(\"years\") != 0) {\r\n var splitted = APPLOYED.url.getUrlParam(\"years\").split(',');\r\n for (i = 0; i < splitted.length; i++) {\r\n $(\".chkFilter\").each(function () {\r\n if ($(this).val() == splitted[i]) {\r\n $(this).prop('checked', true);\r\n }\r\n });\r\n }\r\n }\r\n else {\r\n var currentYear = (new Date).getFullYear();\r\n var isChecked = false;\r\n $(\".chkFilter\").each(function () {\r\n if ($(this).val() == currentYear) {\r\n $(this).prop('checked', true);\r\n isChecked = true;\r\n }\r\n });\r\n if (!isChecked) {\r\n if ($('#YearsList').val().split(',').length > 0) {\r\n $(\".chkFilter[value='\" + $('#YearsList').val() + \"']\").prop('checked', true);\r\n }\r\n }\r\n }\r\n\r\n obj.addClass('active');\r\n\r\n APPLOYED.expenses.bindExpensesActionEvents();\r\n APPLOYED.expenses.downloadBon();\r\n APPLOYED.employees.expenses.getDeclaratieDocumentCounts(selectedRecordId);\r\n },\r\n getDeclaratieDocumentCounts: function (recordId) {\r\n APPLOYED.documents.setParameters(\"declaraties\", recordId, \"\", \"\");\r\n APPLOYED.documents.enableOpenButton();\r\n APPLOYED.documents.GetCount();\r\n },\r\n saveFirstTimeDeclaratie: function () {\r\n\r\n var formDataTemp = new FormData();\r\n var fileTooLargeTemp = false;\r\n var file = document.getElementById('file');\r\n\r\n var { formData, fileTooLarge } = APPLOYED.file.CheckIfMaxFileSize(file, formDataTemp, fileTooLargeTemp);\r\n\r\n $('#editform').find(\"input[name]\").each(function (index, node) {\r\n formData.append(node.name, node.value);\r\n });\r\n\r\n $('#editform').find(\"textarea[name]\").each(function (index, node) {\r\n formData.append(node.name, node.value);\r\n });\r\n\r\n $('#expenselineform').find(\"input[name]\").each(function (index, node) {\r\n formData.append(\"Employees_ExpensesLine_Edit_Model.\" + node.name, node.value);\r\n });\r\n\r\n $('#expenselineform').find(\"select[name]\").each(function (index, node) {\r\n formData.append(\"Employees_ExpensesLine_Edit_Model.\" + node.name, node.value);\r\n });\r\n\r\n var year = \"\";\r\n if (APPLOYED.url.getUrlParam(\"year\") != null && APPLOYED.url.getUrlParam(\"year\") != \"0\" && APPLOYED.url.getUrlParam(\"year\") != 0) {\r\n\r\n year = APPLOYED.url.getUrlParam(\"year\");\r\n }\r\n\r\n // do not proceed if any file is too large\r\n if (fileTooLarge) {\r\n Api.Main.displayNotify($('#FileTooLargeErrorText').val(), true);\r\n APPLOYED.loader.WaitLoaderOff(\"#SaveAllButton\");\r\n\r\n } else {\r\n APPLOYED.loader.WaitLoaderOn(\"#SaveAllButton\");\r\n $('#SaveAllButton').attr('disabled', 'disabled');\r\n\r\n $.ajax({\r\n url: '/Employees/Expenses/ExpensesSaveFirstTime',\r\n type: 'POST',\r\n data: formData,\r\n dataType: 'json',\r\n contentType: false,\r\n processData: false,\r\n success: function (data) {\r\n if (data.error != undefined && data.error != undefined) {\r\n Api.Main.displayNotify(data.error, true);\r\n }\r\n\r\n if (data.message != undefined && data.message != undefined) {\r\n Api.Main.displayNotify(data.message, false);\r\n $('#notifybars').hide();\r\n }\r\n if (data.error == null) {\r\n window.location.href = data.declaratieId + \"?years=\" + year + \"&employeeid=\" + data.employeeid;\r\n\r\n return true;\r\n }\r\n APPLOYED.loader.WaitLoaderOff(\"#SaveAllButton\");\r\n $('#SaveAllButton').removeAttr('disabled');\r\n\r\n },\r\n error: function (e) {\r\n APPLOYED.loader.WaitLoaderOff(\"#SaveAllButton\");\r\n $('#SaveAllButton').removeAttr('disabled');\r\n }\r\n });\r\n }\r\n },\r\n sendFileInput: function () {\r\n var formDataTemp = new FormData();\r\n var fileTooLargeTemp = false;\r\n var file = document.getElementById('file');\r\n \r\n var { formData, fileTooLarge } = APPLOYED.file.CheckIfMaxFileSize(file, formDataTemp, fileTooLargeTemp);\r\n\r\n $('#expenselineform').find(\"input[name]\").each(function (index, node) {\r\n formData.append(node.name, node.value);\r\n });\r\n\r\n $('#expenselineform').find(\"select[name]\").each(function (index, node) {\r\n formData.append(node.name, node.value);\r\n });\r\n\r\n // do not proceed if any file is too large\r\n if (fileTooLarge) {\r\n Api.Main.displayNotify($('#FileTooLargeErrorText').val(), true);\r\n\r\n APPLOYED.loader.WaitLoaderOff(\"#SaveAllButton\");\r\n } else {\r\n Api.APIcaller.WaitFadeIn(\"#ExpensesRulesEdit_ContainerId\");\r\n\r\n $.ajax({\r\n url: '/Employees/Expenses/ExpensesLineUpdateRecord',\r\n type: 'POST',\r\n data: formData,\r\n dataType: 'json',\r\n contentType: false,\r\n processData: false,\r\n success: function (data) {\r\n if (data.error != undefined && data.error != '') {\r\n Api.Main.displayNotify(data.error, true);\r\n Api.APIcaller.WaitFadeOut(\"#ExpensesRulesEdit_ContainerId\");\r\n return false;\r\n }\r\n\r\n if (data.message != undefined && data.message != '') {\r\n Api.Main.displayNotify(data.message, false);\r\n $('#notifybars').hide();\r\n }\r\n\r\n if (data.error == undefined || data.error == '' || data.error == null) {\r\n location.reload();\r\n return true;\r\n }\r\n\r\n Api.APIcaller.WaitFadeOut(\"#ExpensesRulesEdit_ContainerId\");\r\n },\r\n error: function (e) {\r\n\r\n }\r\n });\r\n }\r\n },\r\n showDocument: function (show, name, isImage) {\r\n if (show) {\r\n $('#uploadimagedocname').html(name);\r\n $('#uploadimagelink').hide();\r\n $('#uploadimagedocname').show();\r\n $('#uploadimage').removeClass('cursorpointer');\r\n $('#uploadimage').addClass('imageloaded');\r\n\r\n $('#uploadimage').find('svg').attr('viewBox', '0 0 128 128');\r\n\r\n $('#deletephoto').show();\r\n $('#MustDeleteDocument').val(false);\r\n\r\n if (!isImage) {\r\n $('#receipt').hide();\r\n } else {\r\n $('#uploadimage').hide();\r\n $('#receipt').show();\r\n }\r\n } else {\r\n $('#receipt').attr('title', '');\r\n $('#receipt').attr('src', '');\r\n $('#receipt').attr('alt', '');\r\n $('#receipt').hide();\r\n\r\n $('#uploadimagedocname').html('');\r\n $('#uploadimagelink').show();\r\n $('#uploadimagedocname').hide();\r\n\r\n $('#uploadimage').addClass('cursorpointer');\r\n $('#uploadimage').removeClass('imageloaded');\r\n $('#uploadimage').find('svg').attr('viewBox', '0 0 64 64');\r\n $('#uploadimage').show();\r\n\r\n $('#deletephoto').hide();\r\n }\r\n },\r\n showUploadImage: function (input) {\r\n if (input.files && input.files[0]) {\r\n var filerdr = new FileReader();\r\n filerdr.onload = function (e) {\r\n $('#receipt').attr('src', e.target.result);\r\n $('#receipt').attr('alt', input.files[0].name);\r\n\r\n APPLOYED.employees.expenses.showDocument(true, input.files[0].name, e.target.result.startsWith('data:image'))\r\n };\r\n filerdr.readAsDataURL(input.files[0]);\r\n }\r\n },\r\n expensesedit: function () {\r\n APPLOYED.employees.expenses.initEmployeesExpenses();\r\n\r\n if ($('#expenselineform').length > 0) {\r\n $('#divactionbutton').hide();\r\n }\r\n else {\r\n $('#divactionbutton').show();\r\n }\r\n\r\n $(document).off('click', '.declaratieregeledit td:not(:last-child)');\r\n $(document).on('click', '.declaratieregeledit td:not(:last-child)', function () {\r\n $(\".declaratieregeledit td\").parent().removeClass('active');\r\n $(this).parent().addClass('active');\r\n\r\n var years = '';\r\n\r\n if (APPLOYED.url.getUrlParam(\"years\") != null) {\r\n years = APPLOYED.url.getUrlParam(\"years\");\r\n }\r\n else {\r\n if ($('#YearsList').val().split(',').length > 0) {\r\n years = $('#YearsList').val();\r\n }\r\n }\r\n\r\n var declaratiesid = $(this).parent().data('declaratiesid');\r\n var recordId = $(this).parent().data('declaratieregelid');\r\n\r\n var options = {};\r\n\r\n options[\"tofadein\"] = \"div[id*='_ContainerId']\";\r\n Api.APIcaller.CallAction(\"/Ajax/LoadExpensesRuleEdit\", { recordId: recordId, years: years, declaratiesid: declaratiesid }, \"GET\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n });\r\n\r\n $(document).off('click', '.declaratieregeleditahref');\r\n $(document).on('click', '.declaratieregeleditahref', function () {\r\n $(\".declaratieregeledit\").removeClass('active');\r\n var years = '';\r\n if (APPLOYED.url.getUrlParam(\"years\") != null) {\r\n years = APPLOYED.url.getUrlParam(\"years\");\r\n }\r\n else {\r\n if ($('#YearsList').val().split(',').length > 0) {\r\n years = $('#YearsList').val();\r\n }\r\n }\r\n\r\n var declaratiesid = $(this).data('declaratiesid');\r\n var recordId = $(this).data('declaratieregelid');\r\n\r\n var options = {};\r\n\r\n options[\"tofadein\"] = \"\";\r\n options[\"loading\"] = \"#declaratieregeleditaddId\";\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/LoadExpensesRuleEdit\", { recordId: recordId, years: years, declaratiesid: declaratiesid }, \"GET\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n });\r\n\r\n $(document).off('click', '.declaratieregeleditadd');\r\n $(document).on('click', '.declaratieregeleditadd', function () {\r\n $('#expenselineform').hide();\r\n $('#divactionbutton').show();\r\n });\r\n $(document).off('click', '.declaratieregeleditannuleren');\r\n $(document).on('click', '.declaratieregeleditannuleren', function () {\r\n $('#expenselineform').hide();\r\n $('#divactionbutton').show();\r\n $(\"#declaratieregeleditaddId\").show();\r\n });\r\n \r\n $(document).off('click', '#btnexpensessave');\r\n $(document).on('click', '#btnexpensessave', function () {\r\n APPLOYED.loader.WaitLoaderOn(this);\r\n $(\"#editform\").submit();\r\n });\r\n\r\n APPLOYED.expenses.downloadBon();\r\n }\r\n}","APPLOYED.employees.hours = {\r\n init: function () {\r\n APPLOYED.requestStatus.bindChangeRequestStatus();\r\n },\r\n saveBeforeCreate: false,\r\n calculateTableTotal: function (addcolumnoffset) {\r\n var table = $('.hourstable tbody');\r\n var data = { Monday: 0, Tuesday: 0, Wednesday: 0, Thursday: 0, Friday: 0, Saturday: 0, Sunday: 0 };\r\n var columnOffset = addcolumnoffset + 1;\r\n\r\n table.find('tr:not(.number)').each(function (i, el) {\r\n\r\n var $tds = $(this).find('td'),\r\n Monday = $tds.eq(columnOffset + 0).text().trim() !== '' ? $tds.eq(columnOffset + 0).text().replace(',', '.') : null,\r\n Tuesday = $tds.eq(columnOffset + 1).text().trim() !== '' ? $tds.eq(columnOffset + 1).text().replace(',', '.') : 0,\r\n Wednesday = $tds.eq(columnOffset + 2).text().trim() !== '' ? $tds.eq(columnOffset + 2).text().replace(',', '.') : 0,\r\n Thursday = $tds.eq(columnOffset + 3).text().trim() !== '' ? $tds.eq(columnOffset + 3).text().replace(',', '.') : 0,\r\n Friday = $tds.eq(columnOffset + 4).text().trim() !== '' ? $tds.eq(columnOffset + 4).text().replace(',', '.') : 0,\r\n Saturday = $tds.eq(columnOffset + 5).text().trim() !== '' ? $tds.eq(columnOffset + 5).text().replace(',', '.') : 0,\r\n Sunday = $tds.eq(columnOffset + 6).text().trim() !== '' ? $tds.eq(columnOffset + 6).text().replace(',', '.') : 0;\r\n\r\n if (isNaN(parseFloat(Monday))) {\r\n Monday = $tds.eq(columnOffset + 0).find('input').val().replace(',', '.');\r\n Tuesday = $tds.eq(columnOffset + 1).find('input').val().replace(',', '.');\r\n Wednesday = $tds.eq(columnOffset + 2).find('input').val().replace(',', '.');\r\n Thursday = $tds.eq(columnOffset + 3).find('input').val().replace(',', '.');\r\n Friday = $tds.eq(columnOffset + 4).find('input').val().replace(',', '.');\r\n Saturday = $tds.eq(columnOffset + 5).find('input').val().replace(',', '.');\r\n Sunday = $tds.eq(columnOffset + 6).find('input').val().replace(',', '.');\r\n }\r\n\r\n if (Monday !== undefined && Monday !== \"\")\r\n data.Monday += parseFloat(Monday);\r\n if (Tuesday !== undefined && Tuesday !== \"\")\r\n data.Tuesday += parseFloat(Tuesday);\r\n if (Wednesday !== undefined && Wednesday !== \"\")\r\n data.Wednesday += parseFloat(Wednesday);\r\n if (Thursday !== undefined && Thursday !== \"\")\r\n data.Thursday += parseFloat(Thursday);\r\n if (Friday !== undefined && Friday !== \"\")\r\n data.Friday += parseFloat(Friday);\r\n if (Saturday !== undefined && Saturday !== \"\")\r\n data.Saturday += parseFloat(Saturday);\r\n if (Sunday !== undefined && Sunday !== \"\")\r\n data.Sunday += parseFloat(Sunday);\r\n });\r\n\r\n var tablefooter = $('.hourstable tfoot');\r\n\r\n tablefooter.find('tr').each(function (i, el) {\r\n var $tds = $(this).find('th'),\r\n Monday = $tds.eq(columnOffset + 0).html(parseFloat(data.Monday).toFixed(2).replace('.', ',')),\r\n Tuesday = $tds.eq(columnOffset + 1).html(parseFloat(data.Tuesday).toFixed(2).replace('.', ',')),\r\n Wednesday = $tds.eq(columnOffset + 2).html(parseFloat(data.Wednesday).toFixed(2).replace('.', ',')),\r\n Thursday = $tds.eq(columnOffset + 3).html(parseFloat(data.Thursday).toFixed(2).replace('.', ',')),\r\n Friday = $tds.eq(columnOffset + 4).html(parseFloat(data.Friday).toFixed(2).replace('.', ',')),\r\n Saturday = $tds.eq(columnOffset + 5).html(parseFloat(data.Saturday).toFixed(2).replace('.', ',')),\r\n Sunday = $tds.eq(columnOffset + 6).html(parseFloat(data.Sunday).toFixed(2).replace('.', ','));\r\n\r\n var total = (parseFloat(data.Monday) + parseFloat(data.Tuesday) + parseFloat(data.Wednesday) +\r\n parseFloat(data.Thursday) + parseFloat(data.Friday) + parseFloat(data.Saturday) + parseFloat(data.Sunday));\r\n\r\n if (total % 1 != 0) {\r\n total = total.toFixed(2).replace('.', ',');\r\n }\r\n\r\n $(\"#totalhourscalculated\").html(total);\r\n\r\n });\r\n },\r\n initWeekregistratie: function () {\r\n APPLOYED.employees.bindActionEvents();\r\n\r\n $(\".smallcube\").unbind('click');\r\n $(\".smallcube\").bind('click', function () {\r\n $('.smallcube').removeClass('active');\r\n $(this).addClass('active');\r\n\r\n var recordId = $(this).data('weekregistratieid');\r\n $('#SelectedWeekRegistratieRecordId').val(recordId);\r\n\r\n var employeeid = $(this).data('employeeid');\r\n\r\n if (employeeid == undefined || employeeid == \"undefined\") {\r\n if (APPLOYED.url.getUrlParam(\"employeeid\") != null) {\r\n employeeid = APPLOYED.url.getUrlParam(\"employeeid\");\r\n }\r\n }\r\n\r\n var years = APPLOYED.url.getYears();\r\n var yearparam = '';\r\n if (APPLOYED.url.getUrlParam(\"years\") != null && APPLOYED.url.getUrlParam(\"years\") != \"0\" && APPLOYED.url.getUrlParam(\"years\") != 0) {\r\n yearparam = \"&years=\";\r\n }\r\n else {\r\n if ($('#YearsList').val().split(',').length > 0) {\r\n yearparam = \"&years=\";\r\n years = $('#YearsList').val();\r\n }\r\n }\r\n\r\n var extraParam = '?employeeid=' + employeeid + yearparam + years;\r\n\r\n if ($('body').data('area').toLowerCase() == \"employees\" && (recordId != undefined || recordId != \"undefined\")) {\r\n extraParam = '/' + recordId + '?employeeid=' + employeeid + yearparam + years;\r\n }\r\n\r\n var option = {};\r\n option[\"tofadein\"] = null;\r\n Api.APIcaller.CallAction(\"/Ajax/GetEmployeesUrl\", { controlle: $('body').data('controller'), actio: $('body').data('action'), parameters: extraParam }, \"GET\", APPLOYED.url.setNewEmployeeUrl, null, null, option, Api.APIcaller.CancelOptions.None);\r\n\r\n var canaddprojectonpage = false;\r\n if (APPLOYED.common.isTrue($(this).data('canaddprojectonpage'))) {\r\n canaddprojectonpage = true;\r\n }\r\n var tablename = $(this).data('tablename');\r\n var mustReload = $(this).data('mustreload');\r\n\r\n var options = {};\r\n\r\n options[\"tofadein\"] = \"div[id*='_ContainerId']\";\r\n Api.APIcaller.CallAction(\"/Ajax/LoadProjectHoursEdit\", { recordId: recordId, canAddProjectOnPage: canaddprojectonpage, tablename: tablename, mustReload: mustReload, years: years }, \"GET\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n\r\n });\r\n\r\n var selectedRecordId = $('#SelectedWeekRegistratieRecordId').val();\r\n var obj = $('.smallcube[data-weekregistratieid=' + selectedRecordId + ']');\r\n\r\n $('.smallcube').removeClass('active');\r\n if (obj.data('weekregistratieid') == undefined || obj.data('weekregistratieid') == 'undefined') {\r\n obj = $('#searchlist div.smallcube').first();\r\n selectedRecordId = obj.data('weekregistratieid');\r\n $('#SelectedWeekRegistratieRecordId').val(selectedRecordId);\r\n }\r\n\r\n if (APPLOYED.url.getUrlParam(\"years\") != null && APPLOYED.url.getUrlParam(\"years\") != \"0\" && APPLOYED.url.getUrlParam(\"years\") != 0) {\r\n var splitted = APPLOYED.url.getUrlParam(\"years\").split(',');\r\n for (i = 0; i < splitted.length; i++) {\r\n $(\".chkFilter\").each(function () {\r\n if ($(this).val() == splitted[i]) {\r\n $(this).prop('checked', true);\r\n }\r\n });\r\n }\r\n }\r\n else {\r\n var currentYear = (new Date).getFullYear();\r\n var isChecked = false;\r\n $(\".chkFilter\").each(function () {\r\n if ($(this).val() == currentYear) {\r\n $(this).prop('checked', true);\r\n isChecked = true;\r\n }\r\n });\r\n if (!isChecked) {\r\n if ($('#YearsList').val().split(',').length > 0) {\r\n $(\".chkFilter[value='\" + $('#YearsList').val() + \"']\").prop('checked', true);\r\n }\r\n }\r\n }\r\n\r\n obj.addClass('active');\r\n\r\n APPLOYED.employees.hours.bindEmployeesActionEvents();\r\n\r\n $(\"#btnprojecthoursave\").unbind('click');\r\n $(\"#btnprojecthoursave\").bind('click', function () {\r\n var days = [];\r\n var table = $('.hourstable tbody');\r\n table.find('tr').each(function () {\r\n var item = $(this);\r\n item.find('td input.dayregistrationvalue').each(function () {\r\n var day = {\r\n dagregistratieId: $(this).data('dagregistratieid'),\r\n value: $(this).val()\r\n };\r\n days.push(day);\r\n });\r\n\r\n });\r\n\r\n var years = $(this).data('years');\r\n\r\n var options = {};\r\n\r\n options[\"tofadein\"] = \"#hoursedit\";\r\n Api.APIcaller.CallAction(\"/Employees/Hours/HoursUpdateLine\", {\r\n weekregistratieId: $('#RecordId').val(),\r\n days: days,\r\n employeeid: $(this).data('employeeid'),\r\n remarks: $('#WeekregistratieContainer_Weekregistratie_Opmerkingen').val(),\r\n years: years\r\n }, \"POST\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n });\r\n\r\n $('.dayregistrationvalue').each(function () {\r\n var elem = $(this);\r\n // Save current value of element\r\n elem.data('oldVal', elem.val());\r\n });\r\n\r\n $(\".dayregistrationvalue\").unbind('change keyup');\r\n $(\".dayregistrationvalue\").bind('change keyup', function () {\r\n var val = $(this).val().replace(' ', '').replace(',', '.');\r\n if (isNaN(val)) {\r\n val = val.replace(/[^0-9\\.]/g, '');\r\n if (val.split('.').length > 2)\r\n val = val.replace(/\\.+$/, \"\");\r\n }\r\n $(this).val(val);\r\n\r\n APPLOYED.employees.hours.calculateTableTotal(1);\r\n\r\n var count = 0;\r\n\r\n $('input[name^=waarde]').each(function () {\r\n var elem = $(this);\r\n if (elem.data('oldVal') != elem.val()) {\r\n count++;\r\n }\r\n });\r\n\r\n if (count == 0) {\r\n $('a[data-body]').each(function () {\r\n var elem = $(this);\r\n elem.removeData('body');\r\n elem.attr('data-body', elem.data('bodyorg'));\r\n });\r\n APPLOYED.employees.hours.saveBeforeCreate = false;\r\n }\r\n else {\r\n $('a[data-body]').each(function () {\r\n var elem = $(this);\r\n elem.removeData('body');\r\n elem.attr('data-body', elem.data('bodychanged'));\r\n });\r\n APPLOYED.employees.hours.saveBeforeCreate = true;\r\n }\r\n\r\n });\r\n\r\n $(\".dayregistrationvalue\").unbind('blur');\r\n $(\".dayregistrationvalue\").bind('blur', function () {\r\n\r\n if ($(this).val() == '') {\r\n $(this).val(0);\r\n }\r\n\r\n $('#btnprojecthoursave, .btnrequesttransition, .btnrequesttransitionafkeuren').prop('disabled', false);\r\n });\r\n },\r\n weekregistratie: function () {\r\n APPLOYED.element.dynamicHeight('#searchlist', '.mainscreensized', 65);\r\n\r\n APPLOYED.employees.hours.init();\r\n APPLOYED.employees.hours.initWeekregistratie();\r\n\r\n $(document).off('click', '.addweekprojecthours');\r\n $(document).on('click', '.addweekprojecthours', function () {\r\n let options = {};\r\n options[\"tofadein\"] = null;\r\n options[\"loading\"] = \"div[id='dropdownMenu3']\";\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/NewProjectHourRecord\", null, \"GET\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n });\r\n\r\n },\r\n bindaddprojecthours: function () {\r\n $(document).off('click', '#btnaddweekprojecthours');\r\n $(document).on('click', '#btnaddweekprojecthours', function () {\r\n\r\n var options = {};\r\n\r\n options[\"tofadein\"] = \"\";\r\n options[\"loading\"] = \"#btnaddweekprojecthours\";\r\n\r\n Api.APIcaller.CallAction(\"/Employees/Hours/CreateWeek\", {\r\n yearId: $('#DDLYearId').val(),\r\n weekId: $('#DDLWeekId').val(),\r\n IsCopy: $('#IsCopy').is(':checked'),\r\n existingRecordId: $('#DDLCopyWeekId').val()\r\n }, \"POST\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n });\r\n\r\n $(document).off('click', '#IsCopy');\r\n $(document).on('click', '#IsCopy', function () {\r\n if ($(this).is(':checked')) {\r\n $(\"#ProjectHourCopyWeeks\").show();\r\n }\r\n else {\r\n $(\"#ProjectHourCopyWeeks\").hide();\r\n }\r\n });\r\n },\r\n hoursedit: function () {\r\n APPLOYED.employees.hours.init();\r\n APPLOYED.employees.hours.initWeekregistratie();\r\n\r\n $(document).off('click', '.addprojecthourline');\r\n $(document).on('click', '.addprojecthourline', function () {\r\n\r\n let options = {};\r\n options[\"tofadein\"] = null;\r\n options[\"loading\"] = this;\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/NewProjectHourLineRecord\", { recordId: $('#RecordId').val() }, \"GET\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n });\r\n\r\n },\r\n bindaddprojecthoursline: function () {\r\n $(document).off('click', \"#btnaddproject\");\r\n $(document).on('click', \"#btnaddproject\", function () {\r\n var days = [];\r\n if (APPLOYED.employees.hours.saveBeforeCreate) {\r\n var table = $('.hourstable tbody');\r\n table.find('tr').each(function () {\r\n var item = $(this);\r\n item.find('td input.dayregistrationvalue').each(function () {\r\n var day = {\r\n dagregistratieId: $(this).data('dagregistratieid'),\r\n value: $(this).val()\r\n };\r\n days.push(day);\r\n });\r\n });\r\n }\r\n\r\n var years = $(this).data('years');\r\n\r\n var options = {};\r\n\r\n options[\"tofadein\"] = \"\";\r\n options[\"loading\"] = this;\r\n\r\n Api.APIcaller.CallAction(\"/Employees/Hours/HoursInsertLine\", {\r\n weekregistratieId: $('#RecordId').val(),\r\n projectenId: $('#DDLProjectId').val(),\r\n deelprojectenId: $('#DDLDeelProjectId').val(),\r\n activiteitenId: $('#DDLActiviteitId').val(),\r\n days: days,\r\n years: years\r\n }, \"POST\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n });\r\n\r\n },\r\n initEmployeesOvertime: function () {\r\n APPLOYED.employees.bindActionEvents();\r\n\r\n $(\".smallcube\").unbind('click');\r\n $(\".smallcube\").bind('click', function () {\r\n $('.smallcube').removeClass('active');\r\n $(this).addClass('active');\r\n\r\n var recordId = $(this).data('overtimeid');\r\n $('#RecordId').val(recordId);\r\n\r\n var years = APPLOYED.url.getYears();\r\n\r\n var canaddprojectonpage = false;\r\n if (APPLOYED.common.isTrue($(this).data('canaddprojectonpage'))) {\r\n canaddprojectonpage = true;\r\n }\r\n var tablename = $(this).data('tablename');\r\n var mustReload = $(this).data('mustreload');\r\n\r\n var options = {};\r\n\r\n options[\"tofadein\"] = \"div[id*='_ContainerId']\";\r\n Api.APIcaller.CallAction(\"/Ajax/LoadOvertimeEdit\", { recordId: recordId, canAddProjectOnPage: canaddprojectonpage, tablename: tablename, mustReload: mustReload, years: years }, \"GET\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n\r\n });\r\n\r\n var selectedRecordId = $('#SelectedRecordId').val();\r\n var obj = $('.smallcube[data-overtimeid=' + selectedRecordId + ']');\r\n\r\n $('.smallcube').removeClass('active');\r\n if (obj.data('overtimeid') == undefined || obj.data('overtimeid') == 'undefined') {\r\n obj = $('#searchlist div.smallcube').first();\r\n selectedRecordId = obj.data('overtimeid');\r\n $('#SelectedRecordId').val(selectedRecordId);\r\n }\r\n\r\n if (APPLOYED.url.getUrlParam(\"years\") != null && APPLOYED.url.getUrlParam(\"years\") != \"0\" && APPLOYED.url.getUrlParam(\"years\") != 0) {\r\n var splitted = APPLOYED.url.getUrlParam(\"years\").split(',');\r\n for (i = 0; i < splitted.length; i++) {\r\n $(\".chkFilter\").each(function () {\r\n if ($(this).val() == splitted[i]) {\r\n $(this).prop('checked', true);\r\n }\r\n });\r\n }\r\n }\r\n else {\r\n var currentYear = (new Date).getFullYear();\r\n var isChecked = false;\r\n $(\".chkFilter\").each(function () {\r\n if ($(this).val() == currentYear) {\r\n $(this).prop('checked', true);\r\n isChecked = true;\r\n }\r\n });\r\n if (!isChecked) {\r\n if ($('#YearsList').val().split(',').length > 0) {\r\n $(\".chkFilter[value='\" + $('#YearsList').val() + \"']\").prop('checked', true);\r\n }\r\n }\r\n }\r\n\r\n obj.addClass('active');\r\n\r\n APPLOYED.employees.hours.bindEmployeesActionEvents();\r\n },\r\n overuren: function () {\r\n APPLOYED.element.dynamicHeight('#searchlist', '.mainscreensized', 65);\r\n APPLOYED.employees.hours.init();\r\n APPLOYED.employees.hours.initEmployeesOvertime();\r\n },\r\n overurenedit: function () {\r\n APPLOYED.validator.bindRequiredFields('#overtimeedit', '#btnovertimesave');\r\n APPLOYED.employees.hours.initEmployeesOvertime();\r\n },\r\n bindEmployeesActionEvents: function () {\r\n $(\".btndeleteprojectline\").unbind('click');\r\n $(\".btndeleteprojectline\").bind('click', function () {\r\n var options = {};\r\n\r\n options[\"tofadein\"] = \"body\";\r\n Api.APIcaller.CallAction(\"/Employees/Hours/HoursDeleteLine\", {\r\n weekregistratieId: $(this).data('recordid'),\r\n projectenId: $(this).data('projectid'),\r\n deelprojectenId: $(this).data('deelprojectid'),\r\n activiteitenId: $(this).data('activityid'),\r\n years: $(this).data('years')\r\n }, \"POST\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n\r\n $('#confirmdeletemodal').hide();\r\n });\r\n },\r\n refreshDDLDeelProject: function (recordId, projectId) {\r\n var options = {};\r\n\r\n options[\"tofadein\"] = \"\";\r\n Api.APIcaller.CallAction(\"/Ajax/RefreshDDLDeelprojecten\", { recordId: recordId, projectId: projectId }, \"GET\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n },\r\n refreshDDLActiviteit: function (recordId, projectId, deelProjectId) {\r\n\r\n var options = {};\r\n\r\n options[\"tofadein\"] = \"\";\r\n Api.APIcaller.CallAction(\"/Ajax/RefreshDDLActiviteiten\", { recordId: recordId, projectId: projectId, deelProjectId: deelProjectId }, \"GET\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n },\r\n refreshDDLWeek: function (yearId) {\r\n var options = {};\r\n\r\n options[\"tofadein\"] = \"\";\r\n Api.APIcaller.CallAction(\"/Ajax/RefreshDDLWeek\", { yearId: yearId }, \"GET\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n },\r\n refreshDDLCopyWeek: function (yearCopyId) {\r\n var options = {};\r\n\r\n options[\"tofadein\"] = \"\";\r\n Api.APIcaller.CallAction(\"/Ajax/RefreshDDLCopyWeek\", { yearCopyId: yearCopyId }, \"GET\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n }\r\n}","APPLOYED.employees.personnel = {\r\n weekroosterService = null,\r\n\r\n init: function () {\r\n APPLOYED.tableOverview.init();\r\n },\r\n stamgegevens: function () {\r\n let employeeId = $('#EmployeeId').val();\r\n let tableGuid = $('#RowGuid').val();\r\n let tableSeq = $('#TableSeq').val();\r\n let keyValue = APPLOYED.common.getUserInfoCustomerId();\r\n\r\n APPLOYED.tasks.setParameters(\"werknemers\", tableGuid, employeeId, \"customerid\", keyValue, tableSeq);\r\n\r\n $('#letters-dropdown').attr('disabled', false);\r\n APPLOYED.letter.recordId = employeeId;\r\n },\r\n employeeedit: function () {\r\n },\r\n contactgegevens: function () {\r\n APPLOYED.tableOverview.disableRowSelect = true;\r\n APPLOYED.dataCards.init();\r\n },\r\n werknemerdocumenten: function () {\r\n\r\n APPLOYED.werknemerdocumenten.setParameters(\"werknemers\", $('#WerknemerDocumentenWerknemerId').val(), \"\", \"\");\r\n APPLOYED.werknemerdocumenten.overview.bindactions();\r\n APPLOYED.werknemerdocumenten.overview.init();\r\n },\r\n werknemeredit: function () {\r\n var self = this;\r\n\r\n // vars\r\n var addUser = $('#AddUser').val();\r\n\r\n // init wizard\r\n APPLOYED.wizard.init($('#Step').val());\r\n\r\n if (APPLOYED.common.isTrue(addUser)) { APPLOYED.wizard.navigate.disabled = true; } // disable navigation on adding user\r\n\r\n APPLOYED.employees.personnel.wizardComponents.init();\r\n\r\n // callbacks\r\n APPLOYED.wizard.on('next', next); // on click next callback\r\n\r\n APPLOYED.contract.init('#StartdatumContract', '#Einddatum');\r\n\r\n APPLOYED.picklist.callback.add(\"ContractsoortDefinitieId\", APPLOYED.contract.DisableEnddateCallback);\r\n APPLOYED.picklist.callback.add(\"ContractduurDefinitieId\", APPLOYED.contract.SetEnddateCallback);\r\n\r\n // bind required fields\r\n var submitContainer = \"#werknemers, #contracten, #functies, #salaris, #tijdregistratie\";\r\n APPLOYED.validator.bindRequiredFields('#werknemers', '#werknemersSubmit', false);\r\n APPLOYED.validator.bindRequiredFields('#contracten', '#contractenSubmit', false);\r\n APPLOYED.validator.bindRequiredFields('#functies', '#functiesSubmit', false);\r\n APPLOYED.validator.bindRequiredFields('#salaris', '#salarisSubmit', false);\r\n APPLOYED.validator.bindRequiredFields('#addUser', '#addUserSubmit', false);\r\n APPLOYED.validator.bindRequiredFields('#tijdregistratie', '#tijdregistratieSubmit', false);\r\n APPLOYED.validator.bindRequiredFields(submitContainer, '#WizardSubmit', false);\r\n\r\n APPLOYED.validator.bindRequiredFields('#inhoudingenEdit', '#saveInhouding', false);\r\n APPLOYED.validator.bindRequiredFields('#vergoedingenEdit', '#saveVergoeding', false);\r\n APPLOYED.validator.bindRequiredFields('#verzekeringenEdit', '#saveVerzekering', false);\r\n APPLOYED.validator.bindRequiredFields('#bankgegevensEdit', '#saveBankgegevens', false);\r\n\r\n $(document).on('click', '#getNewEmployeeNumber', function () {\r\n let options = {};\r\n options[\"tofadein\"] = null;\r\n options[\"loading\"] = this;\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/GetNewEmployeeNumber\", null, \"POST\", null, null, complete, options, Api.APIcaller.CancelOptions.None);\r\n\r\n function complete(e) {\r\n let nummer = e.jsoNresults[0];\r\n\r\n $('#Personeelsnummer').val(nummer);\r\n $('#Personeelsnummer').trigger('change');\r\n $('#Personeelsnummer').trigger('focus');\r\n $('#Personeelsnummer').trigger('blur');\r\n }\r\n });\r\n\r\n $(document).on('change', '#DatumInDienst', function () {\r\n let date = $(this).val();\r\n\r\n APPLOYED.employees.personnel.wizardComponents.startDate = $(this).val();\r\n modifyDate('#Startdatum', date);\r\n modifyDate('#StartdatumContract', date);\r\n modifyDate('#StartdatumInhvergoeding', date);\r\n modifyDate('#StartdatumVerzekering', date);\r\n modifyDate('#StartdatumBankgegevens', date);\r\n });\r\n\r\n $(document).on('change', '#SalarisSchaalId', function () {\r\n APPLOYED.picklist.updateFkRecordId('SalaristredeId', $(this).val());\r\n });\r\n\r\n $(document).on('change', '#BedrijfId', function () {\r\n APPLOYED.picklist.updateFkRecordId('AfdelingId', $(this).val());\r\n APPLOYED.picklist.updateFkRecordId('VestigingId', $(this).val());\r\n });\r\n\r\n $(document).on('change', '#MaxSalarisSchaalid', function () {\r\n APPLOYED.picklist.updateFkRecordId('MaxSalarisTredeId', $(this).val());\r\n });\r\n\r\n $(document).on('change', '#Maandag, #Dinsdag, #Woensdag, #Donderdag, #Vrijdag, #Zaterdag, #Zondag, #CorrectieUren', function () {\r\n let total =\r\n Number($('#Maandag').val()) +\r\n Number($('#Dinsdag').val()) +\r\n Number($('#Woensdag').val()) +\r\n Number($('#Donderdag').val()) +\r\n Number($('#Vrijdag').val()) +\r\n Number($('#Zaterdag').val()) +\r\n Number($('#Zondag').val());\r\n\r\n if ($('#CorrectieUren').length) {\r\n total -= Number($('#CorrectieUren').val());\r\n }\r\n\r\n $('#TotaalUren').val(total.toFixed(2));\r\n });\r\n\r\n $(document).on('click', '#wachtwoordAanmaken', function () {\r\n let options = {};\r\n options[\"tofadein\"] = null;\r\n options[\"loading\"] = \"button[id='wachtwoordAanmaken']\";\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/GetNewPassword\", null, \"POST\", null, null, succes, options, Api.APIcaller.CancelOptions.None);\r\n\r\n function succes(e) {\r\n let passwd = e.jsoNresults[0];\r\n\r\n $('#Password').val(passwd);\r\n $('#Password').closest('.form-group').attr('class', 'form-group');\r\n $('#Password').trigger('change');\r\n $('#Password').trigger('focus');\r\n $('#Password').trigger('blur');\r\n\r\n $('#PasswordRepeat').val(passwd);\r\n $('#PasswordRepeat').closest('.form-group').attr('class', 'form-group');\r\n $('#PasswordRepeat').trigger('change');\r\n $('#PasswordRepeat').trigger('focus');\r\n $('#PasswordRepeat').trigger('blur');\r\n }\r\n });\r\n\r\n $(document).on('click', '#toonWachtwoord', function () {\r\n if ($('#Password').prop('type') == 'password') {\r\n $('#Password').prop('type', 'text');\r\n $('#PasswordRepeat').prop('type', 'text');\r\n } else {\r\n $('#Password').prop('type', 'password');\r\n $('#PasswordRepeat').prop('type', 'password');\r\n }\r\n });\r\n\r\n $(document).on('click', '#wachtwoordSterkte', function () {\r\n let options = {};\r\n options[\"tofadein\"] = null;\r\n options[\"loading\"] = \"button[id='wachtwoordSterkte']\";\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/GetPasswordPolicy\", null, \"POST\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n });\r\n\r\n $('#StartdatumContract').on('change', function () {\r\n APPLOYED.contract.setStartDate($('#StartdatumContract'), $('#Einddatum'));\r\n });\r\n\r\n $('form').submit(function () {\r\n APPLOYED.loader.WaitLoaderOn(\"button[id*='WizardSubmit']\");\r\n\r\n $(':disabled').each(function () {\r\n $(this).removeAttr('disabled');\r\n $(this).attr('readonly', true);\r\n });\r\n });\r\n\r\n // #region Weekroosters\r\n self.weekroosterService = new WeekroosterService();\r\n self.weekroosterService.init();\r\n // #endregion\r\n\r\n // #region Tijdregistratie\r\n if (APPLOYED.common.isTrue($(\"#HasTijdregistratie\").val())) {\r\n initTijdregistratie();\r\n }\r\n\r\n function initTijdregistratie() {\r\n CheckTijdregistratie(true);\r\n APPLOYED.validator.checkRequiredFields('#tijdregistratie', '#tijdregistratieSubmit');\r\n APPLOYED.validator.checkRequiredFields(submitContainer, '#WizardSubmit');\r\n\r\n $('#TijdregistratietypeId, #Toeslagfunctie').on('change', function () {\r\n CheckTijdregistratie();\r\n });\r\n\r\n function CheckTijdregistratie() {\r\n var tijdregtype = $('#TijdregistratietypeId').val();\r\n var toeslagfunctie = $('#Toeslagfunctie').val();\r\n\r\n if ((tijdregtype && !toeslagfunctie) || (!tijdregtype && toeslagfunctie)) {\r\n APPLOYED.validator.setRequired('#TijdregistratietypeId, #Toeslagfunctie', true);\r\n }\r\n else if (!tijdregtype && !toeslagfunctie) {\r\n APPLOYED.validator.setRequired('#TijdregistratietypeId, #Toeslagfunctie', false);\r\n }\r\n }\r\n }\r\n\r\n // #endregion\r\n\r\n /**\r\n * Callback function on wizard next\r\n * \r\n * @param {any} curStep\r\n * @param {any} nextStep\r\n */\r\n function next(curStep, nextStep) {\r\n if (curStep == 'FunctieUren') {\r\n self.weekroosterService.saveWeekrooster();\r\n }\r\n\r\n if ($('#isnewrecord').val()) {\r\n validateRecord(curStep);\r\n\r\n return false;\r\n }\r\n\r\n APPLOYED.wizard.validate.validated(curStep);\r\n }\r\n\r\n /**\r\n * Validate record function\r\n * \r\n * @param {any} table\r\n */\r\n function validateRecord(table) {\r\n $('#errorbar').hide();\r\n\r\n var model = {};\r\n\r\n $.each($('.form-horizontal').serializeArray(), function () {\r\n model[this.name] = this.value;\r\n });\r\n\r\n let options = {};\r\n options[\"tofadein\"] = null;\r\n options[\"loading\"] = \"button[id='\" + table + \"Submit']\";\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/ValidateWerknemerWizard\", { model: model, table: table }, \"POST\", null, null, succes, options, Api.APIcaller.CancelOptions.None);\r\n\r\n function succes(e) {\r\n if (e !== undefined && !e.hasErrorText) {\r\n APPLOYED.wizard.validate.validated(table);\r\n APPLOYED.wizard.curStep++;\r\n APPLOYED.wizard.navigate.to(APPLOYED.wizard.curStep);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Set correct enddate\r\n * \r\n * @param {any} data\r\n */\r\n function setEnddate(data) {\r\n if (APPLOYED.common.isTrue($('#Einddatum').prop(\"disabled\"))) return;\r\n\r\n if (data[1] == \"\") {\r\n return;\r\n } else {\r\n let date = $('#StartdatumContract').val().split(\"-\");\r\n let newDate = new Date(date[2], (date[1] - 1), date[1]);\r\n newDate.setMonth(newDate.getMonth() + parseInt(data[1]));\r\n newDate.setDate(date[0] -1);\r\n\r\n contractEinddatum = newDate;\r\n modifyDate('#Einddatum', newDate);\r\n }\r\n }\r\n\r\n /**\r\n * Modify date correctly. Update visible part and DOM.\r\n * \r\n * @param {any} element\r\n * @param {any} newDate\r\n */\r\n function modifyDate(element, newDate) {\r\n if (newDate == null) {\r\n $(element).val();\r\n } else {\r\n $(element).val(newDate);\r\n }\r\n\r\n $(element).attr('value', newDate);\r\n $(element).closest('.input-group').find('.date').datepicker(\"setDate\", newDate);\r\n }\r\n },\r\n wizardComponents = {\r\n startDate = $('#DatumInDienst').val(),\r\n init: function () {\r\n APPLOYED.employees.personnel.wizardComponents.initInhoudingenWizard();\r\n APPLOYED.employees.personnel.wizardComponents.initVergoedingenWizard();\r\n APPLOYED.employees.personnel.wizardComponents.initVerzekeringenWizard();\r\n APPLOYED.employees.personnel.wizardComponents.initBankgegevensWizard();\r\n },\r\n initInhoudingenWizard: function () {\r\n // vars\r\n var editing = null;\r\n var index = 0;\r\n var orgData = JSON.stringify(getModel());\r\n\r\n //bindings\r\n $(document).on('click', '#inhoudingenAdd', function (e) {\r\n e.preventDefault();\r\n\r\n editing = null;\r\n\r\n APPLOYED.form.removeActiveClassOnMdbSelectInput('#inhoudingenEdit :input, #inhoudingenEdit textarea');\r\n \r\n $(this).hide();\r\n $('#inhoudingenTable').hide();\r\n $('#inhoudingenEdit').show();\r\n $('.actionButtons').hide();\r\n\r\n APPLOYED.wizard.navigate.disabled = true;\r\n });\r\n\r\n $(document).on('click', '#cancelInhouding', function (e) {\r\n e.preventDefault();\r\n\r\n $('#inhoudingenAdd').show();\r\n $('#inhoudingenTable').show();\r\n $('#inhoudingenEdit').hide();\r\n $('.actionButtons').show();\r\n\r\n APPLOYED.wizard.navigate.disabled = false;\r\n\r\n resetFields();\r\n });\r\n\r\n $(document).on('click', '#saveInhouding', function () {\r\n var model = getModel();\r\n var row = null;\r\n\r\n if (editing != null) {\r\n row = $('tr[class=\"inhoudingRow\"][data-id=\"' + editing + '\"]');\r\n $(row).find('input[name=\"inhouding[]\"]').remove();\r\n } else {\r\n row = $('#inhoudingRow').clone().appendTo('#inhoudingenBody');\r\n\r\n $(row).show();\r\n $(row).removeAttr('id');\r\n $(row).data('id', index);\r\n $(row).attr('data-id', index);\r\n $(row).attr('class', \"inhoudingRow\");\r\n\r\n index++;\r\n }\r\n\r\n if (row == null) return;\r\n\r\n $(row).append('');\r\n\r\n $('#inhoudingenEdit :input, #inhoudingenEdit textarea').each(function () {\r\n let value = '';\r\n\r\n if ($(this).is('select')) {\r\n value = $(this).find(':selected').html();\r\n } else {\r\n let attr = $(this).attr('data-val-number');\r\n\r\n if (typeof attr !== 'undefined' && attr !== false) {\r\n value = parseFloat($(this).val()).toFixed(2).replace('.', ',');\r\n } else {\r\n value = $(this).val();\r\n }\r\n }\r\n\r\n $(row).find('.' + $(this).attr('name')).html(value)\r\n });\r\n\r\n $('#inhoudingenAdd').show();\r\n $('#inhoudingenTable').show();\r\n $('#inhoudingenEdit').hide();\r\n $('.actionButtons').show();\r\n\r\n APPLOYED.wizard.navigate.disabled = false;\r\n\r\n resetFields();\r\n });\r\n\r\n $(document).on('click', '.inhoudingDelete', function () {\r\n var self = this;\r\n $('#confirmdeletemodal').modal('show');\r\n $('#confirmdeletemodaltitle').html($('#deleteInhoudingTitle').val());\r\n $('#confirmdeletemodalbody').html($('#deleteInhoudingBody').val());\r\n\r\n $(document).one('click', '#confirmdeletemodalaction', function () {\r\n $(self).closest('tr').remove();\r\n $('#confirmdeletemodal').modal('hide');\r\n });\r\n\r\n $('#confirmdeletemodal').on('hidden.bs.modal', function () {\r\n $(document).off('click', '#confirmdeletemodalaction');\r\n })\r\n });\r\n\r\n $(document).on('click', '.inhoudingEdit', function () {\r\n let dataJson = $(this).closest('tr').find('input[name=\"inhouding[]\"]').val();\r\n let data = jQuery.parseJSON(dataJson);\r\n \r\n editing = $(this).closest('tr').data('id');\r\n\r\n $('#inhoudingenEdit :input, #inhoudingenEdit textarea').each(function () {\r\n let name = $(this).attr('name');\r\n let value = data[name];\r\n \r\n if (value != \"\") {\r\n $(this).val(value);\r\n $(this).trigger('change');\r\n }\r\n APPLOYED.form.setActiveClassAndValueOnMdbSelectInput($(this));\r\n \r\n });\r\n\r\n $('#inhoudingenAdd').hide();\r\n $('#inhoudingenTable').hide();\r\n $('#inhoudingenEdit').show();\r\n $('.actionButtons').hide();\r\n\r\n APPLOYED.wizard.navigate.disabled = true;\r\n });\r\n\r\n /**\r\n * Build model\r\n */\r\n function getModel() {\r\n var model = {};\r\n\r\n $.each($('#inhoudingenEdit :input, #inhoudingenEdit textarea').serializeArray(), function () {\r\n model[this.name] = this.value;\r\n });\r\n \r\n return model;\r\n }\r\n\r\n /**\r\n * Reset fields\r\n */\r\n function resetFields() {\r\n let data = jQuery.parseJSON(orgData);\r\n\r\n editing = null;\r\n\r\n $('#inhoudingenEdit :input, #inhoudingenEdit textarea').each(function () {\r\n let name = $(this).attr('name');\r\n let value = data[name];\r\n\r\n $(this).val((name == \"StartdatumInhvergoeding\" ? APPLOYED.employees.personnel.wizardComponents.startDate : value));\r\n $(this).trigger('change');\r\n });\r\n }\r\n },\r\n initVergoedingenWizard: function () {\r\n // vars\r\n var editing = null;\r\n var index = 0;\r\n var orgData = JSON.stringify(getModel());\r\n\r\n //bindings\r\n $(document).on('click', '#vergoedingenAdd', function (e) {\r\n e.preventDefault();\r\n\r\n editing = null;\r\n\r\n APPLOYED.form.removeActiveClassOnMdbSelectInput('#vergoedingenEdit :input, #vergoedingenEdit textarea');\r\n \r\n $('#vergoedingenEdit').find(\"#StartdatumInhvergoeding\").val(APPLOYED.employees.personnel.wizardComponents.startDate);\r\n\r\n $(this).hide();\r\n $('#vergoedingenTable').hide();\r\n $('#vergoedingenEdit').show();\r\n $('.actionButtons').hide();\r\n\r\n APPLOYED.wizard.navigate.disabled = true;\r\n });\r\n\r\n $(document).on('click', '#cancelVergoeding', function (e) {\r\n e.preventDefault();\r\n\r\n $('#vergoedingenAdd').show();\r\n $('#vergoedingenTable').show();\r\n $('#vergoedingenEdit').hide();\r\n $('.actionButtons').show();\r\n\r\n APPLOYED.wizard.navigate.disabled = false;\r\n\r\n resetFields();\r\n });\r\n\r\n $(document).on('click', '#saveVergoeding', function () {\r\n var model = getModel();\r\n var row = null;\r\n\r\n if (editing != null) {\r\n row = $('tr[class=\"vergoedingRow\"][data-id=\"' + editing + '\"]');\r\n $(row).find('input[name=\"vergoeding[]\"]').remove();\r\n } else {\r\n row = $('#vergoedingRow').clone().appendTo('#vergoedingenBody');\r\n\r\n $(row).show();\r\n $(row).removeAttr('id');\r\n $(row).data('id', index);\r\n $(row).attr('data-id', index);\r\n $(row).attr('class', \"vergoedingRow\");\r\n\r\n index++;\r\n }\r\n\r\n if (row == null) return;\r\n\r\n $(row).append('');\r\n\r\n $('#vergoedingenEdit :input, #vergoedingenEdit textarea').each(function () {\r\n let value = '';\r\n\r\n if ($(this).is('select')) {\r\n value = $(this).find(':selected').html();\r\n } else {\r\n let attr = $(this).attr('data-val-number');\r\n\r\n if (typeof attr !== 'undefined' && attr !== false) {\r\n value = parseFloat($(this).val()).toFixed(2).replace('.', ',');\r\n } else {\r\n value = $(this).val();\r\n }\r\n }\r\n\r\n $(row).find('.' + $(this).attr('name')).html(value)\r\n });\r\n\r\n $('#vergoedingenAdd').show();\r\n $('#vergoedingenTable').show();\r\n $('#vergoedingenEdit').hide();\r\n $('.actionButtons').show();\r\n\r\n APPLOYED.wizard.navigate.disabled = false;\r\n\r\n resetFields();\r\n });\r\n\r\n $(document).on('click', '.vergoedingDelete', function () {\r\n var self = this;\r\n $('#confirmdeletemodal').modal('show');\r\n $('#confirmdeletemodaltitle').html($('#deleteVergoedingTitle').val());\r\n $('#confirmdeletemodalbody').html($('#deleteVergoedingBody').val());\r\n\r\n $(document).one('click', '#confirmdeletemodalaction', function () {\r\n $(self).closest('tr').remove();\r\n $('#confirmdeletemodal').modal('hide');\r\n });\r\n\r\n $('#confirmdeletemodal').on('hidden.bs.modal', function () {\r\n $(document).off('click', '#confirmdeletemodalaction');\r\n })\r\n });\r\n\r\n $(document).on('click', '.vergoedingEdit', function () {\r\n let dataJson = $(this).closest('tr').find('input[name=\"vergoeding[]\"]').val();\r\n let data = jQuery.parseJSON(dataJson);\r\n\r\n editing = $(this).closest('tr').data('id');\r\n\r\n $('#vergoedingenEdit :input, #vergoedingenEdit textarea').each(function () {\r\n let name = $(this).attr('name');\r\n let value = data[name];\r\n\r\n if (value != \"\") {\r\n $(this).val(value);\r\n $(this).trigger('change');\r\n }\r\n APPLOYED.form.setActiveClassAndValueOnMdbSelectInput($(this));\r\n });\r\n\r\n $('#vergoedingenAdd').hide();\r\n $('#vergoedingenTable').hide();\r\n $('#vergoedingenEdit').show();\r\n $('.actionButtons').hide();\r\n\r\n APPLOYED.wizard.navigate.disabled = true;\r\n });\r\n\r\n /**\r\n * Build model\r\n */\r\n function getModel() {\r\n var model = {};\r\n\r\n $.each($('#vergoedingenEdit :input, #vergoedingenEdit textarea').serializeArray(), function () {\r\n model[this.name] = this.value;\r\n });\r\n\r\n return model;\r\n }\r\n\r\n /**\r\n * Reset fields\r\n */\r\n function resetFields() {\r\n let data = jQuery.parseJSON(orgData);\r\n\r\n editing = null;\r\n\r\n $('#vergoedingenEdit :input, #vergoedingenEdit textarea').each(function () {\r\n let name = $(this).attr('name');\r\n let value = data[name];\r\n\r\n $(this).val((name == \"StartdatumInhvergoeding\" ? APPLOYED.employees.personnel.wizardComponents.startDate : value));\r\n $(this).trigger('change');\r\n });\r\n }\r\n },\r\n initVerzekeringenWizard: function () {\r\n // vars\r\n var editing = null;\r\n var index = 0;\r\n var orgData = JSON.stringify(getModel());\r\n\r\n //bindings\r\n $(document).on('click', '#verzekeringenAdd', function (e) {\r\n e.preventDefault();\r\n\r\n editing = null;\r\n\r\n APPLOYED.form.removeActiveClassOnMdbSelectInput('#verzekeringenEdit :input, #verzekeringenEdit textarea');\r\n\r\n $(this).hide();\r\n $('#verzekeringenTable').hide();\r\n $('#verzekeringenEdit').show();\r\n $('.actionButtons').hide();\r\n\r\n APPLOYED.wizard.navigate.disabled = true;\r\n });\r\n\r\n $(document).on('click', '#cancelVerzekering', function (e) {\r\n e.preventDefault();\r\n\r\n $('#verzekeringenAdd').show();\r\n $('#verzekeringenTable').show();\r\n $('#verzekeringenEdit').hide();\r\n $('.actionButtons').show();\r\n\r\n APPLOYED.wizard.navigate.disabled = false;\r\n\r\n resetFields();\r\n });\r\n\r\n $(document).on('click', '#saveVerzekering', function () {\r\n var model = getModel();\r\n var row = null;\r\n\r\n if (editing != null) {\r\n row = $('tr[class=\"verzekeringRow\"][data-id=\"' + editing + '\"]');\r\n $(row).find('input[name=\"verzekering[]\"]').remove();\r\n } else {\r\n row = $('#verzekeringRow').clone().appendTo('#verzekeringenBody');\r\n\r\n $(row).show();\r\n $(row).removeAttr('id');\r\n $(row).data('id', index);\r\n $(row).attr('data-id', index);\r\n $(row).attr('class', \"verzekeringRow\");\r\n\r\n index++;\r\n }\r\n\r\n if (row == null) return;\r\n\r\n $(row).append('');\r\n\r\n $('#verzekeringenEdit :input, #verzekeringenEdit textarea').each(function () {\r\n let value = '';\r\n\r\n if ($(this).is('select')) {\r\n value = $(this).find(':selected').html();\r\n } else {\r\n let attr = $(this).attr('data-val-number');\r\n\r\n if (typeof attr !== 'undefined' && attr !== false) {\r\n value = parseFloat($(this).val()).toFixed(2).replace('.', ',');\r\n } else {\r\n value = $(this).val();\r\n }\r\n }\r\n\r\n $(row).find('.' + $(this).attr('name')).html(value)\r\n });\r\n\r\n $('#verzekeringenAdd').show();\r\n $('#verzekeringenTable').show();\r\n $('#verzekeringenEdit').hide();\r\n $('.actionButtons').show();\r\n\r\n APPLOYED.wizard.navigate.disabled = false;\r\n\r\n resetFields();\r\n });\r\n\r\n $(document).on('click', '.verzekeringDelete', function () {\r\n var self = this;\r\n $('#confirmdeletemodal').modal('show');\r\n $('#confirmdeletemodaltitle').html($('#deleteVerzekeringTitle').val());\r\n $('#confirmdeletemodalbody').html($('#deleteVerzekeringBody').val());\r\n\r\n $(document).one('click', '#confirmdeletemodalaction', function () {\r\n $(self).closest('tr').remove();\r\n $('#confirmdeletemodal').modal('hide');\r\n });\r\n\r\n $('#confirmdeletemodal').on('hidden.bs.modal', function () {\r\n $(document).off('click', '#confirmdeletemodalaction');\r\n })\r\n });\r\n\r\n $(document).on('click', '.verzekeringEdit', function () {\r\n let dataJson = $(this).closest('tr').find('input[name=\"verzekering[]\"]').val();\r\n let data = jQuery.parseJSON(dataJson);\r\n\r\n editing = $(this).closest('tr').data('id');\r\n\r\n $('#verzekeringenEdit :input, #verzekeringenEdit textarea').each(function () {\r\n let name = $(this).attr('name');\r\n let value = data[name];\r\n\r\n if (value != \"\") {\r\n $(this).val(value);\r\n $(this).trigger('change');\r\n }\r\n\r\n APPLOYED.form.setActiveClassAndValueOnMdbSelectInput($(this));\r\n });\r\n\r\n $('#verzekeringenAdd').hide();\r\n $('#verzekeringenTable').hide();\r\n $('#verzekeringenEdit').show();\r\n $('.actionButtons').hide();\r\n\r\n APPLOYED.wizard.navigate.disabled = true;\r\n });\r\n\r\n /**\r\n * Build model\r\n */\r\n function getModel() {\r\n var model = {};\r\n\r\n $.each($('#verzekeringenEdit :input, #verzekeringenEdit textarea').serializeArray(), function () {\r\n model[this.name] = this.value;\r\n });\r\n\r\n return model;\r\n }\r\n\r\n /**\r\n * Reset fields\r\n */\r\n function resetFields() {\r\n let data = jQuery.parseJSON(orgData);\r\n\r\n editing = null;\r\n\r\n $('#verzekeringenEdit :input, #verzekeringenEdit textarea').each(function () {\r\n let name = $(this).attr('name');\r\n let value = data[name];\r\n\r\n $(this).val(value);\r\n $(this).val((name == \"StartdatumVerzekering\" ? APPLOYED.employees.personnel.wizardComponents.startDate : value));\r\n $(this).trigger('change');\r\n });\r\n }\r\n },\r\n initBankgegevensWizard: function () {\r\n // vars\r\n var editing = null;\r\n var index = 0;\r\n var orgData = JSON.stringify(getModel());\r\n\r\n //bindings\r\n $(document).on('click', '#bankgegevensAdd', function (e) {\r\n e.preventDefault();\r\n\r\n editing = null;\r\n\r\n APPLOYED.form.removeActiveClassOnMdbSelectInput('#bankgegevensEdit :input, #bankgegevensEdit textarea');\r\n\r\n $(this).hide();\r\n $('#bankgegevensTable').hide();\r\n $('#bankgegevensEdit').show();\r\n $('.actionButtons').hide();\r\n\r\n APPLOYED.wizard.navigate.disabled = true;\r\n });\r\n\r\n $(document).on('click', '#cancelBankgegevens', function (e) {\r\n e.preventDefault();\r\n\r\n $('#bankgegevensAdd').show();\r\n $('#bankgegevensTable').show();\r\n $('#bankgegevensEdit').hide();\r\n $('.actionButtons').show();\r\n\r\n APPLOYED.wizard.navigate.disabled = false;\r\n\r\n resetFields();\r\n });\r\n\r\n $(document).on('click', '#saveBankgegevens', function () {\r\n var model = getModel();\r\n\r\n let row = null;\r\n\r\n if (editing != null) {\r\n row = $('tr[class=\"bankgegevenRow\"][data-id=\"' + editing + '\"]');\r\n $(row).find('input[name=\"bankgegeven[]\"]').remove();\r\n } else {\r\n row = $('#bankgegevenRow').clone().appendTo('#bankgegevensBody');\r\n\r\n $(row).show();\r\n $(row).removeAttr('id');\r\n $(row).data('id', index);\r\n $(row).attr('data-id', index);\r\n $(row).attr('class', \"bankgegevenRow\");\r\n\r\n index++;\r\n }\r\n\r\n if (row == null) return;\r\n\r\n $(row).append('');\r\n\r\n $('#bankgegevensEdit :input, #bankgegevensEdit textarea').each(function () {\r\n if ($(this).is('select')) {\r\n value = $(this).find(':selected').html();\r\n } else {\r\n let attr = $(this).attr('data-val-number');\r\n\r\n if (typeof attr !== 'undefined' && attr !== false) {\r\n value = parseFloat($(this).val()).toFixed(2).replace('.', ',');\r\n } else {\r\n value = $(this).val();\r\n }\r\n }\r\n\r\n $(row).find('.' + $(this).attr('name')).html(value)\r\n });\r\n\r\n $('#bankgegevensAdd').show();\r\n $('#bankgegevensTable').show();\r\n $('#bankgegevensEdit').hide();\r\n $('.actionButtons').show();\r\n\r\n APPLOYED.wizard.navigate.disabled = false;\r\n\r\n resetFields();\r\n });\r\n\r\n $(document).on('click', '.bankgegevensDelete', function () {\r\n var self = this;\r\n $('#confirmdeletemodal').modal('show');\r\n $('#confirmdeletemodaltitle').html($('#deleteBankgegevensTitle').val());\r\n $('#confirmdeletemodalbody').html($('#deleteBankgegevensBody').val());\r\n\r\n $(document).one('click', '#confirmdeletemodalaction', function () {\r\n $(self).closest('tr').remove();\r\n $('#confirmdeletemodal').modal('hide');\r\n });\r\n\r\n $('#confirmdeletemodal').on('hidden.bs.modal', function () {\r\n $(document).off('click', '#confirmdeletemodalaction');\r\n })\r\n });\r\n\r\n $(document).on('click', '.bankgegevenEdit', function () {\r\n let dataJson = $(this).closest('tr').find('input[name=\"bankgegeven[]\"]').val();\r\n let data = jQuery.parseJSON(dataJson);\r\n\r\n editing = $(this).closest('tr').data('id');\r\n\r\n $('#bankgegevensEdit :input, #bankgegevensEdit textarea').each(function () {\r\n let name = $(this).attr('name');\r\n let value = data[name];\r\n\r\n if (value != \"\") {\r\n $(this).val(value);\r\n $(this).trigger('change');\r\n }\r\n\r\n APPLOYED.form.setActiveClassAndValueOnMdbSelectInput($(this));\r\n\r\n if ($(this).is(':checkbox')) {\r\n $(this).prop(\"checked\", value);\r\n }\r\n });\r\n\r\n $('#bankgegevensAdd').hide();\r\n $('#bankgegevensTable').hide();\r\n $('#bankgegevensEdit').show();\r\n $('.actionButtons').hide();\r\n\r\n APPLOYED.wizard.navigate.disabled = true;\r\n });\r\n\r\n /**\r\n * Build model\r\n */\r\n function getModel() {\r\n var model = {};\r\n\r\n $.each($('#bankgegevensEdit :input, #bankgegevensEdit textarea').serializeArray(), function () {\r\n model[this.name] = this.value; \r\n });\r\n\r\n model['Buitenlandserekening'] = $('#Buitenlandserekening').is(\":checked\");\r\n\r\n return model;\r\n }\r\n\r\n /**\r\n * Reset fields\r\n */\r\n function resetFields() {\r\n let data = jQuery.parseJSON(orgData);\r\n\r\n editing = null;\r\n\r\n $('#bankgegevensEdit :input, #bankgegevensEdit textarea').each(function () {\r\n let name = $(this).attr('name');\r\n let value = data[name];\r\n\r\n if ($(this).is(':checkbox')) {\r\n $(this).prop(\"checked\", value);\r\n }\r\n\r\n $(this).val((name == \"StartdatumBankgegevens\" ? APPLOYED.employees.personnel.wizardComponents.startDate : value));\r\n $(this).trigger('change');\r\n });\r\n }\r\n },\r\n },\r\n initContractWizardPopup: function () {\r\n $(document).off('change', '#begindatum');\r\n $(document).on('change', '#begindatum', function () {\r\n validate();\r\n });\r\n\r\n $(document).off('click', '.salcofunctietype');\r\n $(document).on('click', '.salcofunctietype', function () {\r\n toggleRow(this);\r\n });\r\n\r\n $(document).off('click', '#confirmsalcowizardmodalaction');\r\n $(document).on('click', '#confirmsalcowizardmodalaction', function () {\r\n if (!$(this).prop('disabled')) {\r\n APPLOYED.loader.WaitLoaderOn(\"button[id^='confirmsalcowizardmodalaction']\");\r\n\r\n let employeeid = $('#EmployeeId').val();\r\n let startdate = $('#begindatum').val().split(\"-\");\r\n let startdateCorrect = startdate[2] + \"-\" + startdate[1] + \"-\" + startdate[0];\r\n let type = $('.salcofunctietype.selected').data('type');\r\n\r\n if (APPLOYED.common.isTrue(type)) {\r\n window.location.href = '/employees/employment/salfunctiesedit/?employeeid=' + employeeid + '&contract=true&begindatum=' + startdateCorrect;\r\n } else {\r\n window.location.href = '/employees/employment/contractenedit/?employeeid=' + employeeid + '&contract=true&begindatum=' + startdateCorrect;\r\n }\r\n }\r\n });\r\n\r\n function toggleRow(element) {\r\n $('.salcofunctietype').removeClass('selected');\r\n $(element).addClass('selected');\r\n\r\n validate();\r\n }\r\n\r\n function validate() {\r\n let validated = true;\r\n\r\n if ($('#begindatum').val() == '') validated = false;\r\n\r\n let typeSelected = false;\r\n\r\n $('.salcofunctietype').each(function () {\r\n if ($(this).hasClass('selected')) {\r\n typeSelected = true;\r\n\r\n return false;\r\n }\r\n });\r\n\r\n if (typeSelected == false) validated = false;\r\n\r\n $('#confirmsalcowizardmodalaction').attr('disabled', !validated);\r\n }\r\n }\r\n}","APPLOYED.employees.salary = {\r\n init: function () {\r\n\r\n },\r\n eenmaligemutaties: function () {\r\n APPLOYED.tableOverview.init();\r\n },\r\n eenmaligemutatiesedit: function () {\r\n $(document).off('change', '#LooncomponentId');\r\n $(document).on('change', '#LooncomponentId', function () {\r\n let looncomponentId = $('#LooncomponentId').find('option:selected').val();\r\n\r\n let options = {};\r\n options[\"tofadein\"] = null;\r\n options[\"loading\"] = null;\r\n\r\n Api.APIcaller.CallAction(\"/ajax/GetDynamicValues\", { looncomponentId: looncomponentId }, \"POST\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n });\r\n },\r\n loonstroken: function () { \r\n APPLOYED.loonstroken.setParameters(\"loonstroken\", $('#LoonstrokenId').val(), \"\", \"\");\r\n APPLOYED.loonstroken.overview.bindactions();\r\n \r\n $(document).off('click', '.loonstrookAddYear');\r\n $(document).on('click', '.loonstrookAddYear', function () {\r\n let options = {};\r\n options[\"tofadein\"] = null;\r\n options[\"loading\"] = \"div[id='dropdownMenu3']\";\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/LoadLoonstrokenAddYearModal\", null, \"GET\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n });\r\n\r\n $(document).on('change', '#payslipAllCheckbox', function () {\r\n $('.payslipCheckbox > input[type=\"checkbox\"]').prop('checked', $(this).is(':checked'));\r\n\r\n checkDownloadBtn();\r\n });\r\n\r\n $(document).on('change', '.payslipCheckbox > input[type=\"checkbox\"]', function () {\r\n $('#payslipAllCheckbox').prop(\"checked\", ($('.payslipCheckbox > input[type=\"checkbox\"]:not(:checked)').length <= 0));\r\n\r\n checkDownloadBtn();\r\n });\r\n\r\n $(document).off('click', '#downloadPayslips');\r\n $(document).on('click', '#downloadPayslips', function () {\r\n let ids = [];\r\n\r\n $('.payslipCheckbox > input[type=\"checkbox\"]:checked').each(function () {\r\n ids.push($(this).closest('tr.loonstrooktoprow').data('documentid'));\r\n });\r\n\r\n let options = {};\r\n options[\"tofadein\"] = null;\r\n options[\"loading\"] = \"button[id='downloadPayslips']\";\r\n\r\n let body = { documentIds: ids };\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/DownloadDeltaLoonstrookZipped\", body, \"POST\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n });\r\n\r\n function checkDownloadBtn() {\r\n if ($('.payslipCheckbox > input[type=\"checkbox\"]:checked').length >= 2) {\r\n $('#downloadPayslips').removeAttr('disabled');\r\n } else {\r\n $('#downloadPayslips').prop('disabled', 'disabled');\r\n }\r\n }\r\n\r\n $(document).off('click', '.viewDeltaLoonstrook');\r\n $(document).on('click', '.viewDeltaLoonstrook', function () {\r\n let documentid = $(this).closest('tr.loonstrooktoprow').data('documentid');\r\n let documentname = $(this).closest('tr.loonstrooktoprow').data('documentname');\r\n\r\n let options = {};\r\n options[\"tofadein\"] = null;\r\n options[\"loading\"] = \"tr.loonstrooktoprow[data-documentid= '\" + documentid + \"'] .viewDeltaLoonstrook\";\r\n\r\n let body = { documentid, documentname };\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/ViewDeltaLoonstrook\", body, \"GET\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n });\r\n\r\n $(document).off('click', '.viewApployedLoonstrook');\r\n $(document).on('click', '.viewApployedLoonstrook', function () {\r\n let documentid = $(this).closest('tr.loonstrooktoprow').data('documentid');\r\n let documentKey = $(this).closest('tr.loonstrooktoprow').data('documentkey');\r\n let documentname = $(this).closest('tr.loonstrooktoprow').data('documentname');\r\n\r\n let options = {};\r\n options[\"tofadein\"] = null;\r\n options[\"loading\"] = \"tr.loonstrooktoprow[data-documentid= '\" + documentid + \"'] .viewApployedLoonstrook\";\r\n\r\n let body = { documentid, documentKey, documentname };\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/ViewApployedLoonstrook\", body, \"GET\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n });\r\n\r\n if ($(\".chkFilterloonstroken\").length == 1) {\r\n $(\".chkFilterloonstroken\").prop('checked', true);\r\n }\r\n else {\r\n $(\".chkFilterloonstroken\").each(function () {\r\n $(this).prop('checked', false);\r\n });\r\n\r\n if (APPLOYED.url.getUrlParam(\"year\") != null && APPLOYED.url.getUrlParam(\"year\") != \"0\" && APPLOYED.url.getUrlParam(\"year\") != 0) {\r\n $(\".chkFilterloonstroken\").each(function () {\r\n if ($(this).val() == APPLOYED.url.getUrlParam(\"year\")) {\r\n $(this).prop('checked', true);\r\n }\r\n });\r\n }\r\n else {\r\n var currentYear = (new Date).getFullYear();\r\n var exist = false;\r\n $(\".chkFilterloonstroken\").each(function () {\r\n if ($(this).val() == currentYear) {\r\n $(this).prop('checked', true);\r\n exist = true;\r\n }\r\n });\r\n if (!exist) {\r\n $(\".chkFilterloonstroken\").first().prop('checked', true);\r\n }\r\n }\r\n }\r\n },\r\n initDeltaDocumentViewer: function (documentid, documentname) {\r\n var documentid = documentid;\r\n var documentname = documentname;\r\n\r\n $('#downloadPdfBtn').removeAttr('disabled');\r\n\r\n $(document).off('click', '#downloadPdfBtn');\r\n $(document).on('click', '#downloadPdfBtn', function () {\r\n let options = {};\r\n options[\"tofadein\"] = null;\r\n options[\"loading\"] = \"button[id='downloadPdfBtn']\";\r\n\r\n let body = { documentid, documentname };\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/DownloadDeltaLoonstrook\", body, \"GET\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n });\r\n },\r\n initApployedDocumentViewer: function (documentId, documentKey) {\r\n $('#downloadPdfBtn').removeAttr('disabled');\r\n\r\n $(document).off('click', '#downloadPdfBtn');\r\n $(document).on('click', '#downloadPdfBtn', function () {\r\n let options = {};\r\n options[\"tofadein\"] = null;\r\n options[\"loading\"] = \"button[id='downloadPdfBtn']\";\r\n\r\n let body = {\r\n documentId,\r\n documentKey,\r\n deltaDocumentId: null,\r\n deltaDocumentType: null,\r\n deltaFilename: null\r\n };\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/DownloadLoonstrook\", body, \"GET\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n });\r\n },\r\n initLoonstrokenAddNewYear: function(){\r\n $(document).off('click', '#confirmloonstrokenaddnewyearmodalaction');\r\n $(document).on('click', '#confirmloonstrokenaddnewyearmodalaction', function () {\r\n if (!$(this).prop('disabled')) {\r\n let body = {\r\n year: $('#NieuwJaar').val(),\r\n employeeid: $('#LoonWerknemerId').val()\r\n };\r\n \r\n let options = {};\r\n options[\"tofadein\"] = null;\r\n options[\"loading\"] = \"button[id='confirmloonstrokenaddnewyearmodalaction']\";\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/LoonstrokenAddNewYear\", body, \"POST\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n }\r\n });\r\n\r\n $(document).off('change copy paste keyup', '#NieuwJaar');\r\n $(document).on('change copy paste keyup', '#NieuwJaar', function () {\r\n let maxLength = 4;\r\n\r\n if ($(this).val().length > maxLength) {\r\n $(this).val($(this).val().substring(0, maxLength));\r\n }\r\n\r\n if ($(this).val().length == maxLength)\r\n {\r\n enableAddButton();\r\n }\r\n else\r\n {\r\n disableAddButton();\r\n }\r\n });\r\n\r\n function enableAddButton() {\r\n $('#confirmloonstrokenaddnewyearmodalaction').attr('disabled', false);\r\n }\r\n\r\n function disableAddButton() {\r\n $('#confirmloonstrokenaddnewyearmodalaction').attr('disabled', true);\r\n }\r\n },\r\n svloon: function () {\r\n APPLOYED.tableOverview.init();\r\n } \r\n}","APPLOYED.employees.timeregistration = {\r\n init: function () {\r\n APPLOYED.tableOverview.init();\r\n },\r\n\r\n planning: function () {\r\n APPLOYED.time_weekplanning.planning();\r\n },\r\n\r\n planningedit: function () {\r\n APPLOYED.time_weekplanning.planningedit();\r\n },\r\n\r\n dagstatusoverview: function () {\r\n APPLOYED.time_dagstatusoverview.dagstatus();\r\n },\r\n\r\n periodeoverzicht: function () {\r\n APPLOYED.time_periodeoverzicht.periodeoverzicht();\r\n },\r\n\r\n klokregistratie: function () {\r\n APPLOYED.time_klokregistratie.klokregistratie();\r\n },\r\n\r\n klokregistratieedit: function () {\r\n APPLOYED.time_klokregistratie.klokregistratieedit();\r\n },\r\n instellingenedit: function () {\r\n $(document).on('change', '#Klokken', function () {\r\n $('#alleenviaterminal-container').toggle(this.checked);\r\n });\r\n }\r\n}","APPLOYED.tools.tools = {\r\n init: function () {\r\n APPLOYED.tableOverview.init();\r\n },\r\n werknemersuitdienstwizard: function () {\r\n var element = $('#EmployeeOverViewtable');\r\n var columDefs = [];\r\n\r\n APPLOYED.table.dataTable(element, false, true, false, true, columDefs, []);\r\n\r\n $(element).find('tbody').on('click', 'tr', function () {\r\n if ($(this).hasClass('selected')) {\r\n $('#btn-next').prop('disabled', false);\r\n $('#WerknemerId').val($(this).data('id'));\r\n }\r\n else {\r\n $('#btn-next').prop('disabled', true);\r\n $('#WerknemerId').val('');\r\n }\r\n });\r\n\r\n $(document).on('click', '#btn-next', function () {\r\n let options = {};\r\n options[\"tofadein\"] = null;\r\n options[\"loading\"] = this;\r\n\r\n $('#Step').val('2');\r\n\r\n Api.APIcaller.CallAction(\"/tools/tools/WerknemersUitDienstWizardNext\", { step: $('#Step').val(), employeeId: $('#WerknemerId').val() }, \"GET\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n });\r\n\r\n $(document).on('click', '.btn-save', function () {\r\n let options = {};\r\n options[\"tofadein\"] = null;\r\n options[\"loading\"] = this;\r\n\r\n Api.APIcaller.CallAction(\"/tools/tools/WerknemersUitDienstWizardExecute\", { employeeId: $('#WerknemerId').val(), datumUitDienst: $('#DatumUitDienst').val(), redenUitDienstId: $('#RedenUitDienstId').val() }, \"POST\", checkRemarks, null, null, options, Api.APIcaller.CancelOptions.None);\r\n });\r\n \r\n $(document).on('click', '#copyResult', function () {\r\n $('#remarks').select();\r\n document.execCommand(\"copy\");\r\n });\r\n\r\n $(document).on('click', '#btn-previous', function () {\r\n $('#finalstep').hide();\r\n $('#overview').show();\r\n $('#btn-next').show();\r\n $('#btn-previous').hide();\r\n $('.btn-save').hide();\r\n });\r\n\r\n function checkRemarks(response) {\r\n APPLOYED.loader.WaitLoaderOff(\"button[class*='btn-save']\");\r\n APPLOYED.loader.ClearLoaderList();\r\n\r\n var updatedRows = response.jsoNresults[0];\r\n \r\n if (updatedRows != undefined && updatedRows != 'undefined') {\r\n for (let i = 0; i < updatedRows.remarks.length; i++) {\r\n var newLine = (i > 0 ? \"\\n\" : \"\");\r\n $('#remarks').val($('#remarks').val() + newLine + updatedRows.remarks[i]);\r\n }\r\n\r\n if (updatedRows.remarks.length > 0) {\r\n $('#remarksContainer').show();\r\n $('.btn-save').prop('disabled', true);\r\n }\r\n else {\r\n $('#remarksContainer').hide();\r\n $('.btn-save').prop('disabled', false);\r\n }\r\n }\r\n Api.APIcaller.processNotify(response);\r\n \r\n if (response.redirectUrl != null && response.redirectUrl != \"\") {\r\n window.location = response.redirectUrl;\r\n }\r\n \r\n }\r\n\r\n },\r\n werknemersuitdienstwizardNext: function () {\r\n $('#overview').hide();\r\n $('#finalstep').show();\r\n $('#btn-next').hide();\r\n $('#btn-previous').show();\r\n $('.btn-save').show();\r\n\r\n },\r\n verlofjaaraanmaken: function () {\r\n APPLOYED.tools.initTable($('#VerlofRegelingsOverViewtable'));\r\n\r\n $(document).off('change', '#Year');\r\n $(document).on('change', '#Year', function () {\r\n let yearValue = $(this).val();\r\n\r\n window.location.href = \"verlofjaaraanmaken?jaar=\" + yearValue;\r\n });\r\n\r\n $('#select-all').on('change', function () {\r\n var checked = $(this).prop('checked');\r\n\r\n $('#VerlofRegelingsOverViewtable').DataTable().cells(null, 0).every(function () {\r\n var cell = this.node();\r\n $(cell).find('input[type=\"checkbox\"][name^=\"customCheck\"]').prop('checked', checked);\r\n });\r\n\r\n if (checked) {\r\n $('#save').removeAttr('disabled');\r\n }\r\n else {\r\n $('#save').attr('disabled', 'disabled');\r\n }\r\n });\r\n\r\n $(document).off('click', 'input[type=\"checkbox\"][name^=\"customCheck\"]');\r\n $(document).on('click', 'input[type=\"checkbox\"][name^=\"customCheck\"]', function () {\r\n var isOk = false;\r\n\r\n $('input[type=\"checkbox\"][name^=\"customCheck\"]').each(function () {\r\n var item = $(this);\r\n\r\n if (item.is(':checked')) {\r\n isOk = true;\r\n }\r\n });\r\n\r\n if (isOk) {\r\n $('#save').removeAttr('disabled');\r\n }\r\n else {\r\n $('#save').attr('disabled', 'disabled');\r\n }\r\n });\r\n\r\n $(document).off('click', '.btnsaveverlofjaaraanmaken');\r\n $(document).on('click', '.btnsaveverlofjaaraanmaken', function () {\r\n $('.btnsaveverlofjaaraanmaken').attr('disabled', true);\r\n\r\n var selectedItems = [];\r\n var table = $('#VerlofRegelingsOverViewtable').find('tbody');\r\n\r\n table.find('input[type=\"checkbox\"][name^=\"customCheck\"]').each(function () {\r\n var item = $(this);\r\n\r\n if (item.is(':checked')) {\r\n selectedItems.push($(this).data('verlofregelingid'));\r\n }\r\n });\r\n\r\n var options = {};\r\n\r\n options[\"tofadein\"] = \"\";\r\n options[\"loading\"] = \"#save\";\r\n\r\n var body = {\r\n YearId: $('#Year').val(),\r\n VerlofRegelingIds: selectedItems\r\n };\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/VerlofJaarAanmakenSave\", body, \"POST\", null, null, finished, options, Api.APIcaller.CancelOptions.None);\r\n\r\n function finished() {\r\n $('.btnsaveverlofjaaraanmaken').attr('disabled', false);\r\n }\r\n });\r\n\r\n $(document).off('click', 'button[id=\"close\"]');\r\n $(document).on('click', 'button[id=\"close\"]', function () {\r\n $(\"#close\").html(APPLOYED.loader.WaitLoaderIcon);\r\n window.location.href = \"/\";\r\n });\r\n\r\n $(document).off('click', 'button[id=\"back\"]');\r\n $(document).on('click', 'button[id=\"back\"]', function () {\r\n $('#VerlofjaaraanmakenResult_ContainerId').hide();\r\n $('#VerlofjaaraanmakenMain_ContainerId').show();\r\n });\r\n },\r\n verlofjaaraanmakenresult: function () {\r\n $('#VerlofjaaraanmakenMain_ContainerId').hide();\r\n $('#VerlofjaaraanmakenResult_ContainerId').show();\r\n },\r\n verlofjaaropensamenvattinginit: function () {\r\n if ($('#VerlofRegelingsOverViewtable').length > 0) {\r\n $('#validate').removeAttr('disabled');\r\n\r\n APPLOYED.tools.initTable($('#VerlofRegelingsOverViewtable'));\r\n }\r\n else {\r\n $('#validate').attr('disabled', 'disabled');\r\n }\r\n $('.btnsaveverlofjaarafsluiten').attr('disabled', 'disabled');\r\n $('#succesbar').hide();\r\n },\r\n verlofjaarafsluiten: function () {\r\n APPLOYED.tools.tools.verlofjaaropensamenvattinginit();\r\n\r\n $('#Year').unbind('change');\r\n $('#Year').bind('change', function () {\r\n\r\n var options = {};\r\n\r\n options[\"tofadein\"] = \"\";\r\n options[\"loading\"] = \"\";\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/VerlofJaarGetOpenSamenvatting\", { Year: $('#Year').val() }, \"GET\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n });\r\n\r\n $(document).off('click', '.btnsaveverlofjaarafsluiten');\r\n $(document).on('click', '.btnsaveverlofjaarafsluiten', function () {\r\n $('#succesbar').hide();\r\n var options = {};\r\n\r\n options[\"tofadein\"] = \"\";\r\n options[\"loading\"] = \".btnsaveverlofjaarafsluiten\";\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/VerlofJaarAfsluitenSave\", { YearId: $('#Year').val() }, \"POST\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n });\r\n\r\n $(document).off('click', '.btnvalidateverlofjaarafsluiten');\r\n $(document).on('click', '.btnvalidateverlofjaarafsluiten', function () {\r\n\r\n var options = {};\r\n\r\n options[\"tofadein\"] = \"\";\r\n options[\"loading\"] = \"#validate\";\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/VerlofJaarAfsluitenValidate\", { YearId: $('#Year').val() }, \"POST\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n });\r\n\r\n $(document).off('click', 'button[id=\"close\"]');\r\n $(document).on('click', 'button[id=\"close\"]', function () {\r\n $(\"#close\").html(APPLOYED.loader.WaitLoaderIcon);\r\n window.location.href = \"/\";\r\n });\r\n\r\n $(document).off('click', 'button[id=\"back\"]');\r\n $(document).on('click', 'button[id=\"back\"]', function () {\r\n $('#VerlofjaarafsluitenResult_ContainerId').hide();\r\n $('#VerlofjaarafsluitenMain_ContainerId').show();\r\n });\r\n },\r\n verlofjaarafsluitenresult: function () {\r\n $('#VerlofjaarafsluitenMain_ContainerId').hide();\r\n $('#VerlofjaarafsluitenResult_ContainerId').show();\r\n },\r\n verlofjaarafsluiteenableafsluitenbtn: function () {\r\n $('.btnsaveverlofjaarafsluiten').removeAttr('disabled');\r\n },\r\n smoelenboek: function () {\r\n $(document).on('click', '.imageOpenCloseup', function () {\r\n let employeeid = $(this).data('employeeid');\r\n\r\n let options = {};\r\n options[\"tofadein\"] = null;\r\n options[\"loading\"] = null;\r\n\r\n body = {\r\n employeeid: employeeid\r\n };\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/GetEmployeeImage\", body, \"GET\", showImage, null, null, options, Api.APIcaller.CancelOptions.None);\r\n\r\n function showImage(e) {\r\n\r\n if (e.jsoNresults[0].length > 0) {\r\n $('#popupImage').attr('src', 'data:image/png;base64, ' + e.jsoNresults[0]);\r\n\r\n $('#imageCloseup').modal('show');\r\n }\r\n }\r\n });\r\n },\r\n bibliotheek: function () {\r\n $(document).on('change', '#SelectedRecordId', function () {\r\n $(location).attr('href', \"?recordid=\" + $(this).val());\r\n });\r\n\r\n APPLOYED.documents.params.tableName = $(\"#TableName\").val();\r\n APPLOYED.documents.params.recordId = $(\"#SelectedRecordId\").val();\r\n\r\n APPLOYED.documents.modify.open = function () {\r\n $(APPLOYED.documents.elements.contentId).hide();\r\n $(APPLOYED.documents.elements.modifyId).show();\r\n }\r\n\r\n APPLOYED.documents.modify.close = function () {\r\n $(APPLOYED.documents.elements.contentId).show();\r\n $(APPLOYED.documents.elements.modifyId).hide();\r\n }\r\n\r\n APPLOYED.documents.overview.load = function () {\r\n location.reload();\r\n }\r\n\r\n $(document).off('click', '.documenttoprow');\r\n $(document).on('click', '.documenttoprow', function () {\r\n selectRow(this);\r\n });\r\n\r\n $(document).off('click', '.downloadDocument');\r\n $(document).on('click', '.downloadDocument', function (e) {\r\n e.preventDefault();\r\n\r\n let documentid = $(this).parents('tr').data('documentid');\r\n let documentkey = $(this).parents('tr').data('documentkey');\r\n\r\n APPLOYED.documents.overview.getdocument(documentid, documentkey);\r\n });\r\n\r\n $(document).off('click', '#documentAdd');\r\n $(document).on('click', '#documentAdd', function () {\r\n let loading = \"div[id='documentAdd']\";\r\n\r\n APPLOYED.documents.modify.load(loading);\r\n });\r\n\r\n $(document).off('click', '.documenteditlink');\r\n $(document).on('click', '.documenteditlink', function (e) {\r\n e.preventDefault();\r\n\r\n let documentid = $(this).parents('tr').data('documentid');\r\n let documentkey = $(this).parents('tr').data('documentkey');\r\n\r\n let loading = \"tr.documenttoprow[data-documentid='\" + documentid + \"'] .documenteditlink\";\r\n APPLOYED.documents.modify.load(loading, documentid, documentkey);\r\n });\r\n\r\n $(document).off('click', '.documentdelete');\r\n $(document).on('click', '.documentdelete', function () {\r\n let title = $(this).data('title');\r\n let body = $(this).data('body');\r\n let documentid = $(this).data('documentid');\r\n let documentkey = $(this).data('documentkey');\r\n\r\n $('#confirmdeletemodaltitle').html(title);\r\n $('#confirmdeletemodalbody').html(body);\r\n\r\n $('#confirmdeletemodalaction').one('click', function () {\r\n $('#confirmdeletemodal').modal('hide');\r\n APPLOYED.documents.overview.delete(documentid, documentkey);\r\n });\r\n\r\n $('#confirmdeletemodal').modal('show');\r\n $('#confirmdeletemodal').one('hidden.bs.modal', function () {\r\n unbindDeleteModal();\r\n });\r\n });\r\n\r\n function unbindDeleteModal() {\r\n $('#confirmdeletemodalaction').off('click');\r\n $('#confirmdeletemodalaction').unbind('click');\r\n }\r\n\r\n function selectRow(e) {\r\n $('.documenttoprow').removeClass('selecteddocumentRow');\r\n $(e).addClass('selecteddocumentRow');\r\n\r\n APPLOYED.documents.params.documentId = $(e).data('documentid');\r\n APPLOYED.documents.params.documentKey = $(e).data('documentkey');\r\n }\r\n },\r\n salarisophogen: function () {\r\n var self = APPLOYED.tools.tools;\r\n\r\n $('#Methode').bind('change', loadMethodOptions);\r\n $(\"#berekenen\").bind('click', berekenOphoging);\r\n\r\n self.bindBerekenInputs('Ingangsdatum,Methode');\r\n\r\n function loadMethodOptions() {\r\n self.enableBerekenenOff();\r\n\r\n var options = {};\r\n options[\"tofadein\"] = \"div[id*='SalarisOphogenOptions']\";\r\n options[\"loading\"] = \"\";\r\n\r\n var methode = $('#Methode').val();\r\n Api.APIcaller.CallAction(\"/Tools/Tools/SalarisOphogenOptions\", { methode: methode }, \"GET\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n }\r\n\r\n function berekenOphoging() {\r\n self.clearNotify();\r\n\r\n var options = {};\r\n options[\"tofadein\"] = \"div[id*='SalarisOphogen_Results_Container']\";\r\n options[\"loading\"] = \"#berekenen\";\r\n\r\n var params = {\r\n ingangsdatum: $('#Ingangsdatum').val(),\r\n methode: $('#Methode').val(),\r\n verhoging: $('#Verhoging').val(),\r\n caoId: $('#CaoId').val(),\r\n minMaxVerhogingMethode: $('#MinMaxVerhogingMethode').val(),\r\n minMaxVerhoging: $('#MinMaxVerhoging').val(),\r\n huidigeTermijn: $('#HuidigeTermijn').val(),\r\n volgendeTermijn: $('#VolgendeTermijn').val()\r\n }\r\n Api.APIcaller.CallAction(\"/Tools/Tools/SalarisOphogenBerekenen\", params, \"POST\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n }\r\n },\r\n salarisophogenoptions: function () {\r\n var self = APPLOYED.tools.tools;\r\n\r\n $('#CaoId').bind('change', loadTermOptions);\r\n\r\n $('#MinMaxVerhogingMethode').bind('change', clearMinMaxVerhoging)\r\n self.bindBerekenInputs('Verhoging,CaoId,MinMaxVerhogingMethode,MinMaxVerhoging');\r\n\r\n self.enableBerekenenOn();\r\n\r\n function loadTermOptions() {\r\n var canSelectTerms = $('#CanSelectTerms').val();\r\n if (APPLOYED.common.isTrue(canSelectTerms.toLowerCase())) {\r\n self.enableBerekenenOff();\r\n\r\n var options = {};\r\n options[\"tofadein\"] = \"div[id*='SalarisOphogenTermOptions']\";\r\n options[\"loading\"] = \"\";\r\n\r\n var methode = $('#Methode').val();\r\n var caoId = $('#CaoId').val();\r\n Api.APIcaller.CallAction(\"/Tools/Tools/SalarisOphogenTermOptions\", { methode, caoId }, \"GET\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n }\r\n }\r\n\r\n function clearMinMaxVerhoging() {\r\n $('#MinMaxVerhoging').val('');\r\n $('#MinMaxVerhoging').trigger('change');\r\n }\r\n },\r\n salarisophogentermoptions: function () {\r\n var self = APPLOYED.tools.tools;\r\n self.bindBerekenInputs('HuidigeTermijn,VolgendeTermijn');\r\n self.enableBerekenenOn();\r\n },\r\n salarisophogenresults: function () {\r\n var self = APPLOYED.tools.tools;\r\n\r\n $('#Check_all').bind('change', () => APPLOYED.tableOverview.checkboxes.checkAll('#uitvoeren'));\r\n $('[id*=\"Check_row_\"]').bind('change', () => APPLOYED.tableOverview.checkboxes.checkRow('#uitvoeren'));\r\n\r\n $('[id*=\"NieuweSchaalNummer_\"]').bind('change', updateTreden);\r\n $('[id*=\"NieuweTredeNummer_\"]').bind('change', updateSalary);\r\n $('#uitvoeren').bind('click', uitvoerenOphoging);\r\n $('#copyResult').bind('click', copyMeldingen);\r\n\r\n function copyMeldingen() {\r\n var results = \"\";\r\n var rows = $('#SalarisOphogenErrorTable').find('table').find('tbody').find('tr');\r\n\r\n rows.each(function () {\r\n var rowResult = \"\";\r\n $(this).find('td').each(function () {\r\n rowResult = rowResult + $(this).text() + '\\t';\r\n });\r\n results = results + rowResult.substring(0, rowResult.length - 1) + \"\\n\";\r\n });\r\n\r\n APPLOYED.clipboard.copy(results);\r\n }\r\n\r\n function updateTreden() {\r\n var self = this;\r\n\r\n var rowId = $(self).attr('id').split('_')[1];\r\n var target = $('[id=\"NieuweTredeNummer_' + rowId + '\"]');\r\n if (target.length > 0) {\r\n var schaal = $(self).val();\r\n var options = getSelectOptions(schaal);\r\n\r\n APPLOYED.form.replaceOptions(target, options);\r\n target.trigger('change');\r\n }\r\n\r\n function getSelectOptions(schaal) {\r\n var options = []\r\n\r\n var tredenPerSchaal = $('[name^=\"TredenPerSchaal\"]');\r\n var tredenPerSchaal = tredenPerSchaal.filter(function (index, el) { return $(el).val().startsWith(schaal + \"_\"); });\r\n\r\n if (tredenPerSchaal.length == 0) {\r\n return options;\r\n }\r\n\r\n $.each(tredenPerSchaal, function (index, el) {\r\n var textName = $(el).attr('name').split('.')[0] + \".Value\";\r\n var textValue = $('[name=\"' + textName + '\"]').val();\r\n\r\n var values = $(el).val().split('_');\r\n\r\n if (values.length >= 4) {\r\n var attr = {}\r\n attr.value = values[0] + \"_\" + values[1]; // schaal id + trede id\r\n attr.title = values[3]; // salarisbedrag (formatted)\r\n attr.text = textValue; // tredenummer\r\n\r\n options.push(attr);\r\n }\r\n });\r\n\r\n return options;\r\n }\r\n }\r\n\r\n function updateSalary() {\r\n var self = this;\r\n\r\n var rowId = $(self).attr('id').split('_')[1];\r\n var target = $('[id*=\"NieuwVoltijdsSalaris_' + rowId + '\"]');\r\n if (target.length > 0) {\r\n var selected = $(self).find(\":selected\");\r\n var bedrag = selected.attr('title'); // salarisbedrag\r\n target.html(bedrag);\r\n }\r\n }\r\n\r\n function uitvoerenOphoging() {\r\n self.clearNotify();\r\n\r\n let allCheckBoxes = $('[id*=\"Check_row_\"]');\r\n let allChecked = allCheckBoxes.filter(':checked');\r\n if (allChecked.length == 0) {\r\n return;\r\n }\r\n\r\n self.enableBerekenenOff();\r\n\r\n var options = {};\r\n options[\"tofadein\"] = \"div[id*='SalarisOphogen_Results_Container']\";\r\n options[\"loading\"] = \"#uitvoeren\";\r\n\r\n var ingangsdatum = $('#Ingangsdatum').val();\r\n var methode = $('#Methode').val();\r\n var ophogingen = getOphogingen(allChecked);\r\n Api.APIcaller.CallAction(\"/Tools/Tools/SalarisOphogenUitvoeren\", { ingangsdatum, methode, ophogingen }, \"POST\", salarisOphogenUpdates, null, null, options, Api.APIcaller.CancelOptions.None);\r\n\r\n function getOphogingen(allChecked) {\r\n var ophogingen = [];\r\n for (let i = 0; i < allChecked.length; i++) {\r\n let id = $(allChecked[i]).attr('id').split('_')[2];\r\n\r\n let werknemer = $('[id^=\"WerknemerId_' + id + '_\"]');\r\n let werknemerId = werknemer.attr('id').split('_')[2];\r\n let werknemerNaam = werknemer.text();\r\n\r\n var ophoging = {};\r\n ophoging.salfunctieId = id;\r\n ophoging.werknemerId = werknemerId;\r\n ophoging.werknemerNaam = werknemerNaam;\r\n ophoging.nieuweSchaalId = $('select[id=\"NieuweSchaalNummer_' + id + '\"]').val();\r\n\r\n var tredeId = $('select[id=\"NieuweTredeNummer_' + id + '\"]').val();\r\n if (typeof (tredeId) != 'undefined') {\r\n ophoging.nieuweTredeId = tredeId.split('_')[1];\r\n if (typeof (ophoging.nieuweSchaalId) == 'undefined') {\r\n ophoging.nieuweSchaalId = tredeId.split('_')[0];\r\n }\r\n }\r\n\r\n ophoging.nieuwSalaris = $('input[id=\"NieuwVoltijdsSalaris_' + id + '\"]').val();\r\n if (typeof (ophoging.nieuwSalaris) == 'undefined') {\r\n var trede = $('[name^=\"TredenPerSchaal\"]').filter(function (index, el) { return $(el).val().startsWith(tredeId + \"_\"); });\r\n var salaris = trede.val().split('_')[2];\r\n ophoging.nieuwSalaris = salaris;\r\n }\r\n\r\n ophogingen.push(ophoging);\r\n }\r\n\r\n return ophogingen;\r\n }\r\n\r\n function salarisOphogenUpdates(response) {\r\n var updatedRows = response.jsoNresults[0];\r\n for (let i = 0; i < updatedRows.length; i++) {\r\n var salfunctieId = updatedRows[i];\r\n $('#PayRaise_row_' + salfunctieId).remove();\r\n }\r\n\r\n var errors = response.jsoNresults[1];\r\n if (errors.length > 0) {\r\n var table = $('#SalarisOphogenErrorTable');\r\n for (let i = 0; i < errors.length; i++) {\r\n table.find('tbody').last().append('' + errors[i].werknemerNaam + '' + errors[i].errorMelding + '');\r\n }\r\n $('#SalarisOphogenErrorTable').show();\r\n $('#ErrorNotification').show();\r\n }\r\n\r\n Api.APIcaller.processNotify(response);\r\n\r\n self.enableBerekenenOn();\r\n self.checkEnableBerekenen();\r\n\r\n APPLOYED.tableOverview.checkboxes.checkIndeterminate();\r\n APPLOYED.tableOverview.checkboxes.checkEnableUitvoeren();\r\n }\r\n }\r\n },\r\n bindBerekenInputs: function (ids) {\r\n var self = APPLOYED.tools.tools;\r\n\r\n var idList = ids.split(',');\r\n for (let i = 0; i < idList.length; i++) {\r\n var id = idList[i];\r\n\r\n $(\"#\" + id).bind('change', function () {\r\n $(\"#SalarisOphogen_Results\").remove();\r\n self.checkEnableBerekenen();\r\n });\r\n }\r\n },\r\n checkEnableBerekenen: function () {\r\n var self = APPLOYED.tools.tools;\r\n\r\n var enabled = true;\r\n\r\n if (!self.canEnableBerekenen) {\r\n enabled = false;\r\n }\r\n\r\n var ids = $(\"#RequiredInputs\").val().split(',');\r\n for (let i = 0; i < ids.length && enabled; i++) {\r\n var id = ids[i];\r\n var value = $(\"#\" + id).val();\r\n if (value == undefined || value == null || value == \"\") {\r\n enabled = false;\r\n }\r\n }\r\n\r\n $(\"#berekenen\").prop('disabled', !enabled);\r\n },\r\n enableBerekenenOff: function () {\r\n $(\"#berekenen\").prop('disabled', true);\r\n APPLOYED.tools.tools.canEnableBerekenen = false;\r\n },\r\n enableBerekenenOn: function () {\r\n APPLOYED.tools.tools.canEnableBerekenen = true;\r\n },\r\n clearNotify: function () {\r\n Api.Main.clearNotify();\r\n },\r\n schaaltredeophogen: function () {\r\n $('#Jaar').bind('change', jaarChange);\r\n $('#CaoId').bind('change', caoIdChange);\r\n $('#Tijdvak').bind('change', tijdvakChange);\r\n\r\n $('#VerhogingMethode').bind('change', verhogingMethodeChange);\r\n $('#Verhoging').bind('change', optionsChange);\r\n $('#Afronding').bind('change', optionsChange);\r\n $('#Decimalen').bind('change', optionsChange);\r\n\r\n $('#AanmaakJaar').bind('change', aanmaakChange);\r\n $('#AanmaakTijdvak').bind('change', aanmaakChange);\r\n\r\n checkEnableBerekenen();\r\n bindResultButtons();\r\n\r\n function bindResultButtons() {\r\n $('#berekenen').bind('click', berekenOphoging);\r\n $('#opslaan').bind('click', opslaanOphoging);\r\n }\r\n\r\n function jaarChange() {\r\n var jaar = $('#Jaar').val();\r\n var caos = getCaoOptions(jaar);\r\n\r\n APPLOYED.form.replaceOptions('#CaoId', caos);\r\n $('#CaoId').trigger('change');\r\n }\r\n\r\n function caoIdChange() {\r\n var jaar = $('#Jaar').val();\r\n var caoId = $('#CaoId').val();\r\n\r\n tijdvakken = getTijdvakkenOptions(jaar, caoId);\r\n\r\n APPLOYED.form.replaceOptions('#Tijdvak', tijdvakken);\r\n $('#Tijdvak').trigger('change');\r\n }\r\n\r\n function tijdvakChange() {\r\n getSchalenEnTreden();\r\n }\r\n\r\n function verhogingMethodeChange() {\r\n $('#Verhoging').val('');\r\n $('#Verhoging').trigger('change');\r\n }\r\n\r\n function optionsChange() {\r\n resetBerekend();\r\n checkEnableBerekenen();\r\n checkEnableOpslaan();\r\n }\r\n\r\n function aanmaakChange() {\r\n checkEnableOpslaan();\r\n }\r\n\r\n function resetBerekend() {\r\n $('#IsOphogingBerekend').val('False');\r\n }\r\n\r\n function checkEnableBerekenen() {\r\n var caoId = $('#CaoId').val();\r\n var jaar = $('#Jaar').val();\r\n var tijdvak = $('#Tijdvak').val();\r\n\r\n var verhoging = $('#Verhoging').val();\r\n var afronding = $('#Afronding').val();\r\n var decimalen = $('#Decimalen').val();\r\n\r\n var disabled = (!caoId || !jaar || !tijdvak || !verhoging || !afronding || !decimalen);\r\n $(\"#berekenen\").prop('disabled', disabled);\r\n }\r\n\r\n function checkEnableOpslaan() {\r\n var isBerekend = APPLOYED.common.isTrue($('#IsOphogingBerekend').val());\r\n\r\n var jaar = $('#AanmaakJaar').val();\r\n var tijdvak = $('#AanmaakTijdvak').val();\r\n\r\n var disabled = !isBerekend || !jaar || !tijdvak;\r\n $(\"#opslaan\").prop('disabled', disabled);\r\n }\r\n\r\n function berekenOphoging() {\r\n Api.Main.clearNotify();\r\n\r\n var options = {};\r\n options[\"tofadein\"] = \"#SchaaltredeOphogen_Results\";\r\n options[\"loading\"] = \"#berekenen\";\r\n\r\n var parms = getOphogenParms(false);\r\n\r\n Api.APIcaller.CallAction(\"/Tools/Tools/SchaaltredeOphogenBerekenen\", parms, \"GET\", null, null, completed, options, Api.APIcaller.CancelOptions.None);\r\n\r\n function completed() {\r\n bindResultButtons();\r\n checkEnableBerekenen();\r\n checkEnableOpslaan();\r\n }\r\n }\r\n\r\n function getOphogenParms(isAanmaken) {\r\n var parms = {\r\n verhogingMethode = $('#VerhogingMethode').val(),\r\n verhoging = $('#Verhoging').val(),\r\n afronding = $('#Afronding').val(),\r\n decimalen = $('#Decimalen').val(),\r\n jaar = $('#Jaar').val(),\r\n tijdvak = $('#Tijdvak').val(),\r\n caoId = $('#CaoId').val(),\r\n }\r\n\r\n if (isAanmaken) {\r\n parms.aanmaakJaar = $('#AanmaakJaar').val();\r\n parms.aanmaakTijdvak = $('#AanmaakTijdvak').val();\r\n }\r\n\r\n return parms;\r\n }\r\n\r\n function getSchalenEnTreden() {\r\n Api.Main.clearNotify();\r\n\r\n var options = {};\r\n options[\"tofadein\"] = \"#SchaaltredeOphogen_Results\";\r\n options[\"loading\"] = \"\";\r\n\r\n var jaar = $('#Jaar').val();\r\n var tijdvak = $('#Tijdvak').val();\r\n var caoId = $('#CaoId').val();\r\n Api.APIcaller.CallAction(\"/Tools/Tools/SchaaltredeOphogenGetSchalenEnTreden\", { jaar, tijdvak, caoId }, \"GET\", null, null, completed, options, Api.APIcaller.CancelOptions.None);\r\n\r\n function completed() {\r\n bindResultButtons();\r\n checkEnableBerekenen();\r\n checkEnableOpslaan();\r\n }\r\n }\r\n\r\n function opslaanOphoging() {\r\n Api.Main.clearNotify();\r\n\r\n var options = {};\r\n options[\"tofadein\"] = \"#SchaaltredeOphogen_Results\";\r\n options[\"loading\"] = \"#opslaan\";\r\n\r\n var parms = getOphogenParms(true);\r\n\r\n var url = \"/Tools/Tools/\";\r\n url = url + \"SchaaltredeOphogenNieuweAanmaken\"\r\n\r\n Api.APIcaller.CallAction(url, parms, \"POST\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n }\r\n\r\n function getCaoOptions(jaar) {\r\n var options = []\r\n\r\n var jct = $('[name^=\"JaarCaoTijdvakken\"]');\r\n var jctperjaar = jct.filter(function (index, el) { return $(el).val().startsWith(jaar + \"_\"); });\r\n\r\n if (jctperjaar.length == 0) {\r\n return options;\r\n }\r\n\r\n var caos = [];\r\n $.each(jctperjaar, function (index, el) {\r\n var values = $(el).val().split('_');\r\n caos.push({ \"id\": values[1], \"naam\": values.slice(2).join('_') });\r\n });\r\n\r\n $.each(caos, function (index, cao) {\r\n var attr = {}\r\n attr.value = cao.id;\r\n attr.text = cao.naam;\r\n options.push(attr);\r\n });\r\n\r\n return options;\r\n }\r\n\r\n function getTijdvakkenOptions(jaar, caoId) {\r\n var options = []\r\n\r\n var jct = $('[name^=\"JaarCaoTijdvakken\"]');\r\n var jctperjaar = jct.filter(function (index, el) { return $(el).val().startsWith(jaar + \"_\" + caoId + \"_\"); });\r\n\r\n if (jctperjaar.length == 0) {\r\n return options;\r\n }\r\n\r\n var textName = $(jctperjaar).attr('name').split('.')[0] + \".Value\";\r\n var textValue = $('[name=\"' + textName + '\"]').val();\r\n var tijdvakken = textValue.split('_');\r\n\r\n $.each(tijdvakken, function (index, tijdvak) {\r\n var attr = {}\r\n attr.value = tijdvak;\r\n attr.text = tijdvak;\r\n options.push(attr);\r\n });\r\n\r\n return options;\r\n }\r\n },\r\n exportdata: function () {\r\n let selectedId = $('#Id').val();\r\n\r\n /* Bindings */\r\n $(document).on('change', '#Category', function () {\r\n $(location).attr('href', \"?categorie=\" + $(this).val());\r\n });\r\n\r\n $(document).on('change', '#queryFieldsBody input', function () {\r\n $('#saveFields').removeAttr('disabled');\r\n });\r\n \r\n $(document).on('click', '#saveFields', function () {\r\n let items = []; // stores items in order\r\n let count = 0; // stores field order\r\n\r\n $('#queryFieldsBody tr').each(function () {\r\n let id = $(this).data('id');\r\n let checked = $(this).find('input').first().is(\":checked\");\r\n\r\n items.push({ exportQueryFieldSeq: id, visible: checked, fieldOrder: count }); // add item to list\r\n\r\n count++;\r\n });\r\n\r\n updateFields(items);\r\n });\r\n\r\n $(document).on('click', '.queryItem', function () {\r\n let id = $(this).data('id');\r\n\r\n $('.queryItems').find('.queryItem').removeClass('active');\r\n $(this).addClass('active');\r\n\r\n getFields(id);\r\n });\r\n\r\n $(document).on('click', '.renameaction', function () {\r\n let options = {};\r\n options[\"tofadein\"] = null;\r\n options[\"loading\"] = \"div[id='dropdownMenu3']\";\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/RenameExportQueryItemPopup\", { exportQuerySeq: getSelectedQueryItem() }, \"GET\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n });\r\n\r\n $(document).on('click', '.copyaction', function () {\r\n let options = {};\r\n options[\"tofadein\"] = null;\r\n options[\"loading\"] = \"div[id='dropdownMenu3']\";\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/CopyExportQueryItemPopup\", { exportQuerySeq: getSelectedQueryItem() }, \"GET\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n });\r\n\r\n $(document).on('click', '.runaction', function () {\r\n let options = {};\r\n options[\"tofadein\"] = null;\r\n options[\"loading\"] = \"div[id='dropdownMenu3']\";\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/RunExportQueryItemPopup\", { exportQuerySeq: getSelectedQueryItem() }, \"GET\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n });\r\n\r\n $(document).on('click', '.deleteaction', function () {\r\n let options = {};\r\n options[\"tofadein\"] = null;\r\n options[\"loading\"] = \"div[id='dropdownMenu3']\";\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/DeleteExportQueryItemPopup\", { exportQuerySeq: getSelectedQueryItem() }, \"GET\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n });\r\n\r\n if (selectedId > 0 && $('.queryItem[data-id=\"' + selectedId + '\"]').length > 0) {\r\n $('.queryItems').find('.queryItem[data-id=\"' + selectedId + '\"]').first().trigger('click'); // select given is from list\r\n } else {\r\n $('.queryItems').find('.queryItem').first().trigger('click'); // preselect first item from list\r\n }\r\n\r\n /* Functions */\r\n\r\n // fix issue with table width\r\n var fixHelper = function (e, ui) {\r\n ui.children().each(function () {\r\n $(this).width($(this).width());\r\n });\r\n\r\n return ui;\r\n };\r\n\r\n function getSelectedQueryItem() {\r\n let id = $('.queryItems').find('.queryItem.active').first().data('id');\r\n\r\n return id ? id : 0;\r\n }\r\n\r\n function updateFields(items) {\r\n let options = {};\r\n options[\"tofadein\"] = null;\r\n options[\"loading\"] = \"button[id='saveFields']\";\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/UpdateExportQueryFields\", { items }, \"POST\", null, null, finished, options, Api.APIcaller.CancelOptions.None);\r\n\r\n function finished() {\r\n $('#saveFields').attr('disabled', 'disabled');\r\n }\r\n }\r\n\r\n function getFields(exportQuerySeq) {\r\n APPLOYED.loader.WaitLoaderOn(\"div[id='queryFields']\")\r\n\r\n let options = {};\r\n options[\"tofadein\"] = null;\r\n options[\"loading\"] = null;\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/GetExportQueryFields\", { exportQuerySeq }, \"GET\", null, null, finished, options, Api.APIcaller.CancelOptions.None);\r\n\r\n function finished() {\r\n APPLOYED.loader.ClearLoaderList();\r\n\r\n $(\"#queryFieldsBody\").sortable({\r\n handle: \".handle\",\r\n axis: \"y\",\r\n containment: \".queryFields\",\r\n helper: fixHelper,\r\n change: function () {\r\n $('#saveFields').removeAttr('disabled');\r\n }\r\n });\r\n }\r\n }\r\n },\r\n initQueryPopup: function () {\r\n $(document).off('change', '#queryCategory');\r\n $(document).on('change', '#queryCategory', function () {\r\n $('#queryCategoryInput').val($(this).val());\r\n });\r\n\r\n $(document).off('change', '#queryCategoryInput');\r\n $(document).on('change', '#queryCategoryInput', function () {\r\n let value = $(this).val();\r\n let selected = $('#queryCategory').find('option[selected=\"selected\"]').first();\r\n\r\n $(selected).val(value);\r\n $(selected).text(value);\r\n });\r\n\r\n $(document).off('click', '#queryPopupSubmit');\r\n $(document).on('click', '#queryPopupSubmit', function () {\r\n let options = {};\r\n options[\"tofadein\"] = null;\r\n options[\"loading\"] = \"button[id='queryPopupSubmit']\";\r\n\r\n let id = $('.queryPopupForm').find('#exportQuerySeq').val();\r\n let type = $('.queryPopupForm').find('#popupType').val();\r\n let name = $('.queryPopupForm').find('#name').val();\r\n let category = $('.queryPopupForm').find('#queryCategory').val();\r\n\r\n let body = {\r\n id,\r\n name,\r\n category\r\n }\r\n\r\n if (type == \"copy\") {\r\n Api.APIcaller.CallAction(\"/Ajax/CopyExportQueryItem\", body, \"GET\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n } else if (type == \"rename\") {\r\n Api.APIcaller.CallAction(\"/Ajax/RenameExportQueryItem\", body, \"GET\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n }\r\n });\r\n },\r\n initRunQueryPopup: function () {\r\n APPLOYED.validator.bindRequiredFields('#queryRunParams', '#querybtn-next');\r\n\r\n if ($('#MakeModalBigger').val() == 'True' || $('#MakeModalBigger').val() == 'true') {\r\n $('#modal_popup').addClass('modal-xxl');\r\n }\r\n\r\n $(document).on('click', '#querybtn-previous', function () {\r\n $('#modal_popup').removeClass('modal-xxl');\r\n $('#queryRunParams').show();\r\n $('#queryRunResult').hide();\r\n $('#filename').parents('div.mdb-input-group').hide();\r\n\r\n $('#querybtn-next').attr('disabled', false);\r\n $('#querybtn-next').removeClass('hide');\r\n $('#querybtn-previous').attr('disabled', true);\r\n $('#querybtn-previous').addClass('hide');\r\n $('#querybtn-download').attr('disabled', true);\r\n $('#querybtn-download').addClass('hide');\r\n });\r\n\r\n if ($('#queryRunParams').length <= 0) {\r\n let exportQuerySeq = $('#exportQuerySeq').val();\r\n\r\n var options = {};\r\n options[\"tofadein\"] = null;\r\n options[\"loading\"] = null;\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/runExportQueryItem\", { id: exportQuerySeq }, \"POST\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n }\r\n\r\n // handle form submission\r\n $('#querybtn-next').on('click', function () {\r\n let params = [];\r\n let exportQuerySeq = $('#exportQuerySeq').val();\r\n\r\n if (APPLOYED.validator.checkRequiredFields('#queryRunParams', '#querybtn-next')) {\r\n $('#queryRunParams input, #queryRunParams select').each(function () {\r\n let name = $(this).data('paramname');\r\n let value = $(this).val();\r\n\r\n params.push({ ParamName: name, ParamValue: value });\r\n });\r\n\r\n let paramsJson = JSON.stringify(params);\r\n\r\n var options = {};\r\n options[\"tofadein\"] = null;\r\n options[\"loading\"] = \"button[id='querybtn-next']\";\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/runExportQueryItem\", { id: exportQuerySeq, queryParams: paramsJson }, \"POST\", null, null, finished, options, Api.APIcaller.CancelOptions.None);\r\n\r\n function finished() {\r\n $('#modal_popup').addClass('modal-xxl');\r\n $('#queryRunParams').hide();\r\n $('#queryRunResult').show();\r\n $('#filename').parents('div.mdb-input-group').show();\r\n\r\n $('#querybtn-next').attr('disabled', true);\r\n $('#querybtn-next').addClass('hide');\r\n $('#querybtn-previous').attr('disabled', false);\r\n $('#querybtn-previous').removeClass('hide');\r\n $('#querybtn-download').attr('disabled', false);\r\n $('#querybtn-download').removeClass('hide');\r\n }\r\n }\r\n });\r\n },\r\n initDeletePopup: function () {\r\n $(document).off('click', '#queryPopupDeleteSubmit');\r\n $(document).on('click', '#queryPopupDeleteSubmit', function () {\r\n let exportQuerySeq = $('#exportQuerySeq').val();\r\n let exportQueryCategory = $('#exportQueryCategory').val();\r\n\r\n let options = {};\r\n options[\"tofadein\"] = null;\r\n options[\"loading\"] = 'button[id=\"queryPopupDeleteSubmit\"]';\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/DeleteExportQueryItem\", { id: exportQuerySeq, category: exportQueryCategory }, \"GET\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n });\r\n },\r\n initExportQueryGrid: function () {\r\n var self = this;\r\n $('#querybtn-download').removeClass('hide');\r\n\r\n if ($('#WijmoColumns').val() == \"\") {\r\n $('#querybtn-download').attr('disabled', true);\r\n return;\r\n }\r\n\r\n $('#querybtn-download').attr('disabled', false);\r\n\r\n $(document).off('click', '#querybtn-download');\r\n $(document).on('click', '#querybtn-download', function () {\r\n var book = wijmo.grid.xlsx.FlexGridXlsxConverter.save(self.grid, {\r\n includeColumnHeaders: true,\r\n includeRowHeaders: false\r\n });\r\n\r\n book.sheets[0].name = 'FlexGrid Data';\r\n book.save(getFilename());\r\n });\r\n\r\n function getFilename() {\r\n let regex = new RegExp(/\\.xlsx$/igm);\r\n let filename = $('#filename').val();\r\n\r\n if (!regex.test(filename)) {\r\n filename += '.xlsx';\r\n }\r\n\r\n return filename;\r\n }\r\n\r\n function convertData() {\r\n $(columns).each(function (cIndex, column) {\r\n if (this.dataType == \"Date\") {\r\n $(data).each(function (dIndex, item) {\r\n if (item[column.binding]) {\r\n let date = item[column.binding].split('-');\r\n\r\n item[column.binding] = new Date(date[0], date[1] - 1, date[2]);\r\n }\r\n });\r\n }\r\n });\r\n }\r\n\r\n var columns = jQuery.parseJSON($('#WijmoColumns').val());\r\n var data = jQuery.parseJSON($('#WijmoData').val());\r\n\r\n convertData();\r\n\r\n self.grid = new wijmo.grid.FlexGrid('#exportquery-grid', {\r\n alternatingRowStep: 0,\r\n isReadOnly: true,\r\n autoGenerateColumns: false,\r\n allowDragging: wijmo.grid.AllowDragging.None,\r\n allowSorting: wijmo.grid.AllowSorting.None,\r\n columns: columns,\r\n itemsSource: data,\r\n stickyHeaders: true,\r\n selectionMode: wijmo.grid.SelectionMode.None,\r\n headersVisibility: wijmo.grid.HeadersVisibility.Column,\r\n selectionChanging: (s, e) => {\r\n if (e.range.col == 0 || e.range.col2 == 0) {\r\n e.cancel = true;\r\n }\r\n }\r\n });\r\n\r\n self.grid.autoSizeColumns();\r\n },\r\n afwezigheidsviewer: function () {\r\n APPLOYED.tools.tools.initAfwezigheidsviewerGrid();\r\n APPLOYED.validator.bindRequiredFields('#peildatum-container', '#btn-show');\r\n APPLOYED.validator.bindRequiredFields('#absence-table', '#exportxls');\r\n APPLOYED.validator.bindRequiredFields('#absence-table', '#exportpdf');\r\n\r\n $(document).off('click', '#btn-show');\r\n $(document).on('click', '#btn-show', function () {\r\n getOverview();\r\n });\r\n\r\n function getOverview() {\r\n let peildatum = $('#peildatum').val();\r\n let groups = [];\r\n\r\n $('#searchfilter .filter-item').each(function () {\r\n let checked = $(this).find('input').is(':checked');\r\n\r\n if (checked) {\r\n let id = $(this).find('input').val();\r\n\r\n if (id != \"0\") {\r\n groups.push(id);\r\n }\r\n }\r\n });\r\n\r\n var options = {};\r\n options[\"tofadein\"] = null;\r\n options[\"loading\"] = \"button[id='btn-show']\";\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/getAbsenceOverviewTable\", { peildatum, groups: groups }, \"POST\", null, null, function () { APPLOYED.tools.tools.initAfwezigheidsviewerGrid(); }, options, Api.APIcaller.CancelOptions.None);\r\n }\r\n },\r\n initAfwezigheidsviewerGrid: function () {\r\n var self = this;\r\n\r\n if ($('#WijmoColumns').val() == \"\") {\r\n $('#exportxls').attr('disabled', true)\r\n $('#exportpdf').attr('disabled', true)\r\n return;\r\n }\r\n\r\n $('#exportxls').attr('disabled', false)\r\n $('#exportpdf').attr('disabled', false)\r\n\r\n $(document).off('click', '#exportxls');\r\n $(document).on('click', '#exportxls', function () {\r\n var book = wijmo.grid.xlsx.FlexGridXlsxConverter.save(self.grid, {\r\n includeColumnHeaders: true,\r\n includeRowHeaders: false\r\n });\r\n\r\n book.sheets[0].name = 'FlexGrid Data';\r\n book.save(getFilename('xls'));\r\n });\r\n\r\n $(document).off('click', '#exportpdf');\r\n $(document).on('click', '#exportpdf', function () {\r\n var referenceDateText = $('#PdfReferenceDateText').val() + \": \" + $(\"#PdfReferenceDate\").val();\r\n\r\n wijmo.grid.pdf.FlexGridPdfConverter.export(self.grid, getFilename('pdf'), {\r\n exportMode: wijmo.grid.pdf.ExportMode.All,\r\n scaleMode: wijmo.grid.pdf.ScaleMode.ActualSize,\r\n documentOptions: {\r\n pageSettings: {\r\n layout: wijmo.pdf.PdfPageOrientation.Landscape\r\n },\r\n header: {\r\n declarative: {\r\n text: referenceDateText\r\n }\r\n },\r\n footer: {\r\n declarative: {\r\n text: '\\t&[Page]\\\\&[Pages]'\r\n }\r\n }\r\n },\r\n styles: {\r\n cellStyle: {\r\n backgroundColor: '#ffffff',\r\n borderColor: '#c6c6c6'\r\n },\r\n altCellStyle: {\r\n backgroundColor: '#f9f9f9'\r\n },\r\n groupCellStyle: {\r\n backgroundColor: '#dddddd'\r\n },\r\n headerCellStyle: {\r\n backgroundColor: '#eaeaea'\r\n }\r\n }\r\n });\r\n });\r\n\r\n function getFilename(type) {\r\n let filename = $('#filename').val();\r\n\r\n if (type == 'xls') {\r\n let regex = new RegExp(/\\.xlsx$/igm);\r\n\r\n if (!regex.test(filename)) {\r\n filename += '.xlsx';\r\n }\r\n } else if (type == 'pdf') {\r\n let regex = new RegExp(/\\.pdf$/igm);\r\n\r\n if (!regex.test(filename)) {\r\n filename += '.pdf';\r\n }\r\n }\r\n\r\n return filename;\r\n }\r\n\r\n function convertData() {\r\n $(columns).each(function (cIndex, column) {\r\n if (this.dataType == \"Date\") {\r\n $(data).each(function (dIndex, item) {\r\n if (item[column.binding]) {\r\n let date = item[column.binding].split('-');\r\n\r\n item[column.binding] = new Date(date[0], date[1] - 1, date[2]);\r\n }\r\n });\r\n }\r\n });\r\n }\r\n\r\n var columns = jQuery.parseJSON($('#WijmoColumns').val());\r\n var data = jQuery.parseJSON($('#WijmoData').val());\r\n\r\n convertData();\r\n\r\n self.grid = new wijmo.grid.FlexGrid('#afwezigheid-grid', {\r\n alternatingRowStep: 0,\r\n isReadOnly: true,\r\n autoGenerateColumns: false,\r\n allowDragging: wijmo.grid.AllowDragging.None,\r\n allowSorting: wijmo.grid.AllowSorting.None,\r\n allowResizing: wijmo.grid.AllowResizing.None,\r\n columns: columns,\r\n itemsSource: data,\r\n stickyHeaders: true,\r\n selectionMode: wijmo.grid.SelectionMode.None,\r\n headersVisibility: wijmo.grid.HeadersVisibility.Column,\r\n selectionChanging: (s, e) => {\r\n if (e.range.col == 0 || e.range.col2 == 0) {\r\n e.cancel = true;\r\n }\r\n }\r\n });\r\n },\r\n werknemersuitnodigengebruikers: function () {\r\n APPLOYED.element.dynamicHeight('#GebruikersUitnodigenTable', '.mainscreensized', 172, 200, true);\r\n $('#GebruikersUitnodigenTable').show();\r\n\r\n $('#Check_all').bind('change', () =>\r\n APPLOYED.tableOverview.checkboxes.checkAll(\"#uitnodigen\")\r\n );\r\n\r\n $('[id*=\"Check_row_\"]').bind('change', () =>\r\n APPLOYED.tableOverview.checkboxes.checkRow(\"#uitnodigen\")\r\n );\r\n\r\n $('#uitnodigen').bind('click', () =>\r\n uitnodigen()\r\n );\r\n\r\n function uitnodigen() {\r\n Api.Main.clearNotify();\r\n\r\n let allCheckBoxes = $('[id*=\"Check_row_\"]');\r\n let allChecked = allCheckBoxes.filter(':checked');\r\n if (allChecked.length == 0) {\r\n return;\r\n }\r\n\r\n var options = {};\r\n options[\"tofadein\"] = \"div[id*='GebruikersUitnodigenTable']\";\r\n options[\"loading\"] = \"#uitnodigen\";\r\n\r\n var userIds = getUserIds(allChecked);\r\n Api.APIcaller.CallAction(\"/Tools/Tools/WerknemersUitnodigenGebruikers\", { userIds }, \"POST\", update, null, null, options, Api.APIcaller.CancelOptions.None);\r\n\r\n function getUserIds(allChecked) {\r\n var userIds = [];\r\n for (let i = 0; i < allChecked.length; i++) {\r\n let id = $(allChecked[i]).attr('id').split('_')[2];\r\n userIds.push(id);\r\n }\r\n return userIds;\r\n }\r\n\r\n function update(response) {\r\n var updatedRows = response.jsoNresults[0];\r\n for (let i = 0; i < updatedRows.length; i++) {\r\n var userId = updatedRows[i];\r\n $('#user_row_' + userId).remove();\r\n }\r\n\r\n var remainingRows = $('[id*=\"user_row_\"]');\r\n if (remainingRows.length == 0) {\r\n $('#geen_gegevens').show();\r\n }\r\n\r\n Api.APIcaller.processNotify(response);\r\n\r\n APPLOYED.tableOverview.checkboxes.checkIndeterminate();\r\n APPLOYED.tableOverview.checkboxes.checkEnableUitvoeren(\"#uitnodigen\");\r\n }\r\n }\r\n },\r\n algemeenverlofboeken: function () {\r\n self = this;\r\n self.werknemers = [];\r\n\r\n $('#Startdatum').bind('change', changePeriode);\r\n $('#Einddatum').bind('change', changePeriode);\r\n $('#VerlofregelingId').bind('change', changeVerlofregeling);\r\n $('#AfwijkendeUren').bind('change', showAfwijkendeUren);\r\n\r\n VerlofDeviantDaysService.checkAfwijkendeDagenBtn(true);\r\n VerlofDeviantDaysService.bindInputFields(() => self.checkAlgemeenVerlofUitvoerenEnabled());\r\n\r\n function changePeriode() {\r\n getRegelingen();\r\n }\r\n\r\n function changeVerlofregeling() {\r\n checkLoadData();\r\n\r\n setVerlofToekennenInDagen();\r\n VerlofDeviantDaysService.checkAfwijkendeDagen();\r\n\r\n setTimeout(() => self.checkAlgemeenVerlofUitvoerenEnabled(), 100);\r\n }\r\n\r\n function setVerlofToekennenInDagen() {\r\n var verlofregelingId = $('#VerlofregelingId').val();\r\n VerlofDeviantDaysService.verlofToekennenInDagen = !!$('#VerlofRegelingenInDagen').val().split(',').find(id => id == verlofregelingId);\r\n }\r\n\r\n function getRegelingen() {\r\n let selectedRegeling = $('#VerlofregelingId').val();\r\n\r\n var options = {};\r\n options[\"tofadein\"] = \"div[id*='AlgemeenVerlofBoeken_ContainerId']\";\r\n\r\n let body = {\r\n container: \"VerlofregelingId\",\r\n type: \"algemeenverlofboeken\",\r\n jaar: $('#Startdatum').val().split(\"-\")[2]\r\n }\r\n\r\n Api.APIcaller.CallAction(\"/Ajax/GetVerlofRegelingenDropdown\", body, \"POST\", null, null, finished, options, Api.APIcaller.CancelOptions.None);\r\n\r\n function finished(result) {\r\n $('#VerlofRegelingenInDagen').val(result.jsoNresults[1].join(\",\"));\r\n $('#VerlofregelingId').find('option[value=\"' + selectedRegeling + '\"]').attr('selected', true);\r\n $('#VerlofregelingId').trigger('change');\r\n\r\n enableAfwijkendeUren();\r\n checkLoadData();\r\n }\r\n }\r\n\r\n function enableAfwijkendeUren() {\r\n var startdatum = $('#Startdatum').val();\r\n var einddatum = $('#Einddatum').val();\r\n\r\n if (startdatum && einddatum) {\r\n $('#afwijkende-uren').show();\r\n } else {\r\n $('#afwijkende-uren').hide();\r\n $('#afwijkende-uren-list').find('#afwijkende-dagen-container').children().remove();\r\n $(\"#AfwijkendeUren\").prop('checked', false);\r\n $(\"#AfwijkendeUren\").trigger('change');\r\n }\r\n }\r\n\r\n function showAfwijkendeUren() {\r\n var isChecked = $('#AfwijkendeUren').is(':checked');\r\n $('#afwijkende-dagen-container').toggle(isChecked);\r\n\r\n if (isChecked) {\r\n let startdate = DateService.ToDate($(\"#Startdatum\").val());\r\n let enddate = DateService.ToDate($(\"#Einddatum\").val());\r\n\r\n var data = {\r\n startDate: DateService.ToInvariantDate(startdate),\r\n endDate: DateService.ToInvariantDate(enddate),\r\n canUpdate: true,\r\n verlofToekennenInDagen: VerlofDeviantDaysService.verlofToekennenInDagen\r\n };\r\n\r\n VerlofDeviantDaysService.checkLoadAfwijkendeDagen(data);\r\n }\r\n\r\n FormValidationService.CheckRequired();\r\n self.checkAlgemeenVerlofUitvoerenEnabled();\r\n }\r\n\r\n function checkLoadData() {\r\n var startdatum = $('#Startdatum').val();\r\n var einddatum = $('#Einddatum').val();\r\n var verlofregelingId = $('#VerlofregelingId').val();\r\n\r\n if (!(startdatum && einddatum && verlofregelingId)) {\r\n clearWerknemers();\r\n }\r\n\r\n if (startdatum && einddatum) {\r\n loadData(startdatum, einddatum, verlofregelingId);\r\n }\r\n }\r\n\r\n function loadData(startdatum, einddatum, verlofregelingId) {\r\n self.clearNotify();\r\n self.werknemers = self.getAlgemeenVerlofBoekenWerknemers();\r\n\r\n var options = {};\r\n options[\"tofadein\"] = \"div[id*='AlgemeenVerlofBoeken_ContainerId']\";\r\n\r\n Api.APIcaller.CallAction(\"/Tools/Tools/AlgemeenVerlofBoekenGetData\", { startdatum, einddatum, verlofregelingId }, \"POST\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n }\r\n\r\n function clearWerknemers() {\r\n $('#AlgemeenVerlofBoeken_Wn').remove();\r\n $('#uitvoeren').prop('disabled', true);\r\n }\r\n },\r\n algemeenverlofboekenwerknemers: function () {\r\n var self = this;\r\n\r\n $('#Check_all').bind('change', () => {\r\n APPLOYED.tableOverview.checkboxes.checkAll();\r\n self.checkAlgemeenVerlofUitvoerenEnabled();\r\n });\r\n $('[id*=\"Check_row_\"]').bind('change', () => {\r\n APPLOYED.tableOverview.checkboxes.checkRow();\r\n self.checkAlgemeenVerlofUitvoerenEnabled();\r\n });\r\n\r\n $('#uitvoeren').unbind('click');\r\n $('#uitvoeren').bind('click', uitvoerenVerlofboeken);\r\n\r\n updateChecktWerknemers();\r\n APPLOYED.tableOverview.checkboxes.checkEnableUitvoeren(\"#uitvoeren\");\r\n\r\n function updateChecktWerknemers() {\r\n if (!self.werknemers || self.werknemers.length == 0) {\r\n return;\r\n }\r\n\r\n for (var i = 0; i < self.werknemers.length; i++) {\r\n $(`[id*=\"Check_row_${self.werknemers[i]}\"]`).prop('checked', true);\r\n }\r\n\r\n APPLOYED.tableOverview.checkboxes.checkIndeterminate();\r\n self.werknemers = [];\r\n }\r\n\r\n function uitvoerenVerlofboeken() {\r\n self.clearNotify();\r\n\r\n var werknemers = self.getAlgemeenVerlofBoekenWerknemers();\r\n var afwijkendeUren = self.getAlgemeenVerlofBoekenAfwijkendeUren();\r\n\r\n if (werknemers.length == 0) {\r\n return;\r\n }\r\n\r\n var options = {};\r\n options[\"tofadein\"] = \"div[id*='AlgemeenVerlofBoeken_ContainerId']\";\r\n options[\"loading\"] = \"#uitvoeren\";\r\n\r\n var request = {\r\n \"startdatum\": $('#Startdatum').val(),\r\n \"einddatum\": $('#Einddatum').val(),\r\n \"verlofregelingId\": $('#VerlofregelingId').val(),\r\n \"notities\": $('#Notities').val(),\r\n \"redenId\": $('#RedenId').val(),\r\n \"afwijkendeUren\": afwijkendeUren,\r\n \"werknemers\": werknemers,\r\n \"verlofToekennenInDagen\": VerlofDeviantDaysService.verlofToekennenInDagen\r\n }\r\n\r\n Api.APIcaller.CallAction(\"/Tools/Tools/AlgemeenVerlofBoekenUitvoeren\", { request }, \"POST\", null, null, null, options, Api.APIcaller.CancelOptions.None);\r\n }\r\n },\r\n checkAlgemeenVerlofUitvoerenEnabled() {\r\n var enabled = APPLOYED.tableOverview.checkboxes.isEnabled();\r\n var valid = FormValidationService.CheckRequired();\r\n\r\n $('#uitvoeren').prop('disabled', !(enabled && valid));\r\n },\r\n getAlgemeenVerlofBoekenWerknemers: function() {\r\n let allCheckBoxes = $('[id*=\"Check_row_\"]');\r\n let allChecked = allCheckBoxes.filter(':checked');\r\n\r\n var werknemers = [];\r\n\r\n for (let i = 0; i < allChecked.length; i++) {\r\n let id = $(allChecked[i]).attr('id').split('_')[2];\r\n werknemers.push(id);\r\n }\r\n\r\n return werknemers;\r\n },\r\n getAlgemeenVerlofBoekenAfwijkendeUren: function () {\r\n var afwijkendeUren = [];\r\n\r\n var isChecked = $('#AfwijkendeUren').is(':checked');\r\n if (isChecked) {\r\n afwijkendeUren = VerlofDeviantDaysService.GetDeviantDays();\r\n }\r\n\r\n return afwijkendeUren;\r\n },\r\n algemeenverlofboekenresults: function () {\r\n $('#back').bind('click', goback);\r\n\r\n $('#AlgemeenVerlofBoeken_ContainerId').hide();\r\n $('#AlgemeenVerlofBoeken_Results_Container').show();\r\n\r\n function goback() {\r\n $('#AlgemeenVerlofBoeken_ContainerId').show();\r\n $('#AlgemeenVerlofBoeken_Results_Container').hide();\r\n }\r\n },\r\n werknemerziekmelden: function () {\r\n setVerlofToekennenInDagen();\r\n APPLOYED.tools.tools.initDeviantDays();\r\n\r\n $(document).off('change keyup', '#Percentage');\r\n $(document).on('change keyup', '#Percentage', function () {\r\n APPLOYED.validator.keepValueBetweenMinAndMax('#Percentage', 0, 100);\r\n });\r\n\r\n $(document).off('change', '#WerknemerId');\r\n $(document).on('change', '#WerknemerId', function () {\r\n getAbsenceScreen();\r\n });\r\n\r\n $(document).off('change', '#Startdatum');\r\n $(document).on('change', '#Startdatum', function () {\r\n VerlofDeviantDaysService.checkRemoveDeviantDays($('#Startdatum').val(), $('#Einddatum').val());\r\n });\r\n\r\n $(document).off('change', '#SelectedRegeling');\r\n $(document).on('change', '#SelectedRegeling', function () {\r\n setVerlofToekennenInDagen();\r\n VerlofDeviantDaysService.checkAfwijkendeDagen();\r\n });\r\n\r\n function setVerlofToekennenInDagen() {\r\n var verlofregelingId = $('#SelectedRegeling').val();\r\n VerlofDeviantDaysService.verlofToekennenInDagen =\r\n !!$('#VerlofRegelingenInDagen').val() &&\r\n !!$('#VerlofRegelingenInDagen').val().split(',').find(id => id == verlofregelingId);\r\n }\r\n\r\n function getAbsenceScreen() {\r\n let werknemerId = $('#WerknemerId').val();\r\n let startdatum = $('#Startdatum').val();\r\n\r\n if (werknemerId.length > 0 && startdatum.length > 0) {\r\n var options = {};\r\n options[\"nofading\"] = false;\r\n options[\"loading\"] = null;\r\n\r\n let body = {\r\n werknemerId: werknemerId,\r\n startdate: DateService.GetDateFromString($(\"#Startdatum\").val()).toDateString()\r\n };\r\n\r\n Api.APIcaller.CallAction(\"/Tools/Tools/GetZiekmeldenAbsenceScreen\", body, \"get\", null, null, complete, options, Api.APIcaller.CancelOptions.None);\r\n\r\n function complete(response) {\r\n if (!response || response.hasErrorText) {\r\n return;\r\n }\r\n\r\n setVerlofToekennenInDagen();\r\n VerlofDeviantDaysService.checkAfwijkendeDagen();\r\n }\r\n }\r\n }\r\n },\r\n initDeviantDays: function () {\r\n VerlofDeviantDaysService.bindDeviantDaysBtn();\r\n VerlofDeviantDaysService.checkAfwijkendeDagenBtn(true);\r\n\r\n $(document).off('change', '#PerchGebruiken');\r\n $(document).on('change', '#PerchGebruiken', function () {\r\n if ($(this).is(':checked')) {\r\n $('#afwijkende-dagen-checkbox-container').hide();\r\n $('#afwijkende-dagen-container').hide();\r\n } else {\r\n $('#afwijkende-dagen-checkbox-container').show();\r\n\r\n if ($('#AfwijkendeDagen').is(':checked')) {\r\n $('#afwijkende-dagen-container').hide();\r\n }\r\n }\r\n });\r\n\r\n $(document).off('change', '#AfwijkendeDagen');\r\n $(document).on('change', '#AfwijkendeDagen', function () {\r\n $(\"#afwijkende-dagen-container\").toggle(this.checked);\r\n $('#perchgebruiken-container').toggle(!this.checked);\r\n\r\n if (this.checked) {\r\n let startdate = DateService.ToDate($(\"#Startdatum\").val());\r\n let enddate = DateService.ToDate($(\"#Einddatum\").val());\r\n\r\n var data = {\r\n startDate: DateService.ToInvariantDate(startdate),\r\n endDate: DateService.ToInvariantDate(enddate),\r\n werknemerId: $(\"#WerknemerId\").val(),\r\n canUpdate: true,\r\n verlofToekennenInDagen: VerlofDeviantDaysService.verlofToekennenInDagen\r\n };\r\n console.log(\"data\", data);\r\n VerlofDeviantDaysService.checkLoadAfwijkendeDagen(data);\r\n }\r\n });\r\n\r\n $(\"#Einddatum\").on('change', function () {\r\n VerlofDeviantDaysService.checkRemoveDeviantDays($('#Startdatum').val(), $('#Einddatum').val());\r\n });\r\n\r\n $('#AfwijkendeDagen').trigger('change');\r\n }\r\n }\r\n"]}