{"version":3,"sources":["TrainingViews/HorseCell/HorseCell.js","TrainingViews/TrainingCellMap.js","TrainingPopup/CopyTaskPopupV2.js","TrainingPopup/ReminderSelectPopup.js","TrainingPopup/SelectTimePopup.js","Multimedia/MultimediaHelper.js","TrainingPopup/TaskXrayPage.js","Controls/Spinner/SpinnerView.js","Multimedia/PdfViewer.js","components/Alerts/MediaTypeAlert.jsx","Multimedia/HorseGallery.js","TrainingPopup/GroupDeleteUpdateQuestion.js","TrainingPopup/TrainingPopup.js","TrainingViews/TrainingCell/TrainingDay.js","DataGateActions.js","TrainingViews/WeekView/WeekView.js","TrainingViews/FeedView/FeedView.js","GeneralTask/NewGeneralTaskTypePopup.js","GeneralTask/CopyGeneralTaskPopupV2.js","GeneralTask/DeleteUpdateGeneralTaskPopup.js","GeneralTask/GeneralTaskPopup.js","TrainingViews/RiderView/StaticRiderView.js","TrainingViews/RiderView/RiderView.js","TrainingViews/Rider2RowsView/Rider2RowsView.js","TrainingViews/TimeSinceLastHA/TimeSinceLastHA.js","FieldAssignmentView/FieldAssignmentView.jsx","Hooks/useClickOutside.jsx","Tabs/Tabs.jsx","OtherTasksView/OtherTasksView.jsx","OtherTasksViewLight/OtherTasksViewLight.jsx","FieldAndOtherTasks/FieldAndOtherTasks.jsx","WalkerAssignmentView/WalkerAssignmentView.jsx","TrainingViews/AllHorseWithPriceView/AllHorseDataWithPrice.js","Modal/Modal.jsx","TrainingViews/SalesData/SalesData.jsx","TrainingViews/RaiderAndOtherTasks/RaiderAndOtherTasks.js","VeterinarianManager/VeterinarianManager.jsx","TrainingViews/TappingView/TappingView.jsx","TrainingViews/MainView.js","Controls/ToggleView/ToggleView.js","Home/FarrierView/FarrierView.js","Home/VaccinationView/VaccinationPopup.js","Home/VaccinationView/VaccinationView.js","Home/TeethView/TeethView.js","ZipViewer/ZipViewer.js","Home/XrayView/XrayView.js","Home/DewormingView/DewormingView.js","Home/VaccinationView/HerpesVaccinationPopup.js","Home/VaccinationView/HerpesVaccinationView.js","AddEditHorse/HorseEditPage.js","Utils/dateUtils.js","AddEditHorse/HorseViewPage.js","AddEditHorse/HorseData/PedigreePage.js","AddEditHorse/HorseData/OwnerInfoPage.js","AddEditHorse/HorseData/NotesPage.js","AddEditHorse/HorseData/LogHorsePricePage.js","AddEditHorse/HorseData/PricePage.js","AddEditHorse/HorseData/ResultsPage.js","AddEditHorse/HorseData/EquipmentPage.js","AddEditHorse/HorseData/VaccinationNextPopup.js","AddEditHorse/HorseData/VaccinationPage.js","AddEditHorse/HorseData/FarrierPopup.js","AddEditHorse/HorseData/FarrierPage.js","AddEditHorse/HorseData/Teeth/NextTeethCheckPopup.js","AddEditHorse/HorseData/Teeth/TeethPopup.js","AddEditHorse/HorseData/Teeth/TeethPage.js","AddEditHorse/HorseData/VeterinarianPage.js","AddEditHorse/HorseData/MultimediaPage.js","AddEditHorse/HorseData/HerpesVaccinationNextPopup.js","AddEditHorse/HorseData/HerpesVaccinationPage.js","Menu/SideMenu.js","Report/Report.js","RiderRole/PermissionsPage.js","RiderRole/RiderRole.js","SharingPage/SharePage.js","SharingPage/CreateRiderPage.js","SharingPage/SharingPage.js","AutoCreateTask/AutoCreateTaskPage.js","Home/Settings/LogPriceReport.js","Home/Settings/PriceReport.js","Home/Settings/DewormingTypes.js","Report/ReportSettings.js","Controls/Button/BasicButton.jsx","Icons/PaperPlane.jsx","Notification/Notification.jsx","SendSalesData/SendSalesData.jsx","FieldManager/FieldManager.jsx","WalkerManager/WalkerManager.jsx","HealthStatusManager/HealthStatusManager.jsx","GeneralTaskPanelsManager/GeneralTaskPanelsManager.jsx","index.js","TrainingViews/TrainingExtension.js","Home/HomePageExtention.js","AddEditHorse/HorsePageExtention.js","Multimedia/MultimediaMobileHelper.js"],"names":["HorseCell","Component","constructor","arguments","onHorseClick","window","Managers","self","isOneGo","editHorseById","this","props","horse","id","getBottomText","parseInt","GlobalData","getItem","NAME_STABLE","inUseStables","BoxName","box","DataStorage","boxesAndStables","find","s","IDBox","StableId","stable","IdStable","StableName","PaperOwner","ownersPaper","ownerNames","i","length","o","push","Name","join","text","horseTypes","HorseType","hType","t","ID","render","showImage","SHOW_HORSELOGO","showNotes","SHOW_NOTAT_HORSE","showStar","horseLogo","LogoFile","split","logoImage","DataGate","baseurl","bottomText","horseName","name","notes","React","createElement","style","cursor","paddingLeft","onClick","className","backgroundImage","TrainingCellMap","orderComparatorByTrainingType","c1","c2","t1","myTrainingTypes","shortname","t2","orderC","sortHorsesBySelectedDate","horseArr","orderDate","getTrainingsForDay","orderBy","ORDER_BY_ALPHABETIC","ORDER_BY_ALPHABETIC_COMPACT","sort","h1","h2","trainingsH1","trainingsH2","trainingColums","map","columns","ci","ct1","ct2","ORDER_BY_TIME_TOP","ORDER_BY_TIME_ALPHABETIC","ORDER_BY_TIME_TOP_COMPACT","isTimeColumn","TimeOfDay","myttype1","type","myttype2","OrderC","maxColumnCompactMap","refreshMap","dates","trainingArray","trainTypes","filter","owner","myid","ORDER_BY","dateIndex","taskArray","starttime","task","column","c","typeIds","indexOf","date","columnsByType","byHorseCols","trainerCols","horseid","snames","training","mode","TrainingManager","riderStatic","riderStaticAndEquipment","getAllHorses","j","trainer","maxColumnCount","Math","max","Object","values","colName","CopyTaskV2","super","componentDidMount","loadData","console","log","trainingItem","daysToCopy","DaysToCopy","setDaysToCopyFromProps","setState","selectFreqOptions","lang","week1","week2","week3","week4","week5","week6","week7","week8","week9","week10","week11","week12","frequencyId","CopyDuration","daysToCopyArr","substring","state","isCopyOnSunday","isCopyOnMonday","isCopyOnTuesday","isCopyOnWednesday","isCopyOnThursday","isCopyOnFriday","isCopyOnSaterday","onFrequencyChange","e","target","value","onCheckboxClick","dataset","checked","onOkClick","isCopyRuning","GroupId","TrainingFlag","TrainingFlagUpdate","addTraining","refresh","showSpinner","copyTraining","code","data","onCancelClick","doneCallback","ReactDOM","unmountComponentAtNode","document","getElementById","onRemoveRepetitionClick","deleteCopyTraining","display","colSpan","alignItems","repeatForEach","marginLeft","data-role","width","onChange","currentElement","index","key","data-date","daysNames","ok","cancel2","removeRepetition","CopyTaskWindow","showWindow","ReminderSelect","onItemClick","item","onSelect","reminderList","reminder_No","reminder_SameDay","reminder_1_dayBefore","reminder_2_dayBefore","reminder_3_dayBefore","reminder_4_dayBefore","reminder_5_dayBefore","reminder_6_dayBefore","reminder_7_dayBefore","selectedId","SelectTimePopup","allUserTimeOfDay","findIndex","ShortName","timeValue","isCustomTime","onTimeSelect","onCustomTimeChanged","onTimeChange","onSetCurrentTimeClick","getCurrentTime","now","Date","hours","getHours","minutes","getMinutes","toString","padStart","times","textAlign","Capacitor","getPlatform","uuid","marginTop","margin","setCurrentTime","onHide","cancel","MultimediaHelper","handleCreateContainer","async","containerClient","blobServiceClient","getContainerClient","containerName","create","error","message","listBlobsWithProperties","blobs","blob","listBlobsFlat","blockBlobClient","getBlockBlobClient","properties","getProperties","url","accountName","sasToken","size","contentLength","lastModifiedDate","lastModified","listFilesInContainer","blobItems","Error","blobUrl","getBlobClient","shareItems","items","promises","response","fetch","extension","base64Data","blobToBase64","fileName","includes","Filesystem","writeFile","path","directory","Directory","Cache","uri","localFiles","Promise","all","Share","share","title","files","dialogTitle","Sprinner","hide","startUploadQueueElements","uploadQueue","isUploading","el","_uploadWthSingleRequest","file","dbxItem","finishCallback","path_display","getTypeItem","encodedFileName","encodeURIComponent","container","fullUrl","thumbUrl","TYPE_VIDEO","generateThumbnail","imageUrl","shift","request_origin","loadUploadQueue","startsWith","getPath","FOLDER_MULTIMEDIA","horseId","FOLDER_EXTRA_NOTES","noteOrTaskId","FOLDER_TASK","h","userid","FOLDER_GENERAL_TASK","loadList","callback","loadCallback","toLowerCase","then","_getListFilesForMultimedia","multimediaPage","_getListFilesForTasks","FOLDER_NOTES","_getListFilesForNotes","_getListFiles","catch","result","warn","end","formatDesh","start","addDays","db","getTasksByHorseIdForMultimedia","taskArr","horseOwnerId","dropbox","filesListFolder","entries","a","b","setTimeout","_buildThumbs","getNotesByHorse","notesArr","_checkAllThumbLoaded","TYPE_YOUTUBE","_getYoutubeCode","Link","_loadThumb","link","pop","resolve","reject","filesGetThumbnail","URL","createObjectURL","fileBlob","getItemLink","filesGetTemporaryLink","_loadThubmAndUploadCallback","_setSoothProgress","new_progress","duration","file_path","uploadFileWithProgress","dbx","fileSize","actual_image","FileChunkReader","azureBlobStorageUploadFileChunk","targetPath","progressCallback","progress","success","addListener","info","removeAllListeners","JSON","parse","media_path","blobName","cancelUploading","cancelIndex","f","splice","refreshUploadQueue","uploadYoutube","addYoutubeMultimedia","userId","deleteItems","deleteCallback","itemsForDelete","_deleteItem","deleteYoutubeMultimedia","Id","isDeleted","_checkItemsDelete","delete","changeName","oldFileName","newFileName","oldBlobClient","beginCopyFromURL","downloadItems","dowloadStep","itemIndex","_downloadItem","Spinner","show","downloadAllItems","filesDownload","File","downloadUrl","downloadButton","setAttribute","innerText","click","hasImages","urisToShare","random","Dropbox","accessToken","DropboxToken","BlobServiceClient","removeElementFromUploadQueue","target_origin","onUploadDoneCallback","file_name","target_request","dbxPath","onUploadProgressCallback","percent","isImage","res","TYPE_IMAGE","setCurrentSettings","setRefreshCallback","_","reader","FileReader","onloadend","readAsDataURL","mimeToExtension","mimeType","setFinishCallback","setProgressCallback","addToUploadQueue","static_path","videoUrl","thumbnail","video","crossOrigin","src","preload","currentTime","addEventListener","canvas","videoWidth","height","videoHeight","getContext","drawImage","toDataURL","wait","milliseconds","base64ToBlob","base64","undefined","binaryStr","atob","bytes","Uint8Array","charCodeAt","Blob","options","totalChunks","ceil","uploadedBytes","blockList","min","chunk","slice","arrayBuffer","buffer","blockId","btoa","String","stageBlock","commitBlockList","blobHTTPHeaders","blobContentType","showMobileFullscreen","imageItem","multimediaMobileHelper","isActive","showFullScreen","downloadAndShareItems","ext","TYPE_PDF","FOLDER_RESULT","FOLDER_OTHER","downloadZip","zip","JSZip","fileUrls","fetchFile","content","generateAsync","saveAs","downloadFilesOneByOne","fetchImage","image","images","forEach","_ref","TaskXrayPage","taskId","showPage","close","onFilesSeleted","arr","uploadingFiles","startUploading","encodeURI","fileEntry","helper","status","location","href","filesDelete","onSelectAll","isSelected","onSelectItem","onDeleteClick","downloadFiles","filesToDownload","uploadingIndex","componentDidUpdate","prevProps","_uploadNextFile","isUploaded","onload","readAsArrayBuffer","getFilesSize","toFixed","maxWidth","padding","paddingTop","accept","multiple","htmlFor","float","defaultValue","toLocaleString","Fragment","decodeURI","SpinnerView","PdfViewer","onPdfDocumentLoadSuccess","args","pdfNumberOfPages","numPages","onCurrentPdfPageChange","offset","currentPdfPage","showPdfDocument","pdfjs","GlobalWorkerOptions","workerSrc","pdfjsWorker","pdfPageWidth","isMobileDevice","innerWidth","Document","onLoadSuccess","Page","pageNumber","renderTextLayer","loading","MediaTypeAlert","setShow","selectImages","selectVideos","selectImagesHandler","selectVideosHandler","HorseGallery","toggleExtraButtons","multiSelectMode","setOwnSettings","generalTask","onUploadedFile","onProgressFile","uploadDataArray","dataArray","setAuxiliarImageList","getItemName","lastIndexOf","getShortFileName","parts","showFullscreen","showFullScreenView","showFullScreenItemIndex","showFullScreenLoading","showFullscreenRight","showFullscreenLeft","hideFullscreen","doneItem","isMounted","aux_upload_queue","aux_upload_data_array","original_el","aux_el","onFileSelected","files_to_upload","keys","file_item","uploadImages","FilePicker","pickImages","readData","data_blob","r","ex","uploadVideos","pickVideos","thumbNailMediaResult","VideoEditor","at","file_to_upload","readFile","onCancelUploading","onShowAddYoutube","showAddYoutube","addYoutubeLink","hideAddYoutube","onYoutubeLinkChange","onAddYoutubeLink","selectItem","onDownloadClick","imagesToDownload","onShareClick","onImageChangeNameStart","changeNameMode","nameNew","onImageNameNewChange","onImageChangeNameEnd","oldName","nameIsUpdated","renderFullscreenItem","controls","poster","frameborder","testUrl","selectUploadMediaType","platform","componentWillUnmount","urlAddYoutubeFrame","showFullScreenLeft","showFullScreenRight","hideEditImages","newVal","customHeader","showUploadButton","acceptPdf","showYoutube","select","reverse","autoFocus","frameBorder","GroupDeleteUpdateQuestion","isDelete","onGroupClick","onSingleClick","thisTaskIsPartOfaSeries","doYouWantTo","marginBottom","changeThisTaskOnly","changeAllTasksInThisSerie","GroupDeleteUpdateQuestionWindow","TrainingPopupWindow","scrollToSelectedItems","loadFieldAreas","cur_horse_id","cur_training_name","isInit","loadWalkerAreas","isField","getAvailableFieldAreas","alert","fieldAreas","Item1","Item2","fieldAreaId","_fieldAreas$auxFieldA","_fieldAreas$auxFieldA2","_fieldAreas$auxFieldA3","_fieldAreas$auxFieldA4","_fieldAreas$auxFieldA5","auxFieldAreaIndex","x","auxFieldIndex","fields","fieldId","auxTimePeriodIndex","timePeriods","timePeriodId","selectedFieldAreaIndex","selectedFieldIndex","selectedFieldTimePeriodIndex","fieldAssignInfo","_fieldAreas$auxFieldA6","_fieldAreas$auxFieldA7","_fieldAreas$auxFieldA8","field_area_id","field_id","time_id","isWalker","getAvailableWalkerAreas","walkerAreas","walkerAreaId","_walkerAreas$auxWalke","_walkerAreas$auxWalke2","_walkerAreas$auxWalke3","_walkerAreas$auxWalke4","_walkerAreas$auxWalke5","auxWalkerAreaIndex","auxWalkerIndex","walkers","walkerId","selectedWalkerAreaIndex","selectedWalkerIndex","selectedWalkerTimePeriodIndex","walkerAssignInfo","_walkerAreas$auxWalke6","_walkerAreas$auxWalke7","_walkerAreas$auxWalke8","walker_area_id","walker_id","_this$props$item","fromTappingView","Gender","trainingTypes","trainingTypesForHorse","vetTraining","IsVeterinarian","vetTrainingId","farTraining","IsFarrier","farTrainingId","currentHorseId","currentHorse","currentHorseOwner","farrWeek","currentFarrierWeek","SETTINGS_FARRIER_WEEKS","trainingTypesArr","horseNameArr","imgStrArr","imgId","currentStarttime","currentTrainingType","trainingType","currentTrainerId","trainerId","currentTrainerName","trainerName","loadDataFromProps","getTrainers","ridersOrder","KEY_RIDERS_ORDER","orderA","orderB","trainersArr","getFarrierTypes","ftypes","currentFarrierType","ft","farrierType","getUserDewormingType","dewormingTypes","currentNextDewormingPeriod","VeterinarianType","NextDewormingPeriod","nextDewormingDate","setMonth","getMonth","currentTrainingId","currentRemark","remark","currentEvaluation","Evaluation","currentIsCanCopy","isCanCopy","currentColor","color","currentVeterinarianType","FarrierType","currentTraining","currentHasMultimedia","HasMultimedia","currentPaddockPeriod","PaddockPeriod","currentReminderType","ReminderType","currentTimeOfDay","currentVeterinarianVacType","VeterinarianVacType","currentDuration","currentTrainingName","currentTrainingShortname","currentStatus","currentSynctime","synctime","currentDewormingType","DewormingType","horseNotes","isDone","handleChange","onSaveClick","getUserSetting","toast","setItem","isGroupSelected","saveTraining","updateCopyTraining","getFieldNote","fieldNote","note","HeaderNote","TextNote","onDoneCallback","_this$state$fieldArea13","_this$state$fieldArea14","_this$state$fieldArea15","_this$state$fieldArea16","_this$state$fieldArea17","_this$state$fieldArea18","_this$state$walkerAre13","_this$state$walkerAre14","_this$state$walkerAre15","_this$state$walkerAre16","_this$state$walkerAre17","_this$state$walkerAre18","dewormingTypesPeriod","trainItem","_this$state$fieldArea","_this$state$fieldArea2","_this$state$fieldArea3","_this$state$fieldArea4","_this$state$fieldArea5","_this$state$fieldArea6","_this$state$fieldArea7","_this$state$fieldArea8","_this$state$fieldArea9","_this$state$fieldArea10","_this$state$fieldArea11","_this$state$fieldArea12","period","_this$state$walkerAre","_this$state$walkerAre2","_this$state$walkerAre3","_this$state$walkerAre4","_this$state$walkerAre5","_this$state$walkerAre6","_this$state$walkerAre7","_this$state$walkerAre8","_this$state$walkerAre9","_this$state$walkerAre10","_this$state$walkerAre11","_this$state$walkerAre12","tr","TrainingFlagAdd","refreshLayout","trainingRequestStart","insertOrUpdateTrainings","CODE_OK","trainingRequestEnd","showConnectionError","returnTrainingCallback","onExtraTrainingClick","oprionObj","TrainingPopup","showPopup","onDeleteTrainingClick","deleteTraining","deleteTrainingById","deleteTrainings","onShowMultimediaClick","$","css","html","unbind","bind","onBack","stopPropagation","onXrayClick","onCopyTaskClick","onCopyDone","onReminderSelectClick","showReminderPopup","currentTarget","idf","vx","nextHorseId","nextHorseOwnerId","prevHorseOwnerId","onHorseChange","onTrainerClick","currentTrainer","onTrainerChange","onTrainingClick","onTrainingChange","onDoneClick","onEvaluationClick","onCanCopyClick","onRemarkChange","showTimeSelect","isShowTimePopup","hideTimeSelect","val","onVeterinarianTypeChange","onFarrierTypeChange","onFarrierWeekChange","setDate","getDate","getDay","onDewormingTypeChange","onDewormingTypePeriodChange","selectedCollection","getElementsByClassName","selectedArr","call","scrollIntoView","onRemiderSelect","onMouseDown","isMovingMode","startX","clientX","startY","clientY","elementStartLeft","offsetLeft","elementStartTop","offsetTop","onMouseMove","left","top","onMouseUp","showMultimediaTraining","SHOW_MULTIMEDIA_TRAINING","showTimeTraining","SHOW_TIME_TRAINING","showDateTraining","SHOW_DATE_TRAINING","showDoneTraining","SHOW_DONE_TRAINING","showEvaluationTraining","SHOW_EVALUATION_TRAINING","showCopyTaskTraining","SHOW_COPY_TASK_TRAINING","showRemarksTraining","SHOW_REMARKS_TRAINING","showCopyButtonTraining","SHOW_COPY_BUTTON_TRAINING","showRemainderTraining","SHOW_REMAINDER_TRAINING","veterinarType","VeterinarPage","VeterinarType","vetSubType","farrierWeeks","nextMonday","nextTuesday","nextWednesday","nextThursday","nextFriday","nextSaturday","nextSunday","today","dewormingStages","oneMonth","threeMonths","sixMonths","oneYear","_this$getFieldNote2","_this$getFieldNote4","selectTime","sqrt","pow","screen","inch","offsetWidth","horseItem","role","rolesDataFromUsers","UserId","translateWord","word","tabIndex","data-position","aria-level","index-id","borderSpacing","verticalAlign","data-time","DatePicker","customInput","InputForMobile","dateFormat","selected","_this$getFieldNote","trained","copyTask","fieldArea","fieldName","field","timePeriod","time_period","walkerArea","walker","marginRight","tShowSmileOnTask","data-id","border","borderRadius","nextDeworming","rows","Footer","showData","showXray","isVetPage","InputForDesktop","align","data-inset","data-autodividers","data-icon","data-idf","data-name","_this$getFieldNote3","minWidth","nextTeeth","gap","ToastContainer","readOnly","backgroundColor","addExtraTraining","h-id","TrainingDay","renderAlphabetic","trainings","isSelectedDate","rider","trainingCellMap","TrainingCell","holdEnabled","showRider","getTrainingCellsAlphabetic","trainigs","renderAlphabeticCompact","trainerColsArr","columnCount","allColumns","shortColumns","tByType","uniqueId","renderTimeTop","getTrainingCellsTime","renderTimeTopCompact","tByColumn","onCellClick","positionLastTimeClick","screenX","y","screenY","trainType","callbackAdd","useOnlyAddCallback","allUsers","trainername","fromWalkerAssignmentView","tt","isTapping","initNewPermanent","waitForInit","trainingPopup","isTrainerLoading","prop","onCellLongClick","setTimeOnFirstHold","training_aux","updateTrainingBackground","getFieldInfo","FieldAreaId","FieldId","FieldAreaTimePeriodId","getWalkerInfo","WalkerAreaId","WalkerId","WalkerAreaTimePeriodId","handleDragStart","dataTransfer","setData","stringify","field_info","walker_info","handleDrop","preventDefault","source_training","getData","source_field_info_str","target_field_info_str","target_training","target_field_info","swapPayload","source_training_id","target_training_id","swapFieldsOfTrainingBackground","source_walker_info_str","target_walker_info_str","target_walker_info","swapWalkersOfTrainingBackground","handleDragOver","showHorseName","multipleOnSameColumn","draggable","onDragStart","onDrop","onDragOver","riderInitials","riderStaticLight","riderStaticAndEquipmentLight","getInitials","timeText","getTimeOfDayTitle","nameClass","fromFieldAssignmentView","ClickNHold","time","onClickNHold","FieldAssignmentFieldAreaName","FieldAssignmentFieldName","FieldAssignmentFieldTimePeriod","WalkerAssignmentWalkerAreaName","WalkerAssignmentWalkerName","WalkerAssignmentWalkerTimePeriod","DataGateActions","updateEquipment","refreshHorses","getFeed","getFarrierDataForUser","StartTime","Trainer","Type","Color","Remark","serverItem","Duration","HorseId","IsCanCopy","IsCanCopyType","Status","SyncTime","U","localItem","u","User","isNewHorse","resreshAndCallback","checkAutoShare","insertOrUpdateHorse","saveLogo","DataBase","LOGO_HORSE","setHorseUpdate","onDataRefresh","WeekView","filteredHorses","equipmentUpdate","horseEquipmentFlag","Equipment","equipmentChange","onOrderChange","filteredTrainings","renderOrderByDate","getRow","widthFirstColumn","trainingPeriod","KEY_DAYS_NUMBER","permanentTypes","permanentCell","showEquipment","onBlur","ttype","permanentTrainings","addPermanentTraining","addTrainingForPermanentColumn","SHOW_RIDER_ON_TASKS","widthFC","renderOrderByHorse","myHorseArr","notMyHorseArr","sharedWithMe","startDate","IsPermanent","permanentTypeIds","d","dayOfWeek","equipment","isIphoneIpad","FeedView","addHeader","headers","deleteHeaderClick","showDeletePopup","deleteHeader","header","feedsForDelete","feeds","TimeHeader","feedIds","deleteFeeds","headersNew","saveHeadersLocal","FEED_HEADERS","onHeaderBlur","updateFeedHeader","allfeeds","feed","onFeedBlur","feedHeader","Feed","insertOrUpdateFeed","onDataLoad","feedData","Array","from","Set","feedHeaders","getFeedData","NewGeneralTaskTypePopupWindow","edit_element","editGeneralTaskType","createGeneralTaskType","newTypeId","onGeneralTaskChange","NewGeneralTaskTypePopup","CopyGeneralTaskV2","currentFreqOptions","tasktype","months","tasks","generalTasks","taskIndex","saveTask","CopyGeneralTasksGroup","addGeneralTask","GeneralTaskFlagAdd","insertOrUpdateGeneralTask","deleteGeneralTaskGroup","notification","connectionId","_this$state$task","_this$state$task2","everyMonth","CopyGeneralTaskWindow","taskItem","TaskType","DeleteUpdateGeneralTaskPopup","updateGeneralTask","deleteGeneralTaskById","userForId","UserForId","deleteGeneralTask","isForAllGroup","Flag","GeneralTaskFlagUpdate","insertOrUpdateGeneralTaskGroup","DeleteUpdateGeneralTaskPopupWindow","GeneralTaskPopupWindow","typeIdToBeSelected","getGeneralTaskType","SELECT_MAIN_USER_STABLE","taskTypeArr","_taskTypeArr","generalTaskTypeArr","loadFromProps","getSharedHorseWithTrainerList","trainersArray","none","me","currentTaskTime","hasBeenEdited","currentGeneralTaskTypeId","currentTask","currentTaskName","currentTaskId","TrainerId","currentUserForId","Time","TaskNameId","currentGroupId","currentCopyDuration","currentDaysToCopy","isTaskModified","getCurrentTask","selectedTab","taskType","onGeneralTaskTypeClick","onGeneralTaskTypeChange","onNewGeneralTaskTypeClick","onExtraTaskClick","option","GeneralTaskPopup","generalTaskId","ConnectionId","overflow","minHeight","zIndex","simplified","xmlns","fill","viewBox","strokeWidth","stroke","strokeLinecap","strokeLinejoin","StaticRiderView","showGeneralTasks","VIEW_OTHER_TASKS","getUserOrdered","OrderedRider","onResizeStop","rIndex","delta","defaultWidth","RIDER_COLUMN_WIDTH","renderRiderTable","trainingArr","riderTrainings","horses","otherHorses","id1","some","_ref2","id2","otherTasksArr","generalTaskArr","onGeneralTaskClick","fontSize","fontWeight","textDecoration","textShadow","renderGeneralTaskTable","onNewGeneralTaskClick","createRiderOrder","riderId","showOnlyOwnHorses","riderArray","riderData","ridersIsShowing","KEY_RIDERS_IS_SHOWING","ridersMass","email","order","k","currRider","newRider","riderOrder","selectedRiders","FILTER_RIDER","selectedRidersArr","first","second","minBlockWidth","Resizable","enable","right","bottom","topRight","bottomRight","bottomLeft","topLeft","handleComponent","isTouchDevice","ResizeIcon","defaultSize","direction","ref","RiderView","horseIdArr","horseIdsWithTrainings","horsesWihoutTrainings","Rider2RowsView","trainingTdWidth","TimeSinceLastHA","getLastDatesForTrainingTypes","haTypes","makeHorseArr","curr","horseDataArr","tableWidth","maxHeight","overflowY","days","FieldAssignmentView","renderFieldAreaTable","toUpperCase","returnCellContent","current_trainings","nrOfTasks","field_area","maxNumberHorses","current_training","useOnClickOutside","handler","useEffect","listener","event","current","contains","removeEventListener","Tabs","tabs","elem","classNames","OtherTasksView","initialPanels","generalTasksDaily","setGeneralTasksDaily","useState","generalTasksWeekly","setGeneralTasksWeekly","generalTasksMonthly","setGeneralTasksMonthly","reorderMode","setReorderMode","filteredPanels","setFilteredPanels","panelsVisibility","getGeneralTaskPanelsVisibility","newFilteredPanels","panel","p","isVisible","panels","usernameComparison","UserName","localeCompare","SortOrder","setSelectedTab","savedSelectedTab","localStorage","setDraggable","DRAG_DROP_TRAININGS","isDragging","setIsDragging","useRef","useClickOutside","auxOrderMode","saveNewOrder","globalDataChangeHandler","VIEWS_NOTIFICATION_TYPE","GENERAL_TASK_PANEL_NOTIFICATION_TYPE","subscribe","unsubscribe","ids","getGeneralTaskOfType","reorderGeneralTasks","drawSortIcon","handleClick","version","transform","ry","updateWithRespectOfLocalOrder","newDailyTasks","curTasks","newDailyTask","foundIndex","setGeneralTasksOfType","new_items","onCellHoldCLick","task_aux","onDragEnd","destination","reorder","list","startIndex","endIndex","removed","source","move_task","lower","newIndex","aux","flex","renderGeneralTaskTableDaily","currentTasks","PanelId","DragDropContext","onBeforeDragStart","Droppable","droppableId","provided","snapshot","assign","droppableProps","innerRef","Draggable","draggableId","disabled","draggableProps","dragHandleProps","placeholder","renderGeneralTaskTableWeekly","renderGeneralTaskTableMonthly","OtherTasksViewLight","FieldAndOtherTasks","filteredTrainingsField","WalkerAssignmentView","renderWalkerAreaTable","walker_area","AllHorseDataWithPrice","SHOW_IN_TRAINING","isHistoricHorses","createAllHorsesWithPrice","getPermission","rSeeHorseData","setPeddi","jsonText","peddiText","setGender","horseTypeMare","horseTypeGelding","horseTypeStallion","getHorsesForReportByTypeAndWithPrice","dataHorses","typeName","ColorName","price","Price","peddi","PedigreeJsonText","BirthYear","Height","Result","RFBid","reportData","executeSort","attribute_index","increasing","sortBy","sort_index","sortedBy","sortedIncreasing","age","pedigree","header_index","paddingRight","position","horseDetails","horse_index","el_index","Modal","body","button1_text","button2_text","button1_callback","button2_callback","SalesData","filteredHorse","lastSortIndex","renderColumn","element","scrollHeight","clientHeight","scrollWidth","clientWidth","textModal","textModalTitle","renderTextModalBody","RaiderAndOtherTasks","VeterinarianManager","GLOBAL_STYLE","whiteSpace","wordWrap","getVeterinarTypeName","HEADERS","displayName","row","extention","showVeterinarian","healthStatus","generalTaskPanels","parseData","_window$DataStorage$g","getHealthStatuses","HealthStatusId","HealthStatus","VetType","tableLayout","row_index","TappingView","useMemo","Boolean","MainView","applyFilters","myHorseArray","notMyHorseArray","addTrainingArr","stablesArray","horseType","istraining","horseTypeIds","flat","stableId","SHOW_IN_STABLE","stIndex","labelId","FILTER_LABEL","horseLabelArr","LabelIds","filteredGeneralTaskArr","otherTasks","addGeneralTaskArr","getGeneralTaskPanels","otherTasksLight","panelsLight","fieldAndOtherTasks","selectedDateFieldFieldAndOther","filteredTrainingsFieldFieldAndOther","panelsLightWithFields","selectedDateField","fieldAssignment","walkerAssignment","selectedDateWalker","filteredTrainingsWalker","raiderAndOtherTasks","selectedDateRaider","filteredTrainingsRaider","panelsRaider","Training","mode_own_horses","salesData","mode_table_2","mode_equipment","mode_rider_2","selectedDate","mode_feed","mode_rider2","timeSinceLastHA","Vetenerian","vetenerianTrainings","getVetenerianTrainings","VeterinarianView","Tapping","tappingSelectedDate","filteredTappingTrainings","ToggleView","yes","no","FarrierView","onEditClick","getNewDate","newItem","FarrierTypeName","HorseName","HomePage","latestIconClick","prototype","onFarrierMenuClick","onAddClick","weeks","onAddForHorseClick","onDoneToggle","getDaysLeft","dateStr","renderTable","shoeDate","planedFarrier","shoeDaysSinceLast","shoeType","Chipid","reminderNames","planFarrier","renderRemainingHorsesTable","horsesArr","onMakePdfClick","reportDataArr","tasksNotDoneReportArr","tasksNotDone","getTasksNotDone","filterData","tasksDoneReportArr","getTasksDone","makePdf","download","appendChild","onMakeXlsxClick","makeXlsx","onTrainingAddChangeCallback","curdate","getFarrierData","horseIds","tasksDone","shoeNewFarrier","remainingHorsesFarr","borderCollapse","VaccinationPopupWindow","selectionType","vaccinationTypes","VaccinationPage","types","currentVaccinationType","currentVaccinationId","getHorse","vtype","nextVaccinationDate","MaxMonth","MaxDay","showHorseList","currentHorsesIds","currentHorseUserid","getVaccinationLatest","lastItem","nextTypeIndex","NextIndex","onVaccinationTypeChange","getVeterinarianTrainingTypeByUser","vTrainingTypes","completed","totalHorses","VType","VDate","insertOrUpdateVaccination","renderHorseListSingle","isFirstChild","isLastChild","listItemClass","childClass","renderHorseListMany","valign","nextVaccinationShort","VaccinationPopup","showVaccinationPopup","VaccinationView","getVaccinationDataForUser","vaccinationData","vaccination","minMonths","MinMonth","maxMonths","minDays","MinDay","maxDays","lastDate","minDate","maxDate","daysLeft","daysBetween","lastVaccination","nextVaccination","remarks","remainingHorses","onNewVaccinationButtonClick","onEditVaccinationButtonClick","onDeleteButtonClick","setVaccinationUpdate","onNewVaccinationForHorseButtonClick","tasksReportArr","vaccinationType","remainingHorsesReportData","remainingHorsesArr","makeVaccinationReportPdf","Browser","open","getCurrentDate","getFullYear","exportToExcell","horsesInSystemData","hosesOutSystemData","ws","XLSX","utils","aoa_to_sheet","ws2","sheet_add_aoa","wb","book_new","book_append_sheet","excel_buffer","write","bookType","excel_blob","Documents","downloadExcell","remainingHorsesData","newVaccination","newVaccinationMany","remainingHorsesVacc","TeethView","getTeethDataForUser","teethData","teeth","bornIn","nextTime","periodToNextTeethDate","teethTraining","getTraining","renderNotDoneTasks","calculateDaysSince","capitalize","onToggleClick","training_id","oldColor","newColor","updateTrainingDoneState","startDateString","timeDifference","floor","renderDoneTasks","planTeeth","newTeeth","remainingHorsesTeeth","ZipViewer","JSZipUtils","getBinaryContent","fileUrl","err","isError","loadAsync","fileList","relativePath","onFileSelect","fullscreenImage","fullscreenVideo","pdfDocument","fIndex","XrayView","getXrayDataForUser","xrayData","plusFiles","selectFile","selectedPlusFilesItems","vetDataItemIndex","dbxFullScreenItem","showZipViewer","hidePdfDocument","hideZipViewer","dataIndex","plusFileIndex","borderTopStyle","borderLeftStyle","borderRightStyle","flexWrap","fileIndex","onShareFullscreenItem","DewormingView","getDewormingDataForUser","dewormingData","dewormingDataWithNullNextDeworming","deworming","dewormingTypeName","DewormingTypeName","dewormingStage","DewormingStage","dewormData","horsesWithoutDeworming","deleteDeworming","onNewDewromingForHorseButtonClick","horseToCreateDewormingFor","getDewormingStageText","stage","reportDataFinished","newDeworming","planDeworming","i_index","entryOnEdit","doneDewormingData","notDoneDewormingData","remainingHorsesDeworm","EditDewormingPopup","refreshData","AddDewormingPopup","_horseToCreateDewormi","_horseToCreateDewormi2","setHorseArr","setCurrentHorsesIds","monthsPerPeriod","initialNextDate","addMonths","setNextDewormingDate","nextPeriod","setNextPeriod","setDewormingTypes","selectedDewormingType","setSelectedDewormingType","currentDewormingStage","setCurrentDewormingStage","setIsDone","getNextPeriodIndex","useLayoutEffect","numberOfMonths","date1","date2","nextDate","_horseArr$find","horseUserId","isNaN","setCurrentTraining","dewormingTypeId","currentTrainingCopy","HerpesVaccinationPopupWindow","herpesVaccinationTypes","getHerpesVaccinationLatest","insertOrUpdateHerpesVaccination","HerpesVaccinationPopup","HerpesVaccinationView","getHerpesVaccinationDataForUser","nextType","setHerpesVaccinationUpdate","HorseEditPage","loadTrainers","getShareWithHorseTrainers","trainers","trainerArr","sharewithid","uname","horseOwner","loadLabels","horseLabelsArr","labelsArr","horseLabelIdArr","horseLabels","label","Label","labels","selectedLabels","fetchHorseLabels","userLabels","onTextChange","hasChanges","onHorseImageSelect","doSave","navigator","enterDataAndPushPutton","userOwnerId","defaultUserTypes","defaultusertypes","vacprogramm","horseObj","stableBoxId","ColorId","colorId","CreateDate","arriveDate","formatDeshStartDay","DefaultUserTypes","DepartureDate","departureDate","gender","IsTraining","Notes","regNr","VaccinationProgramm","chipid","logo","boxIdNew","boxIdOld","updateBoxInUseById","InUse","dt","oldStableId","newStableId","oldBoxId","newBoxId","getSeconds","AddStableBoxHistoryLog","stableIdNew","stableIdOld","isvisible","hiddenHorses","HIDDEN_HORSES","onEditBack","onButonClick","callFunction","getStableList","boxes","resultboxes","selectedBox","OrderBy","stables","StableOrderBy","allStables","labelChange","newValue","actionMeta","selectedLabelsArr","action","newId","createHorseLabels","TopMenu","Self","sidebarExtention","refreshSideMenu","removedValue","rfbid","parseDateStartDay","isMobile","componentWillMount","isShowBornIn","SHOW_BORNIN","isShowRegNr","SHOW_REGNR","isShowChipid","SHOW_CHIPID","isShowArriveDate","SHOW_ARRIVEDATE","isShowSendSalesData","SHOW_SEND_SALES_DATA","isShowStable","SHOW_STABLE","isShowGender","SHOW_GENDER","isShowType","SHOW_TYPE","isShowHeight","SHOW_HEIGHT","isShowColor","SHOW_COLOR","isShowHorseFollowsRider","SHOW_HORSE_FOLLOWS_RIDER","trigger","fetchHorsesData","stableArr","genderArr","getHorseGenderArr","g","horseTypeArr","OwnerC","colorArr","horseColors","UserID","arrivDate","departure","CreatableSelect","isMulti","stableItem","horseFollowsRider","isShowInTraining","showInTraining","isShowIsVisible","openNotes","openPedigree","openResults","openVaccinations","openHerpesVaccinations","herpesVaccination","openEquipment","openFarrier","shoes","openMultimedia","openVeterinarian","veterinarian","openReport","report","openTeeth","openOwnerInfo","openPrice","openLog","openShare","openDelete","deleteHorse","openUnDelete","undeleteHorse","openDeleteCompletly","convertDateStringDDMMYYYYtoYYYYMMDD","dateString","parsedDate","format","HorseViewPage","loadHorseData","pedigreeText","getPedigreeByHorse","pedigreeArr","mather","grmather_father","hWrite","isViewMode","showPedigree","showResults","showVaccination","showHerpesVaccination","showFarrier","showMultimedia","hSeeVET","showHorseReports","openSendSalesData","showSendSalesData","showTeeth","showOwnerInfo","hSeePriceInReport","showHorsePrice","showHorseLog","showHorseShare","showHorseDelete","unDeleteHorse","deleteHorseCompletly","newHorseId","showHorsePage","getStableName","setVisible","isShowNotes","SHOW_NOTES","isShowPedigree","SHOW_PEDIGREE","isShowResults","isShowVaccinations","SHOW_VACCINATION","isShowEquipment","SHOW_EQUIPMENT","isShowFarrier","SHOW_FARRIER","isShowMultimedia","SHOW_MULTUMEDIA","isShowVeterinarian","SHOW_VETERINARIAN","isShowReport","SHOW_REPORT","isShowTeech","SHOW_TEECH","isShowOwner","SHOW_OWNER","isShowPrice","SHOW_PRICE","isShowShareHorse","SHOW_SHARE_HORSE","isShowLogPage","SHOW_LOG_PAGE","isShowDeleteButton","SHOW_DELETE_BUTTON","isShowSendData","stableColorArr","stableName","horseColor","shareDataArray","showGallery","riderLabel","sendSalesData","PedigreePage","onValueChange","hasPadigree","strData","replace","setPedigreeByHorse","insertPedigreeByHorse","father","grfather_father","grfather_grfather_f","grfather_grfather_m","grfather_grmather_f","grfather_grmather_m","grfather_mather","grmather_grfather_f","grmather_grfather_m","grmather_grmather_f","grmather_grmather_m","grmather_mather","parents","grandparents","greatGrandparents","rowSpan","stallion","mare","OwnerInfoPage","loadOwnwers","getOwnerByUser","owners","Address","City","Company","Country","Email","Phone","handleSelectChange","selectedOwners","onInputChange","isEdit","deleteOwnerByHorse","onCallClick","onSaveItemClick","editOwner","insertOwner","confirm","buttonIndex","setPaperOwnerByHorse","getPaperOwnerByHorse","paperOwner","Select","deleteL","edit","NotesPage","onNoteTextChange","selectedNoteIndex","mainNote","isChanged","selectNote","noteIndex","saveCurrentText","updateNoteByHorse","updateNoteHorse","deleteNote","n","needDropboxUpdate","addNewNotesStart","isAddShow","addNoteTitle","onAddNoteTitleChange","addNewNotesFinish","noteNew","IdHorse","IsPrice","round","getTime","insertNote","noteText","LogHorsePricePage","getLogPriceByHorse","logData","setTime","LogData","LogHorsePrice","showLogHorsePrice","PricePage","onPriceChange","selectedInput","selectedPrice","selectedCostPrice","showPriceData","saveInputData","updatePriceByHorse","createDefaultNotes","firstDefaultNote","priceFirstDefaultNote","secondDefaultNote","priceSecondDefaultNote","onInputButtonClick","onInputDataChange","inputData","inputDataChanged","ValuationDate","PotentialDate","SellingPrice","parseFloat","PurchasePrice","CurrentAssessment","PotentialAssessment","CostPriceActual","VAT","vatArr","CostPriceAccumulated","insertOrUpdateHorseInputData","onPriceButtonClick","onCostPriceButtonClick","onLogButtonClick","deleteHorseInputData","inputDataReadOnly","priceData","horseTypePrice","getPriceNotesByHorse","getHorsePricesData","getHorseTypePricesData","horseTypeData","HorseTypeId","priceForPotentialDate","costPriceActual","parseDay","monthDifference","costPriceData","replaceAll","ResultsPage","getNoteByHorse","results","onResultChange","updateResultByHorse","EquipmentPage","onEquipmentChange","equipmentStr","updateEquipmentByHorse","VaccinationNextPopupWindow","vaccinationAllow","vacNotAllowed","sortVacinationArr","VaccinationNextPopup","showVaccinationNextPopup","getVaccination","vdate","onAllVaccinationClick","dropboxData","allVacinations","FarrierWindow","getFarrierDataForAllHorses","isHighPriority","shoeType4","daysStr","week","msgStr","shoeDaysSinceLost","daysSinceLast","sortFarrierArrByPriority","farrierData","lowPriority","highPriority","sortFarrierArrByDays","farrierTrainingTypes","paddingBottom","FarrierAllPopup","showFarrierAllPopup","FarrierPage","fTrainingTypes","getFarrierTrainingsByHorse","farriers","insertDefaultTypes","insertFarrierType","shoeType1","shoeType2","shoeType3","getFarrierTypeName","farrierTypeId","addNewTrainingPopup","_farTraining$","_currentTrainer","_currentTrainer2","onEditButtonClick","onAllFarrierButtonClick","farrierView","NextTeethCheckPopupWindow","firstDateChange","firstDate","secondDateChange","secondDate","onAddButtonClick","TDateFirst","TDateSecond","insertOrUpdateTeeth","next","setFullYear","teethSubDate","teethNextDate","add","NextTeethCheckPopup","showNextTeethCheckPopup","TeethWindow","sortTeethArr","getTeethDataForAllHorses","TeethAllPopup","showTeethAllPopup","TeethPage","getTeeth","setTeethUpdate","onNextTeethCheckButtonClick","onAllNextTeethButtonClick","TeethPopup","teethNewVisit","teethNextVisit","reformatToDMY","VeterinarianPage","onHealthStatusChange","updateHealthStatusOfHorse","healthStatusesForHorse","hs","healthStatuses","getVeterinarianTrainingsByHorse","vetData","veterinarianData","multimedia","onNewVetereinarianClick","newVetData","deleteTrainingCallBack","vetIndex","selectMultimedia","onViewDocumentClick","dataArr","currentItem","newVeterinar","number","MultimediaPage","logoSrc","isConcurrent","HerpesVaccinationNextPopupWindow","HerpesVaccinationNextPopup","HerpesVaccinationPage","getHerpesVaccination","SideMenu","handleClickOutside","getAllUsersExceptId","dataU","riders","showAllRiders","riderArr","selectedRiderArr","riderValue","getHorseTypesBySelector","typesMap","hTypes","showAllHorseTypes","showOwnInTraining","historical","sarr","selectedHorseType","clearAllHorses","getAllStables","stablesData","getAllStablesSharedHorses","stablesShared","showAllStables","selectedStableArr","selectedStable","onToggle","onNewTraningClick","setSideMenuVisible","onDeleteTraningClick","onCopyTraningClick","popup","onLanguageClick","LanguagePage","onHelpClick","onContactClick","onLogoutClick","onLogout","onOrderSelectChange","onRiderSelectChange","isArray","valArr","needRefresh","hash","showHorses","onHorseTypeChange","selectedHorseTypeArr","loadCache","horseFilterCallback","FILTER_HORSE_TYPE","onStableChange","FILTER_HORSE_STABLE","onLabelChange","labelArr","selectedLabelArr","containerRef","createRef","showTrianingGroup","showFilterGroup","orderDefaultValue","alfabetic","timeAlfabetic","timeTop","timeTopCompact","vindex","ReportsPage","onFarVetSelectorChange","selectedValue","farVetSelector","vetReport","farReport","allHorsesAndTasksToday","horse45days","taskHorsesWithRemarks","allHorsesByType","stabletime","allHorsesWithPrice","allHorsesTodayWithNotes","horse45daysRemarks","allHorses45days","ownerHorseType","ownerHorse","horseAge","salesNotesHorse","salesNotesHorseType","trainingHistory","vaccinationHorse","vaccinationHorseType","farrierHorse","farrierHorseType","vetHorse","vetHorseType","priceReport","createHorse45DaysReport","createAllHorsesByTypeReport","settingsReportStr","SETTINGS_REPPORT","settingsReport","settingsReportItem","orderIndex","createVetReport","createFarReport","createAllHorsesAndTasksTodayReport","createTaskHorsesWithRemarksReport","createStableTimeReport","createAllHorsesTodayWithNotesReport","createHorse45DaysRemarksReport","createAllHorses45daysReport","createHorsesWithIdAndNotesReport","createAllVaccinationReport","createHorsesSalesReport","createOwnerTypeReport","createOwnerHorseReport","createHorseFollowsRiderReport","createHorseAgeReport","createSalesNotesHorseReport","createSalesNotesTypeReport","createTrainingHistoryReport","createVaccinationsHorseReport","createVaccinationsTypeReport","createFarrierHorseReport","createFarrierHorseTypeReport","createVetHorseReport","createVetHorseTypeReport","createPriceReport","createAllHorsesAllDataReport","createThisHorseWithRemarksAndWorkoutsReport","createThisHorseStableBoxHistoryLogReport","getVetFarTrainingsByUser","farTrainings","vetTrainings","tableArr","reportDataArray","headerTitle","endDate","getTrainingsByHorseAndDateForMyHorses","trainData","getMyAndSharedHorses","hdata1","hdata2","concat","names","getSmileyForItem","evaluation","str","getTrainingsByHorseAndDate","sortStartTime","startTimeA","statrTimeB","comparison","getTrainingsByHorseAndDateWithRemark","typesNotNull","month","periodDay","lastDayOfMonth","periodStart","periodEnd","getRepportFreeBoxesByUser","dataNorm","finishDate","dayCount","cdate","Summ","arrival","Sum","getTrainingsWithRemark","tData","horsename","q","getReportHorseNotes","noteHeaders","hi","tableTh","tdArray","getOwnerType","getOwnerTypeSharedHorses","ownerName","getHorseFollowsRider","getSharedHorseFollowsRider","getHorseAge","getSharedHorseAge","getSalesNotesHorse","getSalesNotesSharedHorse","Note","getVaccinationsHorse","getFarrierHorse","Horse","getVetHorse","getPriceReportData","getAllOwnersByUser","getLabelsByIds","labelsData","ownerItem","l","priceActual","lid","lItem","Owner","Indkøbspris","Moms","VurderingAktuelt","Vurderingsdato","PotentialVurdering","PotentielDato","Bemærkning","KostprisAktuel","KostprisFremskreven","Historisk","Historik","TrainerName","Pedigree","Labels","readDataFromNote","textNote","purchasePrice","withVAT","currentAssessment","assessmentPotential","salePrice","costPrice1","costPrice2","costPrice3","indexOfPurchasePrice","indexOfWithVAT","indexOfCurrentAssessment","indexOfAssessmentPotential","indexOfSalePrice","indexOfCostPrice1","indexOfCostPrice2","indexOfCostPrice3","sortIndex","purchasePriceLength","withVATLength","currentAssessmentLength","assessmentPotentialLength","salePriceLength","costPrice1Length","costPrice2Length","costPrice3Length","indexA","indexB","getAllHorsesData","getAllSharedHorsesData","salesNotes","tableHeader","SalesNotes","HasImages","noteArr","hasImage","dArray","sortAllDataArr","getTrainingsByHorseWithRemarks","getStableBoxHistoryLogReport","_t$oldStable","_t$newStable","_t$oldBox","_t$newBox","oldStable","newStable","oldBox","newBox","onExitClick","isReportClicked","getCellContent","colIndex","test","isValid","isValidDateDDMMYYYY","dangerouslySetInnerHTML","__html","onExcelFileSelect","wsname","SheetNames","Sheets","sheet_to_json","titleArrIndex","costPrice1Index","costPrice2Index","costPrice3Index","horsePriceArr","updatePriceNote","readAsBinaryString","getPrisNote","noteData","addNewPriceNote","insertPriceNote","tableObj","rowIndex","Permissions","getRiderRolePermissions","roleId","hOpenHorse","vDeleteDay","vCopyAllHorses","hCreateOnMyAccount","onToggleChange","onHOpenHorseClick","onHSeeVETClick","onHWriteClick","onHSeePriceInReportClick","onTShowSmileOnTaskClick","onRSeeHorseDataClick","onVDeleteDayClick","onVCopyAllHorsesClick","onOKClick","editRiderRole","permissionForHorses","permissionCreateHorseOnMyAccount","permissionOpenHorse","permissionSeeVET","permissionWrite","permissionForTasks","permissionShowSmilOnTask","permissionForView","permissionDeleteDay","permissionCopyAllHorses","PermissionsPage","showPermissions","RiderRolePage","getRiderRoles","sortRolesArr","rolesArr","managers","showSharingPage","onNewRoleInputChange","newRole","onAddNewRoleClick","createRiderRole","onDeleteRoleClick","deleteRiderRole","onOrderDownClick","swipeRiderRoleOrder","onOrderUpClick","RiderRole","showRiderRolePage","getLocalSettingsById","dataSettings","sharedUsersData","autoShare","shareEmails","currentRiderRole","currentEmail","myHorses","myHorsesArr","sharedHorsesArr","shared","horseData","shareAllHorsesUserId","shareAllHorsesUsersId","shareData","originalHorseList","currentEmails","onEmailChange","onEmailInputClick","onEmailClick","newEmails","user","onShareOtherHorseClick","onAutomaticallyShareAllHorsesClick","set","updateLocalSettingsShareAllHorses","onSelectAllClick","myHorsesArrAux","currentIndex","selectedForShareHorsesArr","notSelectedForShareHorsesArr","notSelectesHorseIds","shareHorse","dataObj","horseNotShared","shareWith","data-email","automaticallyShareAllHorses","shareOtherHorses","selectAll","data-hn","SharePage","showSharePage","CreateRiderView","propName","onImageClick","getPhoto","imageData","password","confirmPassword","phone","pswd","hex_md5","register","getLangName","realMyId","signUp","SignUp","gtypeVal","createDefaultTypes","createDefaultHorseTypes","fillInitialValues","DefaultValue","CreateDefaultStables","sharePage","CODE_EMAIL_EXISTS","alertLoginExistsNew","alertLoginNotValid","createNewRider","autoComplete","CreateRiderPage","ShareColumn","myStables","selectedStables","setSelectedStables","nonSelectedStables","setNonSelectedStables","deselectStable","DeleteShareStable","newStables","shareStable","selectStable","SharingPage","roles","getShareWithData","responseData","itemD","ShareWith","RoleId","stablesOfUser","currentRole","sender_id","notAccepted","NotAccepted","createLicenseTo","CreateLicenseTo","licenseExpire","getAllStablesAsync","shareArr","riderRoles","onRoleChange","setRiderRole","notaccepted","onShareRoleButtonClick","riderRole","onOpenShareButtonClick","onCreateRiderClick","alertDeleteShare","setShareWithUpdate","deleteNotAcceptedHorseByNotAccepted","onShareHorsesWithNewRiderClick","onChangeLicenseDate","changeLicenseItem","handleChangeLicenseDate","saveChangeLicenseDate","shareItem","closeChangeLicensePopup","changeCreateHorseLicenseDate","handleResetPassword","changeResetPasswordItem","resetPasswordInputValue","resetPasswordRetypeInputValue","resetPassword","changePasswordForSharedUser","toggleShareOtherTasks","changeCreateHorseShareOtherTasks","Data","inches","userAgent","data-notaccepted","sharedHorses","shareHorsesWithNewRider","accepted","AutoCreateTaskCompoment","onBackClick","weekDays","hoseTypes","addData","TrainingTypes","getJSON","json","timezone","getTimezoneOffset","userTimeZone","timeZoneArray","loadTaskData","getAutoCreateJobs","createTaskArray","onTimeZoneChange","setUserTimeZone","onAddDataChange","insertAutoCreateJob","onItemDataChange","updateAutoCreateJob","deleteAutoCreateJob","CreateWeekDay","CreateTime","CreateToDay","HorseTypes","Rider","day","LogPriceReportPage","getLogPriceReportByUser","PriceReport","showPriceReport","LogPriceReport","showLogPriceReport","PriceReportPage","getHorseTypes","horsePriceReportData","updateServer","updateRequired","updateHorseTypePriceData","updateItemOnServer","deleteHorseTypePriceData","onAddDataHorseTypeChange","onAddDataPriceChange","insertHorseTypePriceData","DewormingTypesPage","deleteDewormingType","deleteUserDewormingType","onNewTypeInputChange","newType","onAddNewTypeClick","createUserDewormingType","ReportSettingsPage","onIsVisibleChange","rItemIndex","swapOrder","rItemIndex1","rItemIndex2","orderIndex1","orderIndex2","needToSave","AllReportsArr","cr","rItem","BasicButton","svgIcon","PaperPlaneIcon","Notification","class","SendSalesData","display_gallery","display_notes","display_results","presentationMode","logoFile","setLogoFile","setName","sendData","setSendData","sendLink","setSendLink","setShareItems","galleryPhotos","setGalleryPhotos","resultPhotos","setResultPhotos","notesPhotos","setNotesPhotos","showLinkModal","setShowLinkModal","presentationId","setPresentationId","showNotification","setShowNotification","createPresentationLink","insertHorsePresentation","user_id","horse_id","getFullLink","canShare","drawCustomHeader","aux_state","clickToggle","presId","trim","images_to_share","clipboard","writeText","NoHorseFoundView","FieldManager","setFieldAreas","showCreateFieldAreaModal","setShowCreateFieldAreaModal","showCreateFieldModal","setShowCreateFieldModal","showEditFieldModal","setShowEditFieldModal","showEditTimePeriodModal","setShowEditTimePeriodModal","showCreateTimeModal","setShowCreateTimeModal","showDeleteFieldModal","setShowDeleteFieldModal","showDeleteFieldAreaModal","setShowDeleteFieldAreaModal","showDeleteTimePeriodModal","setShowDeleteTimePeriodModal","currentWorkingFieldAreaId","setCurrentWorkingFieldAreaId","currentWorkingFieldId","setCurrentWorkingFieldId","currentWorkingTimePeriodId","setCurrentWorkingTimePeriodId","newFieldAreaName","setNewFieldAreaName","newFieldName","setNewFieldName","newFieldNumberOfHorses","setNewFieldNumberOfHorses","newTimePeriod","setNewTimePeriod","enforceAllFields","setEnforceAllFields","isLoading","setIsLoading","getFieldAreas","move_field","field_area_index","higher","secondIndex","firstFieldId","secondFieldId","moveField","aux2","renderCreateFieldDefaulModalBody","ev_dispatcher","ev_value","renderCreateFieldModalBody","second_ev_dispatcher","second_ev_value","numberOfHorses","reorderFieldAreas","changeEnforceAllFieldsSetting","setUserSetting","fieldEnforceAllFields","generateFieldAreaFieldTables","is_editable","firstColumnColSpan","fieldIndex","generateFieldAreaTimePeriodTables","createFieldArea","addFieldArea","editField","createField","addField","createTimePeriod","addFieldTimePeriod","editFieldTimePeriod","wantDelete","deleteFieldAreaItem","deleteFieldFromAreaField","deleteTimePeriodFromAreaField","deleteFieldArea","WalkerManager","setWalkerAreas","showCreateWalkerAreaModal","setShowCreateWalkerAreaModal","showCreateWalkerModal","setShowCreateWalkerModal","showEditWalkerModal","setShowEditWalkerModal","showDeleteWalkerModal","setShowDeleteWalkerModal","showDeleteWalkerAreaModal","setShowDeleteWalkerAreaModal","currentWorkingWalkerAreaId","setCurrentWorkingWalkerAreaId","currentWorkingWalkerId","setCurrentWorkingWalkerId","newWalkerAreaName","setNewWalkerAreaName","newWalkerName","setNewWalkerName","newWalkerNumberOfHorses","setNewWalkerNumberOfHorses","getWalkerAreas","move_walker","walker_area_index","renderCreateWalkerDefaulModalBody","renderCreateWalkerModalBody","reorderWalkerAreas","walkerIndex","createWalkerArea","addWalkerArea","editWalker","createWalker","addWalker","addWalkerTimePeriod","editWalkerTimePeriod","deleteWalkerAreaItem","deleteWalkerFromAreaWalker","deleteTimePeriodFromAreaWalker","deleteWalkerArea","HealthStatusManager","setHealthStatuses","showCreateHealthStatusModal","setShowCreateHealthStatusModal","healthStatusToBeDeleted","setHealthStatusToBeDeleted","newHealthStatusName","setNewHealthStatusName","createHealthStatus","addHealthStatus","deleteHealthStatus","newStatuses","renderCreateHealthStatusDefaulModalBody","GeneralTaskPanelsManager","setPanels","currentPanel","setCurrentPanel","editable","OwnerId","newPanels","setGeneralTaskPanelsVisibility","toggleIsVisible","renderIsVisibleIcon","renameCurrentPanel","renameGeneralTaskPanel","setGeneralTaskPanels","renderEditPanelModalBody","trainingExtension","renderMainView","renderFarrier","renderVaccination","renderHerpesVaccination","renderTeeth","renderSalesData","renderXray","renderDeworming","currentHorseOprtions","refreshHorsePage","pageName","MultimediaIOS","webkit","messageHandlers","MultimediaAndroid","postMessage","setHorseList","onLoadCallback","cancelUpload","uploadDoneCallback","onUploadStartCallback","uploadStartCallback","uploadProgressCallback","onUploadListCallback","uploadListCallback","changeNameCallback","onChangeNameCallback","itemNames","onDownloadSyncCallback","count","totalCount","renderSideMenu","vetfartable","createReport","createSendSalesData","pedigreeData","fieldManager","createFieldManager","healthStatusManager","createHealthStatusManager","generalTaskPanelsManager","createGeneralTaskPanelsManager","walkerManager","createWalkerManager","showPublicPresentation","getParameterByName","RegExp","exec","decodeURIComponent","link_id","horsePresentationUrl","DataObject","horse_item","logo_file","pedigree_json","AutoCreateTaskPage","showDewormingTypes","reportSettings"],"mappings":"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","file":"static/js/main.976604f3.chunk.js","sourcesContent":["import React, { Component } from \"react\";\r\nimport './HorseCell.css';\r\n\r\nclass HorseCell extends Component {\r\n\r\n onHorseClick = () => {\r\n window.Managers.self.isOneGo = false;\r\n window.Managers.self.editHorseById(this.props.horse.id);\r\n }\r\n\r\n getBottomText = () => {\r\n let showUnderCode = parseInt(window.GlobalData.getItem(window.GlobalData.NAME_STABLE));\r\n switch (showUnderCode) {\r\n case 1: //box or stable number\r\n {\r\n if (window.inUseStables == 'Y') {\r\n if (this.props.horse.BoxName != null && this.props.horse.BoxName != \"\") {\r\n let box = window.DataStorage.boxesAndStables.find(s => s.IDBox == this.props.horse.BoxName);\r\n if (box != null)\r\n return box.BoxName;\r\n }\r\n } else {\r\n if (this.props.horse.StableId != null) {\r\n const stable = window.DataStorage.boxesAndStables.find(s => s.IdStable == this.props.horse.StableId);\r\n if (stable != null) {\r\n return stable.StableName;\r\n }\r\n }\r\n }\r\n }\r\n break;\r\n case 2: //stable and box\r\n {\r\n if (this.props.horse.BoxName != null && this.props.horse.BoxName != \"\") {\r\n let box = window.DataStorage.boxesAndStables.find(s => s.IDBox == this.props.horse.BoxName);\r\n if (box != null) {\r\n return box.StableName + \" - \" + box.BoxName;\r\n }\r\n }\r\n }\r\n break;\r\n case 3: //owner\r\n {\r\n if (this.props.horse.PaperOwner != null && window.Managers.ownersPaper != null) {\r\n let ownerNames = [];\r\n for (let i = 0; i < this.props.horse.PaperOwner.length; i++) {\r\n let o = this.props.horse.PaperOwner[i];\r\n if (window.Managers.ownersPaper[o] != null) {\r\n ownerNames.push(window.Managers.ownersPaper[o].Name);\r\n }\r\n }\r\n return ownerNames.join(',');\r\n }\r\n }\r\n break;\r\n case 4: //stable and owner\r\n {\r\n let text = '';\r\n if (this.props.horse.BoxName != null && this.props.horse.BoxName != \"\") {\r\n let box = window.DataStorage.boxesAndStables.find(s => s.IDBox == this.props.horse.BoxName);\r\n if (box != null) {\r\n return box.StableName;\r\n }\r\n }\r\n\r\n if (this.props.horse.PaperOwner != null && window.Managers.ownersPaper != null) {\r\n let ownerNames = [];\r\n for (let i = 0; i < this.props.horse.PaperOwner.length; i++) {\r\n let o = this.props.horse.PaperOwner[i];\r\n if (window.Managers.ownersPaper[o] != null) {\r\n ownerNames.push(window.Managers.ownersPaper[o].Name);\r\n }\r\n }\r\n if (ownerNames.length != 0) {\r\n if (text != '')\r\n text += \"-\";\r\n text += ownerNames.join(',');\r\n }\r\n }\r\n\r\n return text;\r\n }\r\n break;\r\n case 5: //horse type\r\n {\r\n if (window.DataStorage.horseTypes != null && this.props.horse.HorseType != null) {\r\n let hType = window.DataStorage.horseTypes.find(t => t.ID == this.props.horse.HorseType);\r\n if (hType != null) {\r\n return hType.Name;\r\n }\r\n }\r\n }\r\n break;\r\n }\r\n return \" \";\r\n }\r\n\r\n render() {\r\n const { horse } = this.props;\r\n const showImage = window.GlobalData.getItem(window.GlobalData.SHOW_HORSELOGO) == 1;\r\n const showNotes = window.GlobalData.getItem(window.GlobalData.SHOW_NOTAT_HORSE) == 1;\r\n const showStar = window.GlobalData.getItem(window.GlobalData.SHOW_NOTAT_HORSE) == '*';\r\n\r\n const horseLogo = horse.LogoFile != null ? horse.LogoFile.split('.jpg')[0] + '-thumb.jpg' : '';\r\n const logoImage = horse.LogoFile != null ? `url('${window.DataGate.baseurl + horseLogo}')` : `url('img/horselogo.png')`;\r\n const bottomText = this.getBottomText();\r\n\r\n let horseName = horse.name;\r\n if (showStar && horse.notes) {\r\n horseName = '*' + horseName;\r\n }\r\n\r\n return (\r\n
\r\n {showImage &&\r\n
\r\n
\r\n }\r\n
\r\n
{showNotes ? horse.notes : \" \"}
\r\n
{horseName}
\r\n
{bottomText}
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default HorseCell;","export default class TrainingCellMap {\r\n static ORDER_BY_ALPHABETIC = 1;\r\n static ORDER_BY_TIME_ALPHABETIC = 2;\r\n static ORDER_BY_TIME_TOP_COMPACT = 3;\r\n static ORDER_BY_TIME_TOP = 4;\r\n static ORDER_BY_ALPHABETIC_COMPACT = 5;\r\n\r\n constructor() {\r\n this.map = {};\r\n this.maxColumnCompactMap = {};\r\n this.orderBy = this.ORDER_BY_ALPHABETIC;\r\n }\r\n\r\n refreshMap(dates, trainingArray) {\r\n this.map = {};\r\n this.maxColumnCompactMap = {};\r\n\r\n this.myTrainingTypes = window.DataStorage.trainTypes.filter(t => t.owner == window.myid);\r\n this.myTrainingTypes = this.myTrainingTypes.sort(function (t1, t2) {\r\n return t1.orderC - t2.orderC;\r\n });\r\n\r\n this.orderBy = parseInt(window.GlobalData.getItem(window.GlobalData.ORDER_BY));\r\n switch (this.orderBy) {\r\n case TrainingCellMap.ORDER_BY_ALPHABETIC:\r\n case TrainingCellMap.ORDER_BY_ALPHABETIC_COMPACT:\r\n {\r\n\r\n\r\n for (let dateIndex = 0; dateIndex < dates.length; dateIndex++) {\r\n\r\n //build columns for each day\r\n let columns = [];\r\n let taskArray = trainingArray.filter(t => t.starttime == dates[dateIndex]);\r\n for (let i = 0; i < taskArray.length; i++) {\r\n let task = taskArray[i];\r\n let column = columns.find(c => c.shortname == task.shortname);\r\n if (column == null) {\r\n column = {\r\n shortname: task.shortname,\r\n typeIds: [task.type]\r\n };\r\n columns.push(column);\r\n } else {\r\n if (column.typeIds.indexOf(task.type) == -1) {\r\n column.typeIds.push(task.type);\r\n }\r\n }\r\n }\r\n\r\n //sort columns\r\n columns = columns.sort(this.orderComparatorByTrainingType);\r\n\r\n this.map[dates[dateIndex]] = {\r\n date: dates[dateIndex],\r\n columns: columns\r\n };\r\n }\r\n }\r\n break;\r\n\r\n case TrainingCellMap.ORDER_BY_TIME_TOP:\r\n case TrainingCellMap.ORDER_BY_TIME_ALPHABETIC:\r\n case TrainingCellMap.ORDER_BY_TIME_TOP_COMPACT:\r\n {\r\n for (let dateIndex = 0; dateIndex < dates.length; dateIndex++) {\r\n\r\n //build columns for each day\r\n let columns = [];\r\n let columnsByType = [];\r\n let taskArray = trainingArray.filter(t => t.starttime == dates[dateIndex]);\r\n for (let i = 0; i < taskArray.length; i++) {\r\n let task = taskArray[i];\r\n if (task.TimeOfDay != null && task.TimeOfDay != \"\") {\r\n let column = columns.find(c => c.TimeOfDay == task.TimeOfDay);\r\n if (column == null) {\r\n columns.push({\r\n TimeOfDay: task.TimeOfDay,\r\n shortname: task.shortname,\r\n isTimeColumn: true\r\n });\r\n } else {\r\n }\r\n } else {\r\n let column = columnsByType.find(c => c.shortname == task.shortname);\r\n if (column == null) {\r\n columnsByType.push({\r\n shortname: task.shortname,\r\n isTimeColumn: false\r\n });\r\n }\r\n }\r\n }\r\n\r\n //sort columns\r\n columns = columns.sort(function (c1, c2) {\r\n return (c1.TimeOfDay > c2.TimeOfDay) ? 1 : -1;\r\n });\r\n\r\n columnsByType = columnsByType.sort(this.orderComparatorByTrainingType);\r\n\r\n //add columns without time\r\n columns = [...columns, ...columnsByType];\r\n\r\n this.map[dates[dateIndex]] = {\r\n date: dates[dateIndex],\r\n columns: columns\r\n };\r\n }\r\n }\r\n break;\r\n }\r\n\r\n\r\n if (this.orderBy == TrainingCellMap.ORDER_BY_ALPHABETIC_COMPACT) {\r\n for (let dateIndex = 0; dateIndex < dates.length; dateIndex++) { //calc columns for each day\r\n let taskArray = trainingArray.filter(t => t.starttime == dates[dateIndex]);\r\n let byHorseCols = {};\r\n let trainerCols = {};\r\n for (let i = 0; i < taskArray.length; i++) {\r\n let task = taskArray[i];\r\n if (byHorseCols[task.horseid] == null) {\r\n byHorseCols[task.horseid] = { snames: [task.shortname] };\r\n } else {\r\n if (byHorseCols[task.horseid].snames.indexOf(task.shortname) == -1) {\r\n byHorseCols[task.horseid].snames.push(task.shortname);\r\n }\r\n }\r\n }\r\n\r\n if (window.training.mode == window.TrainingManager.riderStatic || window.training.mode == window.TrainingManager.riderStaticAndEquipment) {\r\n for (let i in byHorseCols) {\r\n let horse = window.DataStorage.getAllHorses().find(j => j.id == i);\r\n if (horse) {\r\n if (trainerCols[horse.trainer]) {\r\n if (trainerCols[horse.trainer].columns < byHorseCols[i].snames.length)\r\n trainerCols[horse.trainer].columns = byHorseCols[i].snames.length;\r\n }\r\n else {\r\n trainerCols[horse.trainer] = { columns: byHorseCols[i].snames.length };\r\n }\r\n }\r\n }\r\n this.maxColumnCompactMap[dates[dateIndex]] = trainerCols;\r\n } else {\r\n let maxColumnCount = Math.max(...Object.values(byHorseCols).map(c => c.snames.length), 1);\r\n this.maxColumnCompactMap[dates[dateIndex]] = maxColumnCount;\r\n }\r\n }\r\n }\r\n\r\n if (this.orderBy == TrainingCellMap.ORDER_BY_TIME_TOP_COMPACT) {\r\n for (let dateIndex = 0; dateIndex < dates.length; dateIndex++) { //calc columns for each day\r\n let taskArray = trainingArray.filter(t => t.starttime == dates[dateIndex]);\r\n let byHorseCols = {};\r\n let trainerCols = {};\r\n for (let i = 0; i < taskArray.length; i++) {\r\n let task = taskArray[i];\r\n let colName = (task.TimeOfDay != null && task.TimeOfDay != \"\") ? task.TimeOfDay : task.shortname;\r\n if (byHorseCols[task.horseid] == null) {\r\n byHorseCols[task.horseid] = [colName];\r\n } else {\r\n if (byHorseCols[task.horseid].indexOf(colName) == -1) {\r\n byHorseCols[task.horseid].push(colName);\r\n }\r\n }\r\n }\r\n\r\n if (window.training.mode == window.TrainingManager.riderStatic || window.training.mode == window.TrainingManager.riderStaticAndEquipment) {\r\n for (let i in byHorseCols) {\r\n let horse = window.DataStorage.getAllHorses().find(j => j.id == i);\r\n if (horse) {\r\n if (trainerCols[horse.trainer]) {\r\n if (trainerCols[horse.trainer].columns < byHorseCols[i].length)\r\n trainerCols[horse.trainer].columns = byHorseCols[i].length;\r\n }\r\n else {\r\n trainerCols[horse.trainer] = { columns: byHorseCols[i].length };\r\n }\r\n }\r\n }\r\n this.maxColumnCompactMap[dates[dateIndex]] = trainerCols;\r\n } else {\r\n let maxColumnCount = Math.max(...Object.values(byHorseCols).map(c => c.length), 1);\r\n this.maxColumnCompactMap[dates[dateIndex]] = maxColumnCount;\r\n }\r\n }\r\n }\r\n }\r\n\r\n orderComparatorByTrainingType = (c1, c2) => {\r\n let t1 = this.myTrainingTypes.find(t => t.shortname == c1.shortname);\r\n let t2 = this.myTrainingTypes.find(t => t.shortname == c2.shortname);\r\n if (t1 != null && t2 != null) {\r\n return (t1.orderC > t2.orderC) ? 1 : -1;\r\n }\r\n return (c1.shortname > c2.shortname) ? 1 : -1;\r\n }\r\n\r\n sortHorsesBySelectedDate = (horseArr, orderDate, getTrainingsForDay) => {\r\n switch (this.orderBy) {\r\n case TrainingCellMap.ORDER_BY_ALPHABETIC:\r\n case TrainingCellMap.ORDER_BY_ALPHABETIC_COMPACT:\r\n horseArr = horseArr.sort((h1, h2) => {\r\n let trainingsH1 = getTrainingsForDay(h1, orderDate);\r\n let trainingsH2 = getTrainingsForDay(h2, orderDate);\r\n let trainingColums = this.map[orderDate].columns;\r\n for (let ci = 0; ci < trainingColums.length; ci++) {\r\n let ct1 = trainingsH1.find(t => t.shortname == trainingColums[ci].shortname);\r\n let ct2 = trainingsH2.find(t => t.shortname == trainingColums[ci].shortname);\r\n if (ct1 != null && ct2 == null)\r\n return -1;\r\n if (ct1 == null && ct2 != null)\r\n return 1;\r\n }\r\n return 0;\r\n });\r\n break;\r\n\r\n case TrainingCellMap.ORDER_BY_TIME_TOP:\r\n case TrainingCellMap.ORDER_BY_TIME_ALPHABETIC:\r\n case TrainingCellMap.ORDER_BY_TIME_TOP_COMPACT:\r\n horseArr = horseArr.sort((h1, h2) => {\r\n let trainingsH1 = getTrainingsForDay(h1, orderDate);\r\n let trainingsH2 = getTrainingsForDay(h2, orderDate);\r\n let trainingColums = this.map[orderDate].columns;\r\n for (let ci = 0; ci < trainingColums.length; ci++) {\r\n if (trainingColums[ci].isTimeColumn) {\r\n let ct1 = trainingsH1.find(t => t.TimeOfDay == trainingColums[ci].TimeOfDay);\r\n let ct2 = trainingsH2.find(t => t.TimeOfDay == trainingColums[ci].TimeOfDay);\r\n if (ct1 != null && ct2 == null)\r\n return -1;\r\n if (ct1 == null && ct2 != null)\r\n return 1;\r\n\r\n //if both have training, then order by type\r\n if (ct1 != null && ct2 != null) {\r\n let myttype1 = this.myTrainingTypes.find(type => type.id == ct1.type);\r\n let myttype2 = this.myTrainingTypes.find(type => type.id == ct2.type);\r\n if (myttype1 != null && myttype2 != null)\r\n return myttype1.OrderC - myttype2.OrderC;\r\n }\r\n } else {\r\n let ct1 = trainingsH1.find(t => t.shortname == trainingColums[ci].shortname);\r\n let ct2 = trainingsH2.find(t => t.shortname == trainingColums[ci].shortname);\r\n if (ct1 != null && ct2 == null)\r\n return -1;\r\n if (ct1 == null && ct2 != null)\r\n return 1;\r\n }\r\n }\r\n return trainingsH2.length - trainingsH1.length;\r\n });\r\n break;\r\n }\r\n\r\n return horseArr;\r\n }\r\n}","import React, { Component } from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport \"./CopyTaskPopup.css\";\r\n\r\nclass CopyTaskV2 extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n task: null,\r\n selectFreqOptions: [],\r\n frequencyId: 0,\r\n isCopyOnSunday: false,\r\n isCopyOnMonday: false,\r\n isCopyOnTuesday: false,\r\n isCopyOnWednesday: false,\r\n isCopyOnThursday: false,\r\n isCopyOnFriday: false,\r\n isCopyOnSaterday: false,\r\n };\r\n }\r\n\r\n componentDidMount = () => {\r\n this.loadData();\r\n };\r\n\r\n loadData = () => {\r\n console.log(this.props.trainingItem);\r\n var daysToCopy = this.props.trainingItem.DaysToCopy;\r\n if (daysToCopy != null) this.setDaysToCopyFromProps(daysToCopy);\r\n\r\n this.setState({\r\n selectFreqOptions: [\r\n {\r\n id: 0,\r\n name: \"For ever\",\r\n },\r\n {\r\n id: 1,\r\n name: window.lang.week1,\r\n },\r\n {\r\n id: 2,\r\n name: window.lang.week2,\r\n },\r\n {\r\n id: 3,\r\n name: window.lang.week3,\r\n },\r\n {\r\n id: 4,\r\n name: window.lang.week4,\r\n },\r\n {\r\n id: 5,\r\n name: window.lang.week5,\r\n },\r\n {\r\n id: 6,\r\n name: window.lang.week6,\r\n },\r\n {\r\n id: 7,\r\n name: window.lang.week7,\r\n },\r\n {\r\n id: 8,\r\n name: window.lang.week8,\r\n },\r\n {\r\n id: 9,\r\n name: window.lang.week9,\r\n },\r\n {\r\n id: 10,\r\n name: window.lang.week10,\r\n },\r\n {\r\n id: 11,\r\n name: window.lang.week11,\r\n },\r\n {\r\n id: 12,\r\n name: window.lang.week12,\r\n },\r\n ],\r\n frequencyId: this.props.trainingItem.CopyDuration,\r\n task: this.props.trainingItem,\r\n });\r\n };\r\n\r\n setDaysToCopyFromProps = (daysToCopy) => {\r\n daysToCopy = daysToCopy.substring(0, daysToCopy.length - 1);\r\n var daysToCopyArr = daysToCopy.split(\"/\");\r\n for (const i in daysToCopyArr) {\r\n switch (daysToCopyArr[i]) {\r\n case \"0\":\r\n this.state.isCopyOnSunday = true;\r\n break;\r\n case \"1\":\r\n this.state.isCopyOnMonday = true;\r\n break;\r\n case \"2\":\r\n this.state.isCopyOnTuesday = true;\r\n break;\r\n case \"3\":\r\n this.state.isCopyOnWednesday = true;\r\n break;\r\n case \"4\":\r\n this.state.isCopyOnThursday = true;\r\n break;\r\n case \"5\":\r\n this.state.isCopyOnFriday = true;\r\n break;\r\n case \"6\":\r\n this.state.isCopyOnSaterday = true;\r\n break;\r\n }\r\n }\r\n };\r\n\r\n onFrequencyChange = (e) => {\r\n this.setState({\r\n frequencyId: parseInt(e.target.value),\r\n });\r\n };\r\n\r\n onCheckboxClick = (e) => {\r\n this.setState({\r\n [e.target.dataset.date]: e.target.checked,\r\n });\r\n };\r\n\r\n onOkClick = () => {\r\n if (this.isCopyRuning) return;\r\n this.isCopyRuning = true;\r\n\r\n let daysToCopy = \"\";\r\n if (this.state.isCopyOnSunday) daysToCopy += \"0/\";\r\n if (this.state.isCopyOnMonday) daysToCopy += \"1/\";\r\n if (this.state.isCopyOnTuesday) daysToCopy += \"2/\";\r\n if (this.state.isCopyOnWednesday) daysToCopy += \"3/\";\r\n if (this.state.isCopyOnThursday) daysToCopy += \"4/\";\r\n if (this.state.isCopyOnFriday) daysToCopy += \"5/\";\r\n if (this.state.isCopyOnSaterday) daysToCopy += \"6/\";\r\n\r\n if (this.state.frequencyId == null) this.state.frequencyId = 0;\r\n\r\n let trainingItem = this.state.task;\r\n trainingItem.CopyDuration = this.state.frequencyId;\r\n trainingItem.DaysToCopy = daysToCopy;\r\n trainingItem.GroupId = trainingItem.id;\r\n trainingItem.TrainingFlag = window.DataStorage.TrainingFlagUpdate;\r\n window.DataStorage.addTraining(trainingItem);\r\n\r\n window.training.refresh({ showSpinner: true });\r\n window.DataGate.copyTraining(\r\n this.state.task.id,\r\n this.state.frequencyId,\r\n daysToCopy,\r\n (code, data) => {\r\n //window.training.refresh({ showSpinner: false });\r\n this.isCopyRuning = false;\r\n this.onCancelClick();\r\n if (this.props.doneCallback) this.props.doneCallback();\r\n window.training.refresh();\r\n }\r\n );\r\n };\r\n\r\n onCancelClick = () => {\r\n ReactDOM.unmountComponentAtNode(document.getElementById(\"tsWeekDivReact\"));\r\n };\r\n\r\n onRemoveRepetitionClick = () => {\r\n window.training.refresh({ showSpinner: true });\r\n window.DataGate.deleteCopyTraining(this.state.task.id, (code, data) => {\r\n this.onCancelClick();\r\n if (this.props.doneCallback) this.props.doneCallback();\r\n window.training.refresh();\r\n });\r\n };\r\n\r\n render = () => {\r\n const {\r\n selectFreqOptions,\r\n frequencyId,\r\n isCopyOnSunday,\r\n isCopyOnMonday,\r\n isCopyOnTuesday,\r\n isCopyOnWednesday,\r\n isCopyOnThursday,\r\n isCopyOnFriday,\r\n isCopyOnSaterday,\r\n } = this.state;\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n {window.lang.repeatForEach}\r\n
\r\n \r\n {selectFreqOptions.map((currentElement, index) => (\r\n \r\n {currentElement.name}\r\n \r\n ))}\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n {window.lang.daysNames[0]}\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n {window.lang.daysNames[1]}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {window.lang.daysNames[2]}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {window.lang.daysNames[3]}\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n {window.lang.daysNames[4]}\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n {window.lang.daysNames[5]}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {window.lang.daysNames[6]}\r\n \r\n \r\n
\r\n
\r\n \r\n {window.lang.ok}\r\n \r\n \r\n {window.lang.cancel2}\r\n \r\n \r\n {window.lang.removeRepetition}\r\n \r\n
\r\n
\r\n
\r\n );\r\n };\r\n}\r\n\r\nexport default class CopyTaskWindow {\r\n showWindow(trainingItem, doneCallback) {\r\n ReactDOM.render(\r\n ,\r\n document.getElementById(\"tsWeekDivReact\")\r\n );\r\n }\r\n}\r\n","import React, { Component } from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport './ReminderSelectWindow.css';\r\n\r\nexport default class ReminderSelect extends Component {\r\n constructor() {\r\n super();\r\n\r\n this.state = {\r\n reminderList: [\r\n { id: 0, name: window.lang.reminder_No },\r\n { id: 1, name: window.lang.reminder_SameDay },\r\n { id: 2, name: window.lang.reminder_1_dayBefore },\r\n { id: 3, name: window.lang.reminder_2_dayBefore },\r\n { id: 4, name: window.lang.reminder_3_dayBefore },\r\n { id: 5, name: window.lang.reminder_4_dayBefore },\r\n { id: 6, name: window.lang.reminder_5_dayBefore },\r\n { id: 7, name: window.lang.reminder_6_dayBefore },\r\n { id: 8, name: window.lang.reminder_7_dayBefore }\r\n ]\r\n };\r\n }\r\n\r\n onItemClick = (item) => {\r\n this.props.onSelect(item.id);\r\n }\r\n\r\n render() {\r\n const { reminderList } = this.state;\r\n return (\r\n
\r\n \r\n
\r\n );\r\n }\r\n}","import { Capacitor } from \"@capacitor/core\";\r\nimport React, { Component } from \"react\";\r\n\r\nexport default class SelectTimePopup extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n timeValue: props.value,\r\n isCustomTime: false,\r\n };\r\n }\r\n\r\n componentDidMount = () => {\r\n let times = window.DataStorage.allUserTimeOfDay;\r\n if (times.findIndex((i) => i.ShortName == this.state.timeValue) == -1)\r\n this.setState({\r\n isCustomTime: true,\r\n });\r\n };\r\n\r\n onTimeSelect = (e) => {\r\n this.setState({\r\n timeValue: e.target.value,\r\n });\r\n };\r\n\r\n onCustomTimeChanged = (e) => {\r\n this.setState({\r\n isCustomTime: e.target.checked,\r\n });\r\n };\r\n\r\n onOkClick = () => {\r\n this.props.onTimeChange(this.state.timeValue);\r\n };\r\n getCurrentTime() {\r\n const now = new Date();\r\n let hours = now.getHours();\r\n let minutes = now.getMinutes();\r\n\r\n hours = hours.toString().padStart(2, \"0\");\r\n minutes = minutes.toString().padStart(2, \"0\");\r\n\r\n return hours + \":\" + minutes;\r\n }\r\n onSetCurrentTimeClick = () => {\r\n this.props.onTimeChange(this.getCurrentTime());\r\n };\r\n\r\n render() {\r\n const times = window.DataStorage.allUserTimeOfDay;\r\n return (\r\n
\r\n
\r\n {!this.state.isCustomTime ? (\r\n \r\n {times.map((t) => (\r\n \r\n ))}\r\n \r\n ) : (\r\n
\r\n \r\n {Capacitor.getPlatform() == \"ios\" &&\r\n this.state.timeValue != \"\" && (\r\n {\r\n this.setState({\r\n timeValue: \"\",\r\n });\r\n }}\r\n >\r\n x\r\n
\r\n )}\r\n
\r\n )}\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n {window.lang.setCurrentTime}\r\n \r\n
\r\n \r\n {window.lang.ok}\r\n \r\n \r\n {window.lang.cancel}\r\n \r\n
\r\n \r\n );\r\n }\r\n}\r\n","import { Directory, Filesystem } from \"@capacitor/filesystem\";\r\nimport MultimediaMobileHelper from \"./MultimediaMobileHelper\";\r\nimport { Share } from \"@capacitor/share\";\r\nimport JSZip, { files } from \"jszip\";\r\nimport { FileChunkReader } from \"capacitor-file-chunk-reader\";\r\nimport { random } from \"lodash\";\r\nimport { Capacitor } from \"@capacitor/core\";\r\nimport { BlobServiceClient } from \"@azure/storage-blob\";\r\nimport { saveAs } from \"file-saver\";\r\nimport { VideoEditor } from \"@whiteguru/capacitor-plugin-video-editor\";\r\nexport default class MultimediaHelper {\r\n static DropboxToken =\r\n \"HqmkA9nKm0wAAAAAAADLWpj-stRJN_4JyfLxtRoZD-Rzpjyz9nnuI_CMbkRkOoSk\";\r\n\r\n static sasToken =\r\n \"sv=2022-11-02&ss=b&srt=sco&sp=rwdlactfx&se=2030-07-05T19:59:33Z&st=2024-07-05T11:59:33Z&spr=https,http&sig=5GboONytsEL8EyTgy1htKc4lsUNbrSNQauJ%2B2Hi9VlE%3D\";\r\n static accountName = \"eqappdata\";\r\n static FOLDER_MULTIMEDIA = \"multimedia\";\r\n static FOLDER_RESULT = \"result\";\r\n static FOLDER_NOTES = \"notes\";\r\n static FOLDER_EXTRA_NOTES = \"textnote\";\r\n static FOLDER_TASK = \"task\";\r\n static FOLDER_GENERAL_TASK = \"generalTask\";\r\n static FOLDER_OTHER = \"other\";\r\n\r\n static TYPE_IMAGE = 1;\r\n static TYPE_VIDEO = 2;\r\n static TYPE_YOUTUBE = 3;\r\n static TYPE_PDF = 4;\r\n\r\n static downloadZip = async (fileUrls) => {\r\n const zip = new JSZip();\r\n\r\n const fetchFile = async (url) => {\r\n const response = await fetch(url);\r\n if (!response.ok) {\r\n throw new Error(`Failed to fetch ${url}`);\r\n }\r\n return response.blob();\r\n };\r\n\r\n const promises = fileUrls.map(async (item) => {\r\n const blob = await fetchFile(item.url);\r\n const fileName = item.name;\r\n zip.file(fileName, blob);\r\n });\r\n\r\n try {\r\n await Promise.all(promises);\r\n const content = await zip.generateAsync({ type: \"blob\" });\r\n saveAs(content, \"files.zip\");\r\n } catch (error) {\r\n console.error(\"Error creating zip file:\", error);\r\n }\r\n };\r\n static downloadFilesOneByOne = async (images) => {\r\n const fetchImage = async (image) => {\r\n const response = await fetch(image.url);\r\n if (!response.ok) {\r\n throw new Error(`Failed to fetch ${image.url}`);\r\n }\r\n const blob = await response.blob();\r\n return { blob, name: image.name }; // Extract the file name from the URL\r\n };\r\n\r\n try {\r\n const promises = images.map(fetchImage);\r\n const fetchedImages = await Promise.all(promises);\r\n\r\n fetchedImages.forEach(({ blob, name }) => {\r\n saveAs(blob, name);\r\n });\r\n } catch (error) {\r\n console.error(\"Error downloading images:\", error);\r\n }\r\n };\r\n\r\n constructor() {\r\n // queue elements to be uploaded\r\n this.uploadQueue = [];\r\n this.isUploading = false;\r\n this.urisToShare = [];\r\n this.id = random(true) * 50;\r\n\r\n this.dropbox = new window.Dropbox.Dropbox({\r\n accessToken: MultimediaHelper.DropboxToken,\r\n });\r\n\r\n if (!MultimediaHelper.sasToken || !MultimediaHelper.accountName) {\r\n console.error(\"Azure Storage SAS token or account name not found\");\r\n return;\r\n }\r\n\r\n this.blobServiceClient = new BlobServiceClient(\r\n `https://${MultimediaHelper.accountName}.blob.core.windows.net?${MultimediaHelper.sasToken}`\r\n );\r\n }\r\n\r\n handleCreateContainer = async (containerName) => {\r\n try {\r\n this.containerClient =\r\n this.blobServiceClient.getContainerClient(containerName);\r\n await this.containerClient.create();\r\n console.log(`Container \"${containerName}\" created successfully.`);\r\n } catch (error) {\r\n console.error(`Error creating container: ${error.message}`);\r\n }\r\n };\r\n\r\n listBlobsWithProperties = async (containerName) => {\r\n const containerClient =\r\n this.blobServiceClient.getContainerClient(containerName);\r\n\r\n let blobs = [];\r\n for await (const blob of containerClient.listBlobsFlat()) {\r\n const blockBlobClient = containerClient.getBlockBlobClient(blob.name);\r\n const properties = await blockBlobClient.getProperties();\r\n\r\n const url = `https://${MultimediaHelper.accountName}.blob.core.windows.net/${containerName}/${blob.name}?${MultimediaHelper.sasToken}`;\r\n blobs.push({\r\n name: blob.name,\r\n size: properties.contentLength,\r\n lastModifiedDate: properties.lastModified,\r\n url: url,\r\n });\r\n }\r\n\r\n return blobs;\r\n };\r\n\r\n listFilesInContainer = async (containerName) => {\r\n this.containerClient =\r\n this.blobServiceClient.getContainerClient(containerName);\r\n let blobItems = [];\r\n for await (const blob of this.containerClient.listBlobsFlat()) {\r\n if (blob.name.length > 1024) {\r\n throw new Error(\r\n `Blob name \"${blob.name}\" exceeds the maximum length of 1024 characters.`\r\n );\r\n }\r\n const blobUrl = this.containerClient.getBlobClient(blob.name).url;\r\n blobItems.push({ name: blob.name, url: blobUrl });\r\n }\r\n return blobItems;\r\n };\r\n\r\n /**\r\n * Function to remove an element from the queue upload queue.\r\n *\r\n * @param name The name of the file to be removed\r\n * @param target_origin The location.href of the file to be removed.\r\n */\r\n\r\n removeElementFromUploadQueue(name, target_origin) {\r\n this.uploadQueue = this.uploadQueue.filter(\r\n (el) => el.fileName != name || el.request_origin != target_origin\r\n );\r\n }\r\n\r\n /**\r\n * Function called when Android/IOS wrappers finish uploading one photo from the upload queueu\r\n * @param file_name the name of the file finished uploading\r\n * @param target_request the location.href of the upload item\r\n * @param dbxPath the path_display of the uplaod element, used to reconstruct the element from database\r\n */\r\n onUploadDoneCallback(file_name, target_request, dbxPath) {\r\n let x = this.uploadQueue.find(\r\n (el) => el.fileName == file_name && el.request_origin == target_request\r\n );\r\n if (!x) return;\r\n let dbxItem = { path_display: dbxPath, name: file_name };\r\n console.log(\"OK\");\r\n dbxItem.type = MultimediaHelper.getTypeItem(dbxItem.fileName);\r\n\r\n const encodedFileName = encodeURIComponent(dbxItem.fileName);\r\n const url = `https://${MultimediaHelper.accountName}.blob.core.windows.net/${dbxItem.container}/${encodedFileName}?${MultimediaHelper.sasToken}`;\r\n\r\n dbxItem.path_display = dbxItem.fileName;\r\n dbxItem.fullUrl = url;\r\n dbxItem.thumbUrl = url;\r\n dbxItem.imageUrl = url;\r\n console.log(dbxItem);\r\n this.removeElementFromUploadQueue(file_name, target_request);\r\n this.finishCallback(target_request, file_name, dbxItem);\r\n }\r\n onUploadProgressCallback(file_name, percent, target_request) {\r\n let x = this.uploadQueue.find(\r\n (el) => el.fileName == file_name && el.request_origin == target_request\r\n );\r\n x.file.progress = percent;\r\n this.refreshUploadQueue();\r\n }\r\n\r\n /**\r\n * A function that adds elements\r\n * @description A callback function used by xamarin to add data to the uploadQueue.\r\n */\r\n\r\n async addDataToUploadQueue(fileName, imageUrl, isImage, target_origin) {\r\n const res = await fetch(imageUrl);\r\n const blob = await res.blob();\r\n this.uploadQueue.push({\r\n request_origin: target_origin,\r\n path: this.path,\r\n fileName: fileName,\r\n file: {\r\n actual_image: new File([blob], fileName, { type: \"image/png\" }),\r\n fileName: fileName,\r\n imageUrl: imageUrl,\r\n progress: 0,\r\n type:\r\n isImage == \"True\"\r\n ? MultimediaHelper.TYPE_IMAGE\r\n : MultimediaHelper.TYPE_VIDEO,\r\n },\r\n });\r\n this.refreshUploadQueue();\r\n // if (this.isUploading) return;\r\n // this.isUploading = true;\r\n // this.startUploadQueueElements();\r\n }\r\n /**\r\n * Setter for the current multimedia session.\r\n */\r\n setCurrentSettings(\r\n type,\r\n horseId,\r\n userId,\r\n multimediaPage,\r\n noteOrTaskId,\r\n refreshUploadQueue\r\n ) {\r\n this.type = type;\r\n this.horseId = horseId;\r\n this.userId = userId;\r\n this.multimediaPage = multimediaPage;\r\n this.noteOrTaskId = noteOrTaskId;\r\n this.dropbox = new window.Dropbox.Dropbox({\r\n accessToken: MultimediaHelper.DropboxToken,\r\n });\r\n this.refreshUploadQueue = refreshUploadQueue;\r\n // queue elements to be uploaded\r\n }\r\n setRefreshCallback(callback) {\r\n this.refreshUploadQueue = callback;\r\n }\r\n\r\n blobToBase64(blob) {\r\n return new Promise((resolve, _) => {\r\n const reader = new FileReader();\r\n reader.onloadend = () => resolve(reader.result);\r\n reader.readAsDataURL(blob);\r\n });\r\n }\r\n\r\n mimeToExtension(mimeType) {\r\n const mimeMap = {\r\n \"image/jpeg\": \"jpg\",\r\n \"image/png\": \"png\",\r\n \"image/gif\": \"gif\",\r\n \"application/pdf\": \"pdf\",\r\n // Add other mappings as needed\r\n };\r\n return mimeMap[mimeType] || \"\"; // Return empty string if not found\r\n }\r\n\r\n shareItems = async (items, text) => {\r\n const promises = items.map(async (item) => {\r\n const { url } = item;\r\n const response = await fetch(url);\r\n const blob = await response.blob();\r\n const mimeType = blob.type;\r\n const extension = mimeType.split(\"/\")[1];\r\n const base64Data = await this.blobToBase64(blob);\r\n let fileName = item.name;\r\n if (!fileName.includes(\".\")) {\r\n fileName += `.${extension}`;\r\n }\r\n const savedFile = await Filesystem.writeFile({\r\n path: fileName,\r\n data: base64Data,\r\n directory: Directory.Cache,\r\n });\r\n return savedFile.uri;\r\n });\r\n\r\n const localFiles = await Promise.all(promises);\r\n await Share.share({\r\n title: \"Share files\",\r\n text: text || \"\",\r\n files: localFiles,\r\n dialogTitle: \"Share with\",\r\n });\r\n window.Sprinner.hide();\r\n };\r\n\r\n /**\r\n * Setter for the callback function\r\n * @param {Function<>()} finishCallback The new finish callback function\r\n */\r\n setFinishCallback(finishCallback) {\r\n this.finishCallback = finishCallback;\r\n }\r\n\r\n /**\r\n * Setter for the progress callback function\r\n * @param {Function<>()} progressCallback The new progress callback function\r\n */\r\n setProgressCallback(progressCallback) {\r\n this.progressCallback = progressCallback;\r\n }\r\n\r\n /**\r\n * A function that adds files to the upload queue.\r\n *\r\n * @param {string} request_origin The location.href from which the files were added.\r\n * @param {Array} files List of files to be added to the upload queue.\r\n */\r\n addToUploadQueue(request_origin, files, static_path) {\r\n console.log(this.path);\r\n this.uploadQueue.push(\r\n ...files.map((file) => {\r\n return { file, request_origin, path: static_path ?? this.path };\r\n })\r\n );\r\n if (this.isUploading) return;\r\n this.isUploading = true;\r\n this.startUploadQueueElements();\r\n }\r\n\r\n /**\r\n * A function that takes all the elements from the queue, uploads them and calls the respective callbacks.\r\n */\r\n startUploadQueueElements = async () => {\r\n if (this.uploadQueue.length <= 0) {\r\n this.isUploading = false;\r\n return;\r\n }\r\n\r\n let el = { ...this.uploadQueue[0] };\r\n\r\n this._uploadWthSingleRequest(\r\n el.file,\r\n async (dbxItem) => {\r\n if (dbxItem == null) {\r\n this.finishCallback(el.file.fileName, null);\r\n } else {\r\n console.log(dbxItem.fileName);\r\n dbxItem.path_display = dbxItem.fileName;\r\n dbxItem.type = MultimediaHelper.getTypeItem(dbxItem);\r\n\r\n // const url = dbxItem.url;\r\n const encodedFileName = encodeURIComponent(dbxItem.fileName);\r\n const url = `https://${MultimediaHelper.accountName}.blob.core.windows.net/${dbxItem.container}/${encodedFileName}?${MultimediaHelper.sasToken}`;\r\n\r\n dbxItem.path_display = dbxItem.fileName;\r\n dbxItem.fullUrl = url;\r\n dbxItem.thumbUrl =\r\n MultimediaHelper.getTypeItem(dbxItem) ===\r\n MultimediaHelper.TYPE_VIDEO\r\n ? await this.generateThumbnail(url)\r\n : url;\r\n dbxItem.imageUrl = url;\r\n dbxItem.name = dbxItem.fileName;\r\n this.uploadQueue.shift();\r\n this.finishCallback(el.request_origin, dbxItem.fileName, dbxItem);\r\n this.startUploadQueueElements();\r\n // this.dropbox\r\n // .filesGetThumbnail({\r\n // path: dbxItem.path_display,\r\n // size: \"w480h320\",\r\n // })\r\n // .then((response) => {\r\n // let url = window.URL.createObjectURL(response.fileBlob);\r\n // dbxItem.thumbUrl = url;\r\n\r\n // this.uploadQueue.shift();\r\n // this.finishCallback(el.request_origin, el.file.fileName, dbxItem);\r\n // this.startUploadQueueElements();\r\n // })\r\n // .catch((error) => {\r\n // dbxItem.thumbUrl = \"\";\r\n\r\n // this.uploadQueue.shift();\r\n // this.finishCallback(el.request_origin, el.file.fileName, dbxItem);\r\n // this.startUploadQueueElements();\r\n // });\r\n }\r\n },\r\n el.request_origin,\r\n el.path\r\n );\r\n };\r\n\r\n /**\r\n * A function that returns all the elements in the upload queue such that the origin or the items matches the origin of the requester.\r\n * @param {string} request_origin The location.href of the page that requested the upload list.\r\n *\r\n * @returns a list of items from upload list that match the requester's origin.\r\n */\r\n loadUploadQueue = (request_origin) => {\r\n return this.uploadQueue.filter((item) =>\r\n item.request_origin.startsWith(request_origin)\r\n );\r\n };\r\n\r\n getPath = (type) => {\r\n switch (type) {\r\n case MultimediaHelper.FOLDER_MULTIMEDIA:\r\n return `${MultimediaHelper.FOLDER_MULTIMEDIA}${this.horseId}`;\r\n case MultimediaHelper.FOLDER_EXTRA_NOTES:\r\n return `${this.type}_${this.noteOrTaskId}`;\r\n case MultimediaHelper.FOLDER_TASK:\r\n let horse = window.DataStorage.getAllHorses().find(\r\n (h) => h.id == this.horseId\r\n );\r\n return `${this.type}=${horse.userid}-${this.noteOrTaskId}`;\r\n\r\n case MultimediaHelper.FOLDER_GENERAL_TASK:\r\n return `${this.type}=${this.noteOrTaskId}`;\r\n\r\n default:\r\n return `${this.type}-${this.horseId}`;\r\n }\r\n };\r\n\r\n loadList = (request_origin, callback, type) => {\r\n this.loadCallback = callback;\r\n this.path = this.getPath(type).toLowerCase();\r\n this.handleCreateContainer(this.path)\r\n .then((response) => {\r\n if (this.type == MultimediaHelper.FOLDER_MULTIMEDIA) {\r\n this._getListFilesForMultimedia();\r\n } else if (\r\n this.type == MultimediaHelper.FOLDER_TASK &&\r\n this.multimediaPage\r\n ) {\r\n this._getListFilesForTasks();\r\n } else if (\r\n this.type == MultimediaHelper.FOLDER_NOTES &&\r\n this.multimediaPage\r\n ) {\r\n this._getListFilesForNotes();\r\n } else {\r\n this._getListFiles();\r\n }\r\n })\r\n .catch((error) => {\r\n if (this.type == MultimediaHelper.FOLDER_MULTIMEDIA) {\r\n this._getListFilesForMultimedia();\r\n } else if (\r\n this.type == MultimediaHelper.FOLDER_TASK &&\r\n this.multimediaPage\r\n ) {\r\n this._getListFilesForTasks();\r\n } else if (\r\n this.type == MultimediaHelper.FOLDER_NOTES &&\r\n this.multimediaPage\r\n ) {\r\n this._getListFilesForNotes();\r\n } else {\r\n this._getListFiles();\r\n }\r\n });\r\n };\r\n generateThumbnail(videoUrl, seekTime = 1) {\r\n return new Promise((resolve, reject) => {\r\n if (Capacitor.getPlatform() != \"web\") {\r\n FileChunkReader.generateThumbnail({\r\n videoUrl,\r\n }).then((result) => {\r\n resolve(result.thumbnail);\r\n });\r\n return;\r\n }\r\n\r\n const video = document.createElement(\"video\");\r\n video.crossOrigin = \"anonymous\"; // Ensure the video is fetched with CORS headers\r\n\r\n video.src = videoUrl;\r\n video.preload = \"metadata\";\r\n video.currentTime = 0.001;\r\n\r\n video.addEventListener(\"seeked\", () => {\r\n const canvas = document.createElement(\"canvas\");\r\n canvas.width = video.videoWidth;\r\n canvas.height = video.videoHeight;\r\n const context = canvas.getContext(\"2d\");\r\n\r\n // Draw the video frame to the canvas\r\n context.drawImage(video, 0, 0, canvas.width, canvas.height);\r\n\r\n // Get the image data URL from the canvas\r\n const imageUrl = canvas.toDataURL(\"image/png\");\r\n resolve(imageUrl);\r\n });\r\n\r\n video.addEventListener(\"error\", (error) => {\r\n resolve(videoUrl);\r\n // reject(`Error loading video: ${error.message}`);\r\n });\r\n });\r\n }\r\n\r\n _getListFiles = () => {\r\n this.listFilesInContainer(this.path)\r\n .then(async (response) => {\r\n let result = [];\r\n for (let el of response) {\r\n // alert(JSON.stringify(el));\r\n el.path_display = el.name;\r\n el.fullUrl = el.url;\r\n el.thumbUrl =\r\n MultimediaHelper.getTypeItem(el) === MultimediaHelper.TYPE_VIDEO // Capacitor.getPlatform() === \"web\"\r\n ? await this.generateThumbnail(\r\n // \"http://localhost:8000/yt5s.io-Cargo%20-%20Ielele%20(Official%20Audio).mp4\"\r\n el.url\r\n )\r\n : el.url;\r\n el.imageUrl = el.url;\r\n el.type = MultimediaHelper.getTypeItem(el);\r\n result.push(el);\r\n }\r\n this.loadCallback(result);\r\n return;\r\n if (!response.entries) return;\r\n let items = [];\r\n for (let i = 0; i < response.entries.length; i++) {\r\n let item = response.entries[i];\r\n item.type = MultimediaHelper.getTypeItem(item);\r\n items.push(item);\r\n }\r\n items = items.sort(function (a, b) {\r\n if (a[\"server_modified\"] > b[\"server_modified\"]) return -1;\r\n if (a[\"server_modified\"] < b[\"server_modified\"]) return 1;\r\n return 0;\r\n });\r\n\r\n if (items.length != 0) {\r\n this._buildThumbs(items);\r\n } else {\r\n this.loadCallback(items);\r\n }\r\n })\r\n\r\n .catch((error) => {\r\n this.loadCallback(null);\r\n });\r\n };\r\n\r\n _getListFilesForMultimedia = () => {\r\n console.warn(this.path);\r\n this.listFilesInContainer({ path: this.path })\r\n .then((response) => {\r\n console.log(response);\r\n\r\n this.loadCallback(response);\r\n // }\r\n return;\r\n window.DataGate.getYoutubeMultimedia(\r\n this.userId,\r\n this.horseId,\r\n (code, youtubeData) => {\r\n if (!response.entries) return;\r\n let items = [];\r\n for (let i = 0; i < response.entries.length; i++) {\r\n let item = response.entries[i];\r\n item.type = MultimediaHelper.getTypeItem(item);\r\n //let ext = item.path_display.split('.').pop().toLowerCase();\r\n //if (ext == \"png\" || ext == \"jpeg\" || ext == \"jpg\" || ext == \"gif\" || ext == \"bmp\") {\r\n // item.type = MultimediaHelper.TYPE_IMAGE;\r\n //} else {\r\n // item.type = MultimediaHelper.TYPE_VIDEO;\r\n //}\r\n items.push(item);\r\n }\r\n items = items.sort(function (a, b) {\r\n if (a[\"server_modified\"] > b[\"server_modified\"]) return -1;\r\n if (a[\"server_modified\"] < b[\"server_modified\"]) return 1;\r\n return 0;\r\n });\r\n if (youtubeData != null) {\r\n for (let i = 0; i < youtubeData.length; i++) {\r\n let item = youtubeData[i];\r\n item.type = MultimediaHelper.TYPE_YOUTUBE;\r\n items.push(item);\r\n }\r\n }\r\n\r\n if (items.length != 0) {\r\n this._buildThumbs(items);\r\n } else {\r\n this.loadCallback(items);\r\n }\r\n }\r\n );\r\n })\r\n .catch((error) => {\r\n this.loadCallback(null);\r\n });\r\n };\r\n\r\n _getListFilesForTasks = () => {\r\n let end = new Date().formatDesh();\r\n let start = new Date().addDays(-92).formatDesh();\r\n window.db.getTasksByHorseIdForMultimedia(\r\n this.horseId,\r\n start,\r\n end,\r\n (taskArr) => {\r\n let horse = window.DataStorage.getAllHorses().find(\r\n (h) => h.id == this.horseId\r\n );\r\n let horseOwnerId = horse.userid;\r\n let items = [];\r\n if (!taskArr.length) this.loadCallback(items);\r\n for (let i = 0; i < taskArr.length; i++) {\r\n this.path = \"Task\" + horseOwnerId + \"-\" + taskArr[i][\"Id\"];\r\n this.dropbox\r\n .filesListFolder({ path: this.path })\r\n .then((response) => {\r\n if (!response.entries) return;\r\n\r\n for (let i = 0; i < response.entries.length; i++) {\r\n let item = response.entries[i];\r\n item.type = MultimediaHelper.getTypeItem(item);\r\n //let ext = item.path_display.split('.').pop().toLowerCase();\r\n //if (ext == \"png\" || ext == \"jpeg\" || ext == \"jpg\" || ext == \"gif\" || ext == \"bmp\") {\r\n // item.type = MultimediaHelper.TYPE_IMAGE;\r\n //} else {\r\n // item.type = MultimediaHelper.TYPE_VIDEO;\r\n //}\r\n items.push(item);\r\n }\r\n items = items.sort(function (a, b) {\r\n if (a[\"server_modified\"] > b[\"server_modified\"]) return -1;\r\n if (a[\"server_modified\"] < b[\"server_modified\"]) return 1;\r\n return 0;\r\n });\r\n\r\n if (i == taskArr.length - 1) {\r\n setTimeout(() => {\r\n if (items.length != 0) {\r\n this._buildThumbs(items);\r\n } else {\r\n this.loadCallback(items);\r\n }\r\n }, 500);\r\n }\r\n })\r\n .catch((error) => {\r\n this.loadCallback(null);\r\n });\r\n }\r\n }\r\n );\r\n };\r\n\r\n _getListFilesForNotes = () => {\r\n window.db.getNotesByHorse(this.horseId, (notesArr) => {\r\n let items = [];\r\n this.dropbox\r\n .filesListFolder({ path: this.path })\r\n .then((response) => {\r\n if (!response.entries) return;\r\n for (let i = 0; i < response.entries.length; i++) {\r\n let item = response.entries[i];\r\n item.type = MultimediaHelper.getTypeItem(item);\r\n //let ext = item.path_display.split('.').pop().toLowerCase();\r\n //if (ext == \"png\" || ext == \"jpeg\" || ext == \"jpg\" || ext == \"gif\" || ext == \"bmp\") {\r\n // item.type = MultimediaHelper.TYPE_IMAGE;\r\n //} else {\r\n // item.type = MultimediaHelper.TYPE_VIDEO;\r\n //}\r\n items.push(item);\r\n }\r\n items = items.sort(function (a, b) {\r\n if (a[\"server_modified\"] > b[\"server_modified\"]) return -1;\r\n if (a[\"server_modified\"] < b[\"server_modified\"]) return 1;\r\n return 0;\r\n });\r\n if (!notesArr.length) this.loadCallback(items);\r\n for (let i = 0; i < notesArr.length; i++) {\r\n this.path =\r\n `${MultimediaHelper.FOLDER_EXTRA_NOTES}-` +\r\n this.horseId +\r\n \"-\" +\r\n notesArr[i][\"Id\"];\r\n this.dropbox\r\n .filesListFolder({ path: this.path })\r\n .then((response) => {\r\n if (!response.entries) return;\r\n\r\n for (let i = 0; i < response.entries.length; i++) {\r\n let item = response.entries[i];\r\n item.type = MultimediaHelper.getTypeItem(item);\r\n //let ext = item.path_display.split('.').pop().toLowerCase();\r\n //if (ext == \"png\" || ext == \"jpeg\" || ext == \"jpg\" || ext == \"gif\" || ext == \"bmp\") {\r\n // item.type = MultimediaHelper.TYPE_IMAGE;\r\n //} else {\r\n // item.type = MultimediaHelper.TYPE_VIDEO;\r\n //}\r\n items.push(item);\r\n }\r\n items = items.sort(function (a, b) {\r\n if (a[\"server_modified\"] > b[\"server_modified\"]) return -1;\r\n if (a[\"server_modified\"] < b[\"server_modified\"]) return 1;\r\n return 0;\r\n });\r\n\r\n if (i == notesArr.length - 1) {\r\n setTimeout(() => {\r\n if (items.length != 0) {\r\n this._buildThumbs(items);\r\n } else {\r\n this.loadCallback(items);\r\n }\r\n }, 500);\r\n }\r\n })\r\n .catch((error) => {\r\n this.loadCallback(null);\r\n });\r\n }\r\n })\r\n .catch((error) => {\r\n this.loadCallback(null);\r\n });\r\n });\r\n };\r\n\r\n _checkAllThumbLoaded = () => {\r\n let notLoadedItems = this.items.filter((item) => item.thumbUrl == null);\r\n if (notLoadedItems.length == 0) {\r\n this.loadCallback(this.items);\r\n }\r\n };\r\n\r\n _buildThumbs = (items) => {\r\n this.items = items;\r\n for (let i = 0; i < items.length; i++) {\r\n if (items[i].type == MultimediaHelper.TYPE_YOUTUBE) {\r\n let code = this._getYoutubeCode(items[i].Link);\r\n items[i].thumbUrl = `https://img.youtube.com/vi/${code}/hqdefault.jpg`;\r\n items[i].fullUrl = `https://www.youtube.com/embed/${code}`;\r\n } else {\r\n this._loadThumb(items[i]);\r\n }\r\n }\r\n this._checkAllThumbLoaded();\r\n };\r\n\r\n _getYoutubeCode = (link) => {\r\n //https://youtu.be/tezlfdvAzcc\r\n //https://www.youtube.com/watch?v=M_hVFRTzFw8\r\n\r\n if (link.indexOf(\"youtu.be\") != -1) {\r\n let code = link.split(\"/\").pop();\r\n return code;\r\n }\r\n if (link.indexOf(\"?v=\") != -1) {\r\n let code = link.split(\"?v=\").pop();\r\n return code;\r\n }\r\n return null;\r\n };\r\n\r\n _loadThumb = (item) => {\r\n new Promise((resolve, reject) => {\r\n this.dropbox\r\n .filesGetThumbnail({\r\n path: item.path_display,\r\n size: \"w480h320\",\r\n })\r\n .then((response) => {\r\n let url = window.URL.createObjectURL(response.fileBlob);\r\n item.thumbUrl = url;\r\n this._checkAllThumbLoaded();\r\n })\r\n .catch((error) => {\r\n item.thumbUrl = \"\";\r\n this._checkAllThumbLoaded();\r\n });\r\n });\r\n };\r\n\r\n getItemLink = (item, callback) => {\r\n if (item.fullUrl != null) {\r\n if (callback) callback(item.fullUrl);\r\n return;\r\n }\r\n if (item.type == MultimediaHelper.TYPE_YOUTUBE) {\r\n let code = this._getYoutubeCode(item);\r\n item.fullUrl = `https://www.youtube.com/embed/${code}`;\r\n if (callback) callback(item.fullUrl);\r\n return;\r\n }\r\n\r\n this.dropbox\r\n .filesGetTemporaryLink({ path: item.path_display })\r\n .then((response) => {\r\n item.fullUrl = response.link;\r\n if (callback) callback(item.fullUrl);\r\n })\r\n .catch(function (error) {\r\n if (callback) callback(null);\r\n });\r\n };\r\n\r\n _loadThubmAndUploadCallback = (\r\n fileName,\r\n dbxItem,\r\n callback,\r\n request_origin\r\n ) => {\r\n if (dbxItem == null) {\r\n callback(fileName, null);\r\n } else {\r\n dbxItem.type = MultimediaHelper.getTypeItem(dbxItem);\r\n //let ext = dbxItem.path_display.split('.').pop().toLowerCase();\r\n //if (ext == \"png\" || ext == \"jpeg\" || ext == \"jpg\" || ext == \"gif\" || ext == \"bmp\") {\r\n // dbxItem.type = MultimediaHelper.TYPE_IMAGE;\r\n //} else {\r\n // dbxItem.type = MultimediaHelper.TYPE_VIDEO;\r\n //}\r\n this.dropbox\r\n .filesGetThumbnail({\r\n path: dbxItem.path_display,\r\n size: \"w480h320\",\r\n })\r\n .then((response) => {\r\n let url = window.URL.createObjectURL(response.fileBlob);\r\n dbxItem.thumbUrl = url;\r\n\r\n callback(fileName, dbxItem, request_origin);\r\n })\r\n .catch((error) => {\r\n dbxItem.thumbUrl = \"\";\r\n callback(fileName, dbxItem, request_origin);\r\n });\r\n }\r\n };\r\n wait(milliseconds) {\r\n return new Promise((resolve) => setTimeout(resolve, milliseconds));\r\n }\r\n\r\n _setSoothProgress = async (file, new_progress, request_origin) => {\r\n const duration = 2000;\r\n const steps_per_seconds = 2;\r\n const steps = (duration / 1000) * steps_per_seconds;\r\n const delay_between_steps = 1 / steps_per_seconds;\r\n for (let i = 0; i <= steps; i++) {\r\n // alert(file.progress + ((new_progress - file.progress) * i) / steps);\r\n // this.progressCallback(\r\n // request_origin,\r\n // file.name,\r\n // file.progress + ((file.progress - new_progress) * i) / steps\r\n // );\r\n }\r\n };\r\n\r\n _uploadWthSingleRequest = async (\r\n file,\r\n doneCallback,\r\n request_origin,\r\n file_path\r\n ) => {\r\n const path = file_path + \"/\" + file.fileName;\r\n const maxBlob = 4 * 1024 * 1024;\r\n if (true) {\r\n this.uploadFileWithProgress(\r\n file,\r\n path,\r\n doneCallback,\r\n request_origin,\r\n this.dropbox\r\n );\r\n return;\r\n }\r\n\r\n if (file.actual_image) {\r\n console.log(file);\r\n\r\n if (Capacitor.getPlatform() == \"web\") {\r\n FileChunkReader.azureBlobStorageUploadFile({\r\n file: file.actual_image,\r\n sasToken: MultimediaHelper.sasToken,\r\n accountName: MultimediaHelper.accountName,\r\n containerName: this.containerClient.containerName,\r\n targetPath: file.fileName,\r\n progressCallback: (progress) => {},\r\n doneCallback: (success, response) => {\r\n if (success) {\r\n console.log(response);\r\n doneCallback(response, request_origin);\r\n } else {\r\n console.error(\"Upload failed\");\r\n }\r\n },\r\n }).then();\r\n } else {\r\n // const doneCallback = doneCallback;\r\n FileChunkReader.addListener(\"uploadComplete\", (info) => {\r\n FileChunkReader.removeAllListeners(\"uploadComplete\");\r\n // alert(\"DONE\");\r\n if (info.success) {\r\n if (typeof info === \"string\") {\r\n doneCallback(JSON.parse(info), request_origin);\r\n } else {\r\n doneCallback(info, request_origin);\r\n }\r\n } else {\r\n console.error(\"Upload failed\");\r\n }\r\n });\r\n FileChunkReader.azureBlobStorageUploadFile({\r\n uri: file.media_path,\r\n sasToken: MultimediaHelper.sasToken,\r\n accountName: MultimediaHelper.accountName,\r\n containerName: this.containerClient.containerName,\r\n blobName: file.fileName,\r\n });\r\n }\r\n } else {\r\n FileChunkReader.addListener(\"uploadProgress\", (info) => {\r\n this.progressCallback(request_origin, file.fileName, info.progress);\r\n });\r\n\r\n FileChunkReader.addListener(\"uploadComplete\", (info) => {\r\n FileChunkReader.removeAllListeners(\"uploadProgress\");\r\n FileChunkReader.removeAllListeners(\"uploadComplete\");\r\n if (info.success) {\r\n if (typeof info === \"string\") {\r\n doneCallback(JSON.parse(info), request_origin);\r\n } else {\r\n doneCallback(info, request_origin);\r\n }\r\n } else {\r\n console.error(\"Upload failed\");\r\n }\r\n });\r\n FileChunkReader.azureBlobStorageUploadFile({\r\n uri: file.media_path,\r\n sasToken: MultimediaHelper.sasToken,\r\n accountName: MultimediaHelper.accountName,\r\n containerName: this.containerClient.containerName,\r\n blobName: file.fileName,\r\n targetPath: path,\r\n }).then();\r\n }\r\n };\r\n base64ToBlob(base64, mimeType = \"\") {\r\n // Decode Base64 string to a binary string\r\n const binaryStr = atob(base64);\r\n // Create a Uint8Array of the same length as the binary string\r\n const length = binaryStr.length;\r\n const bytes = new Uint8Array(length);\r\n // Fill the Uint8Array with byte values from the binary string\r\n for (let i = 0; i < length; i++) {\r\n bytes[i] = binaryStr.charCodeAt(i);\r\n }\r\n // Create and return a Blob from the Uint8Array\r\n return new Blob([bytes], { type: mimeType });\r\n }\r\n async uploadFileChunk(options) {\r\n const {\r\n sasToken,\r\n accountName,\r\n containerName,\r\n file,\r\n targetPath,\r\n progressCallback,\r\n doneCallback,\r\n } = options;\r\n\r\n const blobServiceClient = new BlobServiceClient(\r\n `https://${accountName}.blob.core.windows.net?${sasToken}`\r\n );\r\n const containerClient = blobServiceClient.getContainerClient(containerName);\r\n const blockBlobClient = containerClient.getBlockBlobClient(targetPath);\r\n\r\n const chunkSize = 4 * 1024 * 1024; // 4MB\r\n const totalChunks = Math.ceil(file.size / chunkSize);\r\n let uploadedBytes = 0;\r\n const blockList = [];\r\n\r\n for (let i = 0; i < totalChunks; i++) {\r\n const start = i * chunkSize;\r\n const end = Math.min(start + chunkSize, file.size);\r\n const chunk = file.slice(start, end);\r\n\r\n const arrayBuffer = await chunk.arrayBuffer();\r\n const buffer = new Uint8Array(arrayBuffer);\r\n const blockId = btoa(String(i).padStart(5, \"0\")); // Base64 encode the block ID\r\n console.log(\"STAGE BLOCK\");\r\n await blockBlobClient.stageBlock(blockId, buffer, buffer.length);\r\n uploadedBytes += chunkSize;\r\n progressCallback(Math.min((uploadedBytes / file.size) * 100, 100));\r\n console.log(\"STAGE BLOCK DONE\");\r\n\r\n blockList.push(blockId);\r\n }\r\n\r\n await blockBlobClient.commitBlockList(blockList, {\r\n blobHTTPHeaders: {\r\n blobContentType: file.type,\r\n },\r\n });\r\n\r\n doneCallback();\r\n }\r\n uploadFileWithProgress = async (\r\n file,\r\n path,\r\n doneCallback,\r\n request_origin,\r\n dbx\r\n ) => {\r\n const fileSize = file.fileSize;\r\n\r\n try {\r\n if (file.actual_image && Capacitor.getPlatform() == \"web\") {\r\n FileChunkReader.azureBlobStorageUploadFileChunk({\r\n file: file.actual_image,\r\n sasToken: MultimediaHelper.sasToken,\r\n accountName: MultimediaHelper.accountName,\r\n containerName: this.containerClient.containerName,\r\n targetPath: file.fileName,\r\n progressCallback: (progress) => {\r\n if (this.progressCallback)\r\n this.progressCallback(\r\n request_origin,\r\n file.fileName,\r\n progress / 100\r\n );\r\n },\r\n doneCallback: (success, response) => {\r\n console.log(response);\r\n if (success) {\r\n console.log(response);\r\n doneCallback(response, request_origin);\r\n } else {\r\n console.error(\"Upload failed\");\r\n }\r\n },\r\n }).then();\r\n } else {\r\n FileChunkReader.addListener(\"uploadProgress\", (info) => {\r\n this.progressCallback(request_origin, file.fileName, info.progress);\r\n });\r\n\r\n FileChunkReader.addListener(\"uploadComplete\", (info) => {\r\n FileChunkReader.removeAllListeners(\"uploadProgress\");\r\n FileChunkReader.removeAllListeners(\"uploadComplete\");\r\n\r\n if (info.success) {\r\n if (typeof info === \"string\") {\r\n doneCallback(JSON.parse(info), request_origin);\r\n } else {\r\n doneCallback(info, request_origin);\r\n }\r\n } else {\r\n console.error(\"Upload failed\");\r\n }\r\n });\r\n FileChunkReader.azureBlobStorageUploadFileChunk({\r\n uri: file.media_path,\r\n sasToken: MultimediaHelper.sasToken,\r\n accountName: MultimediaHelper.accountName,\r\n containerName: this.containerClient.containerName,\r\n blobName: file.fileName,\r\n fileSize: fileSize,\r\n }).then();\r\n }\r\n } catch (error) {\r\n doneCallback(null, request_origin);\r\n }\r\n };\r\n\r\n cancelUploading = (fileName) => {\r\n let cancelIndex = this.uploadQueue.findIndex(\r\n (f) => f.file.fileName == fileName\r\n );\r\n this.uploadQueue.splice(cancelIndex, 1);\r\n\r\n this.refreshUploadQueue();\r\n };\r\n\r\n uploadYoutube = (link, callback) => {\r\n window.DataGate.addYoutubeMultimedia(\r\n link,\r\n this.userId,\r\n this.horseId,\r\n (c, data) => {\r\n let code = this._getYoutubeCode(link);\r\n const item = {\r\n Link: link,\r\n type: MultimediaHelper.TYPE_YOUTUBE,\r\n fullUrl: `https://www.youtube.com/embed/${code}`,\r\n thumbUrl: `https://img.youtube.com/vi/${code}/hqdefault.jpg`,\r\n };\r\n callback(item);\r\n }\r\n );\r\n };\r\n\r\n deleteItems = (items, callback) => {\r\n this.deleteCallback = callback;\r\n this.itemsForDelete = items;\r\n for (let i = 0; i < this.itemsForDelete.length; i++) {\r\n this._deleteItem(this.itemsForDelete[i]);\r\n }\r\n };\r\n\r\n _deleteItem = (item) => {\r\n if (item.type == MultimediaHelper.TYPE_YOUTUBE) {\r\n window.DataGate.deleteYoutubeMultimedia(item.Id, () => {\r\n item.isDeleted = true;\r\n this._checkItemsDelete();\r\n });\r\n } else {\r\n const blobClient = this.containerClient.getBlobClient(item.name);\r\n\r\n // Delete the blob\r\n blobClient.delete().then(() => {\r\n item.isDeleted = true;\r\n this._checkItemsDelete();\r\n });\r\n // this.dropbox\r\n // .filesDelete({ path: item.path_display })\r\n // .then((response) => {\r\n // item.isDeleted = true;\r\n // this._checkItemsDelete();\r\n // })\r\n // .catch((error) => {\r\n // console.error(error);\r\n // item.isDeleted = true;\r\n // this._checkItemsDelete();\r\n // });\r\n }\r\n };\r\n\r\n _checkItemsDelete = () => {\r\n let notDeletedItems = this.itemsForDelete.filter((item) => !item.isDeleted);\r\n if (notDeletedItems.length == 0) {\r\n this.deleteCallback();\r\n }\r\n };\r\n\r\n changeName = async (oldFileName, newFileName, callback) => {\r\n const oldBlobClient = this.containerClient.getBlobClient(oldFileName);\r\n const newBlobClient = this.containerClient.getBlobClient(newFileName);\r\n\r\n // Copy the blob to the new name\r\n newBlobClient.beginCopyFromURL(oldBlobClient.url).then(() =>\r\n oldBlobClient\r\n .delete()\r\n .then(() => callback(true))\r\n .catch(() => callback(false))\r\n );\r\n\r\n // const pathNew =\r\n // item.path_display.substring(0, item.path_display.lastIndexOf(\"/\")) +\r\n // \"/\" +\r\n // nameNew;\r\n // this.dropbox\r\n // .filesMove({\r\n // from_path: item.path_display,\r\n // to_path: pathNew,\r\n // })\r\n // .then((response) => {\r\n // response.thumbUrl = item.thumbUrl;\r\n // response.type = item.type;\r\n // if (callback) callback(response);\r\n // })\r\n // .catch(function (error) {\r\n // console.error(error);\r\n // });\r\n };\r\n\r\n downloadItems = (items, callback) => {\r\n let dowloadStep = (itemIndex) => {\r\n if (itemIndex < items.length) {\r\n this._downloadItem(items[itemIndex], () => {\r\n dowloadStep(itemIndex + 1);\r\n });\r\n } else {\r\n window.Spinner.hide();\r\n //end\r\n }\r\n };\r\n\r\n window.Spinner.show();\r\n dowloadStep(0);\r\n };\r\n\r\n /**\r\n *\r\n * Download a list of items from dropbox\r\n *\r\n * @param {String[]} items list of items to be downloaded\r\n *\r\n * @returns A list of blobs, corresponding to the items provided.\r\n */\r\n downloadAllItems = async (items) => {\r\n let result = [];\r\n for (let item of items) {\r\n if (item.type == MultimediaHelper.TYPE_YOUTUBE) {\r\n continue;\r\n }\r\n const response = await this.dropbox.filesDownload({\r\n path: item.path_display,\r\n });\r\n result.push(\r\n new File([response.fileBlob], response.name, {\r\n type: \"image/jpeg\",\r\n })\r\n );\r\n }\r\n return result;\r\n };\r\n\r\n _downloadItem = (item, callback) => {\r\n if (item.type == MultimediaHelper.TYPE_YOUTUBE) {\r\n callback();\r\n return;\r\n }\r\n\r\n this.dropbox\r\n .filesDownload({\r\n path: item.path_display,\r\n })\r\n .then((response) => {\r\n var downloadUrl = URL.createObjectURL(response.fileBlob);\r\n var downloadButton = document.createElement(\"a\");\r\n downloadButton.setAttribute(\"href\", downloadUrl);\r\n downloadButton.setAttribute(\"download\", response.name);\r\n downloadButton.setAttribute(\"class\", \"button\");\r\n downloadButton.innerText = \"Download: \" + response.name;\r\n downloadButton.click();\r\n\r\n callback();\r\n })\r\n .catch((error) => {\r\n console.error(error);\r\n });\r\n };\r\n\r\n showMobileFullscreen(imageItem) {\r\n if (\r\n window.multimediaMobileHelper.isActive &&\r\n this.type == MultimediaHelper.FOLDER_MULTIMEDIA\r\n ) {\r\n window.multimediaMobileHelper.showFullScreen(\r\n this.userId,\r\n this.horseId,\r\n imageItem\r\n );\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n downloadAndShareItems(items) {\r\n if (window.multimediaMobileHelper.isActive) {\r\n window.multimediaMobileHelper.downloadAndShareItems(items);\r\n }\r\n }\r\n\r\n hasImages = (callback) => {\r\n this.path = `${MultimediaHelper.FOLDER_MULTIMEDIA}=${this.horseId}`;\r\n this.dropbox\r\n .filesListFolder({ path: this.path })\r\n .then((response) => {\r\n if (callback) callback(response.entries.length > 0);\r\n })\r\n .catch((error) => {\r\n if (callback) callback(false);\r\n });\r\n };\r\n\r\n static getTypeItem(item) {\r\n let ext = item.path_display.split(\".\").pop().toLowerCase();\r\n if (\r\n ext == \"png\" ||\r\n ext == \"jpeg\" ||\r\n ext == \"jpg\" ||\r\n ext == \"gif\" ||\r\n ext == \"bmp\"\r\n ) {\r\n return MultimediaHelper.TYPE_IMAGE;\r\n } else if (ext == \"pdf\") {\r\n return MultimediaHelper.TYPE_PDF;\r\n } else {\r\n return MultimediaHelper.TYPE_VIDEO;\r\n }\r\n }\r\n}\r\n","import React, { Component } from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport { set } from \"lodash\";\r\nimport MultimediaHelper from \"../Multimedia/MultimediaHelper\";\r\n\r\nexport default class TaskXrayPage extends Component {\r\n static show(taskId) {\r\n window.showPage(\"#taskXrayPage\");\r\n ReactDOM.render(\r\n ,\r\n document.getElementById(\"taskXrayPage\")\r\n );\r\n\r\n setTimeout(() => {\r\n try {\r\n document.getElementById(\"xrayFileInput\").value = null;\r\n } catch {}\r\n }, 100);\r\n }\r\n\r\n static DropboxToken =\r\n \"HqmkA9nKm0wAAAAAAADLWpj-stRJN_4JyfLxtRoZD-Rzpjyz9nnuI_CMbkRkOoSk\";\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n entries: [],\r\n uploadingFiles: [],\r\n uploadingIndex: -1,\r\n };\r\n\r\n this.dropbox = new window.Dropbox.Dropbox({\r\n accessToken: TaskXrayPage.DropboxToken,\r\n });\r\n\r\n this.helper = new MultimediaHelper();\r\n }\r\n\r\n componentDidMount() {\r\n this.loadData();\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n if (this.props.taskId != prevProps.taskId) {\r\n this.loadData();\r\n }\r\n }\r\n\r\n loadData() {\r\n this.path = `xray-${this.props.taskId}`;\r\n\r\n this.setState({\r\n entries: [],\r\n uploadingFiles: [],\r\n });\r\n\r\n window.Spinner.show();\r\n this.helper.handleCreateContainer(this.path).then(() => {\r\n this._getListFiles();\r\n });\r\n // };\r\n // this.dropbox\r\n // .filesCreateFolder({\r\n // path: this.path,\r\n // autorename: false,\r\n // })\r\n // .then((response) => {\r\n // this._getListFiles();\r\n // })\r\n // .catch((error) => {\r\n // this._getListFiles();\r\n // });\r\n }\r\n\r\n _getListFiles() {\r\n // this.dropbox\r\n // .filesListFolder({ path: this.path })\r\n // .then((response) => {\r\n // this.setState({\r\n // entries: response.entries,\r\n // });\r\n\r\n // })\r\n // .catch((error) => {\r\n // window.Spinner.hide();\r\n // });\r\n this.helper.listBlobsWithProperties(this.path).then((response) => {\r\n this.setState({\r\n entries: response.map((el) => {\r\n el.path_display = el.name;\r\n el.fullUrl = el.url;\r\n el.thumbUrl = el.url;\r\n el.imageUrl = el.url;\r\n el.type = MultimediaHelper.getTypeItem(el);\r\n return el;\r\n }),\r\n });\r\n console.log(response);\r\n window.Spinner.hide();\r\n });\r\n }\r\n\r\n close = () => {\r\n window.showPage(\"#mainPage\");\r\n };\r\n\r\n onFilesSeleted = (e) => {\r\n let arr = [];\r\n for (let i = 0; i < e.target.files.length; i++)\r\n arr.push({\r\n name: e.target.files[i].name,\r\n size: e.target.files[i].size,\r\n lastModifiedDate: e.target.files[i].lastModifiedDate,\r\n file: e.target.files[i],\r\n });\r\n this.setState({\r\n uploadingFiles: [...this.state.uploadingFiles, ...arr],\r\n });\r\n setTimeout(() => this.startUploading());\r\n };\r\n\r\n startUploading() {\r\n if (this.isUploading) return;\r\n this.isUploading = true;\r\n this._uploadNextFile();\r\n }\r\n\r\n _uploadNextFile() {\r\n let uploadingIndex = this.state.uploadingFiles.findIndex(\r\n (item) => !item.isUploaded\r\n );\r\n this.setState({\r\n uploadingIndex: uploadingIndex,\r\n });\r\n if (uploadingIndex == -1) {\r\n this.isUploading = false;\r\n this.loadData();\r\n } else {\r\n const file = this.state.uploadingFiles[uploadingIndex].file;\r\n const reader = new FileReader();\r\n reader.onload = () => {\r\n this._uploadWthSingleRequest(\r\n file,\r\n reader.result,\r\n (item) => {\r\n let uploadingFiles = [...this.state.uploadingFiles];\r\n uploadingFiles[this.state.uploadingIndex] = {\r\n ...uploadingFiles[this.state.uploadingIndex],\r\n isUploaded: true,\r\n };\r\n this.setState({\r\n uploadingFiles: uploadingFiles,\r\n });\r\n setTimeout(() => this._uploadNextFile());\r\n },\r\n () => {}\r\n );\r\n };\r\n reader.readAsArrayBuffer(file);\r\n }\r\n }\r\n\r\n _uploadWthSingleRequest = (\r\n file,\r\n arrayBuffer,\r\n doneCallback,\r\n progressCallback\r\n ) => {\r\n const path = this.path + \"/\" + encodeURI(file.name);\r\n\r\n const fileEntry = {\r\n actual_image: file,\r\n fileName: file.name,\r\n };\r\n this.helper._uploadWthSingleRequest(\r\n fileEntry,\r\n (status, res) => {\r\n doneCallback(res);\r\n },\r\n document.location.href,\r\n path\r\n );\r\n\r\n //ajax for getting pogress, stop workig because of CORS\r\n //window.$.ajax({\r\n // url: \"https://content.dropboxapi.com/2/files/upload\",\r\n // headers: {\r\n // 'Authorization': 'Bearer ' + TaskXrayPage.DropboxToken,\r\n // //'Content-Length': file.size,\r\n // 'Dropbox-API-Arg': '{\"path\": \"' + path + '\"}'\r\n // },\r\n // crossDomain: true,\r\n // crossOrigin: true,\r\n // type: 'POST',\r\n // contentType: 'application/octet-stream',//file.type,\r\n // data: arrayBuffer,\r\n // dataType: 'json',\r\n // processData: false,\r\n // xhr: () => {\r\n // this.xhr = new window.XMLHttpRequest();\r\n // this.xhr.upload.addEventListener(\"progress\", function (evt) {\r\n // if (evt.lengthComputable) {\r\n // const percentComplete = parseInt(parseFloat(evt.loaded / evt.total) * 100);\r\n // progressCallback(percentComplete);\r\n // }\r\n // }, false);\r\n // return this.xhr;\r\n // },\r\n // success: function (result) {\r\n // console.log(result);\r\n // doneCallback(result);\r\n // },\r\n // error: function (jqXHR, textStatus, errorThrown) {\r\n // console.log(errorThrown);\r\n // doneCallback(null);\r\n // }\r\n //});\r\n };\r\n\r\n _deleteItem = (item, callback) => {\r\n this.dropbox\r\n .filesDelete({ path: item.path_display })\r\n .then((response) => {\r\n callback();\r\n })\r\n .catch((error) => {\r\n callback();\r\n });\r\n };\r\n\r\n getFilesSize(bytes) {\r\n if (bytes < 1024) {\r\n return bytes + \"b\";\r\n }\r\n if (bytes < 1024 * 1024) {\r\n return (bytes / 1024).toFixed(1) + \"kb\";\r\n }\r\n return (bytes / 1024 / 1024).toFixed(1) + \"mb\";\r\n }\r\n\r\n onSelectAll = (e) => {\r\n const entries = this.state.entries.map((item) => ({\r\n ...item,\r\n isSelected: e.target.checked,\r\n }));\r\n this.setState({\r\n entries: entries,\r\n });\r\n };\r\n\r\n onSelectItem = (item, itemIndex) => {\r\n const entries = [...this.state.entries];\r\n entries[itemIndex] = {\r\n ...entries[itemIndex],\r\n isSelected: !entries[itemIndex].isSelected,\r\n };\r\n this.setState({\r\n entries: entries,\r\n });\r\n };\r\n\r\n onDeleteClick = () => {\r\n let arr = this.state.entries\r\n .filter((item) => item.isSelected)\r\n .map((el) => {\r\n return { ...el, type: MultimediaHelper.getTypeItem(el) };\r\n });\r\n\r\n if (arr.length <= 0) return;\r\n\r\n window.Spinner.show();\r\n this.helper.deleteItems(arr, () => {\r\n window.Spinner.hide();\r\n this.loadData();\r\n });\r\n // if (arr.length != 0) {\r\n // window.Spinner.show();\r\n // const deleteFunc = (index) => {\r\n // if (index < arr.length) {\r\n // this._deleteItem(arr[index], () => {\r\n // deleteFunc(index + 1);\r\n // });\r\n // } else {\r\n // window.Spinner.hide();\r\n // this.loadData();\r\n // }\r\n // };\r\n // deleteFunc(0);\r\n // }\r\n };\r\n\r\n downloadFiles = () => {\r\n window.Spinner.show();\r\n console.log(this.state.entries);\r\n\r\n try {\r\n const filesToDownload = this.state.entries.map((el) => {\r\n return { url: el.fullUrl, name: el.name };\r\n });\r\n if (this.state.entries.length < 5) {\r\n MultimediaHelper.downloadFilesOneByOne(filesToDownload).then(() => {\r\n window.Spinner.hide();\r\n });\r\n } else {\r\n MultimediaHelper.downloadZip(filesToDownload).then(() => {\r\n window.Spinner.hide();\r\n });\r\n }\r\n } catch (error) {\r\n window.Spinner.hide();\r\n }\r\n };\r\n\r\n render() {\r\n const { uploadingFiles, uploadingIndex, entries } = this.state;\r\n\r\n return (\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n Delete selected\r\n \r\n \r\n Download all\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {uploadingFiles.map((item, itemIndex) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ))}\r\n {entries.map((item, itemIndex) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n
\r\n \r\n NameSizeDate
{item.name}{this.getFilesSize(item.size)}{item.lastModifiedDate.toLocaleString()}\r\n {item.isUploaded ? (\r\n Done\r\n ) : (\r\n <>\r\n {itemIndex == uploadingIndex ? (\r\n Uploading\r\n ) : (\r\n Waiting\r\n )}\r\n \r\n )}\r\n
\r\n this.onSelectItem(item, itemIndex)}\r\n />\r\n {decodeURI(item.name)}{this.getFilesSize(item.size)}{item.lastModifiedDate.toLocaleString()}
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n","import React, { Component } from \"react\";\r\n\r\nexport default class SpinnerView extends Component {\r\n render() {\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}","import React, { Component } from \"react\";\r\nimport { Document, Page, pdfjs } from \"react-pdf\";\r\nimport pdfjsWorker from \"react-pdf/dist/esm/pdf.worker.entry\";\r\n\r\nimport \"./PdfViewer.css\";\r\n\r\nclass PdfViewer extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n showPdfDocument: props.src,\r\n currentPdfPage: 1,\r\n pdfNumberOfPages: 1,\r\n };\r\n\r\n pdfjs.GlobalWorkerOptions.workerSrc = pdfjsWorker; //`//cdnjs.cloudflare.com/ajax/libs/pdf.js/${pdfjs.version}/pdf.worker.js`;\r\n this.pdfPageWidth = window.isMobileDevice()\r\n ? window.innerWidth - 40\r\n : Math.min(window.innerWidth - 40, 800);\r\n }\r\n\r\n onPdfDocumentLoadSuccess = (args) => {\r\n this.setState({\r\n pdfNumberOfPages: args.numPages,\r\n });\r\n };\r\n\r\n onCurrentPdfPageChange = (offset) => {\r\n const currentPdfPage = this.state.currentPdfPage + offset;\r\n if (currentPdfPage <= 0 || currentPdfPage > this.state.pdfNumberOfPages)\r\n return;\r\n\r\n this.setState({\r\n currentPdfPage: currentPdfPage,\r\n });\r\n };\r\n\r\n render() {\r\n return (\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n this.onCurrentPdfPageChange(-1)}\r\n />\r\n
\r\n {this.state.currentPdfPage}/{this.state.pdfNumberOfPages}\r\n
\r\n this.onCurrentPdfPageChange(1)}\r\n />\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default PdfViewer;\r\n","import React from \"react\";\r\nimport \"./MediaTypeAlert.css\";\r\nimport { useEffect } from \"react\";\r\nexport default function MediaTypeAlert({\r\n show,\r\n setShow,\r\n selectImages,\r\n selectVideos,\r\n}) {\r\n if (!show) return null;\r\n\r\n const selectImagesHandler = () => {\r\n setShow(false);\r\n selectImages();\r\n };\r\n const selectVideosHandler = () => {\r\n setShow(false);\r\n selectVideos();\r\n };\r\n\r\n return (\r\n
setShow(false)}>\r\n
\r\n
\r\n

Select media type

\r\n

Please select the type of files you want to upload

\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n );\r\n}\r\n","import React, { Component } from \"react\";\r\nimport \"./HorseGallery.css\";\r\nimport MultimediaHelper from \"./MultimediaHelper\";\r\nimport SpinnerView from \"../Controls/Spinner/SpinnerView\";\r\nimport PdfViewer from \"./PdfViewer\";\r\nimport { FilePicker } from \"@capawesome/capacitor-file-picker\";\r\nimport { Capacitor } from \"@capacitor/core\";\r\nimport MediaTypeAlert from \"../components/Alerts/MediaTypeAlert\";\r\n\r\nimport {\r\n VideoEditor,\r\n MediaFileResult,\r\n} from \"@whiteguru/capacitor-plugin-video-editor\";\r\nimport { Filesystem } from \"@capacitor/filesystem\";\r\nimport { file } from \"jszip\";\r\nclass HorseGallery extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n isMounted: false,\r\n dataArray: [],\r\n showFullScreenView: false,\r\n showFullScreenItemIndex: 0,\r\n showFullScreenLoading: false,\r\n loading: true,\r\n uploadDataArray: [],\r\n showAddYoutube: false,\r\n addYoutubeLink: \"\",\r\n multiSelectMode: false,\r\n testUrl: null,\r\n selectUploadMediaType: false,\r\n helper: new MultimediaHelper(),\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n this.setState({ isMounted: true, platform: Capacitor.getPlatform() });\r\n this.loadData();\r\n }\r\n\r\n componentWillUnmount() {\r\n this.setState({ isMounted: false });\r\n }\r\n componentDidUpdate(prevProps) {\r\n if (\r\n prevProps.horse != this.props.horse ||\r\n prevProps.noteOrTaskId != this.props.noteOrTaskId\r\n ) {\r\n this.loadData();\r\n }\r\n }\r\n\r\n toggleExtraButtons = () => {\r\n this.setState({\r\n multiSelectMode: !this.state.multiSelectMode,\r\n });\r\n };\r\n\r\n setOwnSettings = () => {\r\n if (this.props.generalTask)\r\n this.state.helper.setCurrentSettings(\r\n this.props.type,\r\n null,\r\n null,\r\n this.props.multimediaPage,\r\n this.props.noteOrTaskId\r\n );\r\n else\r\n this.state.helper.setCurrentSettings(\r\n this.props.type,\r\n this.props.horse.id,\r\n this.props.horse.userid,\r\n this.props.multimediaPage,\r\n this.props.noteOrTaskId\r\n );\r\n\r\n this.state.helper.setFinishCallback(this.onUploadedFile);\r\n this.state.helper.setProgressCallback(this.onProgressFile);\r\n this.state.helper.setRefreshCallback(() => {\r\n this.setState({\r\n uploadDataArray: this.state.helper\r\n .loadUploadQueue(document.location.href)\r\n .map((el) => el.file),\r\n });\r\n });\r\n };\r\n\r\n loadData = () => {\r\n // if (this.props.isConcurrent) {\r\n // } else {\r\n // this.state.helper = window.multimediaHelper;\r\n // }\r\n this.setState({ loading: true, uploadDataArray: [], dataArray: [] });\r\n this.setOwnSettings();\r\n\r\n this.state.helper.loadList(\r\n document.location.href,\r\n (data) => {\r\n // alert(\"DA\");\r\n // console.log(data);\r\n if (data != null) {\r\n // set a copy of the data for parent.\r\n if (this.props.setAuxiliarImageList) {\r\n this.props.setAuxiliarImageList(data);\r\n }\r\n this.setState({\r\n dataArray: data,\r\n uploadDataArray: this.state.helper\r\n .loadUploadQueue(document.location.href)\r\n .map((el) => el.file),\r\n loading: false,\r\n });\r\n\r\n return;\r\n }\r\n },\r\n this.props.type\r\n );\r\n };\r\n\r\n getItemName = (name) => {\r\n if (name != null && name != \"\") {\r\n return name.substring(0, name.lastIndexOf(\".\"));\r\n }\r\n return \" \";\r\n };\r\n\r\n getShortFileName = (name) => {\r\n let parts = name.split(\"/\");\r\n return parts[parts.length - 1];\r\n };\r\n\r\n showFullscreen = (item, itemIndex) => {\r\n if (item.fullUrl == null) {\r\n this.setState({\r\n showFullScreenView: true,\r\n showFullScreenItemIndex: itemIndex,\r\n showFullScreenLoading: true,\r\n });\r\n this.state.helper.getItemLink(item, (url) => {\r\n this.setState({\r\n showFullScreenView: true,\r\n showFullScreenItemIndex: itemIndex,\r\n showFullScreenLoading: false,\r\n });\r\n });\r\n } else {\r\n this.setState({\r\n showFullScreenView: true,\r\n showFullScreenItemIndex: itemIndex,\r\n showFullScreenLoading: false,\r\n });\r\n }\r\n };\r\n\r\n showFullscreenRight = () => {\r\n const index = this.state.showFullScreenItemIndex + 1;\r\n if (index < this.state.dataArray.length) {\r\n this.showFullscreen(this.state.dataArray[index], index);\r\n }\r\n };\r\n\r\n showFullscreenLeft = () => {\r\n const index = this.state.showFullScreenItemIndex - 1;\r\n if (index >= 0) {\r\n this.showFullscreen(this.state.dataArray[index], index);\r\n }\r\n };\r\n\r\n hideFullscreen = () => {\r\n this.setState({\r\n showFullScreenView: false,\r\n });\r\n };\r\n\r\n /**\r\n * A function that is called when a file from the upload queue is done.\r\n * @param {string} target_origin the location.href of the page that requested the file upload.\r\n * @param {string} file_name the name (identifier) of the file that was poped from the upload queue.\r\n */\r\n onUploadedFile = (target_origin, file_name, doneItem) => {\r\n console.log(file_name);\r\n console.log(doneItem);\r\n if (!this.state.isMounted) return;\r\n if (\r\n !document.location.href.startsWith(target_origin) ||\r\n !target_origin.startsWith(document.location.href)\r\n ) {\r\n return;\r\n }\r\n let upload = this.state.uploadDataArray.find(\r\n (el) => el.fileName == file_name\r\n );\r\n if (!upload) return;\r\n let aux_upload_queue = this.state.uploadDataArray.filter(\r\n (el) => el.fileName != file_name\r\n );\r\n this.setState({\r\n uploadDataArray: aux_upload_queue,\r\n dataArray:\r\n doneItem != null\r\n ? [doneItem, ...this.state.dataArray]\r\n : this.state.dataArray,\r\n });\r\n };\r\n\r\n onProgressFile = (target_origin, file_name, progress) => {\r\n if (!this.state.isMounted) return;\r\n\r\n if (\r\n !document.location.href.startsWith(target_origin) &&\r\n !target_origin.startsWith(document.location.href)\r\n ) {\r\n return;\r\n }\r\n\r\n const aux_upload_data_array = this.state.uploadDataArray.map(\r\n (original_el) => {\r\n let el = { ...original_el };\r\n if (el.fileName == file_name) {\r\n let aux_el = el;\r\n aux_el.progress = progress;\r\n return aux_el;\r\n }\r\n return el;\r\n }\r\n );\r\n this.setState({\r\n ...this.state,\r\n uploadDataArray: [...aux_upload_data_array],\r\n });\r\n };\r\n\r\n /**\r\n * Active upload function on web\r\n *\r\n * @param e files upload event\r\n */\r\n onFileSelected = (e) => {\r\n const files_to_upload = Object.keys(e.target.files).map((key) => {\r\n const file_item = e.target.files[key];\r\n\r\n let file = new File([file_item], encodeURI(file_item.name), {\r\n type: e.target.files[key].type,\r\n });\r\n let fileName = file.name;\r\n let isImage = file.type.indexOf(\"image\") != -1;\r\n\r\n return {\r\n fileName: fileName,\r\n fileSize: file_item.size,\r\n imageUrl: URL.createObjectURL(file_item),\r\n actual_image: file_item,\r\n progress: 0,\r\n type: isImage\r\n ? MultimediaHelper.TYPE_IMAGE\r\n : MultimediaHelper.TYPE_VIDEO,\r\n };\r\n });\r\n\r\n // update the local state\r\n this.setState({\r\n uploadDataArray: [...this.state.uploadDataArray, ...files_to_upload],\r\n });\r\n\r\n // add files to queue.\r\n this.state.helper.addToUploadQueue(document.location.href, files_to_upload);\r\n return;\r\n };\r\n\r\n /**\r\n * Select images from the gallery and adds them to the upload queue.\r\n */\r\n uploadImages = async () => {\r\n this.setState({ loading: true });\r\n try {\r\n const result = await FilePicker.pickImages({\r\n multiple: true,\r\n readData: true,\r\n });\r\n\r\n this.setState({ loading: false });\r\n let files_to_upload = [];\r\n for (let key in Object.keys(result.files)) {\r\n const data_blob = await fetch(\r\n \"data:image/png;base64,\" + result.files[key].data\r\n ).then((r) => r.blob());\r\n const file = new File([data_blob], result.files[key].name, {\r\n type: result.files[key].mimeType,\r\n });\r\n\r\n let fileName = file.name;\r\n let isImage = file.type.indexOf(\"image\") != -1;\r\n\r\n files_to_upload.push({\r\n fileName: fileName,\r\n fileSize: result.files[key].size,\r\n media_path: result.files[key].path,\r\n imageUrl: URL.createObjectURL(data_blob),\r\n actual_image: file,\r\n progress: 0,\r\n type: isImage\r\n ? MultimediaHelper.TYPE_IMAGE\r\n : MultimediaHelper.TYPE_VIDEO,\r\n });\r\n }\r\n\r\n // update the local state\r\n this.setState({\r\n uploadDataArray: [...this.state.uploadDataArray, ...files_to_upload],\r\n });\r\n\r\n // alert(JSON.stringify(files_to_upload));\r\n // alert(\"uploading\");\r\n // return;\r\n // add files to queue.\r\n this.state.helper.addToUploadQueue(\r\n document.location.href,\r\n files_to_upload\r\n // this.onUploadedFile\r\n );\r\n } catch (ex) {\r\n this.setState({ loading: false });\r\n console.error(ex);\r\n }\r\n };\r\n\r\n /**\r\n * Select videos from the gallery and adds them to the upload queue.\r\n */\r\n uploadVideos = async () => {\r\n this.setState({ loading: true });\r\n try {\r\n const result = await FilePicker.pickVideos({\r\n multiple: true,\r\n });\r\n let files_to_upload = [];\r\n this.setState({ loading: false });\r\n for (let key in result.files) {\r\n let fileName = result.files[key].name;\r\n let fileSize = result.files[key].size;\r\n let isImage = result.files[key].mimeType.indexOf(\"image\") != -1;\r\n\r\n const thumbNailMediaResult = await VideoEditor.thumbnail({\r\n path: result.files[key].path,\r\n width: 480,\r\n height: 320,\r\n at: 300,\r\n });\r\n\r\n const contents = await Filesystem.readFile({\r\n path: thumbNailMediaResult.file.path,\r\n });\r\n\r\n let file_to_upload = {\r\n fileName: fileName,\r\n imageUrl: \"data:image/png;base64,\" + contents.data,\r\n fileSize: fileSize,\r\n media_path: result.files[key].path,\r\n progress: 0,\r\n mimeType: result.files[key].mimeType,\r\n type: isImage\r\n ? MultimediaHelper.TYPE_IMAGE\r\n : MultimediaHelper.TYPE_VIDEO,\r\n };\r\n files_to_upload.push(file_to_upload);\r\n }\r\n this.setState({\r\n uploadDataArray: [...this.state.uploadDataArray, ...files_to_upload],\r\n });\r\n\r\n this.state.helper.addToUploadQueue(\r\n document.location.href,\r\n files_to_upload\r\n );\r\n } catch (ex) {\r\n this.setState({ loading: false });\r\n console.error(ex);\r\n }\r\n };\r\n\r\n onCancelUploading = (item, index) => {\r\n this.state.helper.cancelUploading(item.fileName);\r\n };\r\n\r\n onShowAddYoutube = () => {\r\n this.setState({\r\n showAddYoutube: true,\r\n addYoutubeLink: \"\",\r\n });\r\n };\r\n\r\n hideAddYoutube = () => {\r\n this.setState({\r\n showAddYoutube: false,\r\n });\r\n };\r\n\r\n onYoutubeLinkChange = (e) => {\r\n this.setState({\r\n addYoutubeLink: e.target.value,\r\n });\r\n };\r\n\r\n onAddYoutubeLink = () => {\r\n this.state.helper.uploadYoutube(this.state.addYoutubeLink, (item) => {\r\n this.setState({\r\n dataArray: [item, ...this.state.dataArray],\r\n });\r\n });\r\n this.setState({\r\n showAddYoutube: false,\r\n addYoutubeLink: \"\",\r\n });\r\n };\r\n\r\n selectItem = (item, index) => {\r\n let dataArray = this.state.dataArray;\r\n dataArray[index].isSelected = !dataArray[index].isSelected;\r\n this.setState({\r\n dataArray: dataArray,\r\n });\r\n };\r\n\r\n onDeleteClick = () => {\r\n let items = this.state.dataArray.filter((f) => f.isSelected);\r\n this.setState({\r\n multiSelectMode: false,\r\n loading: items.length != 0,\r\n });\r\n if (items.length != 0) {\r\n this.state.helper.deleteItems(items, () => {\r\n this.loadData();\r\n });\r\n }\r\n };\r\n\r\n onDownloadClick = () => {\r\n let items = this.state.dataArray.filter((f) => f.isSelected);\r\n this.setState({\r\n multiSelectMode: false,\r\n });\r\n if (items.length <= 0) return;\r\n const imagesToDownload = items.map((el) => {\r\n return { url: el.fullUrl, name: el.name };\r\n });\r\n if (items.length < 5) {\r\n MultimediaHelper.downloadFilesOneByOne(imagesToDownload);\r\n } else {\r\n MultimediaHelper.downloadZip(imagesToDownload);\r\n }\r\n };\r\n\r\n onShareClick = async () => {\r\n let items = this.state.dataArray.filter((f) => f.isSelected);\r\n this.setState({\r\n multiSelectMode: false,\r\n });\r\n this.state.helper.shareItems(items);\r\n };\r\n\r\n onImageChangeNameStart = (item, index) => {\r\n let dataArray = this.state.dataArray;\r\n if (dataArray[index].type != MultimediaHelper.TYPE_YOUTUBE) {\r\n dataArray[index].changeNameMode = true;\r\n dataArray[index].nameNew = this.getItemName(dataArray[index].name);\r\n this.setState({\r\n dataArray: dataArray,\r\n });\r\n }\r\n };\r\n\r\n onImageNameNewChange = (e, item, index) => {\r\n let dataArray = this.state.dataArray;\r\n dataArray[index].nameNew = e.target.value;\r\n this.setState({\r\n dataArray: dataArray,\r\n });\r\n };\r\n\r\n onImageChangeNameEnd = (item, index) => {\r\n let dataArray = this.state.dataArray;\r\n let ext = dataArray[index].name.split(\".\").pop();\r\n const oldName = dataArray[index].name;\r\n let nameNew = dataArray[index].nameNew + \".\" + ext;\r\n let nameIsUpdated = dataArray[index].name != nameNew;\r\n dataArray[index].changeNameMode = false;\r\n dataArray[index].name = nameNew;\r\n this.setState({\r\n dataArray: dataArray,\r\n });\r\n if (nameIsUpdated) {\r\n this.state.helper.changeName(oldName, dataArray[index].name, (status) => {\r\n // let dataArray = this.state.dataArray;\r\n // dataArray[index] = itemChanged;\r\n // this.setState({\r\n // dataArray: dataArray,\r\n // });\r\n });\r\n }\r\n };\r\n\r\n render() {\r\n let urlAddYoutubeFrame = null;\r\n if (this.state.helper != null && this.state.showAddYoutube) {\r\n urlAddYoutubeFrame = this.state.helper._getYoutubeCode(\r\n this.state.addYoutubeLink\r\n );\r\n }\r\n const showFullScreenLeft = this.state.showFullScreenItemIndex > 0;\r\n const showFullScreenRight =\r\n this.state.showFullScreenItemIndex < this.state.dataArray.length - 1;\r\n\r\n if (this.props.hideEditImages && this.state.dataArray.length == 0)\r\n return <>;\r\n return (\r\n
\r\n this.setState({ selectUploadMediaType: newVal })}\r\n selectImages={this.uploadImages}\r\n selectVideos={this.uploadVideos}\r\n />\r\n\r\n {this.props.customHeader}\r\n\r\n {!this.props.customHeader && (\r\n
\r\n
{this.props.title}
\r\n {!this.state.multiSelectMode ? (\r\n
\r\n {this.props.showUploadButton ? (\r\n this.state.platform != \"web\" ? (\r\n \r\n this.setState({ selectUploadMediaType: true })\r\n }\r\n />\r\n ) : (\r\n
\r\n \r\n \r\n
\r\n )\r\n ) : (\r\n <>\r\n )}\r\n {this.props.showYoutube ? (\r\n \r\n ) : (\r\n <>\r\n )}\r\n \r\n {window.lang.select}\r\n
\r\n
\r\n ) : (\r\n
\r\n {this.state.platform != \"web\" ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n \r\n {window.lang.cancel2}\r\n
\r\n
\r\n )}\r\n \r\n )}\r\n\r\n {this.state.testUrl != null && (\r\n \r\n )}\r\n\r\n {this.state.loading && }\r\n
\r\n {/*uploading items*/}\r\n {this.state.uploadDataArray\r\n .slice()\r\n .reverse()\r\n .map((item, index) => (\r\n
\r\n
\r\n \r\n \r\n {this.getItemName(this.getShortFileName(item.fileName))}\r\n \r\n \r\n
\r\n {item.type == MultimediaHelper.TYPE_IMAGE ? (\r\n \r\n ) : this.state.platform == \"web\" ? (\r\n \r\n ) : (\r\n
\r\n )}\r\n\r\n
\r\n \r\n this.onCancelUploading(item, index)}\r\n >\r\n Cancel\r\n \r\n
\r\n
\r\n ))}\r\n\r\n {/*current items*/}\r\n {this.state.dataArray.map((item, index) => (\r\n
\r\n {!this.props.hideEditImages && (\r\n
\r\n {!item.changeNameMode ? (\r\n this.onImageChangeNameStart(item, index)}\r\n >\r\n \r\n {this.getItemName(item.name)}\r\n \r\n \r\n \r\n ) : (\r\n <>\r\n
\r\n \r\n this.onImageNameNewChange(e, item, index)\r\n }\r\n />\r\n
\r\n this.onImageChangeNameEnd(item, index)}\r\n />\r\n \r\n )}\r\n
\r\n )}\r\n {this.props.hideEditImages && (\r\n
\r\n \r\n \r\n {this.getItemName(item.name)}\r\n \r\n \r\n
\r\n )}\r\n \r\n !this.state.multiSelectMode\r\n ? this.showFullscreen(item, index)\r\n : this.selectItem(item, index)\r\n }\r\n >\r\n {(item.type == MultimediaHelper.TYPE_VIDEO ||\r\n item.type == MultimediaHelper.TYPE_YOUTUBE) && (\r\n \r\n )}\r\n {this.state.multiSelectMode && (\r\n \r\n )}\r\n
\r\n \r\n ))}\r\n \r\n\r\n {this.state.showAddYoutube && (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n {urlAddYoutubeFrame != null && (\r\n \r\n )}\r\n \r\n
\r\n )}\r\n\r\n {this.state.showFullScreenView && (\r\n
\r\n {!this.state.showFullScreenLoading && this.renderFullscreenItem()}\r\n \r\n {this.state.dataArray[this.state.showFullScreenItemIndex].type !=\r\n MultimediaHelper.TYPE_PDF && (\r\n <>\r\n \r\n \r\n \r\n )}\r\n
\r\n )}\r\n \r\n );\r\n }\r\n\r\n renderFullscreenItem = () => {\r\n const item = this.state.dataArray[this.state.showFullScreenItemIndex];\r\n switch (item.type) {\r\n case MultimediaHelper.TYPE_IMAGE:\r\n return (\r\n \r\n );\r\n case MultimediaHelper.TYPE_VIDEO:\r\n // @todo Add a thumbnail\r\n console.log(item);\r\n return (\r\n \r\n \r\n \r\n );\r\n case MultimediaHelper.TYPE_YOUTUBE:\r\n return (\r\n \r\n );\r\n case MultimediaHelper.TYPE_PDF:\r\n return ;\r\n }\r\n return
;\r\n };\r\n}\r\n\r\nexport default HorseGallery;\r\n","import React, { Component } from 'react';\r\nimport ReactDOM from 'react-dom';\r\n\r\nclass GroupDeleteUpdateQuestion extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n isDelete: false\r\n };\r\n }\r\n\r\n componentDidMount = () => {\r\n this.setState({\r\n isDelete: this.props.isDelete\r\n });\r\n }\r\n\r\n onGroupClick = () => {\r\n if (this.props.doneCallback)\r\n this.props.doneCallback(true);\r\n this.hide();\r\n }\r\n\r\n onSingleClick = () => {\r\n if (this.props.doneCallback)\r\n this.props.doneCallback(false);\r\n this.hide();\r\n }\r\n\r\n hide = () => {\r\n ReactDOM.unmountComponentAtNode(document.getElementById('updDelGeneralTaskDivReact'));\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n \r\n {this.state.isDelete ?\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n :\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n
\r\n
{window.lang.thisTaskIsPartOfaSeries + ' ' + window.lang.doYouWantTo + ':'}
\r\n
\r\n \r\n
\r\n \r\n
\r\n
{window.lang.thisTaskIsPartOfaSeries + ' ' + window.lang.doYouWantTo + ':'}
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n )\r\n }\r\n}\r\n\r\nexport default class GroupDeleteUpdateQuestionWindow {\r\n showWindow(isDelete, doneCallback) {\r\n ReactDOM.render(\r\n ,\r\n document.getElementById('updDelGeneralTaskDivReact')\r\n )\r\n }\r\n}","import React, { Component } from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport DatePicker from \"react-datepicker\";\r\nimport \"./TrainingPopup.css\";\r\nimport \"react-datepicker/dist/react-datepicker.css\";\r\nimport CopyTaskWindow from \"./CopyTaskPopupV2\";\r\nimport ReminderSelectWindow from \"./ReminderSelectPopup.js\";\r\nimport SelectTimePopup from \"./SelectTimePopup\";\r\nimport TaskXrayPage from \"./TaskXrayPage\";\r\nimport ReminderSelect from \"./ReminderSelectPopup.js\";\r\nimport HorseGallery from \"../Multimedia/HorseGallery\";\r\nimport GroupDeleteUpdateQuestionWindow from \"./GroupDeleteUpdateQuestion\";\r\nimport { ToastContainer, toast } from \"react-toastify\";\r\nimport \"react-toastify/dist/ReactToastify.css\";\r\nclass TrainingPopupWindow extends Component {\r\n constructor(props) {\r\n super(props);\r\n const GlobalData = window.GlobalData;\r\n\r\n this.state = {\r\n fromTappingView: this.props.options.fromTappingView,\r\n currentTrainingId: \"\",\r\n currentHorseId: \"\",\r\n currentTrainerId: \"\",\r\n currentTrainingType: \"\",\r\n currentRemark: \"\",\r\n currentEvaluation: \"\",\r\n currentIsCanCopy: false,\r\n currentColor: \"red\",\r\n date: \"\",\r\n horseNameArr: [],\r\n trainersArr: [],\r\n trainingTypesArr: [],\r\n imgStrArr: [],\r\n showMultimediaTraining: GlobalData.getItem(\r\n GlobalData.SHOW_MULTIMEDIA_TRAINING\r\n ),\r\n showTimeTraining: GlobalData.getItem(GlobalData.SHOW_TIME_TRAINING),\r\n showDateTraining: GlobalData.getItem(GlobalData.SHOW_DATE_TRAINING),\r\n showDoneTraining: GlobalData.getItem(GlobalData.SHOW_DONE_TRAINING),\r\n\r\n showEvaluationTraining: GlobalData.getItem(\r\n GlobalData.SHOW_EVALUATION_TRAINING\r\n ),\r\n showCopyTaskTraining: GlobalData.getItem(\r\n GlobalData.SHOW_COPY_TASK_TRAINING\r\n ),\r\n showRemarksTraining: GlobalData.getItem(GlobalData.SHOW_REMARKS_TRAINING),\r\n showCopyButtonTraining: GlobalData.getItem(\r\n GlobalData.SHOW_COPY_BUTTON_TRAINING\r\n ),\r\n showRemainderTraining: GlobalData.getItem(\r\n GlobalData.SHOW_REMAINDER_TRAINING\r\n ),\r\n vetTrainingId: \"\",\r\n veterinarType: window.VeterinarPage.VeterinarType,\r\n currentVeterinarianType: this.props.options.vetSubType || \"\",\r\n farTrainingId: \"\",\r\n farrierType: [],\r\n currentFarrierType: \"\",\r\n farrierWeeks: [\r\n window.lang.nextMonday,\r\n window.lang.nextTuesday,\r\n window.lang.nextWednesday,\r\n window.lang.nextThursday,\r\n window.lang.nextFriday,\r\n window.lang.nextSaturday,\r\n window.lang.nextSunday,\r\n window.lang.today,\r\n window.lang.week4,\r\n window.lang.week5,\r\n window.lang.week6,\r\n window.lang.week7,\r\n window.lang.week8,\r\n window.lang.week9,\r\n window.lang.week10,\r\n window.lang.week11,\r\n window.lang.week12,\r\n ],\r\n currentFarrierWeek: \"\",\r\n currentTraining: \"\",\r\n currentHorseOwner: \"\",\r\n currentHasMultimedia: \"\",\r\n currentPaddockPeriod: \"\",\r\n currentReminderType: 0,\r\n currentTimeOfDay: \"\",\r\n currentVeterinarianVacType: \"\",\r\n currentDuration: \"\",\r\n currentTrainingName: \"\",\r\n currentTrainingShortname: \"\",\r\n currentStarttime: \"\",\r\n currentStatus: \"\",\r\n currentSynctime: \"\",\r\n currentTrainerName: \"\",\r\n isShowTimePopup: false,\r\n showReminderPopup: false,\r\n dewormingTypes: [],\r\n currentDewormingType: \"\",\r\n dewormingStages: window.lang.dewormingStages,\r\n dewormingTypesPeriod: [\r\n window.lang.oneMonth,\r\n window.lang.threeMonths,\r\n window.lang.sixMonths,\r\n window.lang.oneYear,\r\n ],\r\n currentNextDewormingPeriod: \"\",\r\n nextDewormingDate: \"\",\r\n fieldAreas: [],\r\n selectedFieldAreaIndex: -1,\r\n selectedFieldIndex: -1,\r\n selectedFieldTimePeriodIndex: -1,\r\n walkerAreas: [],\r\n selectedWalkerAreaIndex: -1,\r\n selectedWalkerIndex: -1,\r\n selectedWalkerTimePeriodIndex: -1,\r\n horseNotes: [],\r\n };\r\n }\r\n\r\n componentDidMount = () => {\r\n this.loadData();\r\n };\r\n\r\n componentDidUpdate = () => {\r\n this.scrollToSelectedItems();\r\n };\r\n\r\n trainingTypesForHorse(horseId) {\r\n let horse = window.DataStorage.getAllHorses().find((h) => h.id == horseId);\r\n let trainingTypes = window.DataStorage.trainTypes.filter(\r\n (i) => i.owner == horse.userid\r\n );\r\n return trainingTypes;\r\n }\r\n\r\n loadFieldAreas = (cur_horse_id, cur_training_name, isInit) => {\r\n this.loadWalkerAreas(cur_horse_id, cur_training_name, isInit);\r\n\r\n if (!this.isField(cur_training_name) && !isInit) return;\r\n\r\n window.DataGate.getAvailableFieldAreas(\r\n this.props.item ? this.props.item.id : \"\",\r\n this.props.options.date.formatDesh(),\r\n cur_horse_id,\r\n (code, data) => {\r\n if (!data)\r\n alert(\"Something went wrong when retrieveing data about fields\");\r\n\r\n let fieldAreas = [...data.Item1];\r\n\r\n if (\r\n data.Item2 &&\r\n data.Item2.fieldAreaId != \"00000000-0000-0000-0000-000000000000\"\r\n ) {\r\n let auxFieldAreaIndex = fieldAreas.findIndex(\r\n (x) => x.id == data.Item2.fieldAreaId\r\n );\r\n let auxFieldIndex = fieldAreas[auxFieldAreaIndex]?.fields?.findIndex(\r\n (x) => x.id == data.Item2.fieldId\r\n );\r\n let auxTimePeriodIndex = fieldAreas[auxFieldAreaIndex]?.fields[\r\n auxFieldIndex\r\n ]?.timePeriods?.findIndex((x) => x.id == data.Item2.timePeriodId);\r\n\r\n this.setState({\r\n fieldAreas: fieldAreas,\r\n selectedFieldAreaIndex: auxFieldAreaIndex,\r\n selectedFieldIndex: auxFieldIndex,\r\n selectedFieldTimePeriodIndex: auxTimePeriodIndex,\r\n });\r\n return;\r\n }\r\n if (isInit && this.props.options.fieldAssignInfo) {\r\n const { field_area_id, field_id, time_id } =\r\n this.props.options.fieldAssignInfo;\r\n const fieldAreas = data.Item1;\r\n\r\n let auxFieldAreaIndex = fieldAreas.findIndex(\r\n (x) => x.id == field_area_id\r\n );\r\n\r\n let auxFieldIndex = fieldAreas[auxFieldAreaIndex]?.fields.findIndex(\r\n (x) => x.id == field_id\r\n );\r\n let auxTimePeriodIndex = fieldAreas[auxFieldAreaIndex]?.fields[\r\n auxFieldIndex\r\n ]?.timePeriods.findIndex((x) => x.id == time_id);\r\n\r\n this.setState({\r\n fieldAreas: data.Item1,\r\n selectedFieldAreaIndex: auxFieldAreaIndex,\r\n selectedFieldIndex: auxFieldIndex,\r\n selectedFieldTimePeriodIndex: auxTimePeriodIndex,\r\n });\r\n } else {\r\n this.setState({ fieldAreas: data.Item1 });\r\n }\r\n }\r\n );\r\n };\r\n\r\n loadWalkerAreas = (cur_horse_id, cur_training_name, isInit) => {\r\n if (!this.isWalker(cur_training_name) && !isInit) return;\r\n\r\n window.DataGate.getAvailableWalkerAreas(\r\n this.props.item ? this.props.item.id : \"\",\r\n this.props.options.date.formatDesh(),\r\n cur_horse_id,\r\n (code, data) => {\r\n if (!data)\r\n alert(\"Something went wrong when retrieveing data about fields\");\r\n\r\n let walkerAreas = [...data.Item1];\r\n\r\n if (\r\n data.Item2 &&\r\n data.Item2.walkerAreaId != \"00000000-0000-0000-0000-000000000000\"\r\n ) {\r\n let auxWalkerAreaIndex = walkerAreas.findIndex(\r\n (x) => x.id == data.Item2.walkerAreaId\r\n );\r\n let auxWalkerIndex = walkerAreas[\r\n auxWalkerAreaIndex\r\n ]?.walkers?.findIndex((x) => x.id == data.Item2.walkerId);\r\n let auxTimePeriodIndex = walkerAreas[auxWalkerAreaIndex]?.walkers[\r\n auxWalkerIndex\r\n ]?.timePeriods?.findIndex((x) => x.id == data.Item2.timePeriodId);\r\n\r\n this.setState({\r\n walkerAreas: walkerAreas,\r\n selectedWalkerAreaIndex: auxWalkerAreaIndex,\r\n selectedWalkerIndex: auxWalkerIndex,\r\n selectedWalkerTimePeriodIndex: auxTimePeriodIndex,\r\n });\r\n return;\r\n }\r\n\r\n if (isInit && this.props.options.walkerAssignInfo) {\r\n const { walker_area_id, walker_id, time_id } =\r\n this.props.options.walkerAssignInfo;\r\n const walkerAreas = data.Item1;\r\n\r\n let auxWalkerAreaIndex = walkerAreas.findIndex(\r\n (x) => x.id == walker_area_id\r\n );\r\n\r\n let auxWalkerIndex = walkerAreas[\r\n auxWalkerAreaIndex\r\n ]?.walkers.findIndex((x) => x.id == walker_id);\r\n let auxTimePeriodIndex = walkerAreas[auxWalkerAreaIndex]?.walkers[\r\n auxWalkerIndex\r\n ]?.timePeriods.findIndex((x) => x.id == time_id);\r\n\r\n this.setState({\r\n walkerAreas: data.Item1,\r\n selectedWalkerAreaIndex: auxWalkerAreaIndex,\r\n selectedWalkerIndex: auxWalkerIndex,\r\n selectedWalkerTimePeriodIndex: auxTimePeriodIndex,\r\n });\r\n } else {\r\n this.setState({ walkerAreas: data.Item1 });\r\n }\r\n }\r\n );\r\n };\r\n\r\n loadData = () => {\r\n let horseArr = window.DataStorage.getAllHorses();\r\n console.log(\"this.state.fromTappingView\", this.state.fromTappingView);\r\n if (this.state.fromTappingView) {\r\n horseArr = horseArr.filter((horse) => {\r\n return horse.Gender == \"3\";\r\n });\r\n console.log(horseArr);\r\n }\r\n\r\n console.log(\"horseArr\", horseArr);\r\n console.log(\"horseArr horsetypes\", window.DataStorage.horseTypes);\r\n horseArr = horseArr.sort((h1, h2) =>\r\n h1.name.toLowerCase() > h2.name.toLowerCase() ? 1 : -1\r\n );\r\n var imgArr = [\r\n { imgId: \"5\", src: \"img/smiley5.png\" },\r\n { imgId: \"4\", src: \"img/smiley4.png\" },\r\n { imgId: \"3\", src: \"img/smiley3.png\" },\r\n { imgId: \"2\", src: \"img/smiley2.png\" },\r\n { imgId: \"1\", src: \"img/smiley1.png\" },\r\n ];\r\n\r\n let trainingTypes = this.trainingTypesForHorse(this.props.options.horseId);\r\n let vetTraining = trainingTypes.filter((i) => i.IsVeterinarian == true);\r\n if (vetTraining.length) {\r\n this.setState({ vetTrainingId: vetTraining[0].id });\r\n }\r\n let farTraining = trainingTypes.filter((i) => i.IsFarrier == true);\r\n if (farTraining.length) {\r\n this.setState({ farTrainingId: farTraining[0].id });\r\n }\r\n\r\n var currentHorseId = this.props.options.horseId;\r\n // load field areas (with timeperiods that are available)\r\n\r\n this.loadFieldAreas(currentHorseId, this.props.item?.name, true);\r\n let currentHorse = horseArr.filter((i) => i.id == currentHorseId);\r\n let currentHorseOwner = \"\";\r\n if (currentHorse) currentHorseOwner = currentHorse[0].userid;\r\n if (this.props.options.farrWeek)\r\n var currentFarrierWeek = this.props.options.farrWeek;\r\n else\r\n var currentFarrierWeek = window.GlobalData.getItem(\r\n window.GlobalData.SETTINGS_FARRIER_WEEKS\r\n );\r\n\r\n this.setState(\r\n {\r\n trainingTypesArr: trainingTypes,\r\n horseNameArr: horseArr,\r\n imgStrArr: imgArr,\r\n date: this.props.options.date,\r\n currentStarttime: this.props.options.date.formatDesh(),\r\n currentHorseId: this.props.options.horseId,\r\n currentHorseOwner: currentHorseOwner,\r\n currentTrainingType: this.props.options.trainingType,\r\n currentFarrierWeek: currentFarrierWeek,\r\n currentTrainerId: this.props.options.trainerId,\r\n currentTrainerName: this.props.options.trainerName,\r\n },\r\n this.loadDataFromProps\r\n );\r\n\r\n window.db.getTrainers(this.props.options.horseId, (data) => {\r\n let ridersOrder = window.GlobalData.getItem(\r\n window.GlobalData.KEY_RIDERS_ORDER\r\n );\r\n if (ridersOrder != null) {\r\n try {\r\n ridersOrder = JSON.parse(ridersOrder);\r\n\r\n ridersOrder[window.myid] = 0;\r\n\r\n data.sort((a, b) => {\r\n let orderA = ridersOrder[a.id];\r\n let orderB = ridersOrder[b.id];\r\n if (orderA != null && orderB != null) return orderA - orderB;\r\n //if (orderA != null && orderB == null)\r\n // return 1;\r\n //if (orderA == null && orderB != null)\r\n // return -1;\r\n\r\n return 0;\r\n });\r\n } catch (e) {}\r\n }\r\n this.setState({\r\n trainersArr: data,\r\n });\r\n });\r\n\r\n window.db.getFarrierTypes(window.myid, (ftypes) => {\r\n let currentFarrierType = this.state.currentFarrierType;\r\n\r\n if (ftypes.length != 0) {\r\n if (ftypes.find((ft) => ft.Id == currentFarrierType) == null) {\r\n currentFarrierType = ftypes[0].Id;\r\n }\r\n } else {\r\n currentFarrierType = null;\r\n }\r\n this.setState({\r\n farrierType: ftypes,\r\n currentFarrierType: currentFarrierType,\r\n });\r\n });\r\n\r\n window.db.getUserDewormingType(window.myid, (dewormingTypes) => {\r\n this.setState({\r\n dewormingTypes: dewormingTypes,\r\n });\r\n });\r\n };\r\n\r\n loadDataFromProps = () => {\r\n let currentTrainingType = this.state.currentTrainingType;\r\n\r\n if (!this.state.currentTrainingType && this.state.trainingTypesArr.length) {\r\n currentTrainingType = this.state.trainingTypesArr[0].id;\r\n this.setState({\r\n currentTrainingType: this.state.trainingTypesArr[0].id,\r\n });\r\n }\r\n\r\n if (this.props.item) {\r\n let currentNextDewormingPeriod =\r\n this.state.vetTrainingId == currentTrainingType &&\r\n (this.props.item.VeterinarianType == 4 ||\r\n this.props.item.VeterinarianType == 3)\r\n ? this.props.item.NextDewormingPeriod\r\n : \"\";\r\n let nextDewormingDate = \"\";\r\n if (currentNextDewormingPeriod != \"\") {\r\n currentNextDewormingPeriod = parseInt(currentNextDewormingPeriod);\r\n switch (currentNextDewormingPeriod) {\r\n case 0:\r\n var date = new Date(this.props.options.date.formatDesh());\r\n date = new Date(date.setMonth(date.getMonth() + 1));\r\n nextDewormingDate = date.formatDesh();\r\n break;\r\n case 1:\r\n var date = new Date(this.props.options.date.formatDesh());\r\n date = new Date(date.setMonth(date.getMonth() + 3));\r\n nextDewormingDate = date.formatDesh();\r\n break;\r\n case 2:\r\n var date = new Date(this.props.options.date.formatDesh());\r\n date = new Date(date.setMonth(date.getMonth() + 6));\r\n nextDewormingDate = date.formatDesh();\r\n break;\r\n case 3:\r\n var date = new Date(this.props.options.date.formatDesh());\r\n date = new Date(date.setMonth(date.getMonth() + 12));\r\n nextDewormingDate = date.formatDesh();\r\n break;\r\n }\r\n }\r\n this.setState(\r\n {\r\n currentTrainingId: this.props.item.id,\r\n currentRemark: this.props.item.remark,\r\n currentEvaluation: this.props.item.Evaluation,\r\n currentIsCanCopy: this.props.item.isCanCopy,\r\n currentColor: this.props.item.color,\r\n currentVeterinarianType: this.props.item.VeterinarianType,\r\n currentFarrierType: this.props.item.FarrierType,\r\n currentTraining: this.props.item,\r\n currentHasMultimedia: this.props.item.HasMultimedia,\r\n currentPaddockPeriod: this.props.item.PaddockPeriod,\r\n currentReminderType: this.props.item.ReminderType,\r\n currentTimeOfDay: this.props.item.TimeOfDay,\r\n currentVeterinarianVacType: this.props.item.VeterinarianVacType,\r\n currentDuration: this.props.item.duration,\r\n currentTrainingName: this.props.item.name,\r\n currentTrainingShortname: this.props.item.shortname,\r\n currentStatus: this.props.item.status,\r\n currentSynctime: this.props.item.synctime,\r\n currentDewormingType: this.props.item.DewormingType,\r\n currentNextDewormingPeriod: currentNextDewormingPeriod,\r\n nextDewormingDate: nextDewormingDate,\r\n },\r\n () => {\r\n window.db.getNotesByHorse(this.state.currentHorseId, (notes) => {\r\n this.setState({ horseNotes: notes });\r\n });\r\n }\r\n );\r\n } else {\r\n let currentTraining = this.state.trainingTypesArr.filter(\r\n (item) => item.id == currentTrainingType\r\n );\r\n let color = \"red\";\r\n if (this.props.options.isDone) color = \"green\";\r\n else color = \"red\";\r\n\r\n var date = new Date(this.props.options.date.formatDesh());\r\n date = new Date(date.setMonth(date.getMonth() + 6));\r\n let nextDewormingDate = date.formatDesh();\r\n this.setState(\r\n {\r\n currentTrainingName: currentTraining[0].name,\r\n currentTrainingShortname: currentTraining[0].shortname,\r\n currentColor: color,\r\n currentNextDewormingPeriod: 2,\r\n nextDewormingDate: nextDewormingDate,\r\n },\r\n () => {\r\n window.db.getNotesByHorse(this.state.currentHorseId, (notes) => {\r\n this.setState({ horseNotes: notes });\r\n });\r\n }\r\n );\r\n }\r\n };\r\n\r\n handleChange = (date) => {\r\n this.setState({\r\n date: date,\r\n currentStarttime: date.formatDesh(),\r\n });\r\n };\r\n\r\n hide() {\r\n ReactDOM.unmountComponentAtNode(\r\n document.getElementById(\"trainingPopupReact\")\r\n );\r\n }\r\n\r\n onCancelClick = () => {\r\n this.hide();\r\n };\r\n\r\n onSaveClick = () => {\r\n if (this.isField(this.state.currentTrainingName)) {\r\n const enforceFieldData =\r\n window.DataStorage.getUserSetting(1, this.state.currentHorseOwner) == 1;\r\n if (\r\n enforceFieldData &&\r\n (this.state.selectedFieldAreaIndex < 0 ||\r\n this.state.selectedFieldIndex < 0 ||\r\n this.state.selectedFieldTimePeriodIndex < 0)\r\n ) {\r\n toast.error(\"Please select field area, field and time period\");\r\n return;\r\n }\r\n }\r\n\r\n if (this.isWalker(this.state.currentTrainingName)) {\r\n const enforceFieldData =\r\n window.DataStorage.getUserSetting(2, this.state.currentHorseOwner) == 1;\r\n if (\r\n enforceFieldData &&\r\n (this.state.selectedWalkerAreaIndex < 0 ||\r\n this.state.selectedWalkerIndex < 0 ||\r\n this.state.selectedWalkerTimePeriodIndex < 0)\r\n ) {\r\n toast.error(\"Please select walker area, walker and time period\");\r\n return;\r\n }\r\n }\r\n\r\n window.GlobalData.setItem(\r\n window.GlobalData.SETTINGS_FARRIER_WEEKS,\r\n this.state.currentFarrierWeek\r\n );\r\n window.GlobalData.setItem(\r\n window.GlobalData.SETTINGS_FARRIER_WEEKS +\r\n \"&\" +\r\n this.state.currentHorseId,\r\n this.state.currentFarrierWeek\r\n );\r\n if (this.props.item && this.props.item.GroupId) {\r\n new GroupDeleteUpdateQuestionWindow().showWindow(\r\n false,\r\n (isGroupSelected) => {\r\n this.saveTraining(() => {\r\n this.hide();\r\n if (isGroupSelected) {\r\n window.DataGate.updateCopyTraining(\r\n this.props.item.id,\r\n (code, data) => {\r\n window.training.refresh({ showSpinner: false });\r\n }\r\n );\r\n }\r\n });\r\n }\r\n );\r\n } else {\r\n this.saveTraining(() => {});\r\n }\r\n };\r\n\r\n isField = (name) => {\r\n if (!name) return false;\r\n name = name.toLowerCase();\r\n\r\n if (!name) return false;\r\n return name == \"field\" || name == \"fold\" || name == \"feld\";\r\n };\r\n\r\n isWalker = (name) => {\r\n if (!name) return false;\r\n name = name.toLowerCase();\r\n\r\n return name == \"walker\";\r\n };\r\n\r\n getFieldNote = (notes) => {\r\n let fieldNote = notes.find((note) => this.isField(note.HeaderNote));\r\n return fieldNote?.TextNote && fieldNote;\r\n };\r\n saveTraining = (onDoneCallback) => {\r\n const {\r\n currentColor,\r\n currentDuration,\r\n currentEvaluation,\r\n currentFarrierType,\r\n currentHasMultimedia,\r\n currentHorseId,\r\n currentTrainingId,\r\n currentIsCanCopy,\r\n currentPaddockPeriod,\r\n currentRemark,\r\n currentReminderType,\r\n currentStarttime,\r\n currentStatus,\r\n currentSynctime,\r\n currentTimeOfDay,\r\n currentTrainerId,\r\n currentTrainingType,\r\n currentVeterinarianType,\r\n currentVeterinarianVacType,\r\n currentTrainingName,\r\n currentTrainingShortname,\r\n currentTrainerName,\r\n dewormingTypes,\r\n currentDewormingType,\r\n dewormingTypesPeriod,\r\n currentNextDewormingPeriod,\r\n farTrainingId,\r\n vetTrainingId,\r\n } = this.state;\r\n\r\n var trainItem = {};\r\n trainItem[\"Color\"] = currentColor ? currentColor : \"red\";\r\n trainItem[\"Duration\"] = currentDuration ? currentDuration : 1;\r\n trainItem[\"Evaluation\"] = currentEvaluation ? currentEvaluation : 0;\r\n trainItem[\"FarrierType\"] =\r\n currentTrainingType == farTrainingId\r\n ? currentFarrierType\r\n ? currentFarrierType\r\n : null\r\n : null;\r\n trainItem[\"HasMultimedia\"] = currentHasMultimedia\r\n ? currentHasMultimedia\r\n : null;\r\n trainItem[\"HorseId\"] = currentHorseId\r\n ? currentHorseId\r\n : this.props.options.horseId;\r\n trainItem[\"Id\"] = currentTrainingId ? currentTrainingId : Math.uuid();\r\n trainItem[\"IsCanCopy\"] = currentIsCanCopy ? currentIsCanCopy : null;\r\n trainItem[\"PaddockPeriod\"] = currentPaddockPeriod\r\n ? currentPaddockPeriod\r\n : null;\r\n trainItem[\"Remark\"] = currentRemark ? currentRemark : \"\";\r\n trainItem[\"ReminderType\"] = currentReminderType ? currentReminderType : 0;\r\n trainItem[\"StartTime\"] = currentStarttime;\r\n trainItem[\"Status\"] = currentStatus;\r\n trainItem[\"SyncTime\"] = currentSynctime ? currentSynctime : -1;\r\n trainItem[\"TimeOfDay\"] = currentTimeOfDay ? currentTimeOfDay : \"\";\r\n trainItem[\"Trainer\"] = currentTrainerId ? currentTrainerId : window.myid;\r\n trainItem[\"Type\"] = currentTrainingType;\r\n trainItem[\"U\"] = \"u\";\r\n trainItem[\"VeterinarianType\"] =\r\n currentTrainingType == vetTrainingId\r\n ? currentVeterinarianType\r\n ? currentVeterinarianType\r\n : 2\r\n : null;\r\n trainItem[\"VeterinarianVacType\"] =\r\n currentTrainingType == vetTrainingId\r\n ? currentVeterinarianVacType\r\n ? currentVeterinarianVacType\r\n : null\r\n : null;\r\n trainItem[\"DewormingType\"] =\r\n currentTrainingType == vetTrainingId && currentVeterinarianType == 4\r\n ? currentDewormingType\r\n ? currentDewormingType\r\n : dewormingTypes[0].Id\r\n : null;\r\n trainItem[\"NextDewormingPeriod\"] =\r\n currentTrainingType == vetTrainingId &&\r\n (currentVeterinarianType == 4 || currentVeterinarianType == 3)\r\n ? currentNextDewormingPeriod\r\n ? currentNextDewormingPeriod\r\n : 2\r\n : null;\r\n\r\n const isFieldTask = this.isField(this.state.currentTrainingName);\r\n\r\n if (isFieldTask && this.state.selectedFieldAreaIndex >= 0) {\r\n trainItem[\"FieldAreaId\"] =\r\n this.state.fieldAreas[this.state.selectedFieldAreaIndex]?.id;\r\n trainItem[\"FieldId\"] =\r\n this.state.fieldAreas[this.state.selectedFieldAreaIndex]?.fields[\r\n this.state.selectedFieldIndex\r\n ]?.id;\r\n trainItem[\"FieldAreaTimePeriodId\"] =\r\n this.state.fieldAreas[this.state.selectedFieldAreaIndex]?.fields[\r\n this.state.selectedFieldIndex\r\n ]?.timePeriods[this.state.selectedFieldTimePeriodIndex]?.id;\r\n\r\n trainItem[\"FieldAssignmentFieldAreaName\"] =\r\n this.state.fieldAreas[this.state.selectedFieldAreaIndex]?.name;\r\n trainItem[\"FieldAssignmentFieldName\"] =\r\n this.state.fieldAreas[this.state.selectedFieldAreaIndex]?.fields[\r\n this.state.selectedFieldIndex\r\n ]?.name;\r\n trainItem[\"FieldAssignmentFieldTimePeriod\"] =\r\n this.state.fieldAreas[this.state.selectedFieldAreaIndex]?.fields[\r\n this.state.selectedFieldIndex\r\n ]?.timePeriods[this.state.selectedFieldTimePeriodIndex]?.period;\r\n }\r\n\r\n if (\r\n this.state.selectedFieldAreaIndex == -1 &&\r\n this.props.options.fieldAssignInfo\r\n ) {\r\n const { field_area_id, field_id, time_id } =\r\n this.props.options.fieldAssignInfo;\r\n if (field_area_id) {\r\n trainItem[\"FieldAreaId\"] = field_area_id;\r\n trainItem[\"FieldId\"] = field_id;\r\n trainItem[\"FieldAreaTimePeriodId\"] = time_id;\r\n }\r\n }\r\n\r\n //walker\r\n\r\n const isWalkerTask = this.isWalker(this.state.currentTrainingName);\r\n\r\n if (isWalkerTask && this.state.selectedWalkerAreaIndex >= 0) {\r\n trainItem[\"WalkerAreaId\"] =\r\n this.state.walkerAreas[this.state.selectedWalkerAreaIndex]?.id;\r\n trainItem[\"WalkerId\"] =\r\n this.state.walkerAreas[this.state.selectedWalkerAreaIndex]?.walkers[\r\n this.state.selectedWalkerIndex\r\n ]?.id;\r\n trainItem[\"WalkerAreaTimePeriodId\"] =\r\n this.state.walkerAreas[this.state.selectedWalkerAreaIndex]?.walkers[\r\n this.state.selectedWalkerIndex\r\n ]?.timePeriods[this.state.selectedWalkerTimePeriodIndex]?.id;\r\n\r\n trainItem[\"WalkerAssignmentWalkerAreaName\"] =\r\n this.state.walkerAreas[this.state.selectedWalkerAreaIndex]?.name;\r\n trainItem[\"WalkerAssignmentWalkerName\"] =\r\n this.state.walkerAreas[this.state.selectedWalkerAreaIndex]?.walkers[\r\n this.state.selectedWalkerIndex\r\n ]?.name;\r\n trainItem[\"WalkerAssignmentWalkerTimePeriod\"] =\r\n this.state.walkerAreas[this.state.selectedWalkerAreaIndex]?.walkers[\r\n this.state.selectedWalkerIndex\r\n ]?.timePeriods[this.state.selectedWalkerTimePeriodIndex]?.period;\r\n }\r\n\r\n if (\r\n this.state.selectedWalkerAreaIndex == -1 &&\r\n this.props.options.walkerAssignInfo\r\n ) {\r\n const { walker_area_id, walker_id, time_id } =\r\n this.props.options.walkerAssignInfo;\r\n if (walker_area_id) {\r\n trainItem[\"WalkerAreaId\"] = walker_area_id;\r\n trainItem[\"WalkerId\"] = walker_id;\r\n trainItem[\"WalkerAreaTimePeriodId\"] = time_id;\r\n }\r\n }\r\n\r\n var tr = {};\r\n tr[\"id\"] = trainItem[\"Id\"];\r\n tr[\"horseid\"] = trainItem[\"HorseId\"];\r\n tr[\"starttime\"] = trainItem[\"StartTime\"];\r\n tr[\"status\"] = trainItem[\"Status\"];\r\n tr[\"duration\"] = trainItem[\"Duration\"];\r\n tr[\"u\"] = trainItem[\"U\"];\r\n tr[\"remark\"] = trainItem[\"Remark\"];\r\n tr[\"color\"] = trainItem[\"Color\"];\r\n tr[\"trainer\"] = trainItem[\"Trainer\"];\r\n tr[\"syncTime\"] = -1;\r\n tr[\"isCanCopy\"] = parseInt(trainItem[\"IsCanCopy\"]) == 0 ? false : true;\r\n tr[\"type\"] = trainItem[\"Type\"];\r\n tr[\"TimeOfDay\"] = trainItem[\"TimeOfDay\"];\r\n tr[\"HasMultimedia\"] = trainItem[\"HasMultimedia\"];\r\n tr[\"Evaluation\"] = trainItem[\"Evaluation\"];\r\n tr[\"ReminderType\"] = trainItem[\"ReminderType\"];\r\n tr[\"FarrierType\"] = trainItem[\"FarrierType\"];\r\n tr[\"name\"] = currentTrainingName;\r\n tr[\"shortname\"] = currentTrainingShortname;\r\n tr[\"trainername\"] = currentTrainerName;\r\n tr[\"PaddockPeriod\"] = trainItem[\"PaddockPeriod\"];\r\n tr[\"VeterinarianType\"] = trainItem[\"VeterinarianType\"];\r\n tr[\"VeterinarianVacType\"] = trainItem[\"VeterinarianVacType\"];\r\n tr[\"DewormingType\"] = trainItem[\"DewormingType\"];\r\n tr[\"NextDewormingPeriod\"] = trainItem[\"NextDewormingPeriod\"];\r\n\r\n tr[\"FieldAssignmentFieldAreaName\"] =\r\n this.state.fieldAreas[this.state.selectedFieldAreaIndex]?.name;\r\n tr[\"FieldAssignmentFieldName\"] =\r\n this.state.fieldAreas[this.state.selectedFieldAreaIndex]?.fields[\r\n this.state.selectedFieldIndex\r\n ]?.name;\r\n tr[\"FieldAssignmentFieldTimePeriod\"] =\r\n this.state.fieldAreas[this.state.selectedFieldAreaIndex]?.fields[\r\n this.state.selectedFieldIndex\r\n ]?.timePeriods[this.state.selectedFieldTimePeriodIndex]?.period;\r\n\r\n tr[\"FieldAreaId\"] = trainItem[\"FieldAreaId\"];\r\n tr[\"FieldId\"] = trainItem[\"FieldId\"];\r\n tr[\"FieldAreaTimePeriodId\"] = trainItem[\"FieldAreaTimePeriodId\"];\r\n\r\n //Walker assignment\r\n tr[\"WalkerAssignmentWalkerAreaName\"] =\r\n this.state.walkerAreas[this.state.selectedWalkerAreaIndex]?.name;\r\n tr[\"WalkerAssignmentWalkerName\"] =\r\n this.state.walkerAreas[this.state.selectedWalkerAreaIndex]?.walkers[\r\n this.state.selectedWalkerIndex\r\n ]?.name;\r\n tr[\"WalkerAssignmentWalkerTimePeriod\"] =\r\n this.state.walkerAreas[this.state.selectedWalkerAreaIndex]?.walkers[\r\n this.state.selectedWalkerIndex\r\n ]?.timePeriods[this.state.selectedWalkerTimePeriodIndex]?.period;\r\n\r\n tr[\"WalkerAreaId\"] = trainItem[\"WalkerAreaId\"];\r\n tr[\"WalkerId\"] = trainItem[\"WalkerId\"];\r\n tr[\"WalkerAreaTimePeriodId\"] = trainItem[\"WalkerAreaTimePeriodId\"];\r\n\r\n if (this.props.item) {\r\n tr.GroupId = this.props.item.GroupId;\r\n tr.CopyDuration = this.props.item.CopyDuration;\r\n tr.DaysToCopy = this.props.item.DaysToCopy;\r\n }\r\n\r\n this.state.currentTraining = tr;\r\n\r\n if (currentTrainingId) {\r\n tr.TrainingFlag = window.DataStorage.TrainingFlagUpdate;\r\n } else {\r\n tr.TrainingFlag = window.DataStorage.TrainingFlagAdd;\r\n }\r\n window.DataStorage.addTraining(tr);\r\n window.training.refreshLayout();\r\n this.state.currentTrainingId = trainItem[\"Id\"];\r\n\r\n window.training.trainingRequestStart();\r\n\r\n window.DataGate.insertOrUpdateTrainings(trainItem, (code, data) => {\r\n if (code == window.DataGate.CODE_OK) {\r\n window.training.trainingRequestEnd();\r\n console.log(\"Training saved\");\r\n //window.training.refresh({ showSpinner: false });\r\n } else {\r\n window.showConnectionError();\r\n }\r\n\r\n if (onDoneCallback) onDoneCallback();\r\n\r\n if (this.props.callback) {\r\n this.props.callback(code == window.DataGate.CODE_OK);\r\n }\r\n\r\n if (this.props.returnTrainingCallback) {\r\n this.props.returnTrainingCallback(tr);\r\n }\r\n });\r\n this.hide();\r\n };\r\n\r\n onExtraTrainingClick = () => {\r\n let oprionObj = {\r\n horseId: this.state.currentHorseId,\r\n date: this.state.date,\r\n };\r\n this.onSaveClick(true);\r\n setTimeout(() => {\r\n new TrainingPopup().showPopup(oprionObj, null, () => {});\r\n }, 100);\r\n };\r\n\r\n onDeleteTrainingClick = () => {\r\n if (this.props.item && this.props.item.GroupId) {\r\n new GroupDeleteUpdateQuestionWindow().showWindow(\r\n true,\r\n (isGroupSelected) => {\r\n this.deleteTraining(() => {\r\n this.hide();\r\n if (isGroupSelected) {\r\n window.DataGate.deleteCopyTraining(\r\n this.props.item.id,\r\n (code, data) => {\r\n window.training.refresh({ showSpinner: false });\r\n }\r\n );\r\n }\r\n });\r\n }\r\n );\r\n } else {\r\n this.deleteTraining();\r\n }\r\n this.hide();\r\n };\r\n\r\n deleteTraining = (onDoneCallback) => {\r\n if (this.state.currentTrainingId) {\r\n window.DataStorage.deleteTrainingById(this.state.currentTrainingId);\r\n window.training.refreshLayout();\r\n\r\n window.training.trainingRequestStart();\r\n window.DataGate.deleteTrainings(\r\n this.state.currentTrainingId,\r\n \"d\",\r\n this.props.options.horseId,\r\n this.state.currentStarttime,\r\n (code) => {\r\n if (code == window.DataGate.CODE_OK) {\r\n window.training.trainingRequestEnd();\r\n //window.training.refresh({ showSpinner: false });\r\n } else {\r\n window.showConnectionError();\r\n }\r\n if (onDoneCallback) onDoneCallback();\r\n }\r\n );\r\n }\r\n };\r\n\r\n onShowMultimediaClick = () => {\r\n if (!this.state.currentTrainingId) {\r\n this.saveTraining();\r\n window.training.refresh({ showSpinner: false });\r\n }\r\n this.onCancelClick();\r\n let $ = window.$;\r\n window.showPage(\"#taskImagePage\");\r\n $(\"#taskImagePage\").css(\"min-height\", \"95%\");\r\n $(\"#taskImageHeader\").html(window.lang.image);\r\n $(\"#taskImageBackButton, #taskImageOkButton\").unbind(\"click\");\r\n $(\"#taskImageBackButton, #taskImageOkButton\").bind(\"click\", function (e) {\r\n window.onBack();\r\n $(\".load-bar\").css(\"top\", \"70px\");\r\n e.stopPropagation();\r\n });\r\n let horse = window.DataStorage.getAllHorses().find(\r\n (h) => h.id == this.state.currentHorseId\r\n );\r\n ReactDOM.render(\r\n ,\r\n document.getElementById(\"taskImageDropTable\")\r\n );\r\n };\r\n\r\n onXrayClick = () => {\r\n if (!this.state.currentTrainingId) {\r\n this.saveTraining();\r\n window.training.refresh({ showSpinner: false });\r\n }\r\n\r\n this.hide();\r\n var taskId = this.state.currentTraining.id;\r\n TaskXrayPage.show(taskId);\r\n };\r\n\r\n onCopyTaskClick = () => {\r\n if (!this.state.currentTrainingId) {\r\n this.saveTraining();\r\n window.training.refresh({ showSpinner: false });\r\n }\r\n let copyTaskWindow = new CopyTaskWindow();\r\n copyTaskWindow.showWindow(this.state.currentTraining, this.onCopyDone);\r\n };\r\n\r\n onCopyDone = () => {\r\n this.hide();\r\n };\r\n\r\n onReminderSelectClick = () => {\r\n this.setState({\r\n showReminderPopup: !this.state.showReminderPopup,\r\n });\r\n };\r\n\r\n onHorseClick = (e) => {\r\n if (!e.currentTarget.dataset.idf) return;\r\n\r\n const vx = e.currentTarget.dataset.idf;\r\n let nextHorseId = this.state.horseNameArr.find(\r\n (horse) => horse.id == vx\r\n ).id;\r\n\r\n if (nextHorseId == this.state.currentHorseId) return;\r\n\r\n let nextHorseOwnerId = this.state.horseNameArr.find(\r\n (horse) => horse.id == vx\r\n ).userid;\r\n let prevHorseOwnerId = this.state.horseNameArr.find(\r\n (horse) => horse.id == vx\r\n ).userid;\r\n\r\n let currentTrainerId = this.state.horseNameArr.find(\r\n (horse) => horse.id == vx\r\n ).trainer;\r\n if (!currentTrainerId) currentTrainerId = window.myid;\r\n window.db.getTrainers(nextHorseId, (data) => {\r\n let ridersOrder = window.GlobalData.getItem(\r\n window.GlobalData.KEY_RIDERS_ORDER\r\n );\r\n if (ridersOrder != null) {\r\n ridersOrder = JSON.parse(ridersOrder);\r\n\r\n try {\r\n ridersOrder[window.myid] = 0;\r\n\r\n data.sort((a, b) => {\r\n let orderA = ridersOrder[a.id];\r\n let orderB = ridersOrder[b.id];\r\n if (orderA != null && orderB != null) return orderA - orderB;\r\n return 0;\r\n });\r\n } catch (e) {}\r\n }\r\n this.setState(\r\n {\r\n trainersArr: data,\r\n },\r\n () => {\r\n if (nextHorseOwnerId != prevHorseOwnerId)\r\n this.loadFieldAreas(vx, this.state.currentTrainingName);\r\n\r\n this.setState(\r\n {\r\n currentHorseId: vx,\r\n trainingTypesArr: this.trainingTypesForHorse(vx),\r\n currentTrainerId: currentTrainerId,\r\n },\r\n () => {\r\n window.db.getNotesByHorse(vx, (notes) => {\r\n this.setState({ horseNotes: notes });\r\n });\r\n }\r\n );\r\n }\r\n );\r\n });\r\n };\r\n\r\n onHorseChange = (e) => {\r\n let currentTrainerId = this.state.horseNameArr.find(\r\n (horse) => horse.id == e.target.value\r\n ).trainer;\r\n\r\n if (!currentTrainerId) currentTrainerId = window.myid;\r\n\r\n this.setState(\r\n {\r\n currentHorseId: e.target.value,\r\n trainingTypesArr: this.trainingTypesForHorse(e.target.value),\r\n currentTrainerId: currentTrainerId,\r\n },\r\n () => {\r\n window.db.getTrainers(this.state.currentHorseId, (data) => {\r\n let ridersOrder = window.GlobalData.getItem(\r\n window.GlobalData.KEY_RIDERS_ORDER\r\n );\r\n if (ridersOrder != null) {\r\n ridersOrder = JSON.parse(ridersOrder);\r\n try {\r\n ridersOrder[window.myid] = 0;\r\n\r\n data.sort((a, b) => {\r\n let orderA = ridersOrder[a.id];\r\n let orderB = ridersOrder[b.id];\r\n if (orderA != null && orderB != null) return orderA - orderB;\r\n //if (orderA != null && orderB == null)\r\n // return 1;\r\n //if (orderA == null && orderB != null)\r\n // return -1;\r\n\r\n return 0;\r\n });\r\n } catch (e) {}\r\n }\r\n this.setState(\r\n {\r\n trainersArr: data,\r\n },\r\n () => {\r\n window.db.getNotesByHorse(this.state.currentHorseId, (notes) => {\r\n this.setState({ horseNotes: notes });\r\n });\r\n }\r\n );\r\n });\r\n }\r\n );\r\n };\r\n\r\n onTrainerClick = (e) => {\r\n let currentTrainerId = e.currentTarget.dataset.idf;\r\n\r\n if (currentTrainerId) {\r\n let currentTrainer = this.state.trainersArr.filter(\r\n (i) => i.id == currentTrainerId\r\n );\r\n this.setState({\r\n currentTrainerId: currentTrainerId,\r\n currentTrainerName: currentTrainer[0].name,\r\n });\r\n }\r\n };\r\n\r\n onTrainerChange = (e) => {\r\n let currentTrainerId = e.target.value;\r\n let currentTrainer = this.state.trainersArr.filter(\r\n (i) => i.id == currentTrainerId\r\n );\r\n this.setState({\r\n currentTrainerId: currentTrainerId,\r\n currentTrainerName: currentTrainer[0].name,\r\n });\r\n };\r\n\r\n onTrainingClick = (e) => {\r\n let currentTrainingId = e.currentTarget.dataset.idf;\r\n if (currentTrainingId) {\r\n let currentTraining = this.state.trainingTypesArr.filter(\r\n (i) => i.id == currentTrainingId\r\n );\r\n if (\r\n this.state.vetTrainingId == currentTrainingId &&\r\n (this.state.currentVeterinarianType == 4 ||\r\n this.state.currentVeterinarianType == 3) &&\r\n this.state.currentNextDewormingPeriod == undefined\r\n ) {\r\n this.state.currentNextDewormingPeriod = 2;\r\n var date = new Date(this.state.currentStarttime.formatDesh());\r\n date = new Date(date.setMonth(date.getMonth() + 6));\r\n this.state.nextDewormingDate = date.formatDesh();\r\n }\r\n this.setState({\r\n currentTrainingType: currentTrainingId,\r\n currentTrainingName: currentTraining[0].name,\r\n currentTrainingShortname: currentTraining[0].shortname,\r\n });\r\n this.loadFieldAreas(this.state.currentHorseId, currentTraining[0].name);\r\n }\r\n };\r\n\r\n onTrainingChange = (e) => {\r\n let currentTrainingId = e.target.value;\r\n let currentTraining = this.state.trainingTypesArr.filter(\r\n (i) => i.id == currentTrainingId\r\n );\r\n if (\r\n this.state.vetTrainingId == currentTrainingId &&\r\n (this.state.currentVeterinarianType == 4 ||\r\n this.state.currentVeterinarianType == 3) &&\r\n this.state.currentNextDewormingPeriod == undefined\r\n ) {\r\n this.state.currentNextDewormingPeriod = 2;\r\n var date = new Date(this.state.currentStarttime.formatDesh());\r\n date = new Date(date.setMonth(date.getMonth() + 6));\r\n this.state.nextDewormingDate = date.formatDesh();\r\n }\r\n\r\n this.setState({\r\n currentTrainingType: currentTrainingId,\r\n currentTrainingName: currentTraining[0].name,\r\n currentTrainingShortname: currentTraining[0].shortname,\r\n });\r\n };\r\n\r\n onDoneClick = (e) => {\r\n if (e.target.checked) {\r\n this.setState({\r\n currentColor: \"green\",\r\n });\r\n } else {\r\n this.setState({\r\n currentColor: \"red\",\r\n });\r\n }\r\n };\r\n\r\n onEvaluationClick = (e) => {\r\n if (e.target.dataset.id) {\r\n this.setState({\r\n currentEvaluation: e.target.dataset.id,\r\n });\r\n }\r\n };\r\n\r\n onCanCopyClick = (e) => {\r\n this.setState({\r\n currentIsCanCopy: e.target.checked,\r\n });\r\n };\r\n\r\n onRemarkChange = (e) => {\r\n this.setState({\r\n currentRemark: e.target.value,\r\n });\r\n };\r\n\r\n showTimeSelect = () => {\r\n this.setState({\r\n isShowTimePopup: true,\r\n });\r\n };\r\n\r\n hideTimeSelect = () => {\r\n this.setState({\r\n isShowTimePopup: false,\r\n });\r\n };\r\n\r\n onTimeChange = (val) => {\r\n this.setState({\r\n isShowTimePopup: false,\r\n currentTimeOfDay: val,\r\n });\r\n };\r\n\r\n onVeterinarianTypeChange = (e) => {\r\n if (\r\n (e.target.value == 4 || e.target.value == 3) &&\r\n this.state.currentNextDewormingPeriod == \"\"\r\n ) {\r\n this.state.currentNextDewormingPeriod = 2;\r\n var date = new Date(this.state.currentStarttime);\r\n date = new Date(date.setMonth(date.getMonth() + 6));\r\n this.state.nextDewormingDate = date.formatDesh();\r\n }\r\n this.setState({\r\n currentVeterinarianType: e.target.value,\r\n });\r\n };\r\n\r\n onFarrierTypeChange = (e) => {\r\n this.setState({\r\n currentFarrierType: e.target.value,\r\n });\r\n };\r\n\r\n onFarrierWeekChange = (e) => {\r\n let date = new Date();\r\n if (e.target.value < 7) {\r\n date.setDate(\r\n date.getDate() +\r\n ((parseInt(e.target.value) + 1 + 7 - date.getDay()) % 7)\r\n );\r\n } else if (e.target.value > 7) {\r\n date = new Date().addDays(7 * (parseInt(e.target.value) - 4));\r\n }\r\n this.setState({\r\n currentFarrierWeek: e.target.value,\r\n date: date,\r\n currentStarttime: date.formatDesh(),\r\n });\r\n };\r\n\r\n onDewormingTypeChange = (e) => {\r\n this.setState({\r\n currentDewormingType: e.target.value,\r\n });\r\n };\r\n\r\n onDewormingTypePeriodChange = (e) => {\r\n let currentNextDewormingPeriod = e.target.value;\r\n let nextDewormingDate = \"\";\r\n switch (currentNextDewormingPeriod) {\r\n case \"0\":\r\n var date = new Date(this.props.options.date.formatDesh());\r\n date = new Date(date.setMonth(date.getMonth() + 1));\r\n nextDewormingDate = date.formatDesh();\r\n break;\r\n case \"1\":\r\n var date = new Date(this.props.options.date.formatDesh());\r\n date = new Date(date.setMonth(date.getMonth() + 3));\r\n nextDewormingDate = date.formatDesh();\r\n break;\r\n case \"2\":\r\n var date = new Date(this.props.options.date.formatDesh());\r\n date = new Date(date.setMonth(date.getMonth() + 6));\r\n nextDewormingDate = date.formatDesh();\r\n break;\r\n case \"3\":\r\n var date = new Date(this.props.options.date.formatDesh());\r\n date = new Date(date.setMonth(date.getMonth() + 12));\r\n nextDewormingDate = date.formatDesh();\r\n break;\r\n }\r\n this.setState({\r\n currentNextDewormingPeriod: e.target.value,\r\n nextDewormingDate: nextDewormingDate,\r\n });\r\n };\r\n\r\n scrollToSelectedItems = () => {\r\n let selectedCollection = document.getElementsByClassName(\r\n \"ui-btn selectedListItem\"\r\n );\r\n let selectedArr = [].slice.call(selectedCollection);\r\n if (selectedArr.length) selectedArr.map((i) => i.scrollIntoView());\r\n };\r\n\r\n onRemiderSelect = (selectedId) => {\r\n this.setState({\r\n currentReminderType: selectedId,\r\n showReminderPopup: false,\r\n });\r\n };\r\n\r\n //#region move popup\r\n onMouseDown = (e) => {\r\n this.isMovingMode = true;\r\n this.startX = e.clientX;\r\n this.startY = e.clientY;\r\n let el = document.getElementById(\"trainingEditWindowReact\");\r\n this.elementStartLeft = el.offsetLeft;\r\n this.elementStartTop = el.offsetTop;\r\n };\r\n onMouseMove = (e) => {\r\n if (this.isMovingMode && e.target.id == \"taskHeaderReact\") {\r\n let el = document.getElementById(\"trainingEditWindowReact\");\r\n el.style.left = this.elementStartLeft + (e.clientX - this.startX) + \"px\";\r\n el.style.top = this.elementStartTop + (e.clientY - this.startY) + \"px\";\r\n }\r\n };\r\n onMouseUp = (e) => {\r\n this.isMovingMode = false;\r\n };\r\n //#endregion\r\n\r\n render() {\r\n const {\r\n currentTrainingId,\r\n currentHorseId,\r\n currentTrainerId,\r\n currentTrainingType,\r\n currentRemark,\r\n currentEvaluation,\r\n currentIsCanCopy,\r\n currentColor,\r\n date,\r\n horseNameArr,\r\n trainersArr,\r\n trainingTypesArr,\r\n imgStrArr,\r\n showMultimediaTraining,\r\n showTimeTraining,\r\n showDateTraining,\r\n showDoneTraining,\r\n showEvaluationTraining,\r\n showCopyTaskTraining,\r\n showRemarksTraining,\r\n showCopyButtonTraining,\r\n showRemainderTraining,\r\n vetTrainingId,\r\n veterinarType,\r\n currentVeterinarianType,\r\n farTrainingId,\r\n farrierType,\r\n currentFarrierType,\r\n farrierWeeks,\r\n currentFarrierWeek,\r\n currentTimeOfDay,\r\n currentReminderType,\r\n dewormingTypes,\r\n currentDewormingType,\r\n dewormingTypesPeriod,\r\n currentNextDewormingPeriod,\r\n nextDewormingDate,\r\n } = this.state;\r\n //var selectTime = window.lang.selectTime.length > 15 ? window.lang.selectTime.substring(0, 12) + '...' : window.lang.selectTime;\r\n const selectTime =\r\n currentTimeOfDay != \"\" ? currentTimeOfDay : window.lang.selectTime;\r\n var inches =\r\n Math.sqrt(\r\n Math.pow(window.screen.width, 2) + Math.pow(window.screen.height, 2)\r\n ) *\r\n (1 / window.inch.offsetWidth);\r\n\r\n if (currentHorseId) {\r\n let horseItem = window.DataStorage.getAllHorses().find(\r\n (h) => h.id == currentHorseId\r\n );\r\n if (horseItem.userid != window.myid) {\r\n var role = window.DataStorage.rolesDataFromUsers.find(\r\n (r) => r.UserId == horseItem.userid\r\n );\r\n }\r\n }\r\n\r\n const translateWord = (word) => {\r\n if (window.lang[word.toLowerCase()])\r\n return window.lang[word.toLowerCase()];\r\n\r\n return word;\r\n };\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n

\r\n \r\n

\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {showTimeTraining == 1 ? (\r\n \r\n ) : (\r\n <>\r\n )}\r\n \r\n \r\n {showDateTraining == 1 ? (\r\n \r\n ) : (\r\n <>\r\n )}\r\n \r\n \r\n \r\n {showDoneTraining == 1 ? (\r\n \r\n ) : (\r\n \r\n )}\r\n {showCopyTaskTraining == 1 ? (\r\n currentIsCanCopy ? (\r\n \r\n \r\n \r\n {window.lang.copyTask}\r\n \r\n \r\n ) : (\r\n \r\n \r\n \r\n {window.lang.copyTask}\r\n \r\n \r\n )\r\n ) : (\r\n \r\n )}\r\n \r\n\r\n \r\n \r\n \r\n\r\n {vetTrainingId == currentTrainingType ? (\r\n \r\n \r\n \r\n ) : farTrainingId == currentTrainingType ? (\r\n \r\n \r\n \r\n ) : role != null && role.tShowSmileOnTask == false ? (\r\n <>\r\n ) : showEvaluationTraining == 1 ? (\r\n \r\n \r\n \r\n ) : (\r\n <>\r\n )}\r\n {vetTrainingId == currentTrainingType &&\r\n currentVeterinarianType == 4 ? (\r\n \r\n \r\n \r\n ) : (\r\n <>\r\n )}\r\n \r\n {showRemarksTraining == 1 ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n
{window.lang.trainerName}{window.lang.training}
\r\n \r\n {trainersArr.length ? (\r\n trainersArr.map((currentElement) =>\r\n currentElement.id == window.myid ? (\r\n \r\n ) : (\r\n \r\n )\r\n )\r\n ) : (\r\n <>\r\n )}\r\n \r\n \r\n \r\n {trainingTypesArr.length ? (\r\n trainingTypesArr.map((currentElement) => (\r\n \r\n ))\r\n ) : (\r\n <>\r\n )}\r\n \r\n
\r\n
{window.lang.horse}
\r\n \r\n {horseNameArr.length ? (\r\n horseNameArr.map((currentElement) => (\r\n \r\n ))\r\n ) : (\r\n <>\r\n )}\r\n \r\n
\r\n \r\n {selectTime}\r\n \r\n
\r\n
\r\n }\r\n dateFormat=\"dd-MM-yyyy\"\r\n selected={date}\r\n onChange={this.handleChange}\r\n />\r\n
\r\n
\r\n {this.isField(this.state.currentTrainingName) &&\r\n this.getFieldNote(this.state.horseNotes) && (\r\n \r\n alert(\r\n this.getFieldNote(this.state.horseNotes)?.TextNote\r\n )\r\n }\r\n className=\"field-note\"\r\n >\r\n {window.lang.fieldNote + \": \"}\r\n {this.getFieldNote(this.state.horseNotes)?.TextNote}\r\n \r\n )}\r\n
\r\n \r\n \r\n {window.lang.trained}\r\n \r\n
\r\n {/* SELECT FIELD AREA, FIELD & TIME_PERIOD */}\r\n {this.isField(this.state.currentTrainingName) && (\r\n
\r\n {/* FIELD AREA */}\r\n
\r\n {window.lang.fieldArea}\r\n {\r\n this.setState({\r\n selectedFieldAreaIndex: e.currentTarget.value,\r\n selectedFieldIndex: -1,\r\n selectedFieldTimePeriodIndex: -1,\r\n });\r\n }}\r\n >\r\n \r\n {this.state.fieldAreas.map((fieldArea, index) => (\r\n \r\n ))}\r\n \r\n
\r\n\r\n {/* FIELD */}\r\n
\r\n {window.lang.fieldName}\r\n {\r\n this.setState({\r\n selectedFieldIndex: e.currentTarget.value,\r\n });\r\n }}\r\n >\r\n \r\n {this.state.selectedFieldAreaIndex >= 0 &&\r\n this.state.fieldAreas[\r\n this.state.selectedFieldAreaIndex\r\n ].fields.map((field, index) => (\r\n \r\n ))}\r\n \r\n
\r\n {/* FIELD TIME PERIOD */}\r\n
\r\n {window.lang.timePeriod}\r\n {\r\n this.setState({\r\n selectedFieldTimePeriodIndex:\r\n e.currentTarget.value,\r\n });\r\n }}\r\n >\r\n \r\n {this.state.selectedFieldAreaIndex >= 0 &&\r\n this.state.selectedFieldIndex >= 0 &&\r\n this.state.fieldAreas[\r\n this.state.selectedFieldAreaIndex\r\n ].fields[\r\n this.state.selectedFieldIndex\r\n ].timePeriods.map((time_period, index) => (\r\n \r\n ))}\r\n \r\n
\r\n
\r\n )}\r\n\r\n {this.isWalker(this.state.currentTrainingName) && (\r\n
\r\n {/* Walker AREA */}\r\n
\r\n {window.lang.walkerArea}\r\n {\r\n this.setState({\r\n selectedWalkerAreaIndex: e.currentTarget.value,\r\n selectedWalkerIndex: -1,\r\n selectedWalkerTimePeriodIndex: -1,\r\n });\r\n }}\r\n >\r\n \r\n {this.state.walkerAreas.map((walkerArea, index) => (\r\n \r\n ))}\r\n \r\n
\r\n\r\n {/* Walker */}\r\n
\r\n {window.lang.walker}\r\n {\r\n this.setState({\r\n selectedWalkerIndex: e.currentTarget.value,\r\n selectedWalkerTimePeriodIndex: -1,\r\n });\r\n }}\r\n >\r\n \r\n {this.state.selectedWalkerAreaIndex >= 0 &&\r\n this.state.walkerAreas[\r\n this.state.selectedWalkerAreaIndex\r\n ].walkers.map((walker, index) => (\r\n \r\n ))}\r\n \r\n
\r\n {/* Walker TIME PERIOD */}\r\n
\r\n {window.lang.timePeriod}\r\n {\r\n this.setState({\r\n selectedWalkerTimePeriodIndex:\r\n e.currentTarget.value,\r\n });\r\n }}\r\n >\r\n \r\n {this.state.selectedWalkerAreaIndex >= 0 &&\r\n this.state.selectedWalkerIndex >= 0 &&\r\n this.state.walkerAreas[\r\n this.state.selectedWalkerAreaIndex\r\n ].walkers[\r\n this.state.selectedWalkerIndex\r\n ].timePeriods.map((time_period, index) => (\r\n \r\n ))}\r\n \r\n
\r\n
\r\n )}\r\n
\r\n \r\n \r\n {veterinarType.map((i) => (\r\n \r\n ))}\r\n \r\n \r\n {currentVeterinarianType == 4 ? (\r\n
\r\n \r\n {dewormingTypes.map((i) => (\r\n \r\n ))}\r\n \r\n
\r\n ) : (\r\n <>\r\n )}\r\n
\r\n
\r\n \r\n {farrierType.map((i) => (\r\n \r\n ))}\r\n \r\n
\r\n
\r\n \r\n {farrierWeeks.map((i, index) => (\r\n \r\n ))}\r\n \r\n
\r\n
\r\n \r\n {imgStrArr.length ? (\r\n imgStrArr.map((i) =>\r\n i.imgId == currentEvaluation ? (\r\n \r\n ) : (\r\n \r\n )\r\n )\r\n ) : (\r\n <>\r\n )}\r\n \r\n
\r\n
\r\n \r\n {dewormingTypesPeriod.map((i, index) => (\r\n \r\n ))}\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n {this.state.showReminderPopup && (\r\n \r\n )}\r\n
\r\n
\r\n \r\n\r\n \r\n \r\n \r\n {showDateTraining == 1 ? (\r\n
\r\n
\r\n }\r\n dateFormat=\"yyyy-MM-dd\"\r\n // dateFormat=\"dd-MM-yyyy\"\r\n selected={date}\r\n onChange={this.handleChange}\r\n />\r\n
\r\n
\r\n ) : (\r\n <>\r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {showTimeTraining == 1 ? (\r\n \r\n ) : (\r\n <>\r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n {vetTrainingId == currentTrainingType &&\r\n currentVeterinarianType == 4 ? (\r\n \r\n ) : (\r\n <>\r\n )}\r\n \r\n \r\n \r\n \r\n {showRemarksTraining == 1 ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {this.state.showReminderPopup && (\r\n \r\n )}\r\n \r\n \r\n \r\n
{window.lang.horse}{window.lang.trainerName}{window.lang.training}
\r\n
\r\n \r\n {horseNameArr.length ? (\r\n horseNameArr.map((currentElement, index) =>\r\n index == 0 ? (\r\n currentElement.id == currentHorseId ? (\r\n \r\n \r\n {currentElement.name}\r\n \r\n \r\n ) : (\r\n \r\n \r\n {currentElement.name}\r\n \r\n \r\n )\r\n ) : index == horseNameArr.length - 1 ? (\r\n currentElement.id == currentHorseId ? (\r\n \r\n \r\n {currentElement.name}\r\n \r\n \r\n ) : (\r\n \r\n \r\n {currentElement.name}\r\n \r\n \r\n )\r\n ) : currentElement.id == currentHorseId ? (\r\n \r\n \r\n {currentElement.name}\r\n \r\n \r\n ) : (\r\n \r\n \r\n {currentElement.name}\r\n \r\n \r\n )\r\n )\r\n ) : (\r\n <>\r\n )}\r\n \r\n
\r\n
\r\n
\r\n \r\n {trainersArr.length ? (\r\n trainersArr.map((currentElement, index) =>\r\n index == 0 ? (\r\n currentElement.id == currentTrainerId ? (\r\n \r\n \r\n {currentElement.id == window.myid\r\n ? \"Me\"\r\n : currentElement.name}\r\n \r\n \r\n ) : (\r\n \r\n \r\n {currentElement.id == window.myid\r\n ? \"Me\"\r\n : currentElement.name}\r\n \r\n \r\n )\r\n ) : index == trainersArr.length - 1 ? (\r\n currentElement.id == currentTrainerId ? (\r\n \r\n \r\n {currentElement.id == window.myid\r\n ? \"Me\"\r\n : currentElement.name}\r\n \r\n \r\n ) : (\r\n \r\n \r\n {currentElement.id == window.myid\r\n ? \"Me\"\r\n : currentElement.name}\r\n \r\n \r\n )\r\n ) : currentElement.id == currentTrainerId ? (\r\n \r\n \r\n {currentElement.id == window.myid\r\n ? \"Me\"\r\n : currentElement.name}\r\n \r\n \r\n ) : (\r\n \r\n \r\n {currentElement.id == window.myid\r\n ? \"Me\"\r\n : currentElement.name}\r\n \r\n \r\n )\r\n )\r\n ) : (\r\n \r\n Create new user\r\n \r\n )}\r\n \r\n
\r\n
\r\n
\r\n \r\n {trainingTypesArr.length ? (\r\n trainingTypesArr.map((currentElement, index) =>\r\n index == 0 ? (\r\n currentElement.id == currentTrainingType ? (\r\n \r\n \r\n {translateWord(currentElement.name) +\r\n \"(\" +\r\n currentElement.shortname +\r\n \")\"}\r\n \r\n \r\n ) : (\r\n \r\n \r\n {currentElement.name +\r\n \"(\" +\r\n currentElement.shortname +\r\n \")\"}\r\n \r\n \r\n )\r\n ) : index == trainingTypesArr.length - 1 ? (\r\n currentElement.id == currentTrainingType ? (\r\n \r\n \r\n {currentElement.name +\r\n \"(\" +\r\n currentElement.shortname +\r\n \")\"}\r\n \r\n \r\n ) : (\r\n \r\n \r\n {currentElement.name +\r\n \"(\" +\r\n currentElement.shortname +\r\n \")\"}\r\n \r\n \r\n )\r\n ) : currentElement.id == currentTrainingType ? (\r\n \r\n \r\n {currentElement.name +\r\n \"(\" +\r\n currentElement.shortname +\r\n \")\"}\r\n \r\n \r\n ) : (\r\n \r\n \r\n {currentElement.name +\r\n \"(\" +\r\n currentElement.shortname +\r\n \")\"}\r\n \r\n \r\n )\r\n )\r\n ) : (\r\n <>\r\n )}\r\n \r\n
\r\n
\r\n {this.isField(this.state.currentTrainingName) &&\r\n this.getFieldNote(this.state.horseNotes) && (\r\n \r\n alert(\r\n this.getFieldNote(this.state.horseNotes)?.TextNote\r\n )\r\n }\r\n className=\"field-note\"\r\n >\r\n {window.lang.fieldNote + \": \"}\r\n {this.getFieldNote(this.state.horseNotes)?.TextNote}\r\n \r\n )}\r\n \r\n \r\n {selectTime}\r\n \r\n
\r\n {showDoneTraining == 1 ? (\r\n \r\n \r\n \r\n {window.lang.trained}\r\n \r\n \r\n ) : (\r\n <>\r\n )}\r\n {vetTrainingId == currentTrainingType ? (\r\n \r\n \r\n {veterinarType.map((i) => (\r\n \r\n ))}\r\n \r\n \r\n ) : farTrainingId == currentTrainingType ? (\r\n
\r\n \r\n \r\n {farrierType.map((i) => (\r\n \r\n ))}\r\n \r\n
\r\n \r\n \r\n {farrierWeeks.map((i, index) => (\r\n \r\n ))}\r\n \r\n \r\n \r\n ) : role != null && role.tShowSmileOnTask == false ? (\r\n <>\r\n ) : showEvaluationTraining == 1 ? (\r\n \r\n {imgStrArr.length ? (\r\n imgStrArr.map((i) =>\r\n i.imgId == currentEvaluation ? (\r\n \r\n ) : (\r\n \r\n )\r\n )\r\n ) : (\r\n <>\r\n )}\r\n \r\n ) : (\r\n <>\r\n )}\r\n\r\n {showCopyTaskTraining == 1 ? (\r\n currentIsCanCopy ? (\r\n
\r\n \r\n \r\n {window.lang.copyTask}\r\n \r\n
\r\n ) : (\r\n
\r\n \r\n \r\n {window.lang.copyTask}\r\n \r\n
\r\n )\r\n ) : (\r\n <>\r\n )}\r\n\r\n {/* SELECT FIELD AREA, FIELD & TIME_PERIOD */}\r\n {this.isField(this.state.currentTrainingName) &&\r\n this.state.fieldAreas.length > 0 && (\r\n <>\r\n {/* FIELD AREA */}\r\n {\r\n this.setState({\r\n selectedFieldAreaIndex: e.currentTarget.value,\r\n selectedFieldIndex: -1,\r\n selectedFieldTimePeriodIndex: -1,\r\n });\r\n }}\r\n >\r\n \r\n {this.state.fieldAreas.map((fieldArea, index) => (\r\n \r\n ))}\r\n \r\n\r\n {/* FIELD */}\r\n {\r\n this.setState({\r\n selectedFieldIndex: e.currentTarget.value,\r\n });\r\n }}\r\n >\r\n \r\n {this.state.selectedFieldAreaIndex >= 0 &&\r\n this.state.fieldAreas[\r\n this.state.selectedFieldAreaIndex\r\n ].fields.map((field, index) => (\r\n \r\n ))}\r\n \r\n {/* FIELD TIME PERIOD */}\r\n {\r\n this.setState({\r\n selectedFieldTimePeriodIndex:\r\n e.currentTarget.value,\r\n });\r\n }}\r\n >\r\n \r\n {this.state.selectedFieldAreaIndex >= 0 &&\r\n this.state.selectedFieldIndex >= 0 &&\r\n this.state.fieldAreas[\r\n this.state.selectedFieldAreaIndex\r\n ].fields[\r\n this.state.selectedFieldIndex\r\n ].timePeriods.map((time_period, index) => (\r\n \r\n ))}\r\n \r\n \r\n )}\r\n\r\n {this.isWalker(this.state.currentTrainingName) &&\r\n this.state.walkerAreas.length > 0 && (\r\n <>\r\n {/* WALKER AREA */}\r\n {\r\n this.setState({\r\n selectedWalkerAreaIndex: e.currentTarget.value,\r\n selectedWalkerIndex: -1,\r\n selectedWalkerTimePeriodIndex: -1,\r\n });\r\n }}\r\n >\r\n \r\n {this.state.walkerAreas.map((walkerArea, index) => (\r\n \r\n ))}\r\n \r\n\r\n {/* WALKER */}\r\n {\r\n this.setState({\r\n selectedWalkerIndex: e.currentTarget.value,\r\n });\r\n }}\r\n >\r\n \r\n {this.state.selectedWalkerAreaIndex >= 0 &&\r\n this.state.walkerAreas[\r\n this.state.selectedWalkerAreaIndex\r\n ].walkers.map((walker, index) => (\r\n \r\n ))}\r\n \r\n {/* WALKER TIME PERIOD */}\r\n {\r\n this.setState({\r\n selectedWalkerTimePeriodIndex:\r\n e.currentTarget.value,\r\n });\r\n }}\r\n >\r\n \r\n {this.state.selectedWalkerAreaIndex >= 0 &&\r\n this.state.selectedWalkerIndex >= 0 &&\r\n this.state.walkerAreas[\r\n this.state.selectedWalkerAreaIndex\r\n ].walkers[\r\n this.state.selectedWalkerIndex\r\n ].timePeriods.map((time_period, index) => (\r\n \r\n ))}\r\n \r\n \r\n )}\r\n
\r\n {vetTrainingId == currentTrainingType &&\r\n (currentVeterinarianType == 4 ||\r\n currentVeterinarianType == 3) ? (\r\n
\r\n {currentVeterinarianType == 4 && (\r\n \r\n \r\n {dewormingTypes.map((i) => (\r\n \r\n ))}\r\n \r\n
\r\n )}\r\n \r\n \r\n {dewormingTypesPeriod.map((i, index) => (\r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n \r\n {/* DEWORMING STAGES */}\r\n {/* \r\n \r\n \r\n {this.state.dewormingStages.map((i, i_index) => (\r\n \r\n ))}\r\n \r\n */}\r\n \r\n ) : (\r\n <>\r\n )}\r\n
\r\n {window.lang.remark}\r\n \r\n
\r\n \r\n\r\n {this.state.isShowTimePopup && (\r\n \r\n )}\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nconst InputForMobile = (props) => {\r\n return (\r\n \r\n );\r\n};\r\n\r\nconst InputForDesktop = (props) => {\r\n return (\r\n \r\n );\r\n};\r\n\r\nconst Footer = (props) => {\r\n return (\r\n
\r\n {!props.isVetPage && (\r\n \r\n {window.lang.addExtraTraining}\r\n \r\n )}\r\n \r\n {props.showData.showXray && (\r\n \r\n \r\n \r\n )}\r\n \r\n\r\n \r\n \r\n \r\n {props.showData.showMultimediaTraining == 1 ? (\r\n \r\n \r\n \r\n ) : (\r\n <>\r\n )}\r\n {props.showData.showCopyButtonTraining == 1 ? (\r\n \r\n \r\n \r\n ) : (\r\n <>\r\n )}\r\n {props.showData.showRemainderTraining == 1 ? (\r\n \r\n \r\n \r\n \r\n ) : (\r\n <>\r\n )}\r\n
\r\n );\r\n};\r\n\r\nexport default class TrainingPopup {\r\n showPopup(options, item, callback, returnTrainingCallback) {\r\n if (options == null) {\r\n options = {};\r\n }\r\n if (options.horseId == null) {\r\n let horseId = window.DataStorage.getAllHorses()[0].id;\r\n options.horseId = horseId;\r\n }\r\n if (options.date == null) {\r\n options.date = new Date();\r\n }\r\n\r\n console.log(\"this.state.fromTappingView opt\", options);\r\n ReactDOM.render(\r\n ,\r\n document.getElementById(\"trainingPopupReact\")\r\n );\r\n }\r\n}\r\n","import React, { Component } from \"react\";\r\nimport uniqueId from \"lodash/uniqueId\";\r\nimport ClickNHold from \"react-click-n-hold\";\r\nimport TrainingCellMap from \"../TrainingCellMap\";\r\nimport TrainingPopup from \"../../TrainingPopup/TrainingPopup\";\r\nimport \"./TrainingDay.css\";\r\n\r\nclass TrainingDay extends Component {\r\n renderAlphabetic = () => {\r\n const { trainings, date, horse, isSelectedDate, rider } = this.props;\r\n\r\n const columns = this.props.trainingCellMap.map[date.formatDesh()].columns;\r\n\r\n if (columns.length == 0)\r\n return (\r\n \r\n );\r\n\r\n return (\r\n \r\n \r\n \r\n {columns.map((column) => (\r\n \r\n ))}\r\n \r\n \r\n
\r\n {this.getTrainingCellsAlphabetic(column, rider)}\r\n
\r\n );\r\n };\r\n\r\n getTrainingCellsAlphabetic = (column, rider) => {\r\n const trainigs = this.props.trainings.filter(\r\n (t) => t.shortname == column.shortname\r\n );\r\n if (trainigs.length == 0) {\r\n return (\r\n \r\n );\r\n }\r\n\r\n return (\r\n
\r\n {trainigs.map((t) => (\r\n \r\n ))}\r\n
\r\n );\r\n };\r\n\r\n renderAlphabeticCompact = () => {\r\n const { trainings, date, horse, isSelectedDate, rider } = this.props;\r\n if (\r\n window.training.mode == window.TrainingManager.riderStatic ||\r\n window.training.mode == window.TrainingManager.riderStaticAndEquipment\r\n ) {\r\n let trainerColsArr =\r\n this.props.trainingCellMap.maxColumnCompactMap[date.formatDesh()];\r\n if (horse.trainer == null || horse.trainer == window.myid) {\r\n if (trainerColsArr[window.myid]) {\r\n if (trainerColsArr[\"null\"]) {\r\n if (\r\n trainerColsArr[\"null\"].columns >\r\n trainerColsArr[window.myid].columns\r\n )\r\n var columnCount = trainerColsArr[\"null\"].columns;\r\n else var columnCount = trainerColsArr[window.myid].columns;\r\n } else {\r\n var columnCount = trainerColsArr[window.myid].columns;\r\n }\r\n } else {\r\n if (trainerColsArr[\"null\"]) {\r\n var columnCount = trainerColsArr[\"null\"].columns;\r\n } else {\r\n var columnCount = 1;\r\n }\r\n }\r\n } else if (trainerColsArr[rider]) {\r\n var columnCount = trainerColsArr[rider].columns;\r\n } else var columnCount = 1;\r\n } else {\r\n var columnCount =\r\n this.props.trainingCellMap.maxColumnCompactMap[date.formatDesh()];\r\n }\r\n\r\n const allColumns =\r\n this.props.trainingCellMap.map[date.formatDesh()].columns;\r\n const shortColumns = [];\r\n for (let ci = 0; ci < allColumns.length; ci++) {\r\n //build current trainings\r\n const tByType = trainings.filter(\r\n (t) => t.shortname == allColumns[ci].shortname\r\n );\r\n if (tByType.length != 0) {\r\n shortColumns.push(tByType);\r\n }\r\n }\r\n\r\n for (let ci = shortColumns.length; ci < columnCount; ci++) {\r\n //add empty to columnCount\r\n shortColumns.push([]);\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n {shortColumns.map((trainigs) => (\r\n \r\n ))}\r\n \r\n \r\n
\r\n {/*key*/}\r\n {trainigs.length != 0 ? (\r\n
\r\n {trainigs.map((t) => (\r\n \r\n ))}\r\n
\r\n ) : (\r\n \r\n )}\r\n
\r\n );\r\n };\r\n\r\n renderTimeTop = () => {\r\n const { date, horse, rider } = this.props;\r\n const columns = this.props.trainingCellMap.map[date.formatDesh()].columns;\r\n\r\n if (columns.length == 0)\r\n return (\r\n \r\n );\r\n\r\n return (\r\n \r\n \r\n \r\n {columns.map((column) => (\r\n \r\n {this.getTrainingCellsTime(column, rider)}\r\n \r\n ))}\r\n \r\n \r\n
\r\n );\r\n };\r\n\r\n getTrainingCellsTime = (column, rider) => {\r\n let trainigs = [];\r\n if (column.isTimeColumn) {\r\n trainigs = this.props.trainings.filter(\r\n (t) => t.TimeOfDay == column.TimeOfDay\r\n );\r\n } else {\r\n trainigs = this.props.trainings.filter(\r\n (t) =>\r\n t.shortname == column.shortname &&\r\n (t.TimeOfDay == null || t.TimeOfDay == \"\")\r\n );\r\n }\r\n\r\n if (trainigs.length == 0) {\r\n return (\r\n \r\n );\r\n }\r\n\r\n return (\r\n
\r\n {trainigs.map((t) => (\r\n \r\n ))}\r\n
\r\n );\r\n };\r\n\r\n renderTimeTopCompact = () => {\r\n const { trainings, date, horse, isSelectedDate, rider } = this.props;\r\n if (\r\n window.training.mode == window.TrainingManager.riderStatic ||\r\n window.training.mode == window.TrainingManager.riderStaticAndEquipment\r\n ) {\r\n let trainerColsArr =\r\n this.props.trainingCellMap.maxColumnCompactMap[date.formatDesh()];\r\n if (horse.trainer == null || horse.trainer == window.myid) {\r\n if (trainerColsArr[window.myid]) {\r\n if (trainerColsArr[\"null\"]) {\r\n if (\r\n trainerColsArr[\"null\"].columns >\r\n trainerColsArr[window.myid].columns\r\n )\r\n var columnCount = trainerColsArr[\"null\"].columns;\r\n else var columnCount = trainerColsArr[window.myid].columns;\r\n } else {\r\n var columnCount = trainerColsArr[window.myid].columns;\r\n }\r\n } else {\r\n if (trainerColsArr[\"null\"]) {\r\n var columnCount = trainerColsArr[\"null\"].columns;\r\n } else {\r\n var columnCount = 1;\r\n }\r\n }\r\n } else if (trainerColsArr[rider]) {\r\n var columnCount = trainerColsArr[rider].columns;\r\n } else var columnCount = 1;\r\n } else {\r\n var columnCount =\r\n this.props.trainingCellMap.maxColumnCompactMap[date.formatDesh()];\r\n }\r\n\r\n const allColumns =\r\n this.props.trainingCellMap.map[date.formatDesh()].columns;\r\n const shortColumns = [];\r\n for (let ci = 0; ci < allColumns.length; ci++) {\r\n //build current trainings\r\n const tByColumn = allColumns[ci].isTimeColumn\r\n ? trainings.filter((t) => t.TimeOfDay == allColumns[ci].TimeOfDay)\r\n : trainings.filter(\r\n (t) =>\r\n t.shortname == allColumns[ci].shortname &&\r\n (t.TimeOfDay == null || t.TimeOfDay == \"\")\r\n );\r\n if (tByColumn.length != 0) {\r\n shortColumns.push(tByColumn);\r\n }\r\n }\r\n\r\n for (let ci = shortColumns.length; ci < columnCount; ci++) {\r\n //add empty to columnCount\r\n shortColumns.push([]);\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n {shortColumns.map((trainigs) => (\r\n \r\n ))}\r\n \r\n \r\n
\r\n {/*key*/}\r\n {trainigs.length != 0 ? (\r\n
\r\n {trainigs.map((t) => (\r\n \r\n ))}\r\n
\r\n ) : (\r\n \r\n )}\r\n
\r\n );\r\n };\r\n\r\n render() {\r\n switch (this.props.trainingCellMap.orderBy) {\r\n case TrainingCellMap.ORDER_BY_ALPHABETIC:\r\n return this.renderAlphabetic();\r\n case TrainingCellMap.ORDER_BY_ALPHABETIC_COMPACT:\r\n return this.renderAlphabeticCompact();\r\n case TrainingCellMap.ORDER_BY_TIME_TOP:\r\n case TrainingCellMap.ORDER_BY_TIME_ALPHABETIC:\r\n return this.renderTimeTop();\r\n case TrainingCellMap.ORDER_BY_TIME_TOP_COMPACT:\r\n return this.renderTimeTopCompact();\r\n }\r\n return (\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default TrainingDay;\r\n\r\nexport class TrainingCell extends Component {\r\n onCellClick = (e) => {\r\n window.training.positionLastTimeClick = { x: e.screenX, y: e.screenY };\r\n let training = this.props.training;\r\n\r\n let trainType = null;\r\n let trainerId = null;\r\n let trainerName = null;\r\n if (\r\n this.props.callbackAdd != null &&\r\n this.props.useOnlyAddCallback &&\r\n training == null\r\n ) {\r\n this.props.callbackAdd();\r\n return;\r\n }\r\n let currentTrainerId = window.DataStorage.getAllHorses().find(\r\n (i) => i.id == this.props.horse.id\r\n ).trainer;\r\n if (!currentTrainerId)\r\n var currentTrainer = window.DataStorage.allUsers.find(\r\n (i) => i.Id == window.myid\r\n );\r\n else\r\n var currentTrainer = window.DataStorage.allUsers.find(\r\n (i) => i.Id == currentTrainerId\r\n );\r\n trainerId = currentTrainer.Id;\r\n trainerName = currentTrainer.Name;\r\n if (training != null) {\r\n trainType = training.type;\r\n trainerId = training.trainer;\r\n trainerName = training.trainername;\r\n } else if (this.props.fieldAssignInfo || this.props.walkerAssignInfo) {\r\n let horse = window.DataStorage.getAllHorses().find(\r\n (h) => h.id == this.props.horse.id\r\n );\r\n let trainingTypes = window.DataStorage.trainTypes.filter(\r\n (i) => i.owner == horse.userid\r\n );\r\n if (this.props.fromWalkerAssignmentView) {\r\n trainType = trainingTypes.find((tt) => this.isWalker(tt.name)).id;\r\n } else {\r\n trainType = trainingTypes.find((tt) => this.isField(tt.name)).id;\r\n }\r\n } else if (this.props.column != null) {\r\n trainType = this.props.column.typeIds[0];\r\n }\r\n\r\n if (this.props.fromTappingView) {\r\n let horse = window.DataStorage.getAllHorses().find(\r\n (h) => h.id == this.props.horse.id\r\n );\r\n let trainingTypes = window.DataStorage.trainTypes.filter(\r\n (i) => i.owner == horse.userid\r\n );\r\n trainType = trainingTypes.find((tt) => this.isTapping(tt.name)).id;\r\n }\r\n\r\n let options = {\r\n horseId: this.props.horse.id,\r\n trainingType: trainType,\r\n date: this.props.date,\r\n trainerId: trainerId,\r\n trainerName: trainerName,\r\n fieldAssignInfo: this.props.fieldAssignInfo,\r\n walkerAssignInfo: this.props.walkerAssignInfo,\r\n fromTappingView: this.props.fromTappingView,\r\n };\r\n\r\n console.log(\"fromTappingView source\", this.props.fromTappingView);\r\n let trainingPopup = new TrainingPopup();\r\n trainingPopup.showPopup(options, this.props.training, () => {});\r\n };\r\n\r\n initNewPermanent = () => {\r\n let $ = window.$;\r\n var onInitDone = function () {\r\n if ($(\"#dates2 li\").length != 0) {\r\n $(`#dates2 li[idf=\"${window.myid}\"] a`).click();\r\n }\r\n if ($(\".tcTrainer option\").length != 0) {\r\n $(\".tcTrainer\").val(window.myid);\r\n }\r\n $(\".tcColor\").prop(\"checked\", true);\r\n };\r\n var waitForInit = function () {\r\n if (window.trainingPopup.isTrainerLoading) {\r\n setTimeout(waitForInit, 200);\r\n } else {\r\n onInitDone();\r\n }\r\n };\r\n waitForInit();\r\n };\r\n\r\n getCurrentTime() {\r\n const now = new Date();\r\n let hours = now.getHours();\r\n let minutes = now.getMinutes();\r\n\r\n hours = hours.toString().padStart(2, \"0\");\r\n minutes = minutes.toString().padStart(2, \"0\");\r\n\r\n return hours + \":\" + minutes;\r\n }\r\n onCellLongClick = (e) => {\r\n const { holdEnabled } = this.props;\r\n if (!holdEnabled) return;\r\n const { setTimeOnFirstHold, training } = this.props;\r\n if (setTimeOnFirstHold && training.TimeOfDay == \"\") {\r\n let training_aux = { ...training };\r\n training_aux.TimeOfDay = this.getCurrentTime();\r\n window.DataStorage.updateTrainingBackground(training_aux);\r\n return;\r\n }\r\n\r\n let training_aux = { ...training };\r\n training_aux.color = training.color == \"red\" ? \"green\" : \"red\";\r\n\r\n window.DataStorage.updateTrainingBackground(training_aux);\r\n };\r\n isField = (name) => {\r\n if (!name) return false;\r\n name = name.toLowerCase();\r\n\r\n return name == \"field\" || name == \"fold\" || name == \"feld\";\r\n };\r\n\r\n isWalker = (name) => {\r\n if (!name) return false;\r\n name = name.toLowerCase();\r\n\r\n return name == \"walker\";\r\n };\r\n\r\n isTapping = (name) => {\r\n if (!name) return false;\r\n name = name.toLowerCase();\r\n return name == \"tapping\";\r\n };\r\n getFieldInfo = () => {\r\n const { training } = this.props;\r\n const field_info = {\r\n field_area_id: training?.FieldAreaId,\r\n field_id: training?.FieldId,\r\n time_id: training?.FieldAreaTimePeriodId,\r\n };\r\n return field_info;\r\n };\r\n getWalkerInfo = () => {\r\n const { training } = this.props;\r\n const walker_info = {\r\n walker_area_id: training?.WalkerAreaId,\r\n walker_id: training?.WalkerId,\r\n time_id: training?.WalkerAreaTimePeriodId,\r\n };\r\n return walker_info;\r\n };\r\n handleDragStart = (e) => {\r\n e.dataTransfer.setData(\"training\", JSON.stringify(this.props.training));\r\n\r\n const field_info = this.getFieldInfo();\r\n const walker_info = this.getWalkerInfo();\r\n e.dataTransfer.setData(\"field_info\", JSON.stringify(field_info));\r\n e.dataTransfer.setData(\"walker_info\", JSON.stringify(walker_info));\r\n };\r\n\r\n handleDrop = (e) => {\r\n e.preventDefault();\r\n\r\n let source_training = JSON.parse(e.dataTransfer.getData(\"training\"));\r\n\r\n if (this.isField(source_training.name)) {\r\n let source_field_info_str = e.dataTransfer.getData(\"field_info\");\r\n let target_field_info_str = JSON.stringify(\r\n this.props.fieldAssignInfo || this.getFieldInfo()\r\n );\r\n let target_training = this.props.training;\r\n let target_field_info = this.props.fieldAssignInfo;\r\n\r\n if (!source_training) {\r\n return;\r\n }\r\n\r\n if (target_field_info_str == source_field_info_str) return;\r\n\r\n if (!target_training) {\r\n let training_aux = { ...source_training };\r\n training_aux.FieldAreaId = target_field_info.field_area_id;\r\n training_aux.FieldId = target_field_info.field_id;\r\n training_aux.FieldAreaTimePeriodId = target_field_info.time_id;\r\n\r\n window.DataStorage.updateTrainingBackground(training_aux);\r\n return;\r\n }\r\n\r\n if (source_training?.id == target_training?.id) return;\r\n let swapPayload = {\r\n source_training_id: source_training?.id,\r\n target_training_id: target_training?.id,\r\n };\r\n\r\n // don't swap if they are in the same field/time\r\n\r\n window.DataStorage.swapFieldsOfTrainingBackground(swapPayload);\r\n } else if (this.isWalker(source_training.name)) {\r\n let source_walker_info_str = e.dataTransfer.getData(\"walker_info\");\r\n\r\n let target_walker_info_str = JSON.stringify(\r\n this.props.walkerAssignInfo || this.getWalkerInfo()\r\n );\r\n let target_training = this.props.training;\r\n let target_walker_info = this.props.walkerAssignInfo;\r\n\r\n if (!source_training) {\r\n return;\r\n }\r\n\r\n if (target_walker_info_str == source_walker_info_str) return;\r\n\r\n if (!target_training) {\r\n let training_aux = { ...source_training };\r\n training_aux.WalkerAreaId = target_walker_info.walker_area_id;\r\n training_aux.WalkerId = target_walker_info.walker_id;\r\n training_aux.WalkerAreaTimePeriodId = target_walker_info.time_id;\r\n\r\n window.DataStorage.updateTrainingBackground(training_aux);\r\n return;\r\n }\r\n\r\n if (source_training?.id == target_training?.id) return;\r\n let swapPayload = {\r\n source_training_id: source_training?.id,\r\n target_training_id: target_training?.id,\r\n };\r\n\r\n // don't swap if they are in the same field/time\r\n\r\n window.DataStorage.swapWalkersOfTrainingBackground(swapPayload);\r\n } else {\r\n return;\r\n }\r\n };\r\n\r\n handleDragOver = (e) => {\r\n e.preventDefault();\r\n };\r\n\r\n render() {\r\n const { training, column, horse, date, showRider, rider, showHorseName } =\r\n this.props;\r\n if (training == null || !horse) {\r\n return (\r\n horse && this.handleDragStart(e)}\r\n onDrop={(e) => horse && this.handleDrop(e)}\r\n onDragOver={horse && this.handleDragOver}\r\n style={{ width: \"100%\" }}\r\n onClick={horse && this.onCellClick}\r\n >\r\n
-
\r\n \r\n );\r\n }\r\n\r\n let riderInitials = null;\r\n if (showRider) {\r\n if (\r\n window.training.mode == window.TrainingManager.riderStatic ||\r\n window.training.mode ==\r\n window.TrainingManager.riderStaticAndEquipment ||\r\n window.training.mode == window.TrainingManager.riderStaticLight ||\r\n window.training.mode ==\r\n window.TrainingManager.riderStaticAndEquipmentLight\r\n ) {\r\n if (rider != training.trainer)\r\n riderInitials = window.getInitials(training.trainername);\r\n } else riderInitials = window.getInitials(training.trainername);\r\n }\r\n let timeText = null;\r\n if (training.TimeOfDay != null && training.TimeOfDay != \"\") {\r\n timeText = window.training.getTimeOfDayTitle(training.TimeOfDay);\r\n }\r\n if (timeText == \"0\" || timeText == \" \") {\r\n timeText = null;\r\n }\r\n\r\n let nameClass =\r\n timeText != null || training.remark != \"\"\r\n ? \"trainingCellNameSmall\"\r\n : \"trainingCellName\";\r\n\r\n // if (!showHorseName)\r\n nameClass +=\r\n training.color == \"red\"\r\n ? timeText && this.props.fromFieldAssignmentView\r\n ? \" trainingCellNotDoneTimeSet\"\r\n : \" trainingCellNotDone\"\r\n : \" trainingCellDone\";\r\n return (\r\n this.handleDragStart(e)}\r\n onDrop={(e) => this.handleDrop(e)}\r\n onDragOver={this.handleDragOver}\r\n >\r\n \r\n \r\n {timeText != null && (\r\n
{timeText}
\r\n )}\r\n
\r\n {showHorseName ? horse.name : training.shortname}\r\n {/* {training.remark != \"\" && <>*} */}\r\n {riderInitials != null && <>({riderInitials})}\r\n
\r\n {this.isField(training.name) &&\r\n !this.props.fromFieldAssignmentView && (\r\n
\r\n \r\n {training.FieldAssignmentFieldAreaName}{\" \"}\r\n {training.FieldAssignmentFieldName && \"- \"}\r\n {training.FieldAssignmentFieldName}{\" \"}\r\n {training.FieldAssignmentFieldTimePeriod && \"- \"}\r\n {training.FieldAssignmentFieldTimePeriod}\r\n \r\n
\r\n )}\r\n\r\n {this.isWalker(training.name) &&\r\n !this.props.fromWalkerAssignmentView && (\r\n
\r\n \r\n {training.WalkerAssignmentWalkerAreaName}{\" \"}\r\n {training.WalkerAssignmentWalkerName && \"- \"}\r\n {training.WalkerAssignmentWalkerName}{\" \"}\r\n {training.WalkerAssignmentWalkerTimePeriod && \"- \"}\r\n {training.WalkerAssignmentWalkerTimePeriod}\r\n \r\n
\r\n )}\r\n {training.remark != \"\" && (\r\n
{training.remark}
\r\n )}\r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n","export default class DataGateActions {\r\n static updateEquipment(data) {\r\n window.Spinner.show();\r\n window.db.updateEquipment(data, () => {\r\n window.Managers.self.refreshHorses();\r\n window.Spinner.hide();\r\n });\r\n }\r\n\r\n static getFeedData(callback) {\r\n window.Spinner.show();\r\n window.db.getFeed(window.myid, (data) => {\r\n window.Spinner.hide();\r\n if (callback != null) {\r\n callback(data);\r\n }\r\n });\r\n }\r\n\r\n static getFarrierData(callback) {\r\n window.Spinner.show();\r\n window.db.getFarrierDataForUser(window.myid, (data) => {\r\n window.Spinner.hide();\r\n if (callback != null) {\r\n callback(data);\r\n }\r\n });\r\n }\r\n\r\n static deleteTraining(id) {\r\n window.db.deleteTraining(id);\r\n }\r\n\r\n static makeLocalTrainingItemFromS(item) {\r\n item.id = item.Id;\r\n item.starttime = item.StartTime;\r\n item.userid = item.UserId;\r\n item.trainer = item.Trainer;\r\n item.type = item.Type;\r\n item.color = item.Color;\r\n item.remark = item.Remark;\r\n item.shortname = window.DataStorage.trainTypes.find(tt => tt.id == item.Type).shortname;\r\n\r\n return item;\r\n }\r\n\r\n static addTrainingForPermanentColumn(horse, type, date) {\r\n console.log('addPermanentTraining');\r\n let serverItem = {\r\n Color: \"green\", //is done\r\n Duration: 1,\r\n Evaluation: 0,\r\n FarrierType: undefined,\r\n HasMultimedia: 0,\r\n HorseId: horse.id, //horse\r\n Id: Math.uuid(),\r\n IsCanCopy: type.IsCanCopyType ? \"1\" : \"0\",\r\n PaddockPeriod: null,\r\n Remark: \"\",\r\n ReminderType: \"0\",\r\n StartTime: date.formatDesh(), //date\r\n Status: \"\",\r\n SyncTime: -1,\r\n TimeOfDay: \"\",\r\n Trainer: window.myid, //rider me\r\n Type: type.id, //type\r\n U: \"u\",\r\n VeterinarianType: \"2\",\r\n VeterinarianVacType: undefined\r\n };\r\n\r\n let localItem = {\r\n Evaluation: serverItem.Evaluation,\r\n FarrierType: serverItem.FarrierType,\r\n HasMultimedia: false,\r\n PaddockPeriod: null,\r\n ReminderType: 0,\r\n TimeOfDay: serverItem.TimeOfDay,\r\n VeterinarianType: 2,\r\n VeterinarianVacType: 10,\r\n color: serverItem.Color,\r\n duration: 1,\r\n horseid: serverItem.HorseId,\r\n id: serverItem.Id,\r\n isCanCopy: type.IsCanCopyType,\r\n name: type.name,\r\n remark: serverItem.Remark,\r\n shortname: type.shortname,\r\n starttime: serverItem.StartTime,\r\n status: serverItem.Status,\r\n synctime: serverItem.SyncTime,\r\n trainer: serverItem.Trainer,\r\n type: serverItem.Type,\r\n u: serverItem.U,\r\n trainername: window.Managers.User.name,\r\n TrainingFlag: window.DataStorage.TrainingFlagAdd\r\n };\r\n\r\n window.DataStorage.addTraining(localItem);\r\n window.DataGate.insertOrUpdateTrainings(serverItem, () => {\r\n });\r\n }\r\n\r\n static insertOrUpdateHorse(horse, horseLogo, isNewHorse, callback) {\r\n let resreshAndCallback = function () {\r\n window.Managers.self.refreshHorses(horse[\"Id\"], () => {\r\n window.Spinner.hide();\r\n window.training.refresh();\r\n if (callback)\r\n callback();\r\n });\r\n\r\n if (isNewHorse) {\r\n window.Managers.self.checkAutoShare(horse[\"Id\"], horse.UserId);\r\n }\r\n };\r\n\r\n window.Spinner.show();\r\n window.DataGate.insertOrUpdateHorse(horse, function (code, data) {\r\n if (code == window.DataGate.CODE_OK) {\r\n if (horseLogo != null) {\r\n window.db.saveLogo(horse[\"Id\"], horseLogo, window.DataBase.LOGO_HORSE, () => {\r\n resreshAndCallback();\r\n });\r\n } else {\r\n resreshAndCallback();\r\n }\r\n }\r\n });\r\n }\r\n\r\n static unDeleteHorse(horse) {\r\n window.db.setHorseUpdate(horse[\"id\"], 'u', function () {\r\n window.onDataRefresh();\r\n window.onBack();\r\n });\r\n }\r\n}","import React, { Component } from \"react\";\r\nimport \"./WeekView.css\";\r\nimport HorseCell from \"../HorseCell/HorseCell\";\r\nimport TrainingCellMap from \"../TrainingCellMap\";\r\nimport TrainingDay, { TrainingCell } from \"../TrainingCell/TrainingDay\";\r\nimport DataGateActions from \"../../DataGateActions\";\r\n\r\nclass WeekView extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n orderDate: null,\r\n horseArr: [],\r\n horseEquipmentFlag: false,\r\n };\r\n this.dates = [];\r\n this.permanentTypes = [];\r\n this.trainingCellMap = new TrainingCellMap();\r\n this.showRider =\r\n window.GlobalData.getItem(window.GlobalData.SHOW_RIDER_ON_TASKS) != 0;\r\n }\r\n\r\n componentDidUpdate = () => {\r\n if (this.state.horseArr != this.props.filteredHorses)\r\n this.setState({\r\n horseArr: this.props.filteredHorses,\r\n });\r\n };\r\n\r\n componentDidMount() {\r\n this.setState({\r\n horseArr: this.props.filteredHorses,\r\n });\r\n }\r\n\r\n equipmentUpdate = (e, horse) => {\r\n if (this.state.horseEquipmentFlag) {\r\n horse.Equipment = e.target.value;\r\n DataGateActions.updateEquipment({\r\n Equipment: e.target.value,\r\n HorseId: horse.id,\r\n });\r\n this.setState({\r\n horseEquipmentFlag: false,\r\n });\r\n }\r\n };\r\n\r\n equipmentChange = (e, horse) => {\r\n let arr = this.state.horseArr;\r\n arr.find((h) => h.id == horse.id).Equipment = e.target.value;\r\n this.setState({\r\n horseArr: arr,\r\n horseEquipmentFlag: true,\r\n });\r\n };\r\n\r\n onOrderChange = (orderDate) => {\r\n this.setState({\r\n orderDate: orderDate,\r\n });\r\n };\r\n\r\n getTrainingsForDay = (horse, date) => {\r\n return this.filteredTrainings.filter(\r\n (t) => t.horseid == horse.id && t.starttime == date\r\n );\r\n };\r\n\r\n widthFirstColumn() {\r\n let widthFC = 200;\r\n if (window.training.period == 1) {\r\n if (window.GlobalData.getItem(window.GlobalData.SHOW_HORSELOGO) == 1) {\r\n widthFC = window.isMobileDevice() ? 150 : 200;\r\n } else {\r\n widthFC = window.isMobileDevice() ? 150 : 200;\r\n }\r\n } else {\r\n if (window.GlobalData.getItem(window.GlobalData.SHOW_HORSELOGO) == 1) {\r\n widthFC = window.isMobileDevice() ? 100 : 180;\r\n } else {\r\n widthFC = window.isMobileDevice() ? 70 : 180;\r\n }\r\n }\r\n return widthFC;\r\n }\r\n\r\n renderOrderByHorse() {\r\n let horseArr = this.state.horseArr;\r\n\r\n let myHorseArr = horseArr.filter((h) => h.userid == window.myid);\r\n myHorseArr = myHorseArr.sort(function (h1, h2) {\r\n return h1.name.toLowerCase() > h2.name.toLowerCase() ? 1 : -1;\r\n });\r\n\r\n let notMyHorseArr = horseArr.filter((h) => h.userid != window.myid);\r\n notMyHorseArr = notMyHorseArr.sort(function (h1, h2) {\r\n return h1.name.toLowerCase() > h2.name.toLowerCase() ? 1 : -1;\r\n });\r\n\r\n return (\r\n <>\r\n {myHorseArr.map((horse) => this.getRow(horse))}\r\n {notMyHorseArr.length != 0 && myHorseArr.length != 0 && (\r\n \r\n \r\n {window.lang.sharedWithMe}\r\n \r\n \r\n )}\r\n {notMyHorseArr.map((horse) => this.getRow(horse))}\r\n \r\n );\r\n }\r\n\r\n renderOrderByDate = () => {\r\n let horseArr = this.trainingCellMap.sortHorsesBySelectedDate(\r\n this.state.horseArr,\r\n this.state.orderDate,\r\n this.getTrainingsForDay\r\n );\r\n\r\n return <>{horseArr.map((horse) => this.getRow(horse))};\r\n };\r\n\r\n getRow = (horse) => {\r\n let widthFirstColumn = this.widthFirstColumn();\r\n let trainingPeriod = window.GlobalData.getItem(\r\n window.GlobalData.KEY_DAYS_NUMBER\r\n );\r\n return (\r\n \r\n \r\n \r\n \r\n {this.dates.map((date) => (\r\n \r\n \r\n \r\n ))}\r\n {this.permanentTypes.map((type) => (\r\n \r\n {this.permanentCell(horse, type)}\r\n \r\n ))}\r\n {this.props.showEquipment && (\r\n \r\n this.equipmentChange(e, horse)}\r\n onBlur={(e) => this.equipmentUpdate(e, horse)}\r\n />\r\n \r\n )}\r\n \r\n );\r\n };\r\n\r\n permanentCell = (horse, ttype) => {\r\n let trainings = this.permanentTrainings.filter(\r\n (t) => t.horseid == horse.id && t.type == ttype.id\r\n );\r\n if (trainings.length == 0) {\r\n return (\r\n \r\n this.addPermanentTraining(horse, ttype, this.dates[0])\r\n }\r\n useOnlyAddCallback={true}\r\n />\r\n );\r\n }\r\n\r\n return (\r\n
\r\n {trainings.map((t) => (\r\n \r\n ))}\r\n
\r\n );\r\n };\r\n\r\n addPermanentTraining = (horse, type, date) => {\r\n DataGateActions.addTrainingForPermanentColumn(horse, type, date);\r\n window.training.refreshLayout();\r\n //window.training.buildFromCache();\r\n };\r\n\r\n render() {\r\n this.showRider =\r\n window.GlobalData.getItem(window.GlobalData.SHOW_RIDER_ON_TASKS) != 0;\r\n let widthFirstColumn = this.widthFirstColumn();\r\n let today = new Date();\r\n this.dates = [];\r\n for (var i = 0; i < window.training.period; i++) {\r\n this.dates.push(window.training.startDate.addDays(i));\r\n }\r\n\r\n this.permanentTypes = [];\r\n this.filteredTrainings = this.props.filteredTrainings;\r\n if (this.dates.length == 1) {\r\n this.permanentTypes = window.DataStorage.trainTypes.filter(\r\n (tt) => tt.IsPermanent\r\n );\r\n const permanentTypeIds = this.permanentTypes.map((tt) => tt.id);\r\n if (this.permanentTypes.length != null) {\r\n this.filteredTrainings = this.props.filteredTrainings.filter(\r\n (t) => permanentTypeIds.indexOf(t.type) == -1\r\n );\r\n this.permanentTrainings = this.props.filteredTrainings.filter(\r\n (t) => permanentTypeIds.indexOf(t.type) != -1\r\n );\r\n }\r\n }\r\n\r\n this.trainingCellMap.refreshMap(\r\n this.dates.map((d) => d.formatDesh()),\r\n this.filteredTrainings\r\n );\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n this.onOrderChange(null)}\r\n >\r\n {window.lang.horse}\r\n {this.state.orderDate == null &&
}\r\n \r\n {this.dates.map((date) => (\r\n this.onOrderChange(date.formatDesh())}\r\n >\r\n {`${date.getDate()}.${date.getMonth() + 1}`}\r\n
\r\n {date.dayOfWeek()}\r\n {this.state.orderDate == date.formatDesh() && (\r\n
\r\n )}\r\n \r\n ))}\r\n {this.permanentTypes.map((type) => (\r\n \r\n {type.name}\r\n \r\n ))}\r\n {this.props.showEquipment && {window.lang.equipment}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {this.state.orderDate == null\r\n ? this.renderOrderByHorse()\r\n : this.renderOrderByDate()}\r\n \r\n \r\n
\r\n \r\n );\r\n }\r\n}\r\nexport default WeekView;\r\n","import React, { Component } from \"react\";\r\nimport DataGateActions from \"../../DataGateActions\";\r\nimport \"./FeedView.css\";\r\nimport HorseCell from \"../HorseCell/HorseCell\";\r\n\r\nclass FeedView extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n feeds: [],\r\n headers: window.DataStorage.feedHeaders,\r\n showDeletePopup: false,\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n window.$(\"#addTaskImg\").click(this.addHeader);\r\n window.$(\"#trashImg\").click(this.deleteHeaderClick);\r\n\r\n DataGateActions.getFeedData(this.onDataLoad);\r\n }\r\n\r\n componentWillUnmount() {\r\n window.$(\"#addTaskImg\").unbind(\"click\", this.addHeader);\r\n window.$(\"#trashImg\").unbind(\"click\", this.deleteHeaderClick);\r\n }\r\n\r\n addHeader = () => {\r\n this.setState({\r\n headers: [...this.state.headers, \"[Enter name]\"],\r\n });\r\n };\r\n\r\n deleteHeaderClick = () => {\r\n this.setState({\r\n showDeletePopup: true,\r\n });\r\n };\r\n\r\n deleteHeader = (header) => {\r\n if (header != null) {\r\n let feedsForDelete = this.state.feeds.filter(\r\n (f) => f.TimeHeader == header\r\n );\r\n if (feedsForDelete.length != 0) {\r\n let feedIds =\r\n \"(\" + feedsForDelete.map((f) => \"'\" + f.Id + \"'\").join(\",\") + \")\";\r\n window.db.deleteFeeds(feedIds, () => {});\r\n }\r\n\r\n let headersNew = this.state.headers.filter((h) => h != header);\r\n this.setState({\r\n feeds: this.state.feeds.filter((f) => f.TimeHeader != header),\r\n headers: headersNew,\r\n showDeletePopup: false,\r\n });\r\n this.saveHeadersLocal(headersNew);\r\n } else {\r\n this.setState({\r\n showDeletePopup: false,\r\n });\r\n }\r\n };\r\n\r\n saveHeadersLocal = (headers) => {\r\n window.GlobalData.setItem(\r\n window.GlobalData.FEED_HEADERS,\r\n JSON.stringify(headers)\r\n );\r\n };\r\n\r\n onHeaderBlur = (e) => {\r\n if (e.target.defaultValue != e.target.value) {\r\n let feeds = this.state.feeds.filter(\r\n (f) => f.TimeHeader == e.target.defaultValue\r\n );\r\n feeds.forEach((f) => {\r\n f.TimeHeader = e.target.value;\r\n });\r\n if (feeds.length != 0) {\r\n let feedIds = \"(\" + feeds.map((f) => \"'\" + f.Id + \"'\").join(\",\") + \")\";\r\n window.db.updateFeedHeader(e.target.value, feedIds, () => {});\r\n }\r\n\r\n let allfeeds = [\r\n ...this.state.feeds.filter(\r\n (f) => f.TimeHeader != e.target.defaultValue\r\n ),\r\n ...feeds,\r\n ];\r\n let headersNew = [\r\n ...this.state.headers.filter((h) => h != e.target.defaultValue),\r\n e.target.value,\r\n ].sort();\r\n this.setState({\r\n headers: headersNew,\r\n feed: allfeeds,\r\n });\r\n this.saveHeadersLocal(headersNew);\r\n }\r\n };\r\n\r\n onFeedBlur = (e, feed, horseId, feedHeader) => {\r\n if (e.target.defaultValue != e.target.value) {\r\n if (feed == null) {\r\n feed = {\r\n Id: window.Math.uuid(),\r\n HorseId: horseId,\r\n TimeHeader: feedHeader,\r\n U: \"u\",\r\n };\r\n }\r\n feed.Feed = e.target.value;\r\n window.db.insertOrUpdateFeed(feed);\r\n }\r\n };\r\n\r\n onDataLoad = (feedData) => {\r\n let headers = feedData.map((f) => f.TimeHeader);\r\n headers = [...this.state.headers, ...headers];\r\n headers = Array.from(new Set(headers)).sort();\r\n this.setState({\r\n feeds: feedData,\r\n headers: headers,\r\n });\r\n };\r\n\r\n render() {\r\n const { filteredHorses } = this.props;\r\n const { feeds, headers, showDeletePopup } = this.state;\r\n const widthFirstColumn = 200;\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n {window.lang.horse}\r\n {headers.map((header) => (\r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {filteredHorses.map((horse) => (\r\n \r\n \r\n \r\n \r\n {headers.map((header) => {\r\n let feed = this.state.feeds.find(\r\n (f) => f.TimeHeader == header && f.HorseId == horse.id\r\n );\r\n return (\r\n \r\n \r\n this.onFeedBlur(e, feed, horse.id, header)\r\n }\r\n />\r\n \r\n );\r\n })}\r\n \r\n ))}\r\n \r\n \r\n
\r\n {showDeletePopup && (\r\n
\r\n
Delete column:
\r\n {headers.map((header) => (\r\n this.deleteHeader(header)}\r\n >\r\n {header}\r\n
\r\n ))}\r\n this.deleteHeader(null)}\r\n >\r\n Cancel\r\n \r\n \r\n )}\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default FeedView;\r\n","import React, { Component } from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport \"./NewGeneralTaskTypePopup.css\";\r\n\r\nclass NewGeneralTaskTypePopupWindow extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n generalTask: this.props.edit_element ? this.props.edit_element.Name : \"\",\r\n };\r\n }\r\n\r\n hide() {\r\n ReactDOM.unmountComponentAtNode(\r\n document.getElementById(\"newGeneralTaskTypePopupReact\")\r\n );\r\n }\r\n\r\n onCancelClick = () => {\r\n this.hide();\r\n };\r\n\r\n onSaveClick = () => {\r\n if (this.state.generalTask) {\r\n if (this.props.edit_element) {\r\n window.DataGate.editGeneralTaskType(\r\n this.props.edit_element.Id,\r\n this.state.generalTask,\r\n () => {\r\n if (this.props.callback) {\r\n window.training.refresh();\r\n }\r\n }\r\n );\r\n } else {\r\n window.DataGate.createGeneralTaskType(\r\n this.state.generalTask,\r\n (newTypeId) => {\r\n if (this.props.callback) {\r\n this.props.callback(newTypeId);\r\n }\r\n }\r\n );\r\n }\r\n }\r\n this.hide();\r\n };\r\n\r\n onGeneralTaskChange = (e) => {\r\n this.setState({\r\n generalTask: e.target.value,\r\n });\r\n };\r\n\r\n render() {\r\n const { generalTask } = this.state;\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default class NewGeneralTaskTypePopup {\r\n showPopup(callback, edit_element) {\r\n ReactDOM.render(\r\n ,\r\n document.getElementById(\"newGeneralTaskTypePopupReact\")\r\n );\r\n }\r\n}\r\n","import React, { Component } from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport \"./NewGeneralTaskTypePopup.css\";\r\nclass CopyGeneralTaskV2 extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n task: null,\r\n selectFreqOptions: [],\r\n frequencyId: 0,\r\n isCopyOnSunday: false,\r\n isCopyOnMonday: false,\r\n isCopyOnTuesday: false,\r\n isCopyOnWednesday: false,\r\n isCopyOnThursday: false,\r\n isCopyOnFriday: false,\r\n isCopyOnSaterday: false,\r\n };\r\n }\r\n\r\n componentDidMount = () => {\r\n this.loadData();\r\n };\r\n\r\n loadData = () => {\r\n var daysToCopy = this.props.trainingItem.DaysToCopy;\r\n if (daysToCopy != null) this.setDaysToCopyFromProps(daysToCopy);\r\n\r\n let currentFreqOptions = [];\r\n if (this.props.trainingItem.tasktype == 3) {\r\n currentFreqOptions = [\r\n {\r\n id: 0,\r\n name: \"For ever\",\r\n },\r\n ];\r\n\r\n for (let i = 1; i <= 12; i++) {\r\n let name = i == 1 ? window.lang.oneMonth : i + \" \" + window.lang.months;\r\n currentFreqOptions.push({ id: i, name });\r\n }\r\n } else {\r\n currentFreqOptions = [\r\n {\r\n id: 0,\r\n name: \"For ever\",\r\n },\r\n {\r\n id: 1,\r\n name: window.lang.week1,\r\n },\r\n {\r\n id: 2,\r\n name: window.lang.week2,\r\n },\r\n {\r\n id: 3,\r\n name: window.lang.week3,\r\n },\r\n {\r\n id: 4,\r\n name: window.lang.week4,\r\n },\r\n {\r\n id: 5,\r\n name: window.lang.week5,\r\n },\r\n {\r\n id: 6,\r\n name: window.lang.week6,\r\n },\r\n {\r\n id: 7,\r\n name: window.lang.week7,\r\n },\r\n {\r\n id: 8,\r\n name: window.lang.week8,\r\n },\r\n {\r\n id: 9,\r\n name: window.lang.week9,\r\n },\r\n {\r\n id: 10,\r\n name: window.lang.week10,\r\n },\r\n {\r\n id: 11,\r\n name: window.lang.week11,\r\n },\r\n {\r\n id: 12,\r\n name: window.lang.week12,\r\n },\r\n ];\r\n }\r\n this.setState({\r\n selectFreqOptions: currentFreqOptions,\r\n frequencyId: this.props.trainingItem.CopyDuration,\r\n task: this.props.trainingItem,\r\n });\r\n };\r\n\r\n setDaysToCopyFromProps = (daysToCopy) => {\r\n daysToCopy = daysToCopy.substring(0, daysToCopy.length - 1);\r\n var daysToCopyArr = daysToCopy.split(\"/\");\r\n for (const i in daysToCopyArr) {\r\n switch (daysToCopyArr[i]) {\r\n case \"0\":\r\n this.state.isCopyOnSunday = true;\r\n break;\r\n case \"1\":\r\n this.state.isCopyOnMonday = true;\r\n break;\r\n case \"2\":\r\n this.state.isCopyOnTuesday = true;\r\n break;\r\n case \"3\":\r\n this.state.isCopyOnWednesday = true;\r\n break;\r\n case \"4\":\r\n this.state.isCopyOnThursday = true;\r\n break;\r\n case \"5\":\r\n this.state.isCopyOnFriday = true;\r\n break;\r\n case \"6\":\r\n this.state.isCopyOnSaterday = true;\r\n break;\r\n }\r\n }\r\n };\r\n\r\n onFrequencyChange = (e) => {\r\n this.setState({\r\n frequencyId: parseInt(e.target.value),\r\n });\r\n };\r\n\r\n onCheckboxClick = (e) => {\r\n this.setState({\r\n [e.target.dataset.date]: e.target.checked,\r\n });\r\n };\r\n\r\n onOkClick = () => {\r\n let task = JSON.parse(JSON.stringify(this.state.task));\r\n task.DaysToCopy = \"\";\r\n if (this.state.isCopyOnSunday) task.DaysToCopy += \"0/\";\r\n if (this.state.isCopyOnMonday) task.DaysToCopy += \"1/\";\r\n if (this.state.isCopyOnTuesday) task.DaysToCopy += \"2/\";\r\n if (this.state.isCopyOnWednesday) task.DaysToCopy += \"3/\";\r\n if (this.state.isCopyOnThursday) task.DaysToCopy += \"4/\";\r\n if (this.state.isCopyOnFriday) task.DaysToCopy += \"5/\";\r\n if (this.state.isCopyOnSaterday) task.DaysToCopy += \"6/\";\r\n\r\n if (this.state.frequencyId == null) this.state.frequencyId = 0;\r\n task.CopyDuration = this.state.frequencyId;\r\n if (task.GroupId == null) {\r\n task.GroupId = task.Id;\r\n\r\n for (const [key, tasks] of Object.entries(\r\n window.DataStorage.generalTasks\r\n )) {\r\n const taskIndex = tasks.findIndex((t) => t.Id === task.Id);\r\n if (task >= 0) {\r\n window.DataStorage.generalTasks[key][taskIndex] = task;\r\n break;\r\n }\r\n }\r\n }\r\n this.saveTask(task);\r\n\r\n let daysToCopy = [];\r\n if (this.state.isCopyOnSunday) daysToCopy.push(0);\r\n if (this.state.isCopyOnMonday) daysToCopy.push(1);\r\n if (this.state.isCopyOnTuesday) daysToCopy.push(2);\r\n if (this.state.isCopyOnWednesday) daysToCopy.push(3);\r\n if (this.state.isCopyOnThursday) daysToCopy.push(4);\r\n if (this.state.isCopyOnFriday) daysToCopy.push(5);\r\n if (this.state.isCopyOnSaterday) daysToCopy.push(6);\r\n\r\n window.DataGate.CopyGeneralTasksGroup(\r\n task,\r\n daysToCopy,\r\n task.tasktype == 3,\r\n (code, data) => {\r\n if (code == window.DataGate.CODE_OK) {\r\n window.training.refresh({ showSpinner: false });\r\n }\r\n if (this.props.callback) {\r\n this.props.callback(code == window.DataGate.CODE_OK);\r\n }\r\n }\r\n );\r\n\r\n this.onCancelClick();\r\n if (this.props.doneCallback) this.props.doneCallback();\r\n };\r\n\r\n saveTask = (generalTask) => {\r\n window.DataStorage.addGeneralTask(\r\n generalTask,\r\n window.DataStorage.GeneralTaskFlagAdd\r\n );\r\n\r\n window.DataGate.insertOrUpdateGeneralTask(generalTask, (code, data) => {\r\n if (code == window.DataGate.CODE_OK) {\r\n window.training.refresh({ showSpinner: false });\r\n }\r\n if (this.props.callback) {\r\n this.props.callback(code == window.DataGate.CODE_OK);\r\n }\r\n });\r\n };\r\n\r\n onCancelClick = () => {\r\n ReactDOM.unmountComponentAtNode(\r\n document.getElementById(\"ctGeneralTaskDivReact\")\r\n );\r\n };\r\n\r\n onRemoveRepetitionClick = () => {\r\n this.deleteGeneralTaskGroup(this.state.task);\r\n this.onCancelClick();\r\n if (this.props.doneCallback) this.props.doneCallback();\r\n };\r\n\r\n deleteGeneralTaskGroup = (task) => {\r\n task[\"ConnectionId\"] = window.notification.connectionId;\r\n window.DataGate.deleteGeneralTaskGroup(task, (code, data) => {\r\n if (code == window.DataGate.CODE_OK) {\r\n window.training.refresh({ showSpinner: false });\r\n }\r\n if (this.props.callback) {\r\n this.props.callback(code == window.DataGate.CODE_OK);\r\n }\r\n window.Spinner.hide();\r\n });\r\n };\r\n\r\n render = () => {\r\n const {\r\n selectFreqOptions,\r\n frequencyId,\r\n isCopyOnSunday,\r\n isCopyOnMonday,\r\n isCopyOnTuesday,\r\n isCopyOnWednesday,\r\n isCopyOnThursday,\r\n isCopyOnFriday,\r\n isCopyOnSaterday,\r\n } = this.state;\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n {this.state.task?.tasktype == 1 && (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n {window.lang.repeatForEach}\r\n
\r\n \r\n {selectFreqOptions.map((currentElement, index) => (\r\n \r\n {currentElement.name}\r\n \r\n ))}\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n {this.state.task?.tasktype != 3\r\n ? window.lang.daysNames[1]\r\n : window.lang.everyMonth}\r\n \r\n \r\n \r\n
\r\n \r\n {window.lang.daysNames[0]}\r\n
\r\n
\r\n \r\n \r\n {window.lang.daysNames[2]}\r\n \r\n \r\n \r\n \r\n {window.lang.daysNames[3]}\r\n \r\n \r\n
\r\n \r\n {window.lang.daysNames[4]}\r\n
\r\n
\r\n \r\n \r\n {window.lang.daysNames[5]}\r\n \r\n \r\n \r\n \r\n {window.lang.daysNames[6]}\r\n \r\n
\r\n
\r\n \r\n {window.lang.ok}\r\n \r\n \r\n {window.lang.cancel2}\r\n \r\n \r\n {window.lang.removeRepetition}\r\n \r\n
\r\n
\r\n
\r\n );\r\n };\r\n}\r\n\r\nexport default class CopyGeneralTaskWindow {\r\n showWindow(taskItem, doneCallback) {\r\n if (!taskItem.tasktype) {\r\n taskItem.tasktype = taskItem.TaskType;\r\n }\r\n ReactDOM.render(\r\n ,\r\n document.getElementById(\"ctGeneralTaskDivReact\")\r\n );\r\n }\r\n}\r\n","import React, { Component } from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\n\r\nclass DeleteUpdateGeneralTaskPopup extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n isDelete: false,\r\n task: \"\",\r\n };\r\n }\r\n\r\n componentDidMount = () => {\r\n this.setState({\r\n isDelete: this.props.isDelete,\r\n task: this.props.task,\r\n });\r\n };\r\n\r\n onCancelClick = () => {\r\n if (this.state.isDelete) {\r\n this.deleteGeneralTaskGroup(this.state.task);\r\n } else {\r\n this.updateGeneralTask(this.state.task, true);\r\n }\r\n\r\n if (this.props.doneCallback) this.props.doneCallback();\r\n this.hide();\r\n };\r\n\r\n onOkClick = () => {\r\n if (this.state.isDelete) {\r\n window.DataStorage.deleteGeneralTaskById(this.state.task.Id);\r\n window.training.refreshLayout();\r\n let userForId = this.state.task.UserForId;\r\n window.DataGate.deleteGeneralTask(this.state.task.Id, userForId, () => {\r\n window.training.refresh({ showSpinner: false });\r\n });\r\n } else {\r\n this.updateGeneralTask(this.state.task, false);\r\n }\r\n\r\n if (this.props.doneCallback) this.props.doneCallback();\r\n this.hide();\r\n };\r\n\r\n hide = () => {\r\n ReactDOM.unmountComponentAtNode(\r\n document.getElementById(\"updDelGeneralTaskDivReact\")\r\n );\r\n };\r\n\r\n deleteGeneralTaskGroup = (task) => {\r\n task[\"ConnectionId\"] = window.notification.connectionId;\r\n window.DataGate.deleteGeneralTaskGroup(task, (code, data) => {\r\n if (code == window.DataGate.CODE_OK) {\r\n window.training.refresh({ showSpinner: false });\r\n }\r\n if (this.props.callback) {\r\n this.props.callback(code == window.DataGate.CODE_OK);\r\n }\r\n window.Spinner.hide();\r\n });\r\n };\r\n\r\n updateGeneralTask = (generalTask, isForAllGroup) => {\r\n if (!isForAllGroup) {\r\n generalTask.Flag = window.DataStorage.GeneralTaskFlagUpdate;\r\n window.DataStorage.addGeneralTask(\r\n generalTask,\r\n window.DataStorage.GeneralTaskFlagAdd\r\n );\r\n }\r\n\r\n window.DataGate.insertOrUpdateGeneralTaskGroup(\r\n generalTask,\r\n isForAllGroup,\r\n (code, data) => {\r\n if (code == window.DataGate.CODE_OK) {\r\n }\r\n if (this.props.callback) {\r\n this.props.callback(code == window.DataGate.CODE_OK);\r\n }\r\n }\r\n );\r\n };\r\n\r\n render() {\r\n return (\r\n
\r\n \r\n {this.state.isDelete ? (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ) : (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n
\r\n
\r\n {window.lang.thisTaskIsPartOfaSeries +\r\n \" \" +\r\n window.lang.doYouWantTo +\r\n \":\"}\r\n
\r\n
\r\n \r\n Delete this task only\r\n \r\n
\r\n \r\n Delete all tasks in this serie\r\n \r\n
\r\n
\r\n {window.lang.thisTaskIsPartOfaSeries +\r\n \" \" +\r\n window.lang.doYouWantTo +\r\n \":\"}\r\n
\r\n
\r\n \r\n {window.lang.changeThisTaskOnly}\r\n \r\n
\r\n \r\n {window.lang.changeAllTasksInThisSerie}\r\n \r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default class DeleteUpdateGeneralTaskPopupWindow {\r\n showWindow(task, isDelete, doneCallback) {\r\n ReactDOM.render(\r\n ,\r\n document.getElementById(\"updDelGeneralTaskDivReact\")\r\n );\r\n }\r\n}\r\n","import React, { Component } from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport DatePicker from \"react-datepicker\";\r\nimport NewGeneralTaskTypePopup from \"./NewGeneralTaskTypePopup.js\";\r\nimport CopyGeneralTaskWindow from \"./CopyGeneralTaskPopupV2.js\";\r\nimport SelectTimePopup from \"../TrainingPopup/SelectTimePopup\";\r\nimport HorseGallery from \"../Multimedia/HorseGallery\";\r\nimport DeleteUpdateGeneralTaskPopupWindow from \"./DeleteUpdateGeneralTaskPopup.js\";\r\nimport { Capacitor } from \"@capacitor/core\";\r\n\r\nclass GeneralTaskPopupWindow extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n date: \"\",\r\n generalTaskTypeArr: [],\r\n trainersArr: [],\r\n currentTask: \"\",\r\n currentGeneralTaskTypeId: \"\",\r\n currentTaskId: \"\",\r\n currentTrainerId: \"\",\r\n currentUserForId: \"\",\r\n currentTaskTime: \"\",\r\n currentColor: \"\",\r\n currentRemark: \"\",\r\n currentTimeOfDay: \"\",\r\n currentTaskName: \"\",\r\n currentGroupId: null,\r\n currentCopyDuration: 0,\r\n currentDaysToCopy: \"\",\r\n isShowTimePopup: false,\r\n hasBeenEdited: false,\r\n };\r\n }\r\n\r\n componentDidUpdate = () => {\r\n this.scrollToSelectedItems();\r\n };\r\n\r\n componentDidMount = () => {\r\n this.loadData();\r\n };\r\n\r\n loadData = (typeIdToBeSelected) => {\r\n window.DataGate.getGeneralTaskType(\r\n window.GlobalData.getItem(window.GlobalData.SELECT_MAIN_USER_STABLE),\r\n (taskTypeArr) => {\r\n if (!taskTypeArr) taskTypeArr = [];\r\n taskTypeArr = taskTypeArr?.sort(function (h1, h2) {\r\n return h1.Name.toLowerCase() > h2.Name.toLowerCase() ? 1 : -1;\r\n });\r\n this.setState(\r\n {\r\n generalTaskTypeArr: taskTypeArr,\r\n },\r\n this.loadFromProps\r\n );\r\n }\r\n );\r\n window.db.getSharedHorseWithTrainerList(\r\n window.GlobalData.getItem(window.GlobalData.SELECT_MAIN_USER_STABLE),\r\n (trainersArr) => {\r\n let trainersArray = [\r\n { userid: null, Name: window.lang.none },\r\n { userid: window.myid, Name: window.lang.me },\r\n ];\r\n trainersArr.filter((item) => {\r\n let curr = trainersArray.find((i) => item.userid == i.userid);\r\n if (!curr) {\r\n trainersArray.push(item);\r\n return true;\r\n } else return false;\r\n });\r\n console.log(trainersArr);\r\n this.setState({\r\n trainersArr: trainersArray,\r\n });\r\n }\r\n );\r\n this.setState(\r\n {\r\n date: this.props.options.date,\r\n currentTaskTime: this.props.options.date.formatDesh(),\r\n hasBeenEdited: false,\r\n },\r\n () => {\r\n if (typeIdToBeSelected)\r\n this.setState({ currentGeneralTaskTypeId: typeIdToBeSelected });\r\n }\r\n );\r\n };\r\n\r\n loadFromProps = () => {\r\n if (\r\n !this.state.currentGeneralTaskTypeId &&\r\n this.state.generalTaskTypeArr.length\r\n ) {\r\n let currentTask = this.state.generalTaskTypeArr.filter(\r\n (i) => i.Id == this.state.generalTaskTypeArr[0].Id\r\n );\r\n this.setState({\r\n currentGeneralTaskTypeId: this.state.generalTaskTypeArr[0].Id,\r\n currentTaskName: currentTask[0].Name,\r\n });\r\n }\r\n if (this.props.item) {\r\n let item = this.props.item;\r\n let currentTaskId = item.Id;\r\n let currentTrainerId = item.TrainerId;\r\n let currentUserForId = item.UserForId;\r\n let currentTaskTime = item.Time;\r\n let currentColor = item.Color;\r\n let currentRemark = item.Remark;\r\n let currentGeneralTaskTypeId = item.TaskNameId;\r\n let currentTimeOfDay = item.TimeOfDay;\r\n let currentTaskName = item.Name;\r\n let currentGroupId = item.GroupId;\r\n let currentCopyDuration = item.CopyDuration;\r\n let currentDaysToCopy = item.DaysToCopy;\r\n\r\n console.log(item);\r\n this.setState({\r\n currentTask: item,\r\n currentTaskId: currentTaskId,\r\n currentTrainerId: currentTrainerId,\r\n currentUserForId: currentUserForId,\r\n currentTaskTime: currentTaskTime,\r\n currentColor: currentColor,\r\n currentRemark: currentRemark,\r\n currentGeneralTaskTypeId: currentGeneralTaskTypeId,\r\n currentTimeOfDay: currentTimeOfDay,\r\n currentTaskName: currentTaskName,\r\n currentGroupId: currentGroupId,\r\n currentCopyDuration: currentCopyDuration,\r\n currentDaysToCopy: currentDaysToCopy,\r\n });\r\n } else {\r\n let color = \"red\";\r\n if (this.props.options.isDone) color = \"green\";\r\n else color = \"red\";\r\n this.setState({\r\n currentTrainerId: window.myid,\r\n currentColor: color,\r\n });\r\n }\r\n };\r\n\r\n handleChange = (date) => {\r\n this.setState({\r\n date: date,\r\n currentTaskTime: date.formatDesh(),\r\n });\r\n };\r\n\r\n hide() {\r\n ReactDOM.unmountComponentAtNode(\r\n document.getElementById(\"generalTaskPopupReact\")\r\n );\r\n }\r\n\r\n onCancelClick = () => {\r\n this.hide();\r\n };\r\n\r\n isTaskModified = () => {\r\n const {\r\n currentTaskId,\r\n currentTrainerId,\r\n currentUserForId,\r\n currentTaskTime,\r\n currentColor,\r\n currentRemark,\r\n currentGeneralTaskTypeId,\r\n currentTimeOfDay,\r\n currentTaskName,\r\n currentGroupId,\r\n currentCopyDuration,\r\n currentDaysToCopy,\r\n } = this.state;\r\n if (this.state.currentTask.Id !== currentTaskId) return true;\r\n if (this.state.currentTask.Color !== currentColor) return true;\r\n if (this.state.currentTask.CopyDuration !== currentCopyDuration)\r\n return true;\r\n\r\n if (this.state.currentTask.DaysToCopy !== currentDaysToCopy) return true;\r\n if (this.state.currentTask.Id !== currentTaskId) return true;\r\n if (this.state.currentTask.Name !== currentTaskName) return true;\r\n if (this.state.currentTask.Remark !== currentRemark) return true;\r\n if (this.state.currentTask.Time !== currentTaskTime) return true;\r\n if (this.state.currentTask.TimeOfDay !== currentTimeOfDay) return true;\r\n if (this.state.currentTask.TrainerId !== currentTrainerId) return true;\r\n if (this.state.currentTask.UserForId !== currentUserForId) return true;\r\n\r\n return false;\r\n };\r\n\r\n onSaveClick = () => {\r\n if (!this.isTaskModified()) {\r\n this.hide();\r\n return;\r\n }\r\n\r\n if (\r\n this.state.currentTaskId &&\r\n this.state.currentGroupId &&\r\n this.state.currentColor != \"green\"\r\n ) {\r\n new DeleteUpdateGeneralTaskPopupWindow().showWindow(\r\n this.getCurrentTask(),\r\n false,\r\n () => {\r\n this.hide();\r\n }\r\n );\r\n } else {\r\n this.saveTask();\r\n this.hide();\r\n }\r\n };\r\n\r\n saveTask = () => {\r\n console.warn(\"BE SURE HERE\", this.props.options.selectedTab);\r\n let generalTask = this.getCurrentTask();\r\n this.state.currentTask = generalTask;\r\n\r\n if (this.state.currentTaskId)\r\n generalTask.Flag = window.DataStorage.GeneralTaskFlagUpdate;\r\n else generalTask.Flag = window.DataStorage.GeneralTaskFlagAdd;\r\n window.DataStorage.addGeneralTask(\r\n generalTask,\r\n window.DataStorage.GeneralTaskFlagAdd\r\n );\r\n\r\n generalTask.TaskType = this.props.options.taskType || 1; //set default as daily tasks\r\n\r\n this.state.currentTaskId = generalTask[\"Id\"];\r\n window.DataGate.insertOrUpdateGeneralTask(generalTask, (code, data) => {\r\n if (code == window.DataGate.CODE_OK) {\r\n // window.training.refresh({ showSpinner: false });\r\n }\r\n if (this.props.callback) {\r\n this.props.callback(code == window.DataGate.CODE_OK);\r\n }\r\n });\r\n };\r\n\r\n getCurrentTask = () => {\r\n const {\r\n currentGeneralTaskTypeId,\r\n currentTaskId,\r\n currentTrainerId,\r\n currentUserForId,\r\n currentTaskTime,\r\n currentColor,\r\n currentRemark,\r\n currentTimeOfDay,\r\n currentTaskName,\r\n currentGroupId,\r\n currentCopyDuration,\r\n currentDaysToCopy,\r\n } = this.state;\r\n let generalTask = {};\r\n generalTask[\"Id\"] = currentTaskId ? currentTaskId : Math.uuid();\r\n generalTask[\"TrainerId\"] = currentTrainerId ? currentTrainerId : null;\r\n generalTask[\"UserForId\"] = currentUserForId\r\n ? currentUserForId\r\n : window.GlobalData.getItem(window.GlobalData.SELECT_MAIN_USER_STABLE);\r\n generalTask[\"Time\"] = currentTaskTime;\r\n generalTask[\"Color\"] = currentColor ? currentColor : \"red\";\r\n generalTask[\"Remark\"] = currentRemark;\r\n generalTask[\"TaskNameId\"] = currentGeneralTaskTypeId;\r\n generalTask[\"TimeOfDay\"] = currentTimeOfDay;\r\n generalTask[\"Name\"] = currentTaskName;\r\n generalTask[\"GroupId\"] = currentGroupId;\r\n generalTask[\"CopyDuration\"] = currentCopyDuration;\r\n generalTask[\"DaysToCopy\"] = currentDaysToCopy;\r\n generalTask[\"ConnectionId\"] = window.notification.connectionId;\r\n generalTask[\"Panel\"] = this.props.options.selectedTab;\r\n return generalTask;\r\n };\r\n\r\n //#region move popup\r\n onMouseDown = (e) => {\r\n this.isMovingMode = true;\r\n this.startX = e.clientX;\r\n this.startY = e.clientY;\r\n let el = document.getElementById(\"trainingEditWindowReact\");\r\n this.elementStartLeft = el.offsetLeft;\r\n this.elementStartTop = el.offsetTop;\r\n };\r\n onMouseMove = (e) => {\r\n if (this.isMovingMode && e.target.id == \"taskHeaderReact\") {\r\n let el = document.getElementById(\"trainingEditWindowReact\");\r\n el.style.left = this.elementStartLeft + (e.clientX - this.startX) + \"px\";\r\n el.style.top = this.elementStartTop + (e.clientY - this.startY) + \"px\";\r\n }\r\n };\r\n onMouseUp = (e) => {\r\n this.isMovingMode = false;\r\n };\r\n //#endregion\r\n\r\n onGeneralTaskTypeClick = (e) => {\r\n let currentTask = this.state.generalTaskTypeArr.filter(\r\n (i) => i.Id == e.currentTarget.dataset.idf\r\n );\r\n this.setState({\r\n currentGeneralTaskTypeId: e.currentTarget.dataset.idf,\r\n currentTaskName: currentTask[0].Name,\r\n hasBeenEdited: true,\r\n });\r\n };\r\n\r\n onGeneralTaskTypeChange = (e) => {\r\n let currentTask = this.state.generalTaskTypeArr.filter(\r\n (i) => i.Id == e.target.value\r\n );\r\n this.setState({\r\n currentGeneralTaskTypeId: e.target.value,\r\n currentTaskName: currentTask[0].Name,\r\n hasBeenEdited: true,\r\n });\r\n };\r\n\r\n onTrainerClick = (e) => {\r\n this.setState({\r\n currentTrainerId: e.currentTarget.dataset.idf,\r\n hasBeenEdited: true,\r\n });\r\n };\r\n\r\n onTrainerChange = (e) => {\r\n this.setState({\r\n currentTrainerId: e.target.value,\r\n hasBeenEdited: true,\r\n });\r\n };\r\n\r\n onNewGeneralTaskTypeClick = () => {\r\n let newGeneralTaskTypePopup = new NewGeneralTaskTypePopup();\r\n newGeneralTaskTypePopup.showPopup((newTypeId) => {\r\n this.loadData(newTypeId);\r\n });\r\n };\r\n\r\n onDoneClick = (e) => {\r\n if (e.target.checked) {\r\n this.setState({\r\n currentColor: \"green\",\r\n hasBeenEdited: true,\r\n });\r\n } else {\r\n this.setState({\r\n currentColor: \"red\",\r\n hasBeenEdited: true,\r\n });\r\n }\r\n };\r\n\r\n onRemarkChange = (e) => {\r\n this.setState({\r\n currentRemark: e.target.value,\r\n hasBeenEdited: true,\r\n });\r\n };\r\n\r\n onExtraTaskClick = () => {\r\n let option = {\r\n date: this.state.date,\r\n };\r\n this.onSaveClick();\r\n setTimeout(() => {\r\n new GeneralTaskPopup().showPopup(option, null, () => {});\r\n }, 100);\r\n };\r\n\r\n showTimeSelect = () => {\r\n this.setState({\r\n isShowTimePopup: true,\r\n });\r\n };\r\n\r\n hideTimeSelect = () => {\r\n this.setState({\r\n isShowTimePopup: false,\r\n });\r\n };\r\n\r\n onTimeChange = (val) => {\r\n this.setState({\r\n isShowTimePopup: false,\r\n currentTimeOfDay: val,\r\n hasBeenEdited: true,\r\n });\r\n };\r\n\r\n scrollToSelectedItems = () => {\r\n let selectedCollection = document.getElementsByClassName(\r\n \"ui-btn selectedListItem\"\r\n );\r\n let selectedArr = [].slice.call(selectedCollection);\r\n if (selectedArr.length) selectedArr.map((i) => i.scrollIntoView());\r\n };\r\n\r\n onDeleteClick = () => {\r\n if (this.state.currentTaskId) {\r\n if (this.state.currentGroupId)\r\n new DeleteUpdateGeneralTaskPopupWindow().showWindow(\r\n this.state.currentTask,\r\n true,\r\n () => {\r\n this.hide();\r\n }\r\n );\r\n else {\r\n window.DataStorage.deleteGeneralTaskById(this.state.currentTaskId);\r\n // window.training.refreshLayout();\r\n let userForId = this.state.currentUserForId;\r\n window.DataGate.deleteGeneralTask(\r\n this.state.currentTaskId,\r\n userForId,\r\n () => {\r\n // window.training.refresh({ showSpinner: false });\r\n }\r\n );\r\n this.hide();\r\n }\r\n } else {\r\n this.hide();\r\n }\r\n };\r\n\r\n onShowMultimediaClick = () => {\r\n if (!this.state.currentTaskId) {\r\n this.saveTask();\r\n // window.training.refresh({ showSpinner: false });\r\n }\r\n this.onCancelClick();\r\n let $ = window.$;\r\n window.showPage(\"#taskImagePage\");\r\n $(\"#taskImagePage\").css(\"min-height\", \"95%\");\r\n $(\"#taskImageHeader\").html(window.lang.image);\r\n $(\"#taskImageBackButton, #taskImageOkButton\").unbind(\"click\");\r\n $(\"#taskImageBackButton, #taskImageOkButton\").bind(\"click\", function (e) {\r\n window.onBack();\r\n $(\".load-bar\").css(\"top\", \"70px\");\r\n e.stopPropagation();\r\n });\r\n ReactDOM.render(\r\n ,\r\n document.getElementById(\"taskImageDropTable\")\r\n );\r\n };\r\n\r\n editGeneralTaskType = (generalTaskId) => {\r\n const edit_element = this.state.generalTaskTypeArr.find(\r\n (x) => x.Id == generalTaskId\r\n );\r\n let newGeneralTaskTypePopup = new NewGeneralTaskTypePopup();\r\n newGeneralTaskTypePopup.showPopup(() => {\r\n this.loadData();\r\n }, edit_element);\r\n };\r\n onCopyTaskClick = () => {\r\n if (!this.state.currentTaskId) this.saveTask();\r\n this.state.currentTask.ConnectionId = window.notification.connectionId;\r\n new CopyGeneralTaskWindow().showWindow(this.state.currentTask, () => {\r\n this.hide();\r\n });\r\n };\r\n\r\n render() {\r\n const {\r\n date,\r\n generalTaskTypeArr,\r\n currentGeneralTaskTypeId,\r\n trainersArr,\r\n currentTrainerId,\r\n currentColor,\r\n currentRemark,\r\n currentTimeOfDay,\r\n } = this.state;\r\n let inches =\r\n Math.sqrt(\r\n Math.pow(window.screen.width, 2) + Math.pow(window.screen.height, 2)\r\n ) *\r\n (1 / window.inch.offsetWidth);\r\n const selectTime =\r\n currentTimeOfDay != \"\" ? currentTimeOfDay : window.lang.selectTime;\r\n return (\r\n
\r\n \r\n \r\n \r\n

\r\n \r\n

\r\n
\r\n {this.props.options.simplified && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n {window.lang.trained}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n {!this.props.options.simplified && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Other tasks{window.lang.trainerName}
\r\n \r\n {generalTaskTypeArr &&\r\n generalTaskTypeArr.map((currentElement) => (\r\n \r\n ))}\r\n \r\n \r\n \r\n {trainersArr &&\r\n trainersArr.map((currentElement) => (\r\n \r\n {currentElement.Name}\r\n \r\n ))}\r\n \r\n
\r\n
\r\n \r\n + Add new task to list\r\n \r\n
\r\n \r\n {selectTime}\r\n \r\n
\r\n
\r\n }\r\n dateFormat=\"dd-MM-yyyy\"\r\n selected={date}\r\n onChange={this.handleChange}\r\n />\r\n
\r\n
\r\n \r\n {window.lang.addExtraTraining}\r\n \r\n
\r\n \r\n \r\n {window.lang.trained}\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n )}\r\n
\r\n \r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n }\r\n dateFormat=\"dd-MM-yyyy\"\r\n selected={date}\r\n onChange={this.handleChange}\r\n />\r\n
\r\n
\r\n \r\n
\r\n\r\n {this.props.options.simplified && (\r\n \r\n \r\n {\" \"}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n {window.lang.trained}\r\n \r\n \r\n
\r\n {window.lang.remark}\r\n \r\n
\r\n )}\r\n {!this.props.options.simplified && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Other tasks{window.lang.trainerName}
\r\n
\r\n \r\n {generalTaskTypeArr &&\r\n generalTaskTypeArr.map((currentElement, index) =>\r\n index == 0 ? (\r\n currentElement.Id == currentGeneralTaskTypeId ? (\r\n \r\n \r\n
\r\n {currentElement.Name}\r\n\r\n
\r\n \r\n this.editGeneralTaskType(\r\n currentElement.Id\r\n )\r\n }\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n strokeWidth=\"1.5\"\r\n width=\"25px\"\r\n stroke=\"currentColor\"\r\n className=\"w-6 h-6\"\r\n >\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n ) : (\r\n \r\n \r\n
\r\n {currentElement.Name}\r\n\r\n
\r\n \r\n this.editGeneralTaskType(\r\n currentElement.Id\r\n )\r\n }\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n strokeWidth=\"1.5\"\r\n width=\"25px\"\r\n stroke=\"currentColor\"\r\n className=\"w-6 h-6\"\r\n >\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n )\r\n ) : currentElement.Id ==\r\n currentGeneralTaskTypeId ? (\r\n \r\n \r\n
\r\n {currentElement.Name}\r\n\r\n
\r\n \r\n this.editGeneralTaskType(\r\n currentElement.Id\r\n )\r\n }\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n strokeWidth=\"1.5\"\r\n width=\"25px\"\r\n stroke=\"currentColor\"\r\n className=\"w-6 h-6\"\r\n >\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n ) : (\r\n \r\n \r\n
\r\n {currentElement.Name}\r\n\r\n
\r\n \r\n this.editGeneralTaskType(\r\n currentElement.Id\r\n )\r\n }\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n strokeWidth=\"1.5\"\r\n width=\"25px\"\r\n stroke=\"currentColor\"\r\n className=\"w-6 h-6\"\r\n >\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n )\r\n )}\r\n {generalTaskTypeArr.length ? (\r\n \r\n \r\n + Add new task to list\r\n \r\n \r\n ) : (\r\n \r\n \r\n + Add new task to list\r\n \r\n \r\n )}\r\n \r\n
\r\n
\r\n
\r\n \r\n {trainersArr &&\r\n trainersArr.map((currentElement, index) =>\r\n index == 0 ? (\r\n currentElement.userid == currentTrainerId ? (\r\n \r\n \r\n {currentElement.Name}\r\n \r\n \r\n ) : (\r\n \r\n \r\n {currentElement.Name}\r\n \r\n \r\n )\r\n ) : index == trainersArr.length - 1 ? (\r\n currentElement.userid == currentTrainerId ? (\r\n \r\n \r\n {currentElement.Name}\r\n \r\n \r\n ) : (\r\n \r\n \r\n {currentElement.Name}\r\n \r\n \r\n )\r\n ) : currentElement.userid == currentTrainerId ? (\r\n \r\n \r\n {currentElement.Name}\r\n \r\n \r\n ) : (\r\n \r\n \r\n {currentElement.Name}\r\n \r\n \r\n )\r\n )}\r\n \r\n
\r\n
\r\n \r\n {window.lang.addExtraTraining}\r\n \r\n \r\n \r\n {selectTime}\r\n \r\n
\r\n \r\n \r\n \r\n {window.lang.trained}\r\n \r\n \r\n
\r\n {window.lang.remark}\r\n \r\n
\r\n \r\n
\r\n )}\r\n \r\n\r\n {this.state.isShowTimePopup && (\r\n \r\n )}\r\n \r\n );\r\n }\r\n}\r\n\r\nconst InputForMobile = (props) => {\r\n return (\r\n \r\n );\r\n};\r\n\r\nconst InputForDesktop = (props) => {\r\n return (\r\n \r\n );\r\n};\r\n\r\nconst Footer = (props) => {\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default class GeneralTaskPopup {\r\n showPopup(options, item, callback) {\r\n if (options == null) {\r\n options = {};\r\n }\r\n if (options.date == null) {\r\n options.date = new Date();\r\n }\r\n ReactDOM.render(\r\n ,\r\n document.getElementById(\"generalTaskPopupReact\")\r\n );\r\n }\r\n}\r\n","import React, { Component } from \"react\";\r\nimport ResizePanel from \"react-resize-panel\";\r\nimport { Resizable } from \"re-resizable\";\r\nimport \"./RiderView.css\";\r\nimport TrainingCellMap from \"../TrainingCellMap\";\r\nimport HorseCell from \"../HorseCell/HorseCell\";\r\nimport TrainingDay, { TrainingCell } from \"../TrainingCell/TrainingDay\";\r\nimport DataGateActions from \"../../DataGateActions\";\r\nimport GeneralTaskPopup from \"../../GeneralTask/GeneralTaskPopup\";\r\n\r\nexport default class StaticRiderView extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n ridersOrder: [],\r\n filteredHorses: [],\r\n horseEquipmentFlag: false,\r\n showGeneralTasks: \"\",\r\n };\r\n\r\n this.dates = [];\r\n this.permanentTypes = [];\r\n this.defaultWidth = window.GlobalData.getItem(\r\n window.GlobalData.RIDER_COLUMN_WIDTH\r\n );\r\n if (this.defaultWidth == null) {\r\n this.defaultWidth = [];\r\n for (let i = 0; i < 100; i++) this.defaultWidth[i] = 500;\r\n } else {\r\n this.defaultWidth = JSON.parse(this.defaultWidth);\r\n }\r\n this.showRider =\r\n window.GlobalData.getItem(window.GlobalData.SHOW_RIDER_ON_TASKS) != 0;\r\n }\r\n\r\n componentDidUpdate = () => {\r\n if (this.state.filteredHorses != this.props.filteredHorses)\r\n this.setState({\r\n filteredHorses: this.props.filteredHorses,\r\n });\r\n if (\r\n this.state.showGeneralTasks !=\r\n window.GlobalData.getItem(window.GlobalData.VIEW_OTHER_TASKS)\r\n )\r\n this.setState({\r\n showGeneralTasks: window.GlobalData.getItem(\r\n window.GlobalData.VIEW_OTHER_TASKS\r\n ),\r\n });\r\n };\r\n\r\n componentDidMount = () => {\r\n let ridersOrder = JSON.parse(\r\n JSON.stringify(\r\n window.GlobalData.getItem(window.GlobalData.KEY_RIDERS_ORDER)\r\n )\r\n );\r\n if (ridersOrder == null) {\r\n window.db.getUserOrdered(window.myid, (data) => {\r\n ridersOrder = data[0].OrderedRider;\r\n window.GlobalData.setItem(\r\n window.GlobalData.KEY_RIDERS_ORDER,\r\n ridersOrder\r\n );\r\n this.setState({\r\n ridersOrder: JSON.parse(ridersOrder),\r\n });\r\n });\r\n }\r\n\r\n this.setState({\r\n filteredHorses: this.props.filteredHorses,\r\n showGeneralTasks: window.GlobalData.getItem(\r\n window.GlobalData.VIEW_OTHER_TASKS\r\n ),\r\n });\r\n };\r\n\r\n onResizeStop = (rIndex, delta) => {\r\n this.defaultWidth[rIndex] += delta.width;\r\n window.GlobalData.setItem(\r\n window.GlobalData.RIDER_COLUMN_WIDTH,\r\n JSON.stringify(this.defaultWidth)\r\n );\r\n };\r\n\r\n equipmentUpdate = (e, horse) => {\r\n if (this.state.horseEquipmentFlag) {\r\n horse.Equipment = e.target.value;\r\n DataGateActions.updateEquipment({\r\n Equipment: e.target.value,\r\n HorseId: horse.id,\r\n });\r\n this.setState({\r\n horseEquipmentFlag: false,\r\n });\r\n }\r\n };\r\n\r\n equipmentChange = (e, horse) => {\r\n let arr = this.state.filteredHorses;\r\n arr.find((h) => h.id == horse.id).Equipment = e.target.value;\r\n this.setState({\r\n filteredHorses: arr,\r\n horseEquipmentFlag: true,\r\n });\r\n };\r\n\r\n renderRiderTable = (rider) => {\r\n let trainingCellMap = new TrainingCellMap();\r\n let trainingArr = this.props.filteredTrainings;\r\n if (\r\n window.training.mode == window.TrainingManager.riderStaticLight ||\r\n window.training.mode ==\r\n window.TrainingManager.riderStaticAndEquipmentLight\r\n ) {\r\n trainingArr = trainingArr.filter((i) => i.trainer == rider.id);\r\n }\r\n trainingCellMap.refreshMap([this.props.date.formatDesh()], trainingArr);\r\n let riderTrainings = trainingArr.filter((i) => i.trainer == rider.id);\r\n\r\n //let horses = rider.horses;\r\n let horses = [];\r\n if (\r\n (window.training.mode ==\r\n window.TrainingManager.riderStaticAndEquipmentLight ||\r\n window.training.mode == window.TrainingManager.riderStaticLight) &&\r\n rider.id != window.myid\r\n )\r\n horses = this.state.filteredHorses.filter((i) => i.trainer == rider.id);\r\n //for (let i in rider.horses) {\r\n // let tArr = this.props.filteredTrainings.filter(j => j.horseid == rider.horses[i].id);\r\n // if (tArr.length) {\r\n // if (tArr.filter(j => j.trainer == rider.id).length)\r\n // horses.push(rider.horses[i])\r\n // } else {\r\n // horses.push(rider.horses[i])\r\n // }\r\n //}\r\n else horses = rider.horses;\r\n\r\n let otherHorses = [];\r\n for (let i in riderTrainings) {\r\n if (this.state.filteredHorses.length) {\r\n if (!otherHorses.find((j) => j.id == riderTrainings[i].horseid)) {\r\n if (\r\n this.state.filteredHorses.find(\r\n (j) => j.id == riderTrainings[i].horseid\r\n )\r\n )\r\n otherHorses.push(\r\n this.state.filteredHorses.find(\r\n (j) => j.id == riderTrainings[i].horseid\r\n )\r\n );\r\n }\r\n }\r\n }\r\n otherHorses = otherHorses.filter(\r\n ({ id: id1 }) => !horses.some(({ id: id2 }) => id2 === id1)\r\n );\r\n otherHorses = otherHorses.sort(function (h1, h2) {\r\n return h1.name.toLowerCase() > h2.name.toLowerCase() ? 1 : -1;\r\n });\r\n\r\n let trainingTdWidth =\r\n Math.max(\r\n trainingCellMap.map[this.props.date.formatDesh()].columns.length,\r\n 1\r\n ) * 80;\r\n\r\n let otherTasksArr = this.props.generalTaskArr.filter(\r\n (t) => t.TrainerId == rider.id\r\n );\r\n otherTasksArr = otherTasksArr.sort(function (h1, h2) {\r\n return h1.Name.toLowerCase() > h2.Name.toLowerCase() ? 1 : -1;\r\n });\r\n if (this.props.showEquipment)\r\n trainingCellMap.refreshMap(\r\n this.dates.map((d) => d.formatDesh()),\r\n this.filteredTrainings\r\n );\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n {this.props.showEquipment &&\r\n this.permanentTypes.map((type) => (\r\n \r\n ))}\r\n {this.props.showEquipment && }\r\n \r\n \r\n \r\n {horses.map((horse) => (\r\n \r\n \r\n \r\n t.horseid == horse.id)}\r\n date={this.props.date}\r\n isSelectedDate={true}\r\n horse={horse}\r\n trainingCellMap={trainingCellMap}\r\n rider={rider.id}\r\n showRider={this.showRider}\r\n />\r\n \r\n {this.props.showEquipment &&\r\n this.permanentTypes.map((type) => (\r\n \r\n ))}\r\n {this.props.showEquipment && (\r\n \r\n )}\r\n \r\n ))}\r\n \r\n
{window.lang.horse}{rider.name}{type.name}{window.lang.equipment}
\r\n \r\n \r\n {this.permanentCell(horse, type, rider.id)}\r\n \r\n this.equipmentChange(e, horse)}\r\n onBlur={(e) => this.equipmentUpdate(e, horse)}\r\n />\r\n
\r\n {otherHorses.length ? (\r\n
\r\n Other horses\r\n \r\n \r\n {otherHorses.map((horse) => (\r\n \r\n \r\n \r\n t.horseid == horse.id\r\n )}\r\n date={this.props.date}\r\n isSelectedDate={true}\r\n horse={horse}\r\n trainingCellMap={trainingCellMap}\r\n rider={rider.id}\r\n showRider={this.showRider}\r\n />\r\n \r\n {this.props.showEquipment &&\r\n this.permanentTypes.map((type) => (\r\n \r\n ))}\r\n {this.props.showEquipment && (\r\n \r\n )}\r\n \r\n ))}\r\n \r\n
\r\n \r\n \r\n {this.permanentCell(horse, type, rider.id)}\r\n \r\n this.equipmentChange(e, horse)}\r\n onBlur={(e) => this.equipmentUpdate(e, horse)}\r\n />\r\n
\r\n
\r\n ) : (\r\n <>\r\n )}\r\n {this.state.showGeneralTasks == 1 && otherTasksArr.length ? (\r\n
\r\n Other tasks\r\n \r\n \r\n {otherTasksArr.map((i) => (\r\n \r\n this.onGeneralTaskClick(i)}\r\n >\r\n
\r\n
{i.TimeOfDay}
\r\n \r\n {i.Name} ({window.getInitials(rider.name)})\r\n
\r\n
{i.Remark}
\r\n \r\n \r\n
\r\n ))}\r\n \r\n
\r\n
\r\n ) : (\r\n <>\r\n )}\r\n
\r\n );\r\n };\r\n\r\n renderGeneralTaskTable = () => {\r\n let generalTaskArr = this.props.generalTaskArr;\r\n generalTaskArr = generalTaskArr.sort(function (h1, h2) {\r\n return h1.Name.toLowerCase() > h2.Name.toLowerCase() ? 1 : -1;\r\n });\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {generalTaskArr &&\r\n generalTaskArr.map((i) => (\r\n \r\n this.onGeneralTaskClick(i)}\r\n >\r\n
\r\n
{i.TimeOfDay}
\r\n \r\n {window.DataStorage.allUsers.length\r\n ? i.TrainerId\r\n ? i.Name +\r\n \" (\" +\r\n window.getInitials(\r\n window.DataStorage.allUsers.find(\r\n (t) => t.Id == i.TrainerId\r\n ).Name\r\n ) +\r\n \")\"\r\n : i.Name + \"(N)\"\r\n : i.Name}\r\n
\r\n
{i.Remark}
\r\n \r\n \r\n
\r\n ))}\r\n \r\n \r\n Add new task\r\n \r\n \r\n \r\n
Other tasks
\r\n
\r\n );\r\n };\r\n\r\n permanentCell = (horse, ttype, rider) => {\r\n let trainings = this.permanentTrainings.filter(\r\n (t) => t.horseid == horse.id && t.type == ttype.id\r\n );\r\n if (trainings.length == 0) {\r\n return (\r\n \r\n this.addPermanentTraining(horse, ttype, this.dates[0])\r\n }\r\n useOnlyAddCallback={true}\r\n rider={rider}\r\n />\r\n );\r\n }\r\n\r\n return (\r\n
\r\n {trainings.map((t) => (\r\n \r\n ))}\r\n
\r\n );\r\n };\r\n\r\n createRiderOrder = (riderId) => {\r\n this.state.ridersOrder[riderId] =\r\n Object.keys(this.state.ridersOrder).length + 1;\r\n return this.state.ridersOrder[riderId];\r\n };\r\n\r\n addPermanentTraining = (horse, type, date) => {\r\n DataGateActions.addTrainingForPermanentColumn(horse, type, date);\r\n window.training.refreshLayout();\r\n };\r\n\r\n onNewGeneralTaskClick = () => {\r\n let option = {\r\n date: this.props.date,\r\n };\r\n new GeneralTaskPopup().showPopup(option, null, () => {});\r\n };\r\n\r\n onGeneralTaskClick = (task) => {\r\n let options = {\r\n date: new Date(task.Time),\r\n };\r\n new GeneralTaskPopup().showPopup(options, task, () => {\r\n window.training.refresh();\r\n });\r\n };\r\n\r\n render() {\r\n const { filteredTrainings, date, showOnlyOwnHorses } = this.props;\r\n const { filteredHorses, showGeneralTasks } = this.state;\r\n let riderArray = [];\r\n riderArray.push({\r\n id: window.myid,\r\n name: window.lang.me,\r\n horses: [],\r\n });\r\n\r\n for (let i = 0; i < filteredHorses.length; i++) {\r\n let horse = filteredHorses[i];\r\n if (horse.trainer == null || horse.trainer == \"\") {\r\n riderArray[0].horses.push(horse);\r\n } else {\r\n let rider = riderArray.find((rider) => rider.id == horse.trainer);\r\n if (rider == null) {\r\n let riderData = window.DataStorage.allUsers.find(\r\n (t) => t.Id == horse.trainer\r\n );\r\n if (riderData != null) {\r\n riderArray.push({\r\n id: riderData.Id,\r\n name: riderData.Name,\r\n horses: [horse],\r\n });\r\n }\r\n } else {\r\n rider.horses.push(horse);\r\n }\r\n }\r\n }\r\n\r\n //filter by show rider settings\r\n this.state.ridersOrder = window.GlobalData.getItem(\r\n window.GlobalData.KEY_RIDERS_ORDER\r\n );\r\n if (this.state.ridersOrder == null) {\r\n this.state.ridersOrder = {};\r\n } else {\r\n this.state.ridersOrder = JSON.parse(this.state.ridersOrder) || {};\r\n }\r\n if (\r\n window.Managers.ridersIsShowing == null ||\r\n Object.keys(window.Managers.ridersIsShowing).length == 0\r\n ) {\r\n let f = window.GlobalData.getItem(\r\n window.GlobalData.KEY_RIDERS_IS_SHOWING\r\n );\r\n if (f != null) {\r\n window.Managers.ridersIsShowing = JSON.parse(f);\r\n }\r\n }\r\n riderArray = riderArray.filter(\r\n (r) => window.Managers.ridersIsShowing[r.id] != 0\r\n );\r\n\r\n var ridersMass = new Array();\r\n for (var i = 0; i < riderArray.length; i++) {\r\n ridersMass.push(riderArray[i]);\r\n }\r\n if (showGeneralTasks == 1 && ridersMass.indexOf((i) => i.id == \"1\") == -1)\r\n ridersMass.push({ id: \"1\", name: \"Other tasks\", email: \"\" });\r\n for (var i = 0; i < ridersMass.length; i++) {\r\n var order = this.state.ridersOrder[ridersMass[i][\"id\"]];\r\n if (order == null) {\r\n order = this.createRiderOrder(ridersMass[i][\"id\"]);\r\n }\r\n ridersMass[i][\"orderC\"] = order;\r\n }\r\n\r\n if (filteredHorses.length) {\r\n for (let i = 0; i < this.props.filteredTrainings.length; i++) {\r\n if (\r\n !ridersMass.filter(\r\n (j) => j.id == this.props.filteredTrainings[i].trainer\r\n ).length &&\r\n filteredHorses.filter(\r\n (k) => k.id == this.props.filteredTrainings[i].horseid\r\n ).length\r\n ) {\r\n let currRider = this.props.filteredTrainings[i].trainer;\r\n let newRider = window.DataStorage.allUsers.find(\r\n (i) => i.Id == currRider\r\n );\r\n let riderOrder = this.state.ridersOrder[currRider];\r\n if (newRider)\r\n ridersMass.push({\r\n id: filteredTrainings[i].trainer,\r\n name: newRider.Name,\r\n horses: [],\r\n orderC: riderOrder,\r\n });\r\n }\r\n }\r\n }\r\n\r\n let selectedRiders = JSON.parse(\r\n window.GlobalData.getItem(window.GlobalData.FILTER_RIDER)\r\n );\r\n if (selectedRiders[0] != 1) {\r\n let selectedRidersArr = [];\r\n for (let i in ridersMass)\r\n if (selectedRiders.includes(ridersMass[i].id))\r\n selectedRidersArr.push(ridersMass[i]);\r\n ridersMass = selectedRidersArr;\r\n }\r\n\r\n ridersMass.sort(function (first, second) {\r\n return first[\"orderC\"] - second[\"orderC\"];\r\n });\r\n\r\n this.dates = [];\r\n for (var i = 0; i < window.training.period; i++) {\r\n this.dates.push(window.training.startDate.addDays(i));\r\n }\r\n\r\n this.permanentTypes = [];\r\n this.filteredTrainings = this.props.filteredTrainings;\r\n if (this.dates.length == 1) {\r\n this.permanentTypes = window.DataStorage.trainTypes.filter(\r\n (tt) => tt.IsPermanent\r\n );\r\n const permanentTypeIds = this.permanentTypes.map((tt) => tt.id);\r\n if (this.permanentTypes.length != null) {\r\n this.filteredTrainings = this.props.filteredTrainings.filter(\r\n (t) => permanentTypeIds.indexOf(t.type) == -1\r\n );\r\n this.permanentTrainings = this.props.filteredTrainings.filter(\r\n (t) => permanentTypeIds.indexOf(t.type) != -1\r\n );\r\n }\r\n }\r\n\r\n let minBlockWidth = 180 + 60 + 4;\r\n if (this.props.showEquipment) {\r\n minBlockWidth += 100;\r\n }\r\n\r\n return (\r\n \r\n
\r\n {ridersMass.map((rider, rIndex) =>\r\n rider.id == \"1\" ? (\r\n } : {}\r\n }\r\n >\r\n {this.renderGeneralTaskTable()}\r\n \r\n ) : (\r\n \r\n this.onResizeStop(rIndex, d)\r\n }\r\n handleComponent={\r\n window.isTouchDevice() ? { right: } : {}\r\n }\r\n >\r\n {this.renderRiderTable(rider)}\r\n \r\n )\r\n )}\r\n
\r\n \r\n );\r\n }\r\n}\r\n\r\nexport class ResizeIcon extends Component {\r\n render() {\r\n return (\r\n \r\n );\r\n }\r\n}\r\n","import React, { Component } from \"react\";\r\nimport ResizePanel from \"react-resize-panel\";\r\nimport { Resizable } from \"re-resizable\";\r\nimport \"./RiderView.css\";\r\nimport TrainingCellMap from \"../TrainingCellMap\";\r\nimport HorseCell from \"../HorseCell/HorseCell\";\r\nimport TrainingDay from \"../TrainingCell/TrainingDay\";\r\nimport { ResizeIcon } from \"./StaticRiderView\";\r\n\r\nexport default class RiderView extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n ridersOrder: [],\r\n };\r\n\r\n this.defaultWidth = window.GlobalData.getItem(\r\n window.GlobalData.RIDER_COLUMN_WIDTH\r\n );\r\n if (this.defaultWidth == null) {\r\n this.defaultWidth = [];\r\n for (let i = 0; i < 100; i++) this.defaultWidth[i] = 500;\r\n } else {\r\n this.defaultWidth = JSON.parse(this.defaultWidth);\r\n }\r\n }\r\n\r\n onResizeStop = (rIndex, delta) => {\r\n this.defaultWidth[rIndex] += delta.width;\r\n window.GlobalData.setItem(\r\n window.GlobalData.RIDER_COLUMN_WIDTH,\r\n JSON.stringify(this.defaultWidth)\r\n );\r\n };\r\n\r\n renderRiderTable = (rider) => {\r\n let trainingCellMap = new TrainingCellMap();\r\n let trainingArr = this.props.filteredTrainings.filter(\r\n (t) => t.trainer == rider.id\r\n );\r\n trainingCellMap.refreshMap([this.props.date.formatDesh()], trainingArr);\r\n\r\n let horseIdArr = trainingArr.map((t) => t.horseid);\r\n let horses = this.props.filteredHorses.filter(\r\n (h) => horseIdArr.indexOf(h.id) != -1\r\n );\r\n if (!this.props.showOnlyOwnHorses && rider.id == window.myid) {\r\n let horseIdsWithTrainings = this.props.filteredTrainings.map(\r\n (t) => t.horseid\r\n );\r\n let horsesWihoutTrainings = this.props.filteredHorses.filter(\r\n (h) => horseIdsWithTrainings.indexOf(h.id) == -1\r\n );\r\n horses = [...horses, ...horsesWihoutTrainings];\r\n }\r\n horses = trainingCellMap.sortHorsesBySelectedDate(\r\n horses,\r\n this.props.date.formatDesh(),\r\n (horse, orderDate) => trainingArr.filter((t) => t.horseid == horse.id)\r\n );\r\n\r\n let trainingTdWidth =\r\n Math.max(\r\n trainingCellMap.map[this.props.date.formatDesh()].columns.length,\r\n 1\r\n ) * 80;\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {horses.map((horse) => (\r\n \r\n \r\n \r\n t.horseid == horse.id)}\r\n date={this.props.date}\r\n isSelectedDate={true}\r\n horse={horse}\r\n trainingCellMap={trainingCellMap}\r\n showRider={false}\r\n />\r\n \r\n \r\n ))}\r\n \r\n
{window.lang.horse}{rider.name}
\r\n \r\n
\r\n );\r\n };\r\n\r\n createRiderOrder = (riderId) => {\r\n this.state.ridersOrder[riderId] =\r\n Object.keys(this.state.ridersOrder).length + 1;\r\n return this.state.ridersOrder[riderId];\r\n };\r\n\r\n render() {\r\n const { filteredHorses, filteredTrainings, date, showOnlyOwnHorses } =\r\n this.props;\r\n let riderArray = [];\r\n riderArray.push({\r\n id: window.myid,\r\n name: window.lang.me,\r\n });\r\n if (!showOnlyOwnHorses) {\r\n for (let i = 0; i < filteredTrainings.length; i++) {\r\n let training = filteredTrainings[i];\r\n let rider = riderArray.find((rider) => rider.id == training.trainer);\r\n if (rider == null) {\r\n riderArray.push({\r\n id: training.trainer,\r\n name: training.trainername,\r\n });\r\n }\r\n }\r\n\r\n //filter by show rider settings\r\n this.state.ridersOrder = window.GlobalData.getItem(\r\n window.GlobalData.KEY_RIDERS_ORDER\r\n );\r\n if (this.state.ridersOrder == null) {\r\n this.state.ridersOrder = {};\r\n } else {\r\n this.state.ridersOrder = JSON.parse(this.state.ridersOrder) || {};\r\n }\r\n if (\r\n window.Managers.ridersIsShowing == null ||\r\n Object.keys(window.Managers.ridersIsShowing).length == 0\r\n ) {\r\n let f = window.GlobalData.getItem(\r\n window.GlobalData.KEY_RIDERS_IS_SHOWING\r\n );\r\n if (f != null) {\r\n window.Managers.ridersIsShowing = JSON.parse(f);\r\n }\r\n }\r\n }\r\n riderArray = riderArray.filter(\r\n (r) => window.Managers.ridersIsShowing[r.id] != 0\r\n );\r\n var ridersMass = new Array();\r\n for (var i = 0; i < riderArray.length; i++) {\r\n ridersMass.push(riderArray[i]);\r\n }\r\n for (var i = 0; i < ridersMass.length; i++) {\r\n var order = this.state.ridersOrder[ridersMass[i][\"id\"]];\r\n if (order == null) {\r\n order = this.createRiderOrder(ridersMass[i][\"id\"]);\r\n }\r\n ridersMass[i][\"orderC\"] = order;\r\n }\r\n ridersMass.sort(function (first, second) {\r\n return first[\"orderC\"] - second[\"orderC\"];\r\n });\r\n\r\n return (\r\n \r\n
\r\n {ridersMass.map((rider, rIndex) => (\r\n \r\n this.onResizeStop(rIndex, d)\r\n }\r\n handleComponent={\r\n window.isTouchDevice() ? { right: } : {}\r\n }\r\n >\r\n {this.renderRiderTable(rider)}\r\n \r\n ))}\r\n
\r\n \r\n );\r\n }\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { Resizable } from \"re-resizable\";\r\nimport \"./Rider2RowsView.css\";\r\nimport TrainingCellMap from \"../TrainingCellMap\";\r\nimport HorseCell from \"../HorseCell/HorseCell\";\r\nimport TrainingDay from \"../TrainingCell/TrainingDay\";\r\n\r\nexport default class Rider2RowsView extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n ridersOrder: [],\r\n };\r\n }\r\n\r\n renderRiderTable = (rider) => {\r\n let trainingCellMap = new TrainingCellMap();\r\n let trainingArr = this.props.filteredTrainings.filter(\r\n (t) => t.trainer == rider.id\r\n );\r\n trainingCellMap.refreshMap([this.props.date.formatDesh()], trainingArr);\r\n\r\n let horseIdArr = trainingArr.map((t) => t.horseid);\r\n let horses = this.props.filteredHorses.filter(\r\n (h) => horseIdArr.indexOf(h.id) != -1\r\n );\r\n if (!this.props.showOnlyOwnHorses && rider.id == window.myid) {\r\n let horseIdsWithTrainings = this.props.filteredTrainings.map(\r\n (t) => t.horseid\r\n );\r\n let horsesWihoutTrainings = this.props.filteredHorses.filter(\r\n (h) => horseIdsWithTrainings.indexOf(h.id) == -1\r\n );\r\n horses = [...horses, ...horsesWihoutTrainings];\r\n }\r\n horses = trainingCellMap.sortHorsesBySelectedDate(\r\n horses,\r\n this.props.date.formatDesh(),\r\n (horse, orderDate) => trainingArr.filter((t) => t.horseid == horse.id)\r\n );\r\n\r\n let trainingTdWidth =\r\n Math.max(\r\n trainingCellMap.map[this.props.date.formatDesh()].columns.length,\r\n 1\r\n ) * 80;\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {horses.map((horse) => (\r\n \r\n \r\n \r\n t.horseid == horse.id)}\r\n date={this.props.date}\r\n isSelectedDate={true}\r\n horse={horse}\r\n trainingCellMap={trainingCellMap}\r\n showRider={false}\r\n />\r\n \r\n \r\n ))}\r\n \r\n
{window.lang.horse}{rider.name}
\r\n \r\n
\r\n );\r\n };\r\n\r\n createRiderOrder = (riderId) => {\r\n this.state.ridersOrder[riderId] =\r\n Object.keys(this.state.ridersOrder).length + 1;\r\n return this.state.ridersOrder[riderId];\r\n };\r\n\r\n render() {\r\n const { filteredHorses, filteredTrainings, date, showOnlyOwnHorses } =\r\n this.props;\r\n let riderArray = [];\r\n riderArray.push({\r\n id: window.myid,\r\n name: window.lang.me,\r\n });\r\n if (!showOnlyOwnHorses) {\r\n for (let i = 0; i < filteredTrainings.length; i++) {\r\n let training = filteredTrainings[i];\r\n let rider = riderArray.find((rider) => rider.id == training.trainer);\r\n if (rider == null) {\r\n riderArray.push({\r\n id: training.trainer,\r\n name: training.trainername,\r\n });\r\n }\r\n }\r\n\r\n //filter by show rider settings\r\n this.state.ridersOrder = window.GlobalData.getItem(\r\n window.GlobalData.KEY_RIDERS_ORDER\r\n );\r\n if (this.state.ridersOrder == null) {\r\n this.state.ridersOrder = {};\r\n } else {\r\n this.state.ridersOrder = JSON.parse(this.state.ridersOrder);\r\n }\r\n if (\r\n window.Managers.ridersIsShowing == null ||\r\n Object.keys(window.Managers.ridersIsShowing).length == 0\r\n ) {\r\n let f = window.GlobalData.getItem(\r\n window.GlobalData.KEY_RIDERS_IS_SHOWING\r\n );\r\n if (f != null) {\r\n window.Managers.ridersIsShowing = JSON.parse(f);\r\n }\r\n }\r\n }\r\n riderArray = riderArray.filter(\r\n (r) => window.Managers.ridersIsShowing[r.id] != 0\r\n );\r\n var ridersMass = new Array();\r\n for (var i = 0; i < riderArray.length; i++) {\r\n ridersMass.push(riderArray[i]);\r\n }\r\n for (var i = 0; i < ridersMass.length; i++) {\r\n var order = this.state.ridersOrder[ridersMass[i][\"id\"]];\r\n if (order == null) {\r\n order = this.createRiderOrder(ridersMass[i][\"id\"]);\r\n }\r\n ridersMass[i][\"orderC\"] = order;\r\n }\r\n ridersMass.sort(function (first, second) {\r\n return first[\"orderC\"] - second[\"orderC\"];\r\n });\r\n\r\n return (\r\n \r\n
\r\n {ridersMass.map((rider, rIndex) => (\r\n \r\n {this.renderRiderTable(rider)}\r\n \r\n ))}\r\n
\r\n \r\n );\r\n }\r\n}\r\n","import React, { Component } from 'react';\r\nimport HorseCell from \"../HorseCell/HorseCell\";\r\n\r\nexport default class TimeSinceLastHA extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n horseDataArr: []\r\n }\r\n }\r\n\r\n componentDidMount = () => {\r\n this.getLastDatesForTrainingTypes();\r\n }\r\n\r\n getLastDatesForTrainingTypes = () => {\r\n let haTypes = window.DataStorage.trainTypes.filter(t => t.shortname == 'HA').map(t => t.id);\r\n window.DataGate.getLastDatesForTrainingTypes(window.myid, haTypes, (code, data) => {\r\n if (code == window.DataGate.CODE_OK) {\r\n this.makeHorseArr(data);\r\n }\r\n });\r\n }\r\n\r\n makeHorseArr = (data) => {\r\n let horseArr = [];\r\n this.props.filteredHorses.map(i => (\r\n horseArr.push({ horse: i, date: '' })\r\n ));\r\n data.filter(item => {\r\n let curr = horseArr.filter(i => item.HorseId == i.horse.id);\r\n if (!curr) {\r\n return true;\r\n } else {\r\n curr[0].date = item.Date;\r\n return false;\r\n }\r\n });\r\n horseArr.filter(i => {\r\n if (i.date) {\r\n i.date = Math.ceil((new Date(this.props.date) - new Date(i.date)) / 1000 / 60 / 60 / 24);\r\n return false;\r\n }\r\n });\r\n horseArr.sort((a, b) => {\r\n if (a.date == b.date) return 0;\r\n return a.date < b.date ? 1 : -1;\r\n });\r\n this.setState({\r\n horseDataArr: horseArr\r\n });\r\n }\r\n\r\n render() {\r\n const { filteredHorses } = this.props;\r\n const { horseDataArr } = this.state;\r\n let widthFC = 0;\r\n if (window.GlobalData.getItem(window.GlobalData.SHOW_HORSELOGO) == 1) {\r\n widthFC = window.isMobileDevice() ? 150 : 200;\r\n } else {\r\n widthFC = 200;\r\n }\r\n let widthCol2 = 200;\r\n let tableWidth = widthFC + widthCol2;\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {horseDataArr.length ?\r\n horseDataArr.map(i =>\r\n \r\n \r\n \r\n )\r\n :\r\n filteredHorses.length ?\r\n filteredHorses.map(i =>\r\n \r\n \r\n \r\n )\r\n :\r\n <>\r\n }\r\n \r\n
\r\n {window.lang.horse}\r\n \r\n {window.lang.days}\r\n
\r\n \r\n \r\n {i.date}\r\n
\r\n \r\n \r\n
\r\n
\r\n )\r\n }\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport \"./FieldAssignmentView.css\";\r\n\r\nimport ClickNHold from \"react-click-n-hold\";\r\nimport { TrainingCell } from \"../TrainingViews/TrainingCell/TrainingDay\";\r\n\r\nexport default function FieldAssignmentView({\r\n fieldAreas,\r\n filteredHorses,\r\n filteredTrainings,\r\n date,\r\n}) {\r\n const capitalizeAllWords = (str) =>\r\n str\r\n .split(\" \")\r\n .map((word) => word[0].toUpperCase() + word.substring(1))\r\n .join(\" \");\r\n\r\n const getHorse = (id) => filteredHorses.find((horse) => horse.id == id);\r\n const isField = (name) => {\r\n name = name.toLowerCase();\r\n\r\n if (!name) return false;\r\n return name == \"field\" || name == \"fold\" || name == \"feld\";\r\n };\r\n const returnCellContent = (field_area_id, field_id, time_id) => {\r\n let current_trainings = filteredTrainings.filter((training) => {\r\n if (!isField(training.name)) return false;\r\n\r\n if (\r\n training.FieldAreaId != field_area_id ||\r\n training.FieldId != field_id ||\r\n training.FieldAreaTimePeriodId != time_id\r\n )\r\n return false;\r\n\r\n return true;\r\n });\r\n\r\n let nrOfTasks = 1;\r\n for (let field_area of fieldAreas) {\r\n if (field_area.id == field_area_id) {\r\n for (let field of field_area.fields) {\r\n if (field.id == field_id) {\r\n nrOfTasks = field.maxNumberHorses;\r\n }\r\n }\r\n }\r\n }\r\n\r\n while (current_trainings.length < nrOfTasks) {\r\n current_trainings.push(null);\r\n }\r\n\r\n return (\r\n \r\n // handleDragStart(e, field_area_id, field_id, time_id)\r\n // }\r\n // onDrop={(e) => handleDrop(e, field_area_id, field_id, time_id)}\r\n // onDragOver={handleDragOver}\r\n >\r\n {current_trainings.map((current_training, index) => {\r\n if (current_training == null) {\r\n return (\r\n \r\n );\r\n }\r\n return (\r\n \r\n );\r\n })}\r\n \r\n );\r\n };\r\n\r\n const renderFieldAreaTable = (fieldArea) => {\r\n if (fieldArea.fields.length == 0) {\r\n return No fields available ;\r\n }\r\n if (fieldArea.timePeriods.length == 0) {\r\n return No time periods available;\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n {fieldArea.timePeriods.map((timePeriod) => (\r\n \r\n ))}\r\n \r\n \r\n \r\n {fieldArea.fields.map((field) => (\r\n \r\n {/* 1 + timePeriods.length td's */}\r\n \r\n {fieldArea.timePeriods.map((timePeriod) => {\r\n return returnCellContent(fieldArea.id, field.id, timePeriod.id);\r\n })}\r\n \r\n ))}\r\n \r\n
{capitalizeAllWords(window.lang.fieldName)}{timePeriod.period}
{field.name}
\r\n );\r\n };\r\n return (\r\n
\r\n {fieldAreas.map((fieldArea, index) => (\r\n \r\n

\r\n {window.lang.fieldArea}:\r\n {fieldArea.name}\r\n

\r\n\r\n
\r\n {renderFieldAreaTable(fieldArea)}\r\n
\r\n \r\n ))}\r\n
\r\n );\r\n}\r\n","import { useEffect } from \"react\";\r\n\r\nfunction useOnClickOutside(ref, handler) {\r\n useEffect(() => {\r\n const listener = (event) => {\r\n // Do nothing if clicking ref's element or its children\r\n if (!ref.current || ref.current.contains(event.target)) {\r\n return;\r\n }\r\n handler(event);\r\n };\r\n\r\n document.addEventListener(\"mousedown\", listener);\r\n document.addEventListener(\"touchstart\", listener);\r\n\r\n return () => {\r\n document.removeEventListener(\"mousedown\", listener);\r\n document.removeEventListener(\"touchstart\", listener);\r\n };\r\n }, [ref, handler]);\r\n}\r\n\r\nexport default useOnClickOutside;\r\n","import React, { useState } from \"react\";\r\nimport classNames from \"classnames\";\r\nimport \"./Tabs.css\";\r\n\r\nconst Tabs = ({ tabs, selected = 0, onChange }) => {\r\n const handleChange = (index) => {\r\n if (onChange) {\r\n onChange(index);\r\n }\r\n };\r\n\r\n return (\r\n
    \r\n {tabs.map((elem, index) => (\r\n handleChange(index)}\r\n >\r\n {elem.title}\r\n \r\n ))}\r\n
\r\n );\r\n};\r\n\r\nexport default Tabs;\r\n","import React, { useEffect, useRef, useState } from \"react\";\r\nimport \"./OtherTasksView.css\";\r\n\r\nimport ClickNHold from \"react-click-n-hold\";\r\nimport GeneralTaskPopup from \"../GeneralTask/GeneralTaskPopup\";\r\n\r\nimport { DragDropContext, Droppable, Draggable } from \"react-beautiful-dnd\";\r\n\r\nimport useClickOutside from \"../Hooks/useClickOutside\";\r\nimport Tabs from \"../Tabs/Tabs\";\r\nexport default function OtherTasksView({\r\n date,\r\n generalTaskArr,\r\n initialPanels,\r\n}) {\r\n const [generalTasksDaily, setGeneralTasksDaily] = useState([]);\r\n const [generalTasksWeekly, setGeneralTasksWeekly] = useState([]);\r\n const [generalTasksMonthly, setGeneralTasksMonthly] = useState([]);\r\n\r\n const [reorderMode, setReorderMode] = useState([false, false, false]);\r\n\r\n const [filteredPanels, setFilteredPanels] = useState([]);\r\n\r\n useEffect(() => {\r\n const panelsVisibility = window.GlobalData.getGeneralTaskPanelsVisibility();\r\n\r\n const newFilteredPanels = initialPanels.filter((panel) => {\r\n const isVisible = panelsVisibility.find((p) => p.Id === panel.Id)\r\n ? panelsVisibility.find((p) => p.Id === panel.Id).isVisible\r\n : true;\r\n\r\n return isVisible;\r\n });\r\n\r\n setFilteredPanels(newFilteredPanels);\r\n }, [initialPanels]);\r\n\r\n const panels = filteredPanels.sort((a, b) => {\r\n const usernameComparison = a.UserName.localeCompare(b.UserName);\r\n if (usernameComparison !== 0) {\r\n return usernameComparison;\r\n }\r\n return a.SortOrder - b.SortOrder;\r\n });\r\n\r\n const [selectedTab, setSelectedTab] = useState(0);\r\n\r\n useEffect(() => {\r\n const savedSelectedTab = window.localStorage.getItem(\r\n \"GeneralTasksSelectedPanel\"\r\n );\r\n\r\n if (!savedSelectedTab || !panels[savedSelectedTab]) {\r\n return;\r\n }\r\n\r\n try {\r\n setSelectedTab(parseInt(savedSelectedTab));\r\n } catch (ex) {\r\n console.error(\"Error setting selected tab\", ex);\r\n }\r\n }, [initialPanels]);\r\n\r\n const [draggable, setDraggable] = useState(\r\n window.GlobalData.getItem(window.GlobalData.DRAG_DROP_TRAININGS) == 1\r\n );\r\n\r\n const [isDragging, setIsDragging] = useState(false);\r\n\r\n const ref = useRef();\r\n useClickOutside(ref, () => {\r\n if (!reorderMode.some((mode) => mode)) return;\r\n\r\n // If the user clicks outside the component, save the new order\r\n let auxOrderMode = [...reorderMode];\r\n for (let index in auxOrderMode) {\r\n if (auxOrderMode[index]) {\r\n saveNewOrder(index + 1);\r\n }\r\n auxOrderMode[index] = false;\r\n }\r\n setReorderMode(auxOrderMode);\r\n });\r\n\r\n /**\r\n * Initialisation function\r\n * @description subscribes to the settings observables to be responsive to the changes in settings (drag and drop setting in this component)\r\n *\r\n */\r\n useEffect(() => {\r\n const globalDataChangeHandler = (type) => {\r\n if (type == window.GlobalData.VIEWS_NOTIFICATION_TYPE) {\r\n setDraggable(\r\n window.GlobalData.getItem(window.GlobalData.DRAG_DROP_TRAININGS) == 1\r\n );\r\n }\r\n\r\n if (type === window.GlobalData.GENERAL_TASK_PANEL_NOTIFICATION_TYPE) {\r\n const panelsVisibility =\r\n window.GlobalData.getGeneralTaskPanelsVisibility();\r\n const newFilteredPanels = initialPanels.filter((panel) => {\r\n const isVisible = panelsVisibility.find((p) => p.Id === panel.Id)\r\n ? panelsVisibility.find((p) => p.Id === panel.Id).isVisible\r\n : true;\r\n\r\n return isVisible;\r\n });\r\n\r\n setFilteredPanels(newFilteredPanels);\r\n }\r\n };\r\n // subscribe\r\n window.GlobalData.subscribe(globalDataChangeHandler);\r\n // unsubscribe\r\n return () => {\r\n window.GlobalData.unsubscribe(globalDataChangeHandler);\r\n };\r\n }, []);\r\n\r\n const saveNewOrder = (type) => {\r\n let items = [...getGeneralTaskOfType(type)];\r\n const ids = items.map((task) => task.Id);\r\n window.DataGate.reorderGeneralTasks(ids, () => {});\r\n };\r\n\r\n const drawSortIcon = (index) => {\r\n const handleClick = () => {\r\n let auxOrderMode = [...reorderMode];\r\n if (auxOrderMode[index]) {\r\n saveNewOrder(index + 1);\r\n }\r\n auxOrderMode[index] = !auxOrderMode[index];\r\n setReorderMode(auxOrderMode);\r\n };\r\n if (reorderMode[index]) {\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n };\r\n\r\n /**\r\n * A function that updates the tasks with respect of the local client order\r\n * @param {the type of tasks (daily, weekly, montly) = (1,2,3)} type\r\n */\r\n const updateWithRespectOfLocalOrder = (type) => {\r\n let newDailyTasks = generalTaskArr?.filter((task) => task.tasktype == type);\r\n if (reorderMode[type - 1]) {\r\n let curTasks = getGeneralTaskOfType(type);\r\n let res = getGeneralTaskOfType(type);\r\n for (let newDailyTask of newDailyTasks) {\r\n let foundIndex = curTasks.findIndex((x) => x.Id == newDailyTask.Id);\r\n if (foundIndex >= 0) {\r\n curTasks[foundIndex] = newDailyTask;\r\n } else {\r\n res.push(newDailyTask);\r\n }\r\n }\r\n setGeneralTasksOfType(res, type);\r\n } else {\r\n setGeneralTasksOfType(newDailyTasks, type);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n //keep order\r\n updateWithRespectOfLocalOrder(1);\r\n updateWithRespectOfLocalOrder(2);\r\n updateWithRespectOfLocalOrder(3);\r\n }, [generalTaskArr]);\r\n\r\n const onNewGeneralTaskClick = (taskType) => {\r\n let option = {\r\n date: date,\r\n taskType,\r\n selectedTab: panels[selectedTab].Id,\r\n };\r\n new GeneralTaskPopup().showPopup(option, null, () => {});\r\n };\r\n\r\n const reorder = (list, startIndex, endIndex) => {\r\n const result = Array.from(list);\r\n const [removed] = result.splice(startIndex, 1);\r\n result.splice(endIndex, 0, removed);\r\n\r\n return result;\r\n };\r\n\r\n const getGeneralTaskOfType = (type) => {\r\n if (type == 1) return generalTasksDaily;\r\n if (type == 2) return generalTasksWeekly;\r\n return generalTasksMonthly;\r\n };\r\n\r\n const setGeneralTasksOfType = (new_items, type) => {\r\n if (type == 1) return setGeneralTasksDaily(new_items);\r\n if (type == 2) return setGeneralTasksWeekly(new_items);\r\n return setGeneralTasksMonthly(new_items);\r\n };\r\n\r\n const onCellHoldCLick = (task) => {\r\n let task_aux = { ...task };\r\n task_aux.Color = task.Color == \"red\" ? \"green\" : \"red\";\r\n\r\n task_aux.Flag = \"Update\";\r\n task_aux[\"ConnectionId\"] = window.notification.connectionId;\r\n\r\n window.DataGate.insertOrUpdateGeneralTask(task_aux, (code, data) => {\r\n if (code == window.DataGate.CODE_OK) {\r\n window.training.refresh({ showSpinner: false });\r\n }\r\n });\r\n };\r\n\r\n const onDragEnd = (result, type) => {\r\n // dropped outside the list\r\n if (!result.destination) {\r\n return;\r\n }\r\n\r\n const items = reorder(\r\n getGeneralTaskOfType(type),\r\n result.source.index,\r\n result.destination.index\r\n );\r\n\r\n const ids = items.map((task) => task.Id);\r\n\r\n window.DataGate.reorderGeneralTasks(ids, () => {});\r\n setIsDragging(false);\r\n setGeneralTasksOfType(items, type);\r\n };\r\n\r\n const move_task = (type, index, lower) => {\r\n let items = [...getGeneralTaskOfType(type)];\r\n if (index == 0 && lower) return;\r\n if (index == items.length - 1 && !lower) return;\r\n\r\n let newIndex = lower ? index - 1 : index + 1;\r\n\r\n let aux = items[index];\r\n items[index] = items[newIndex];\r\n items[newIndex] = aux;\r\n // const newItems = [items[index], items[newIndex]];\r\n const ids = items.map((task) => task.Id);\r\n\r\n // window.DataGate.reorderGeneralTasks(ids, () => {});\r\n setIsDragging(false);\r\n setGeneralTasksOfType(items, type);\r\n };\r\n\r\n const tabs = panels.map((panel) => {\r\n return { title: panel.UserName + \" 's \" + panel.Name };\r\n });\r\n\r\n const renderGeneralTaskTableDaily = () => {\r\n const currentTasks = generalTasksDaily.filter(\r\n (item) => item.PanelId == panels[selectedTab].Id\r\n );\r\n return (\r\n
\r\n \r\n \r\n \r\n Other tasks\r\n \r\n \r\n onDragEnd(result, 1)}\r\n onBeforeDragStart={() => setIsDragging(true)}\r\n >\r\n \r\n {(provided, snapshot) => (\r\n \r\n {currentTasks &&\r\n currentTasks.map((i, index) => (\r\n \r\n {(provided, snapshot) => (\r\n \r\n onGeneralTaskClick(i, 1)}\r\n >\r\n {\r\n onCellHoldCLick(i);\r\n }}\r\n >\r\n
\r\n
\r\n {i.TimeOfDay}\r\n
\r\n \r\n {window.DataStorage.allUsers.length\r\n ? i.TrainerId\r\n ? i.Name +\r\n \" (\" +\r\n window.getInitials(\r\n window.DataStorage.allUsers.find(\r\n (t) => t.Id == i.TrainerId\r\n ).Name\r\n ) +\r\n \")\"\r\n : i.Name + \"(N)\"\r\n : i.Name}\r\n \r\n
\r\n {i.Remark}\r\n
\r\n
\r\n \r\n \r\n {reorderMode[0] && (\r\n <>\r\n {\r\n move_task(1, index, true);\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n {\r\n move_task(1, index, false);\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n )}\r\n \r\n ))}\r\n {provided.placeholder}\r\n\r\n \r\n \r\n
\r\n onNewGeneralTaskClick(1)}>\r\n Add new task\r\n \r\n
\r\n {drawSortIcon(0)}\r\n
\r\n
\r\n \r\n \r\n \r\n )}\r\n
\r\n \r\n \r\n
\r\n );\r\n };\r\n const renderGeneralTaskTableWeekly = () => {\r\n const currentTasks = generalTasksWeekly.filter(\r\n (item) => item.PanelId == panels[selectedTab].Id\r\n );\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n onDragEnd(result, 2)}\r\n onBeforeDragStart={() => setIsDragging(true)}\r\n >\r\n \r\n {(provided, snapshot) => (\r\n \r\n {currentTasks &&\r\n currentTasks.map((i, index) => (\r\n \r\n {(provided, snapshot) => (\r\n \r\n onGeneralTaskClick(i, 2)}\r\n >\r\n {\r\n onCellHoldCLick(i);\r\n }}\r\n >\r\n
\r\n
\r\n {i.TimeOfDay}\r\n
\r\n \r\n {window.DataStorage.allUsers.length\r\n ? i.TrainerId\r\n ? i.Name +\r\n \" (\" +\r\n window.getInitials(\r\n window.DataStorage.allUsers.find(\r\n (t) => t.Id == i.TrainerId\r\n ).Name\r\n ) +\r\n \")\"\r\n : i.Name + \"(N)\"\r\n : i.Name}\r\n \r\n
\r\n {i.Remark}\r\n
\r\n
\r\n \r\n \r\n {reorderMode[1] && (\r\n <>\r\n {\r\n move_task(2, index, true);\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n {\r\n move_task(2, index, false);\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n )}\r\n \r\n ))}\r\n {provided.placeholder}\r\n\r\n
\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n
Weekly tasks
\r\n
\r\n onNewGeneralTaskClick(2)}>\r\n Add new task\r\n \r\n
\r\n {drawSortIcon(1)}\r\n
\r\n
\r\n
\r\n
\r\n );\r\n };\r\n const renderGeneralTaskTableMonthly = () => {\r\n const currentTasks = generalTasksMonthly.filter(\r\n (item) => item.PanelId == panels[selectedTab].Id\r\n );\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n onDragEnd(result, 3)}\r\n onBeforeDragStart={() => setIsDragging(true)}\r\n >\r\n \r\n {(provided, snapshot) => (\r\n \r\n {currentTasks &&\r\n currentTasks.map((i, index) => (\r\n \r\n {(provided, snapshot) => (\r\n \r\n onGeneralTaskClick(i, 3)}\r\n >\r\n {\r\n onCellHoldCLick(i);\r\n }}\r\n >\r\n
\r\n
\r\n {i.TimeOfDay}\r\n
\r\n \r\n {window.DataStorage.allUsers.length\r\n ? i.TrainerId\r\n ? i.Name +\r\n \" (\" +\r\n window.getInitials(\r\n window.DataStorage.allUsers.find(\r\n (t) => t.Id == i.TrainerId\r\n ).Name\r\n ) +\r\n \")\"\r\n : i.Name + \"(N)\"\r\n : i.Name}\r\n \r\n
\r\n {i.Remark}\r\n
\r\n
\r\n \r\n \r\n {reorderMode[2] && (\r\n <>\r\n {\r\n move_task(3, index, true);\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n {\r\n move_task(3, index, false);\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n )}\r\n \r\n ))}\r\n {provided.placeholder}\r\n\r\n
\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n
Monthly tasks
\r\n
\r\n onNewGeneralTaskClick(3)}>\r\n Add new task\r\n \r\n
\r\n {drawSortIcon(2)}\r\n
\r\n
\r\n
\r\n
\r\n );\r\n };\r\n\r\n const onGeneralTaskClick = (task, taskType) => {\r\n let options = {\r\n date: new Date(task.Time),\r\n selectedTab: panels[selectedTab].Id,\r\n };\r\n new GeneralTaskPopup().showPopup(options, task, () => {});\r\n };\r\n\r\n return (\r\n
{}} ref={ref}>\r\n {\r\n window.localStorage.setItem(\"GeneralTasksSelectedPanel\", newVal);\r\n setSelectedTab(newVal);\r\n }}\r\n />\r\n
\r\n
\r\n {renderGeneralTaskTableDaily()}\r\n
\r\n
\r\n {renderGeneralTaskTableWeekly()}\r\n
\r\n
\r\n {renderGeneralTaskTableMonthly()}\r\n
\r\n
\r\n
\r\n );\r\n}\r\n","import React, { useEffect, useState } from \"react\";\r\nimport \"./OtherTasksViewLight.css\";\r\n\r\nimport ClickNHold from \"react-click-n-hold\";\r\nimport GeneralTaskPopup from \"../GeneralTask/GeneralTaskPopup\";\r\nimport Tabs from \"../Tabs/Tabs\";\r\n\r\nexport default function OtherTasksViewLight({\r\n date,\r\n generalTaskArr,\r\n initialPanels,\r\n}) {\r\n const [generalTasksDaily, setGeneralTasksDaily] = useState([]);\r\n const [generalTasksWeekly, setGeneralTasksWeekly] = useState([]);\r\n const [generalTasksMonthly, setGeneralTasksMonthly] = useState([]);\r\n\r\n const [filteredPanels, setFilteredPanels] = useState([]);\r\n\r\n useEffect(() => {\r\n const panelsVisibility = window.GlobalData.getGeneralTaskPanelsVisibility();\r\n\r\n const newFilteredPanels = initialPanels.filter((panel) => {\r\n const isVisible = panelsVisibility.find((p) => p.Id === panel.Id)\r\n ? panelsVisibility.find((p) => p.Id === panel.Id).isVisible\r\n : true;\r\n\r\n return isVisible;\r\n });\r\n\r\n setFilteredPanels(newFilteredPanels);\r\n }, [initialPanels]);\r\n\r\n const panels = filteredPanels.sort((a, b) => {\r\n const usernameComparison = a.UserName.localeCompare(b.UserName);\r\n if (usernameComparison !== 0) {\r\n return usernameComparison;\r\n }\r\n return a.SortOrder - b.SortOrder;\r\n });\r\n\r\n const [selectedTab, setSelectedTab] = useState(0);\r\n\r\n useEffect(() => {\r\n const savedSelectedTab = window.localStorage.getItem(\r\n \"GeneralTasksSelectedPanel\"\r\n );\r\n\r\n if (!savedSelectedTab || !panels[savedSelectedTab]) {\r\n return;\r\n }\r\n\r\n try {\r\n setSelectedTab(parseInt(savedSelectedTab));\r\n } catch (ex) {\r\n console.error(\"Error setting selected tab\", ex);\r\n }\r\n }, [initialPanels]);\r\n\r\n useEffect(() => {\r\n setGeneralTasksDaily(generalTaskArr?.filter((task) => task.tasktype == 1));\r\n setGeneralTasksWeekly(generalTaskArr?.filter((task) => task.tasktype == 2));\r\n setGeneralTasksMonthly(\r\n generalTaskArr?.filter((task) => task.tasktype == 3)\r\n );\r\n }, [generalTaskArr]);\r\n\r\n const onCellHoldCLick = (task) => {\r\n let task_aux = { ...task };\r\n task_aux.Color = task.Color == \"red\" ? \"green\" : \"red\";\r\n\r\n task_aux.Flag = \"Update\";\r\n task_aux[\"ConnectionId\"] = window.notification.connectionId;\r\n\r\n window.DataGate.insertOrUpdateGeneralTask(task_aux, (code, data) => {\r\n if (code == window.DataGate.CODE_OK) {\r\n window.training.refresh({ showSpinner: false });\r\n }\r\n });\r\n };\r\n\r\n const renderGeneralTaskTableDaily = () => {\r\n const currentTasks = generalTasksDaily.filter(\r\n (item) => item.PanelId == panels[selectedTab].Id\r\n );\r\n return (\r\n
\r\n \r\n \r\n \r\n Other tasks\r\n \r\n \r\n \r\n {currentTasks &&\r\n currentTasks.map((i, index) => (\r\n \r\n onGeneralTaskClick(i, 1)}\r\n >\r\n {\r\n onCellHoldCLick(i);\r\n }}\r\n >\r\n
\r\n
{i.TimeOfDay}
\r\n \r\n {window.DataStorage.allUsers.length\r\n ? i.TrainerId\r\n ? i.Name +\r\n \" (\" +\r\n window.getInitials(\r\n window.DataStorage.allUsers.find(\r\n (t) => t.Id == i.TrainerId\r\n ).Name\r\n ) +\r\n \")\"\r\n : i.Name + \"(N)\"\r\n : i.Name}\r\n \r\n
{i.Remark}
\r\n
\r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n
\r\n );\r\n };\r\n const renderGeneralTaskTableWeekly = () => {\r\n const currentTasks = generalTasksWeekly.filter(\r\n (item) => item.PanelId == panels[selectedTab].Id\r\n );\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {currentTasks &&\r\n currentTasks.map((i, index) => (\r\n \r\n onGeneralTaskClick(i, 2)}\r\n >\r\n {\r\n onCellHoldCLick(i);\r\n }}\r\n >\r\n
\r\n
{i.TimeOfDay}
\r\n \r\n {window.DataStorage.allUsers.length\r\n ? i.TrainerId\r\n ? i.Name +\r\n \" (\" +\r\n window.getInitials(\r\n window.DataStorage.allUsers.find(\r\n (t) => t.Id == i.TrainerId\r\n ).Name\r\n ) +\r\n \")\"\r\n : i.Name + \"(N)\"\r\n : i.Name}\r\n \r\n
{i.Remark}
\r\n
\r\n \r\n \r\n
\r\n ))}\r\n \r\n
Weekly tasks
\r\n
\r\n );\r\n };\r\n const renderGeneralTaskTableMonthly = () => {\r\n const currentTasks = generalTasksMonthly.filter(\r\n (item) => item.PanelId == panels[selectedTab].Id\r\n );\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {currentTasks &&\r\n currentTasks.map((i, index) => (\r\n \r\n onGeneralTaskClick(i, 3)}\r\n >\r\n {\r\n onCellHoldCLick(i);\r\n }}\r\n >\r\n
\r\n
{i.TimeOfDay}
\r\n \r\n {window.DataStorage.allUsers.length\r\n ? i.TrainerId\r\n ? i.Name +\r\n \" (\" +\r\n window.getInitials(\r\n window.DataStorage.allUsers.find(\r\n (t) => t.Id == i.TrainerId\r\n ).Name\r\n ) +\r\n \")\"\r\n : i.Name + \"(N)\"\r\n : i.Name}\r\n \r\n
{i.Remark}
\r\n
\r\n \r\n \r\n
\r\n ))}\r\n \r\n
Monthly tasks
\r\n
\r\n );\r\n };\r\n\r\n const onGeneralTaskClick = (task, taskType) => {\r\n let options = {\r\n date: new Date(task.Time),\r\n simplified: true,\r\n };\r\n new GeneralTaskPopup().showPopup(options, task, () => {});\r\n };\r\n\r\n const tabs = panels.map((panel) => {\r\n return { title: panel.UserName + \" 's \" + panel.Name };\r\n });\r\n\r\n return (\r\n
\r\n {\r\n window.localStorage.setItem(\"GeneralTasksSelectedPanel\", newVal);\r\n setSelectedTab(newVal);\r\n }}\r\n />\r\n
\r\n
\r\n {renderGeneralTaskTableDaily()}\r\n
\r\n
\r\n {renderGeneralTaskTableWeekly()}\r\n
\r\n
\r\n {renderGeneralTaskTableMonthly()}\r\n
\r\n
\r\n
\r\n );\r\n}\r\n","import React, { useEffect, useState } from \"react\";\r\nimport \"./FieldAndOtherTasks.css\";\r\nimport OtherTasksViewLight from \"../OtherTasksViewLight/OtherTasksViewLight\";\r\nimport FieldAssignmentView from \"../FieldAssignmentView/FieldAssignmentView\";\r\n\r\nexport default function FieldAndOtherTasks({\r\n date,\r\n generalTaskArr,\r\n filteredHorses,\r\n filteredTrainingsField,\r\n fieldAreas,\r\n initialPanels,\r\n}) {\r\n return (\r\n
\r\n
\r\n \r\n\r\n \r\n
\r\n
\r\n );\r\n}\r\n","import React, { useEffect, useState } from \"react\";\r\nimport \"./WalkerAssignmentView.css\";\r\n\r\nimport { TrainingCell } from \"../TrainingViews/TrainingCell/TrainingDay\";\r\n\r\nexport default function WalkerAssignmentView({\r\n walkerAreas,\r\n filteredHorses,\r\n filteredTrainings,\r\n date,\r\n}) {\r\n console.log(\"walkerAreas\", walkerAreas);\r\n\r\n const capitalizeAllWords = (str) =>\r\n str\r\n .split(\" \")\r\n .map((word) => word[0].toUpperCase() + word.substring(1))\r\n .join(\" \");\r\n\r\n const getHorse = (id) => filteredHorses.find((horse) => horse.id == id);\r\n const isWalker = (name) => {\r\n if (!name) return false;\r\n name = name.toLowerCase();\r\n\r\n return name == \"walker\";\r\n };\r\n const returnCellContent = (walker_area_id, walker_id, time_id) => {\r\n let current_trainings = filteredTrainings.filter((training) => {\r\n if (!isWalker(training.name)) return false;\r\n\r\n if (\r\n training.WalkerAreaId != walker_area_id ||\r\n training.WalkerId != walker_id ||\r\n training.WalkerAreaTimePeriodId != time_id\r\n )\r\n return false;\r\n\r\n return true;\r\n });\r\n\r\n let nrOfTasks = 1;\r\n for (let walker_area of walkerAreas) {\r\n if (walker_area.id == walker_area_id) {\r\n for (let walker of walker_area.walkers) {\r\n if (walker.id == walker_id) {\r\n nrOfTasks = walker.maxNumberHorses;\r\n }\r\n }\r\n }\r\n }\r\n\r\n while (current_trainings.length < nrOfTasks) {\r\n current_trainings.push(null);\r\n }\r\n\r\n return (\r\n \r\n // handleDragStart(e, walker_area_id, walker_id, time_id)\r\n // }\r\n // onDrop={(e) => handleDrop(e, walker_area_id, walker_id, time_id)}\r\n // onDragOver={handleDragOver}\r\n >\r\n {current_trainings.map((current_training, index) => {\r\n if (current_training == null) {\r\n return (\r\n \r\n );\r\n }\r\n return (\r\n \r\n );\r\n })}\r\n \r\n );\r\n };\r\n\r\n const renderWalkerAreaTable = (walkerArea) => {\r\n if (walkerArea.walkers.length == 0) {\r\n return No walkers available ;\r\n }\r\n if (walkerArea.timePeriods.length == 0) {\r\n return No time periods available;\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n {walkerArea.timePeriods.map((timePeriod) => (\r\n \r\n ))}\r\n \r\n \r\n \r\n {walkerArea.walkers.map((walker) => (\r\n \r\n {/* 1 + timePeriods.length td's */}\r\n \r\n {walkerArea.timePeriods.map((timePeriod) => {\r\n return returnCellContent(\r\n walkerArea.id,\r\n walker.id,\r\n timePeriod.id\r\n );\r\n })}\r\n \r\n ))}\r\n \r\n
{capitalizeAllWords(window.lang.walker)}{timePeriod.period}
{walker.name}
\r\n );\r\n };\r\n return (\r\n
\r\n {walkerAreas.map((walkerArea, index) => (\r\n \r\n

\r\n {window.lang.walkerArea}:\r\n {walkerArea.name}\r\n

\r\n\r\n
\r\n {renderWalkerAreaTable(walkerArea)}\r\n
\r\n \r\n ))}\r\n
\r\n );\r\n}\r\n","import React, { Component } from \"react\";\r\nimport \"./AllHorseDataWithPrice.css\";\r\nexport default class AllHorseDataWithPrice extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n window.Spinner.show();\r\n this.state = {\r\n headers: [\r\n window.lang.name,\r\n window.lang.type,\r\n window.lang.age,\r\n \"Sex\",\r\n window.lang.pedigree,\r\n window.lang.color,\r\n window.lang.height,\r\n window.lang.result,\r\n \"Reg. nr\",\r\n window.lang.price,\r\n ],\r\n reportData: [],\r\n sortedBy: null,\r\n sortedIncreasing: false,\r\n };\r\n }\r\n\r\n componentDidMount = () => {\r\n const horseTypes = JSON.parse(\r\n window.GlobalData.getItem(window.GlobalData.SHOW_IN_TRAINING)\r\n );\r\n this.isHistoricHorses = horseTypes[0] == 101;\r\n document.getElementById(\"trainFooter\").style.display = \"none\";\r\n this.createAllHorsesWithPrice();\r\n };\r\n componentWillUnmount = () => {\r\n document.getElementById(\"trainFooter\").style.display = \"flex\";\r\n };\r\n getPermission = (horseId) => {\r\n let horseItem = window.DataStorage.getAllHorses().find(\r\n (h) => h.id == horseId\r\n );\r\n if (horseItem) {\r\n if (horseItem.userid != window.myid) {\r\n let role = window.DataStorage.rolesDataFromUsers.find(\r\n (r) => r.UserId == horseItem.userid\r\n );\r\n if (role != null && role.rSeeHorseData == false) return false;\r\n else return true;\r\n } else return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n setPeddi = (jsonText) => {\r\n var text = JSON.parse(jsonText);\r\n if (text != null) {\r\n var peddiText =\r\n text[\"mather\"] +\r\n \" / \" +\r\n text[\"grmather_father\"] +\r\n \" / \" +\r\n text[\"grmather_grfather_f\"];\r\n } else {\r\n var peddiText = \"\";\r\n }\r\n return peddiText;\r\n };\r\n setGender = (index) => {\r\n var genderText = \"\";\r\n if (index == 0) {\r\n genderText = \"None\";\r\n } else if (index == 1) {\r\n genderText = window.lang.horseTypeMare;\r\n } else if (index == 2) {\r\n genderText = window.lang.horseTypeGelding;\r\n } else {\r\n genderText = window.lang.horseTypeStallion;\r\n }\r\n return genderText;\r\n };\r\n createAllHorsesWithPrice = () => {\r\n window.db.getHorsesForReportByTypeAndWithPrice(\r\n this.isHistoricHorses,\r\n (dataHorses) => {\r\n let dataArray = [];\r\n for (let t = 0; t < dataHorses.length; t++) {\r\n if (!this.getPermission(dataHorses[t].id)) continue;\r\n var typeName = dataHorses[t][\"Type\"] || \"None\";\r\n var color =\r\n dataHorses[t].ColorName == null ? \"\" : dataHorses[t].ColorName;\r\n var price = dataHorses[t].Price == null ? \"\" : dataHorses[t].Price;\r\n var peddi = this.setPeddi(dataHorses[t].PedigreeJsonText);\r\n dataArray.push([\r\n dataHorses[t].Name,\r\n typeName,\r\n dataHorses[t].BirthYear,\r\n this.setGender(dataHorses[t].Gender),\r\n peddi,\r\n color,\r\n dataHorses[t].Height,\r\n dataHorses[t].Result,\r\n dataHorses[t].RFBid,\r\n price,\r\n ]);\r\n }\r\n\r\n this.setState({\r\n reportData: dataArray,\r\n });\r\n window.Spinner.hide();\r\n }\r\n );\r\n };\r\n\r\n executeSort = (attribute_index, increasing) => {\r\n let aux = this.state.reportData.sort((a, b) =>\r\n a[attribute_index].localeCompare(b[attribute_index])\r\n );\r\n if (!increasing) {\r\n aux = aux.reverse();\r\n }\r\n this.setState({ reportData: aux });\r\n };\r\n\r\n sortBy = (sort_index) => {\r\n if (this.state.sortedBy == sort_index) {\r\n this.executeSort(sort_index, !this.state.sortedIncreasing);\r\n this.setState({ sortedIncreasing: !this.state.sortedIncreasing });\r\n return;\r\n }\r\n\r\n this.executeSort(sort_index, false);\r\n this.setState({ sortedBy: sort_index, sortedIncreasing: false });\r\n };\r\n render() {\r\n return (\r\n \r\n \r\n \r\n {this.state.headers.map((header, header_index) => (\r\n this.sortBy(header_index)}\r\n >\r\n {header}\r\n {this.state.sortedBy == header_index &&\r\n this.state.sortedIncreasing && (\r\n \r\n \r\n \r\n )}\r\n {this.state.sortedBy == header_index &&\r\n !this.state.sortedIncreasing && (\r\n \r\n \r\n \r\n )}\r\n \r\n ))}\r\n \r\n \r\n {this.state.reportData.map((horseDetails, horse_index) => (\r\n \r\n {horseDetails.map((el, el_index) => (\r\n \r\n {el}\r\n \r\n ))}\r\n \r\n ))}\r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n","import React from \"react\";\r\nimport \"./Modal.css\";\r\nexport default function Modal({\r\n title,\r\n body,\r\n button1_text,\r\n button2_text,\r\n button1_callback,\r\n button2_callback,\r\n}) {\r\n return (\r\n
\r\n
\r\n

{title}

\r\n

{body}

\r\n
\r\n \r\n {button1_text}\r\n \r\n {button2_text && (\r\n \r\n {button2_text}\r\n \r\n )}\r\n
\r\n
\r\n
\r\n );\r\n}\r\n","import React, { Component } from \"react\";\r\nimport \"./SalesData.css\";\r\nimport Modal from \"../../Modal/Modal\";\r\nimport { filter } from \"jszip\";\r\nexport default class SalesData extends Component {\r\n constructor(props) {\r\n super(props);\r\n window.Spinner.show();\r\n this.state = {\r\n headers: [\r\n window.lang.image,\r\n window.lang.name,\r\n window.lang.type,\r\n window.lang.age,\r\n \"Sex\",\r\n window.lang.pedigree,\r\n window.lang.color,\r\n window.lang.height,\r\n window.lang.result,\r\n window.lang.price,\r\n ],\r\n reportData: [],\r\n sortedBy: null,\r\n sortedIncreasing: false,\r\n textModal: \"\",\r\n textModalTitle: \"\",\r\n };\r\n }\r\n\r\n componentDidUpdate = (props) => {\r\n if (!props || props.filteredHorses === this.props.filteredHorses) return;\r\n const horseTypes = JSON.parse(\r\n window.GlobalData.getItem(window.GlobalData.SHOW_IN_TRAINING)\r\n );\r\n this.isHistoricHorses = horseTypes[0] == 101;\r\n document.getElementById(\"trainFooter\").style.display = \"none\";\r\n this.createAllHorsesWithPrice(props.filteredHorses);\r\n };\r\n\r\n componentWillUnmount = () => {\r\n document.getElementById(\"trainFooter\").style.display = \"flex\";\r\n };\r\n getPermission = (horseId) => {\r\n let horseItem = window.DataStorage.getAllHorses().find(\r\n (h) => h.id == horseId\r\n );\r\n if (horseItem) {\r\n if (horseItem.userid != window.myid) {\r\n let role = window.DataStorage.rolesDataFromUsers.find(\r\n (r) => r.UserId == horseItem.userid\r\n );\r\n if (role != null && role.rSeeHorseData == false) return false;\r\n else return true;\r\n } else return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n setPeddi = (jsonText) => {\r\n var text = JSON.parse(jsonText);\r\n if (text != null) {\r\n var peddiText =\r\n text[\"mather\"] +\r\n \" / \" +\r\n text[\"grmather_father\"] +\r\n \" / \" +\r\n text[\"grmather_grfather_f\"];\r\n } else {\r\n var peddiText = \"\";\r\n }\r\n return peddiText;\r\n };\r\n setGender = (index) => {\r\n var genderText = \"\";\r\n if (index == 0) {\r\n genderText = \"None\";\r\n } else if (index == 1) {\r\n genderText = window.lang.horseTypeMare;\r\n } else if (index == 2) {\r\n genderText = window.lang.horseTypeGelding;\r\n } else {\r\n genderText = window.lang.horseTypeStallion;\r\n }\r\n return genderText;\r\n };\r\n createAllHorsesWithPrice = (filteredHorses) => {\r\n window.db.getHorsesForReportByTypeAndWithPrice(\r\n this.isHistoricHorses,\r\n (dataHorses) => {\r\n let dataArray = [];\r\n for (let t = 0; t < dataHorses.length; t++) {\r\n if (!this.getPermission(dataHorses[t].id)) continue;\r\n\r\n const filteredHorse = filteredHorses.find(\r\n (horse) => horse.id == dataHorses[t].id\r\n );\r\n\r\n if (!filteredHorse) continue;\r\n var typeName = dataHorses[t][\"Type\"] || \"None\";\r\n var color =\r\n dataHorses[t].ColorName == null ? \"\" : dataHorses[t].ColorName;\r\n var price = dataHorses[t].Price == null ? \"\" : dataHorses[t].Price;\r\n var peddi = this.setPeddi(dataHorses[t].PedigreeJsonText);\r\n dataArray.push([\r\n filteredHorse.id,\r\n filteredHorse.LogoFile,\r\n dataHorses[t].Name,\r\n typeName,\r\n dataHorses[t].BirthYear,\r\n this.setGender(dataHorses[t].Gender),\r\n peddi,\r\n color,\r\n dataHorses[t].Height,\r\n dataHorses[t].Result,\r\n price,\r\n ]);\r\n }\r\n\r\n this.setState(\r\n {\r\n reportData: dataArray,\r\n },\r\n () => {\r\n if (this.state.lastSortIndex) {\r\n this.executeSort(\r\n this.state.lastSortIndex,\r\n this.state.sortedIncreasing\r\n );\r\n }\r\n // this.this.ExecuteSort();\r\n window.Spinner.hide();\r\n }\r\n );\r\n }\r\n );\r\n };\r\n\r\n executeSort = (attribute_index, increasing) => {\r\n let aux = this.state.reportData.sort((a, b) =>\r\n a[attribute_index].localeCompare(b[attribute_index])\r\n );\r\n if (!increasing) {\r\n aux = aux.reverse();\r\n }\r\n this.setState({ reportData: aux });\r\n };\r\n\r\n sortBy = (sort_index) => {\r\n if (sort_index === 0) return;\r\n\r\n if (this.state.sortedBy == sort_index) {\r\n this.executeSort(sort_index, !this.state.sortedIncreasing);\r\n this.setState({\r\n lastSortIndex: sort_index,\r\n sortedIncreasing: !this.state.sortedIncreasing,\r\n });\r\n return;\r\n }\r\n\r\n this.executeSort(sort_index, false);\r\n this.setState({\r\n lastSortIndex: sort_index,\r\n sortedBy: sort_index,\r\n sortedIncreasing: false,\r\n });\r\n };\r\n\r\n renderColumn = (el, el_index, horse_index, horseId) => {\r\n if (el_index === 1) {\r\n const imageUrl =\r\n el != null ? window.DataGate.baseurl + el : \"img/horselogo.png\";\r\n return (\r\n {\r\n window.Managers.self.editHorseById(horseId);\r\n }}\r\n >\r\n \r\n \r\n );\r\n }\r\n return (\r\n \r\n {\r\n const element = event.target;\r\n const isTruncated =\r\n element.scrollHeight > element.clientHeight ||\r\n element.scrollWidth > element.clientWidth;\r\n\r\n if (isTruncated) {\r\n this.setState({\r\n textModal: el,\r\n textModalTitle:\r\n this.state.headers[el_index] +\r\n \" of \" +\r\n this.state.reportData[horse_index][1],\r\n });\r\n }\r\n }}\r\n >\r\n {el}\r\n \r\n \r\n );\r\n };\r\n\r\n renderTextModalBody() {\r\n return {this.state.textModal};\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n \r\n \r\n \r\n {this.state.headers.map((header, header_index) => (\r\n this.sortBy(header_index)}\r\n >\r\n {header}\r\n {this.state.sortedBy == header_index &&\r\n this.state.sortedIncreasing && (\r\n \r\n \r\n \r\n )}\r\n {this.state.sortedBy == header_index &&\r\n !this.state.sortedIncreasing && (\r\n \r\n \r\n \r\n )}\r\n \r\n ))}\r\n \r\n \r\n \r\n {this.state.reportData.map((horseDetails, horse_index) => (\r\n \r\n {horseDetails.map(\r\n (el, el_index) =>\r\n el_index > 0 &&\r\n this.renderColumn(\r\n el,\r\n el_index,\r\n horse_index,\r\n horseDetails[0]\r\n )\r\n )}\r\n \r\n ))}\r\n \r\n \r\n {this.state.textModal && (\r\n this.setState({ textModal: \"\" })}\r\n />\r\n )}\r\n \r\n );\r\n }\r\n}\r\n","import React, { Component } from \"react\";\r\nimport \"./RaiderAndOtherTasks.css\";\r\nimport Modal from \"../../Modal/Modal\";\r\nimport RiderView from \"../RiderView/RiderView\";\r\nimport OtherTasksView from \"../../OtherTasksView/OtherTasksView\";\r\n\r\nexport default function RaiderAndOtherTasks({\r\n filteredTrainings,\r\n filteredHorses,\r\n date,\r\n showOnlyOwnHorses,\r\n generalTaskArr,\r\n initialPanels,\r\n}) {\r\n return (\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n );\r\n}\r\n","import React from \"react\";\r\n\r\nconst VeterinarianManager = ({\r\n filteredHorses = [],\r\n filteredTrainings = [],\r\n}) => {\r\n const GLOBAL_STYLE = {\r\n whiteSpace: \"normal\",\r\n wordWrap: \"break-word\",\r\n };\r\n\r\n const getVeterinarTypeName = (index) => {\r\n let name = window.VeterinarPage.VeterinarType[0][\"Name\"];\r\n for (let i = 0; i < window.VeterinarPage.VeterinarType.length; i++) {\r\n if (window.VeterinarPage.VeterinarType[i][\"value\"] == index) {\r\n name = window.VeterinarPage.VeterinarType[i][\"Name\"];\r\n break;\r\n }\r\n }\r\n return name;\r\n };\r\n\r\n const HEADERS = [\r\n {\r\n displayName: window.lang.name,\r\n name: \"Name\",\r\n style: { ...GLOBAL_STYLE, width: 120 },\r\n onClick: (row) => {\r\n if (!row.HorseId) return;\r\n window.Managers.self.editHorseById(row.HorseId);\r\n window.Managers.extention.showVeterinarian(row.HorseId);\r\n },\r\n },\r\n {\r\n displayName: window.lang.healthStatus,\r\n name: \"HealthStatus\",\r\n style: { ...GLOBAL_STYLE, width: 120 },\r\n },\r\n {\r\n displayName: window.lang.generalTaskPanels,\r\n name: \"GeneralTaskPanels\",\r\n style: { ...GLOBAL_STYLE, width: 120 },\r\n },\r\n {\r\n displayName: window.lang.date,\r\n name: \"Date\",\r\n style: { ...GLOBAL_STYLE, width: 120 },\r\n },\r\n {\r\n displayName: window.lang.type,\r\n name: \"VetType\",\r\n style: { ...GLOBAL_STYLE, width: 120 },\r\n },\r\n {\r\n displayName: window.lang.remark,\r\n name: \"Remark\",\r\n style: { ...GLOBAL_STYLE },\r\n },\r\n ];\r\n\r\n const parseData = () => {\r\n const data = [];\r\n filteredTrainings.forEach((training) => {\r\n const horse = filteredHorses.find((h) => h.id === training.horseid);\r\n const healthStatus =\r\n window.DataStorage.getHealthStatuses().filter(\r\n (status) => status.id == horse?.HealthStatusId\r\n )[0]?.name || \"\";\r\n data.push({\r\n HorseId: horse?.id,\r\n Name: horse?.name || \"Unknown\",\r\n HealthStatus: healthStatus,\r\n // If you have a value for GeneralTaskPanels, add it here.\r\n Date: training.starttime,\r\n VetType: getVeterinarTypeName(training.VeterinarianType),\r\n Remark: training.remark,\r\n });\r\n });\r\n return data;\r\n };\r\n\r\n const data = parseData();\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n {HEADERS.map((header, header_index) => (\r\n \r\n {header.displayName}\r\n \r\n ))}\r\n \r\n \r\n \r\n {data.map((row, row_index) => (\r\n \r\n {HEADERS.map((header, header_index) => (\r\n header.onClick && header.onClick(row)}\r\n >\r\n {row[header.name]}\r\n \r\n ))}\r\n \r\n ))}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default VeterinarianManager;\r\n","import React, { useMemo } from \"react\";\r\nimport { TrainingCell } from \"../TrainingCell/TrainingDay\";\r\nimport HorseCell from \"../HorseCell/HorseCell\";\r\n\r\nconst TappingView = ({ filteredHorses = [], trainings = [], date }) => {\r\n // Filter only stallions (assuming Gender \"3\" represents stallions)\r\n const horses = useMemo(() => {\r\n return (filteredHorses || []).filter((horse) => horse.Gender === \"3\");\r\n }, [filteredHorses]);\r\n\r\n // Build an array of objects { task, horse } for each training\r\n const data = useMemo(() => {\r\n return trainings\r\n .map((training) => {\r\n const horse = horses.find((h) => h.id == training.horseid);\r\n if (!horse) return null; // Skip if horse not found\r\n return { task: training, horse };\r\n })\r\n .filter(Boolean); // Filter out null values\r\n }, [trainings, horses]);\r\n\r\n if (horses.length === 0) {\r\n return
No Stallions found
;\r\n }\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {data.map((item) => (\r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n \r\n
{window.lang.horse}{window.lang.task}
\r\n \r\n \r\n \r\n
\r\n {/* Optionally add any additional content here */}\r\n \r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default TappingView;\r\n","import React, { Component } from \"react\";\r\nimport WeekView from \"./WeekView/WeekView\";\r\nimport FeedView from \"./FeedView/FeedView\";\r\nimport RiderView from \"./RiderView/RiderView\";\r\nimport Rider2RowsView from \"./Rider2RowsView/Rider2RowsView\";\r\nimport TimeSinceLastHA from \"./TimeSinceLastHA/TimeSinceLastHA\";\r\nimport StaticRiderView from \"./RiderView/StaticRiderView\";\r\nimport FieldAssignmentView from \"../FieldAssignmentView/FieldAssignmentView\";\r\nimport OtherTasksView from \"../OtherTasksView/OtherTasksView\";\r\nimport OtherTasksViewLight from \"../OtherTasksViewLight/OtherTasksViewLight\";\r\nimport FieldAndOtherTasks from \"../FieldAndOtherTasks/FieldAndOtherTasks\";\r\nimport WalkerAssignmentView from \"../WalkerAssignmentView/WalkerAssignmentView\";\r\nimport AllHorseDataWithPrice from \"./AllHorseWithPriceView/AllHorseDataWithPrice\";\r\nimport SalesData from \"./SalesData/SalesData\";\r\nimport RaiderAndOtherTasks from \"./RaiderAndOtherTasks/RaiderAndOtherTasks\";\r\nimport VeterinarianView from \"../VeterinarianManager/VeterinarianManager\";\r\nimport TappingView from \"./TappingView/TappingView\";\r\n\r\nclass MainView extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.filteredHorses = [];\r\n this.filteredTrainings = [];\r\n this.filteredGeneralTaskArr = [];\r\n this.fieldAreas = [];\r\n }\r\n\r\n applyFilters = () => {\r\n let horseArr = [\r\n ...window.DataStorage.myHorseArray,\r\n ...window.DataStorage.notMyHorseArray,\r\n ];\r\n let trainingArray = window.DataStorage.addTrainingArr;\r\n let stablesArray = window.DataStorage.boxesAndStables;\r\n // fiter by type\r\n const horseType = JSON.parse(\r\n window.GlobalData.getItem(window.GlobalData.SHOW_IN_TRAINING)\r\n );\r\n if (\r\n horseType == null ||\r\n horseType.length == 0 ||\r\n horseType[0] == \"1\" ||\r\n horseType[0] == \"101\"\r\n ) {\r\n //show all\r\n } else if (horseType[0] == \"2\") {\r\n //in training\r\n horseArr = horseArr.filter((h) => h.istraining == \"1\");\r\n } else if (horseType[0] == \"3\") {\r\n //own in training\r\n horseArr = horseArr.filter(\r\n (h) => h.istraining == \"1\" && h.userid == window.myid\r\n );\r\n } else {\r\n let horseTypeIds = horseType.map((i) => {\r\n let horseTypeArr = i.split(\",\");\r\n return horseTypeArr;\r\n });\r\n horseTypeIds = horseTypeIds.flat();\r\n horseArr = horseArr.filter(\r\n (h) => horseTypeIds.indexOf(h.HorseType) != -1\r\n );\r\n }\r\n\r\n // filter by stable\r\n const stableId = JSON.parse(\r\n window.GlobalData.getItem(window.GlobalData.SHOW_IN_STABLE)\r\n );\r\n if (stableId[stableId.length - 1] == \"1\") {\r\n //show all\r\n } else {\r\n stablesArray = stablesArray.filter((i) => {\r\n let stIndex = stableId.indexOf(i.IdStable);\r\n return i.IdStable == stableId[stIndex];\r\n });\r\n horseArr = horseArr.filter((h) => {\r\n let stArr =\r\n window.inUseStables == \"Y\"\r\n ? stablesArray.filter((t) => t.IDBox == h.BoxName)\r\n : stablesArray.filter((t) => t.IdStable == h.StableId);\r\n return stArr.length != 0;\r\n });\r\n }\r\n\r\n if (\r\n this.props.mode != window.TrainingManager.riderStatic &&\r\n this.props.mode != window.TrainingManager.riderStaticAndEquipment &&\r\n this.props.mode != window.TrainingManager.riderStaticLight &&\r\n this.props.mode != window.TrainingManager.riderStaticAndEquipmentLight\r\n ) {\r\n // filter by rider\r\n const riderId = JSON.parse(\r\n window.GlobalData.getItem(window.GlobalData.FILTER_RIDER)\r\n );\r\n if (riderId && riderId[riderId.length - 1] != \"1\") {\r\n trainingArray = trainingArray.filter((t) => {\r\n let rIndex = riderId.indexOf(t.trainer);\r\n return t.trainer == riderId[rIndex];\r\n });\r\n horseArr = horseArr.filter((h) => {\r\n let tArr = trainingArray.filter((t) => t.horseid == h.id);\r\n return tArr.length != 0;\r\n });\r\n }\r\n }\r\n\r\n // filter by label\r\n const labelId = JSON.parse(\r\n window.GlobalData.getItem(window.GlobalData.FILTER_LABEL)\r\n );\r\n if (labelId[labelId.length - 1] != \"1\") {\r\n horseArr = horseArr.filter((h) => {\r\n let horseLabelArr = JSON.parse(h.LabelIds);\r\n return horseLabelArr\r\n ? horseLabelArr.map((j) => labelId.indexOf(j) != -1).includes(true)\r\n : false;\r\n });\r\n }\r\n\r\n horseArr = horseArr.sort(function (h1, h2) {\r\n return h1.name.toLowerCase() > h2.name.toLowerCase() ? 1 : -1;\r\n });\r\n this.filteredHorses = horseArr;\r\n this.filteredTrainings = trainingArray;\r\n };\r\n\r\n render() {\r\n this.applyFilters();\r\n console.warn(\"MODE\", this.props.mode);\r\n switch (this.props.mode) {\r\n case window.TrainingManager.otherTasks:\r\n if (window.DataStorage.addGeneralTaskArr)\r\n this.filteredGeneralTaskArr = window.DataStorage.addGeneralTaskArr;\r\n\r\n const panels = window.DataStorage.getGeneralTaskPanels();\r\n return (\r\n \r\n );\r\n case window.TrainingManager.otherTasksLight:\r\n if (window.DataStorage.addGeneralTaskArr)\r\n this.filteredGeneralTaskArr = window.DataStorage.addGeneralTaskArr;\r\n // .filter(\r\n // (t) => t.Time == otherTasksselectedDate\r\n // );\r\n const panelsLight = window.DataStorage.getGeneralTaskPanels();\r\n return (\r\n \r\n );\r\n case window.TrainingManager.fieldAndOtherTasks:\r\n if (window.DataStorage.addGeneralTaskArr)\r\n this.filteredGeneralTaskArr = window.DataStorage.addGeneralTaskArr;\r\n\r\n this.fieldAreas = window.DataStorage.fieldAreas;\r\n let selectedDateFieldFieldAndOther =\r\n window.training.startDate.formatDesh();\r\n let filteredTrainingsFieldFieldAndOther = this.filteredTrainings.filter(\r\n (t) => t.starttime == selectedDateFieldFieldAndOther\r\n );\r\n const panelsLightWithFields = window.DataStorage.getGeneralTaskPanels();\r\n return (\r\n \r\n );\r\n case window.TrainingManager.fieldAssignment:\r\n this.fieldAreas = window.DataStorage.fieldAreas;\r\n let selectedDateField = window.training.startDate.formatDesh();\r\n let filteredTrainingsField = this.filteredTrainings.filter(\r\n (t) => t.starttime == selectedDateField\r\n );\r\n return (\r\n \r\n );\r\n\r\n case window.TrainingManager.walkerAssignment:\r\n this.walkerAreas = window.DataStorage.walkerAreas;\r\n let selectedDateWalker = window.training.startDate.formatDesh();\r\n let filteredTrainingsWalker = this.filteredTrainings.filter(\r\n (t) => t.starttime == selectedDateWalker\r\n );\r\n return (\r\n \r\n );\r\n\r\n case window.TrainingManager.raiderAndOtherTasks:\r\n let selectedDateRaider = window.training.startDate.formatDesh();\r\n let filteredTrainingsRaider = this.filteredTrainings.filter(\r\n (t) => t.starttime == selectedDateRaider\r\n );\r\n this.filteredGeneralTaskArr = window.DataStorage.addGeneralTaskArr;\r\n const panelsRaider = window.DataStorage.getGeneralTaskPanels();\r\n return (\r\n \r\n );\r\n case window.TrainingManager.salesData:\r\n return (\r\n \r\n );\r\n case window.TrainingManager.mode_table_2:\r\n case window.TrainingManager.mode_equipment:\r\n return (\r\n \r\n );\r\n case window.TrainingManager.mode_rider_2:\r\n case window.TrainingManager.mode_own_horses: {\r\n let selectedDate = window.training.startDate.formatDesh();\r\n let filteredTrainings = this.filteredTrainings.filter(\r\n (t) => t.starttime == selectedDate\r\n );\r\n return (\r\n \r\n );\r\n }\r\n case window.TrainingManager.riderStatic:\r\n case window.TrainingManager.riderStaticAndEquipment:\r\n case window.TrainingManager.riderStaticLight:\r\n case window.TrainingManager.riderStaticAndEquipmentLight: {\r\n let selectedDate = window.training.startDate.formatDesh();\r\n let filteredTrainings = this.filteredTrainings.filter(\r\n (t) => t.starttime == selectedDate\r\n );\r\n if (window.DataStorage.addGeneralTaskArr)\r\n this.filteredGeneralTaskArr =\r\n window.DataStorage.addGeneralTaskArr.filter(\r\n (t) => t.Time == selectedDate\r\n );\r\n return (\r\n \r\n );\r\n }\r\n case window.TrainingManager.mode_feed:\r\n return ;\r\n case window.TrainingManager.mode_rider2:\r\n let selectedDate = window.training.startDate.formatDesh();\r\n let filteredTrainings = this.filteredTrainings.filter(\r\n (t) => t.starttime == selectedDate\r\n );\r\n return (\r\n \r\n );\r\n case window.TrainingManager.timeSinceLastHA:\r\n return (\r\n \r\n );\r\n case window.TrainingManager.Vetenerian:\r\n let vetenerianTrainings = window.DataStorage.getVetenerianTrainings(\r\n window.training.startDate.formatDesh()\r\n );\r\n\r\n return (\r\n \r\n );\r\n\r\n case window.TrainingManager.Tapping:\r\n let tappingSelectedDate = window.training.startDate.formatDesh();\r\n let filteredTappingTrainings = this.filteredTrainings.filter(\r\n (t) => t.starttime == tappingSelectedDate && t.shortname == \"TA\"\r\n );\r\n return (\r\n //
asdasdad
\r\n \r\n );\r\n }\r\n\r\n return
;\r\n }\r\n}\r\n\r\nexport default MainView;\r\n","import React, { Component } from \"react\";\r\nimport \"./ToggleView.css\";\r\n\r\nexport default class ToggleView extends Component {\r\n render() {\r\n const checked = this.props.checked;\r\n if (checked) {\r\n return (\r\n \r\n
{window.lang.yes}
\r\n
\r\n \r\n );\r\n } else {\r\n return (\r\n \r\n
\r\n
{window.lang.no}
\r\n \r\n );\r\n }\r\n }\r\n}\r\n","import React, { Component } from \"react\";\r\nimport DataGateActions from \"../../DataGateActions\";\r\nimport \"./FarrierView.css\";\r\nimport ToggleView from \"../../Controls/ToggleView/ToggleView\";\r\nimport TrainingPopup from \"../../TrainingPopup/TrainingPopup\";\r\n\r\nclass FarrierView extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n data: [],\r\n };\r\n\r\n this.reminderNames = [\r\n window.lang.reminder_No,\r\n window.lang.reminder_SameDay,\r\n window.lang.reminder_1_dayBefore,\r\n window.lang.reminder_2_dayBefore,\r\n window.lang.reminder_3_dayBefore,\r\n window.lang.reminder_4_dayBefore,\r\n window.lang.reminder_5_dayBefore,\r\n window.lang.reminder_6_dayBefore,\r\n window.lang.reminder_7_dayBefore,\r\n ];\r\n }\r\n\r\n componentDidMount() {\r\n this.loadData();\r\n window.training.onTrainingAddChangeCallback = () => {\r\n this.loadData();\r\n };\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n if (this.props.curdate !== prevProps.curdate) {\r\n this.loadData();\r\n }\r\n }\r\n\r\n loadData() {\r\n DataGateActions.getFarrierData((data) => {\r\n if (data != null) {\r\n this.setState({\r\n data: data,\r\n });\r\n }\r\n });\r\n }\r\n\r\n filterData() {\r\n let horseArr = [\r\n ...window.DataStorage.myHorseArray,\r\n ...window.DataStorage.notMyHorseArray,\r\n ];\r\n //fiter by type\r\n const horseType = JSON.parse(\r\n window.GlobalData.getItem(window.GlobalData.SHOW_IN_TRAINING)\r\n );\r\n if (horseType == \"1\" || horseType == \"101\") {\r\n //show all\r\n } else if (horseType == \"2\") {\r\n //in training\r\n horseArr = horseArr.filter((h) => h.istraining == \"1\");\r\n } else if (horseType == \"3\") {\r\n //own in training\r\n horseArr = horseArr.filter(\r\n (h) => h.istraining == \"1\" && h.userid == window.myid\r\n );\r\n } else {\r\n let horseTypeIds = horseType.map((i) => {\r\n let horseTypeArr = i.split(\",\");\r\n return horseTypeArr;\r\n });\r\n horseTypeIds = horseTypeIds.flat();\r\n horseArr = horseArr.filter(\r\n (h) => horseTypeIds.indexOf(h.HorseType) != -1\r\n );\r\n }\r\n\r\n let horseIds = horseArr.map((h) => h.id);\r\n let data = this.state.data.filter((t) => horseIds.indexOf(t.HorseId) != -1);\r\n return data;\r\n }\r\n\r\n onEditClick = (item) => {\r\n window.db.getTrainers(item.HorseId, (data) => {\r\n let horse = window.DataStorage.getAllHorses().find(\r\n (h) => h.id == item.HorseId\r\n );\r\n let trainingTypes = window.DataStorage.trainTypes.filter(\r\n (i) => i.owner == horse.userid\r\n );\r\n let currentTraining = trainingTypes.filter((i) => i.id == item.Type);\r\n let currentTrainer = data.filter((i) => i.id == item.Trainer);\r\n let options = {\r\n horseId: item.HorseId,\r\n trainingType: item.Type,\r\n date: Date.getNewDate(item.StartTime),\r\n trainerId: currentTrainer[0].id,\r\n trainerName: currentTrainer[0].name,\r\n };\r\n\r\n let newItem = {\r\n color: item.Color,\r\n duration: item.Duration,\r\n Evaluation: item.Evaluation,\r\n FarrierType: item.FarrierType,\r\n FarrierTypeName: item.FarrierTypeName,\r\n HasMultimedia: item.HasMultimedia,\r\n HorseId: item.HorseId,\r\n HorseName: item.HorseName,\r\n id: item.Id,\r\n isCanCopy: item.IsCanCopy,\r\n PaddockPeriod: item.PaddockPeriod,\r\n remark: item.Remark,\r\n ReminderType: item.ReminderType,\r\n StartTime: item.StartTime,\r\n status: item.Status,\r\n SyncTime: item.SyncTime,\r\n TimeOfDay: item.TimeOfDay,\r\n trainer: item.Trainer,\r\n Type: item.Type,\r\n U: item.U,\r\n VeterinarianType: item.VeterinarianType,\r\n VeterinarianVacType: item.VeterinarianVacType,\r\n name: currentTraining[0].name,\r\n shortname: currentTraining[0].shortname,\r\n trainername: currentTrainer[0].name,\r\n };\r\n\r\n let trainingPopup = new TrainingPopup();\r\n trainingPopup.showPopup(options, newItem, () => {\r\n window.HomePage.latestIconClick = \"homeIconFarrier\";\r\n window.HomePage.prototype.onFarrierMenuClick();\r\n });\r\n });\r\n };\r\n\r\n onAddClick = (isDone) => {\r\n let horse = window.DataStorage.getAllHorses()[0];\r\n let trainingTypes = window.DataStorage.trainTypes.filter(\r\n (i) => i.owner == horse.userid\r\n );\r\n let farTraining = trainingTypes.filter((i) => i.IsFarrier == true);\r\n let date = new Date();\r\n if (!isDone) {\r\n let weeks = window.GlobalData.getItem(\r\n window.GlobalData.SETTINGS_FARRIER_WEEKS\r\n );\r\n if (weeks < 7) {\r\n date.setDate(\r\n date.getDate() + ((parseInt(weeks) + 1 + 7 - date.getDay()) % 7)\r\n );\r\n } else if (weeks > 7) {\r\n date = new Date().addDays(7 * (parseInt(weeks) - 4));\r\n }\r\n }\r\n let currentTrainerId = horse.trainer;\r\n if (!currentTrainerId)\r\n var currentTrainer = window.DataStorage.allUsers.find(\r\n (i) => i.Id == window.myid\r\n );\r\n else\r\n var currentTrainer = window.DataStorage.allUsers.find(\r\n (i) => i.Id == currentTrainerId\r\n );\r\n let options = {\r\n trainingType: farTraining[0].id,\r\n date: date,\r\n isDone: isDone,\r\n trainerId: currentTrainer.Id,\r\n trainerName: currentTrainer.Name,\r\n };\r\n let trainingPopup = new TrainingPopup();\r\n trainingPopup.showPopup(options, null, () => {\r\n window.HomePage.latestIconClick = \"homeIconFarrier\";\r\n window.HomePage.prototype.onFarrierMenuClick();\r\n });\r\n };\r\n\r\n onDeleteClick = (item) => {\r\n let data = this.state.data.filter((t) => t.Id != item.Id);\r\n this.setState({\r\n data: data,\r\n });\r\n\r\n DataGateActions.deleteTraining(item.Id);\r\n window.DataStorage.deleteTrainingById(item.Id);\r\n window.training.refreshLayout();\r\n window.HomePage.latestIconClick = \"homeIconFarrier\";\r\n window.HomePage.prototype.onFarrierMenuClick();\r\n };\r\n\r\n onAddForHorseClick = (horseId) => {\r\n let horse = window.DataStorage.getAllHorses().filter(\r\n (i) => i.id == horseId\r\n );\r\n let trainingTypes = window.DataStorage.trainTypes.filter(\r\n (i) => i.owner == horse[0].userid\r\n );\r\n let farTraining = trainingTypes.filter((i) => i.IsFarrier == true);\r\n let date = new Date();\r\n let farrWeek = window.GlobalData.getItem(\r\n window.GlobalData.SETTINGS_FARRIER_WEEKS + \"&\" + horseId\r\n );\r\n if (!farrWeek)\r\n farrWeek = window.GlobalData.getItem(\r\n window.GlobalData.SETTINGS_FARRIER_WEEKS\r\n );\r\n if (farrWeek < 7) {\r\n date.setDate(\r\n date.getDate() + ((parseInt(farrWeek) + 1 + 7 - date.getDay()) % 7)\r\n );\r\n } else if (farrWeek > 7) {\r\n date = new Date().addDays(7 * (parseInt(farrWeek) - 4));\r\n }\r\n let currentTrainerId = horse.trainer;\r\n if (!currentTrainerId)\r\n var currentTrainer = window.DataStorage.allUsers.find(\r\n (i) => i.Id == window.myid\r\n );\r\n else\r\n var currentTrainer = window.DataStorage.allUsers.find(\r\n (i) => i.Id == currentTrainerId\r\n );\r\n let options = {\r\n trainingType: farTraining[0].id,\r\n date: date,\r\n isDone: false,\r\n horseId: horse[0].id,\r\n farrWeek: farrWeek,\r\n trainerId: currentTrainer.Id,\r\n trainerName: currentTrainer.Name,\r\n };\r\n let trainingPopup = new TrainingPopup();\r\n trainingPopup.showPopup(options, null, () => {\r\n window.HomePage.latestIconClick = \"homeIconFarrier\";\r\n window.HomePage.prototype.onFarrierMenuClick();\r\n });\r\n };\r\n\r\n onDoneToggle = (item) => {\r\n item.Color = item.Color == \"green\" ? \"red\" : \"green\";\r\n let data = [...this.state.data];\r\n let index = data.findIndex((t) => t.Id == item.Id);\r\n data[index] = item;\r\n this.setState({\r\n data: data,\r\n });\r\n\r\n window.DataGate.insertOrUpdateTrainings(item, function (code, data) {\r\n if (code == window.DataGate.CODE_OK) {\r\n window.training.refresh({ showSpinner: false });\r\n if (item.Color == \"green\") {\r\n let horse = window.DataStorage.getAllHorses().filter(\r\n (i) => i.id == item.HorseId\r\n );\r\n let trainingTypes = window.DataStorage.trainTypes.filter(\r\n (i) => i.owner == horse[0].userid\r\n );\r\n let farTraining = trainingTypes.filter((i) => i.IsFarrier == true);\r\n let date = new Date();\r\n let weeks = window.GlobalData.getItem(\r\n window.GlobalData.SETTINGS_FARRIER_WEEKS\r\n );\r\n if (weeks < 7) {\r\n date.setDate(\r\n date.getDate() + ((parseInt(weeks) + 1 + 7 - date.getDay()) % 7)\r\n );\r\n } else if (weeks > 7) {\r\n date = new Date().addDays(7 * (parseInt(weeks) - 4));\r\n }\r\n let currentTrainerId = horse.trainer;\r\n if (!currentTrainerId)\r\n var currentTrainer = window.DataStorage.allUsers.find(\r\n (i) => i.Id == window.myid\r\n );\r\n else\r\n var currentTrainer = window.DataStorage.allUsers.find(\r\n (i) => i.Id == currentTrainerId\r\n );\r\n let options = {\r\n trainingType: farTraining[0].id,\r\n date: date,\r\n horseId: horse[0].id,\r\n trainerId: currentTrainer.Id,\r\n trainerName: currentTrainer.Name,\r\n };\r\n console.log(item);\r\n console.log(options);\r\n // let trainingPopup = new TrainingPopup();\r\n // trainingPopup.showPopup(options, null, () => {\r\n // window.HomePage.latestIconClick = \"homeIconFarrier\";\r\n // window.HomePage.prototype.onFarrierMenuClick();\r\n // });\r\n }\r\n }\r\n });\r\n };\r\n\r\n getDaysLeft = (dateStr) => {\r\n return parseInt((new Date(dateStr) - new Date()) / (1000 * 60 * 60 * 24));\r\n };\r\n\r\n getTasksNotDone(data) {\r\n let arr = data.filter((t) => t.Color != \"green\");\r\n let tasksNotDone = [];\r\n arr.forEach((item) => {\r\n if (!tasksNotDone.find((t) => t.HorseId == item.HorseId)) {\r\n tasksNotDone.push(item);\r\n }\r\n });\r\n return tasksNotDone;\r\n }\r\n\r\n getTasksDone(data, tasksNotDone) {\r\n let arr = data\r\n .filter((t) => t.Color == \"green\")\r\n .sort((t1, t2) => {\r\n if (t1.StartTime < t2.StartTime) return 1;\r\n if (t1.StartTime > t2.StartTime) return -1;\r\n return 0;\r\n });\r\n let tasksDone = [];\r\n arr.forEach((item) => {\r\n if (\r\n !tasksDone.find((t) => t.HorseId == item.HorseId) &&\r\n !tasksNotDone.find((t) => t.HorseId == item.HorseId)\r\n ) {\r\n tasksDone.push(item);\r\n }\r\n });\r\n tasksDone = tasksDone.sort((t1, t2) => {\r\n if (t1.StartTime > t2.StartTime) return 1;\r\n if (t1.StartTime < t2.StartTime) return -1;\r\n return 0;\r\n });\r\n return tasksDone;\r\n }\r\n\r\n renderTable = (data, isDone) => {\r\n return (\r\n <>\r\n \r\n {window.lang.trained}\r\n {isDone ? window.lang.shoeDate : window.lang.planedFarrier}\r\n {window.lang.horse}\r\n Type\r\n Reg. nr\r\n Chipid\r\n {window.lang.shoeDaysSinceLast}\r\n {window.lang.shoeType}\r\n Notification\r\n {window.lang.remark}\r\n \r\n {isDone ? : <>}\r\n \r\n {data.map((item) => (\r\n \r\n \r\n this.onDoneToggle(item)}\r\n />\r\n \r\n {item.StartTime}\r\n {item.HorseName}\r\n {item.HorseType ? item.HorseType : \"None\"}\r\n {item.RFBid}\r\n {item.Chipid}\r\n {isDone ? -1 * this.getDaysLeft(item.StartTime) : \"\"}\r\n {item.FarrierTypeName}\r\n {this.reminderNames[item.ReminderType]}\r\n {item.Remark}\r\n \r\n this.onEditClick(item)}\r\n />\r\n this.onDeleteClick(item)}\r\n />\r\n \r\n {isDone ? (\r\n \r\n this.onAddForHorseClick(item.HorseId)}\r\n >\r\n {window.lang.planFarrier}\r\n \r\n \r\n ) : (\r\n <>\r\n )}\r\n \r\n ))}\r\n \r\n );\r\n };\r\n\r\n renderRemainingHorsesTable = (data) => {\r\n let horses = window.DataStorage.getAllHorses();\r\n let horsesArr = horses.filter(\r\n (e) => data.findIndex((i) => e.id == i.HorseId) === -1\r\n );\r\n horsesArr = horsesArr.sort((t1, t2) => {\r\n if (t1.name > t2.name) return 1;\r\n if (t1.name < t2.name) return -1;\r\n return 0;\r\n });\r\n return (\r\n <>\r\n \r\n {window.lang.horse}\r\n \r\n \r\n {horsesArr.length ? (\r\n horsesArr.map((i) => (\r\n \r\n {i.name}\r\n \r\n this.onAddForHorseClick(i.id)}\r\n >\r\n {window.lang.planFarrier}\r\n \r\n \r\n \r\n ))\r\n ) : (\r\n <>\r\n )}\r\n \r\n );\r\n };\r\n\r\n onMakePdfClick = () => {\r\n window.Spinner.show();\r\n let reportDataArr = [];\r\n let tasksNotDoneReportArr = [];\r\n tasksNotDoneReportArr.push([\r\n window.lang.shoeDate,\r\n window.lang.horse,\r\n \"Type\",\r\n \"Reg. nr\",\r\n \"Chipid\",\r\n window.lang.shoeDaysSinceLast,\r\n window.lang.shoeType,\r\n \"Notification\",\r\n window.lang.remark,\r\n ]);\r\n let tasksNotDone = this.getTasksNotDone(this.filterData());\r\n tasksNotDone.map((item) =>\r\n tasksNotDoneReportArr.push([\r\n item.StartTime,\r\n item.HorseName,\r\n item.HorseType ? item.HorseType : \"None\",\r\n item.RFBid,\r\n item.Chipid,\r\n \"\",\r\n item.FarrierTypeName,\r\n this.reminderNames[item.ReminderType],\r\n item.Remark,\r\n ])\r\n );\r\n reportDataArr.push({\r\n header: \"Tasks not done\",\r\n data: tasksNotDoneReportArr,\r\n });\r\n\r\n let tasksDoneReportArr = [];\r\n tasksDoneReportArr.push([\r\n window.lang.shoeDate,\r\n window.lang.horse,\r\n \"Type\",\r\n \"Reg. nr\",\r\n \"Chipid\",\r\n window.lang.shoeDaysSinceLast,\r\n window.lang.shoeType,\r\n \"Notification\",\r\n window.lang.remark,\r\n ]);\r\n let tasksDone = this.getTasksDone(this.filterData(), tasksNotDone);\r\n tasksDone.map((item) =>\r\n tasksDoneReportArr.push([\r\n item.StartTime,\r\n item.HorseName,\r\n item.HorseType ? item.HorseType : \"None\",\r\n item.RFBid,\r\n item.Chipid,\r\n -1 * this.getDaysLeft(item.StartTime),\r\n item.FarrierTypeName,\r\n this.reminderNames[item.ReminderType],\r\n item.Remark,\r\n ])\r\n );\r\n reportDataArr.push({\r\n header: \"Tasks done\",\r\n data: tasksDoneReportArr,\r\n });\r\n\r\n window.DataGate.makePdf(\r\n reportDataArr,\r\n \"Farrier report\",\r\n function (data, url) {\r\n const a = document.createElement(\"a\");\r\n a.style.display = \"none\";\r\n a.href = url;\r\n a.target = \"_blank\";\r\n a.download = \"Report.pdf\";\r\n document.body.appendChild(a);\r\n a.click();\r\n window.Spinner.hide();\r\n }\r\n );\r\n };\r\n\r\n onMakeXlsxClick = () => {\r\n window.Spinner.show();\r\n let reportDataArr = [];\r\n let tasksNotDoneReportArr = [];\r\n tasksNotDoneReportArr.push([\r\n window.lang.shoeDate,\r\n window.lang.horse,\r\n \"Type\",\r\n \"Reg. nr\",\r\n \"Chipid\",\r\n window.lang.shoeDaysSinceLast,\r\n window.lang.shoeType,\r\n \"Notification\",\r\n window.lang.remark,\r\n ]);\r\n let tasksNotDone = this.getTasksNotDone(this.filterData());\r\n tasksNotDone.map((item) =>\r\n tasksNotDoneReportArr.push([\r\n item.StartTime,\r\n item.HorseName,\r\n item.HorseType ? item.HorseType : \"None\",\r\n item.RFBid,\r\n item.Chipid,\r\n \"\",\r\n item.FarrierTypeName,\r\n this.reminderNames[item.ReminderType],\r\n item.Remark,\r\n ])\r\n );\r\n reportDataArr.push({\r\n header: \"Tasks not done\",\r\n data: tasksNotDoneReportArr,\r\n });\r\n\r\n let tasksDoneReportArr = [];\r\n tasksDoneReportArr.push([\r\n window.lang.shoeDate,\r\n window.lang.horse,\r\n \"Type\",\r\n \"Reg. nr\",\r\n \"Chipid\",\r\n window.lang.shoeDaysSinceLast,\r\n window.lang.shoeType,\r\n \"Notification\",\r\n window.lang.remark,\r\n ]);\r\n let tasksDone = this.getTasksDone(this.filterData(), tasksNotDone);\r\n tasksDone.map((item) =>\r\n tasksDoneReportArr.push([\r\n item.StartTime,\r\n item.HorseName,\r\n item.HorseType ? item.HorseType : \"None\",\r\n item.RFBid,\r\n item.Chipid,\r\n -1 * this.getDaysLeft(item.StartTime),\r\n item.FarrierTypeName,\r\n this.reminderNames[item.ReminderType],\r\n item.Remark,\r\n ])\r\n );\r\n reportDataArr.push({\r\n header: \"Tasks done\",\r\n data: tasksDoneReportArr,\r\n });\r\n window.DataGate.makeXlsx(\r\n reportDataArr,\r\n \"Farrier report\",\r\n function (data, url) {\r\n const a = document.createElement(\"a\");\r\n a.style.display = \"none\";\r\n a.href = url;\r\n a.download = \"Report.xlsx\";\r\n document.body.appendChild(a);\r\n a.click();\r\n window.Spinner.hide();\r\n }\r\n );\r\n };\r\n\r\n render() {\r\n const data = this.filterData();\r\n const tasksNotDone = this.getTasksNotDone(data);\r\n const tasksDone = this.getTasksDone(data, tasksNotDone);\r\n //console.log(data);\r\n\r\n return (\r\n
\r\n
\r\n this.onAddClick(true)}\r\n >\r\n {window.lang.shoeNewFarrier}\r\n \r\n this.onAddClick(false)}\r\n >\r\n {window.lang.planFarrier}\r\n \r\n \r\n \r\n
\r\n \r\n \r\n {this.renderTable(tasksNotDone, false)}\r\n {this.renderTable(tasksDone, true)}\r\n \r\n
\r\n

\r\n {window.lang.remainingHorsesFarr}\r\n

\r\n \r\n {this.renderRemainingHorsesTable(data)}\r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default FarrierView;\r\n","import React, { Component } from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport DatePicker from \"react-datepicker\";\r\nimport \"./VaccinationPopup.css\";\r\n\r\nclass VaccinationPopupWindow extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n horseArr: [],\r\n currentHorsesIds: [],\r\n vaccinationTypes: [],\r\n date: \"\",\r\n nextVaccinationDate: \"\",\r\n currentVaccinationType: \"\",\r\n currentVaccinationId: \"\",\r\n currentHorseUserid: \"\",\r\n showHorseList: \"\",\r\n selectionType: this.props.options.selectionType,\r\n };\r\n }\r\n\r\n componentDidUpdate = () => {\r\n if (this.state.selectionType != \"many\") this.scrollToSelectedItems();\r\n };\r\n\r\n componentDidMount = () => {\r\n this.loadData();\r\n };\r\n\r\n loadData = () => {\r\n let horseArr = window.DataStorage.getAllHorses();\r\n horseArr = horseArr.sort((h1, h2) =>\r\n h1.name.toLowerCase() > h2.name.toLowerCase() ? 1 : -1\r\n );\r\n let vaccinationTypes = window.VaccinationPage.types;\r\n let currentHorseId = \"\";\r\n let currentVaccinationType = \"\";\r\n let currentVaccinationId = \"\";\r\n\r\n if (!this.props.options.horseId) currentHorseId = horseArr[0].id;\r\n else currentHorseId = this.props.options.horseId;\r\n\r\n window.db.getHorse(currentHorseId, (horse) => {\r\n if (this.props.item) {\r\n currentVaccinationType = this.props.item.vtype;\r\n currentVaccinationId = this.props.item.id;\r\n } else {\r\n currentVaccinationType = this.props.options.vtype;\r\n }\r\n\r\n let date = new Date(JSON.parse(JSON.stringify(this.props.options.date)));\r\n let nextVaccinationDate = this.props.options.date;\r\n nextVaccinationDate.setMonth(\r\n nextVaccinationDate.getMonth() + currentVaccinationType.MaxMonth\r\n );\r\n nextVaccinationDate = nextVaccinationDate.addDays(\r\n currentVaccinationType.MaxDay\r\n );\r\n let showHorseList = this.props.options.showHorseList;\r\n this.setState({\r\n horseArr: horseArr,\r\n currentHorsesIds: [currentHorseId],\r\n vaccinationTypes: vaccinationTypes,\r\n date: date,\r\n currentVaccinationType: currentVaccinationType,\r\n nextVaccinationDate: nextVaccinationDate.formatDesh(),\r\n currentVaccinationId: currentVaccinationId,\r\n currentHorseUserid: horse.userid,\r\n showHorseList: showHorseList,\r\n });\r\n });\r\n };\r\n\r\n scrollToSelectedItems = () => {\r\n let selectedCollection = document.getElementsByClassName(\r\n \"ui-btn selectedListItem\"\r\n );\r\n let selectedArr = [].slice.call(selectedCollection);\r\n if (selectedArr.length) selectedArr.map((i) => i.scrollIntoView());\r\n };\r\n\r\n hide = () => {\r\n ReactDOM.unmountComponentAtNode(\r\n document.getElementById(\"vaccinationPopupReact\")\r\n );\r\n };\r\n\r\n onCancelClick = () => {\r\n this.hide();\r\n };\r\n\r\n onHorseClick = (e) => {\r\n if (e.currentTarget.dataset.idf) {\r\n var horseid = e.currentTarget.dataset.idf;\r\n if (this.state.selectionType == \"many\") {\r\n let currentHorsesIds = [];\r\n\r\n if (this.state.selectionType == \"many\") {\r\n currentHorsesIds = [...this.state.currentHorsesIds];\r\n }\r\n if (currentHorsesIds.indexOf(horseid) === -1) {\r\n currentHorsesIds.push(horseid);\r\n } else {\r\n currentHorsesIds = currentHorsesIds.filter((i) => i !== horseid);\r\n }\r\n this.setState({\r\n currentHorsesIds: currentHorsesIds,\r\n });\r\n return;\r\n }\r\n window.db.getVaccinationLatest(horseid, (rows) => {\r\n if (rows.length != 0) {\r\n var lastItem = rows.item(0);\r\n var nextTypeIndex =\r\n window.VaccinationPage.types[lastItem[\"vtype\"] - 1].NextIndex;\r\n }\r\n let currentHorsesIds = [];\r\n\r\n if (this.state.selectionType == \"many\") {\r\n currentHorsesIds = [...this.state.currentHorsesIds];\r\n }\r\n if (currentHorsesIds.indexOf(horseid) === -1) {\r\n currentHorsesIds.push(horseid);\r\n } else {\r\n currentHorsesIds = currentHorsesIds.filter((i) => i !== horseid);\r\n }\r\n this.setState({\r\n currentHorsesIds: currentHorsesIds,\r\n currentVaccinationType: window.VaccinationPage.types[nextTypeIndex],\r\n });\r\n });\r\n }\r\n };\r\n\r\n handleChange = (date) => {\r\n let nextVaccinationDate = new Date(JSON.parse(JSON.stringify(date)));\r\n nextVaccinationDate.setMonth(\r\n nextVaccinationDate.getMonth() +\r\n this.state.currentVaccinationType.MaxMonth\r\n );\r\n nextVaccinationDate = nextVaccinationDate.addDays(\r\n this.state.currentVaccinationType.MaxDay\r\n );\r\n this.setState({\r\n date: date,\r\n nextVaccinationDate: nextVaccinationDate.formatDesh(),\r\n });\r\n };\r\n\r\n onVaccinationTypeChange = (e) => {\r\n let nextVaccinationDate = new Date(\r\n JSON.parse(JSON.stringify(this.state.date))\r\n );\r\n nextVaccinationDate.setMonth(\r\n nextVaccinationDate.getMonth() +\r\n this.state.vaccinationTypes[e.currentTarget.value].MaxMonth\r\n );\r\n nextVaccinationDate = nextVaccinationDate.addDays(\r\n this.state.vaccinationTypes[e.currentTarget.value].MaxDay\r\n );\r\n this.setState({\r\n currentVaccinationType:\r\n this.state.vaccinationTypes[e.currentTarget.value],\r\n nextVaccinationDate: nextVaccinationDate.formatDesh(),\r\n });\r\n };\r\n\r\n onOkClick = (e) => {\r\n window.db.getVeterinarianTrainingTypeByUser(\r\n this.state.currentHorseUserid,\r\n (vTrainingTypes) => {\r\n let completed = 0;\r\n const totalHorses = this.state.currentHorsesIds.length;\r\n\r\n // Process each horse\r\n this.state.currentHorsesIds.forEach((horseId) => {\r\n var Id = this.state.currentVaccinationId\r\n ? this.state.currentVaccinationId\r\n : Math.uuid();\r\n var item = {\r\n Id: Id,\r\n HorseId: horseId,\r\n VType: parseInt(window.$(\"#vacAddTypeReact :selected\").val()) + 1,\r\n VDate: this.state.date.formatDesh(),\r\n U: \"u\",\r\n SyncTime: -1,\r\n };\r\n\r\n // Insert or update vaccination\r\n window.db.insertOrUpdateVaccination(item);\r\n\r\n // Create training record\r\n var tr = {};\r\n tr[\"Id\"] = Id;\r\n tr[\"HorseId\"] = horseId;\r\n tr[\"StartTime\"] = this.state.date.formatDesh();\r\n tr[\"Status\"] = \"\";\r\n tr[\"U\"] = \"U\";\r\n tr[\"Remark\"] = \"\";\r\n tr[\"Color\"] = \"red\";\r\n tr[\"Trainer\"] = window.myid;\r\n tr[\"SyncTime\"] = -1;\r\n tr[\"IsCanCopy\"] = \"0\";\r\n tr[\"Duration\"] = \"1\";\r\n tr[\"Type\"] = vTrainingTypes[0].id;\r\n tr[\"TimeOfDay\"] = \"\";\r\n tr[\"HasMultimedia\"] = 0;\r\n tr[\"Evaluation\"] = 0;\r\n tr[\"ReminderType\"] = 4;\r\n tr[\"FarrierType\"] = undefined;\r\n tr[\"PaddockPeriod\"] = null;\r\n tr[\"VeterinarianType\"] = \"1\";\r\n tr[\"VeterinarianVacType\"] = parseInt(\r\n window.$(\"#vacAddTypeReact :selected\").val()\r\n );\r\n\r\n // Insert or update training\r\n window.DataGate.insertOrUpdateTrainings(tr, (code, data) => {\r\n // Check if operation was successful\r\n if (code == window.DataGate.CODE_OK) {\r\n completed++;\r\n // Refresh training only once\r\n if (completed === totalHorses) {\r\n window.training.refresh({ showSpinner: false });\r\n window.Spinner.hide();\r\n\r\n // Only call the final callback once all operations are done\r\n if (this.props.callback) {\r\n this.props.callback();\r\n }\r\n }\r\n }\r\n });\r\n });\r\n this.hide();\r\n }\r\n );\r\n };\r\n\r\n renderHorseListSingle = (currentElement, index) => {\r\n const { horseArr, currentHorsesIds } = this.state;\r\n const isFirstChild = index === 0;\r\n const isLastChild = index === horseArr.length - 1;\r\n const isSelected = currentHorsesIds.includes(currentElement.id);\r\n const listItemClass = isSelected\r\n ? \"selectedListItem\"\r\n : \"unselectedListItem\";\r\n const childClass = isFirstChild\r\n ? \"ui-first-child\"\r\n : isLastChild\r\n ? \"ui-last-child\"\r\n : \"\";\r\n\r\n return (\r\n \r\n \r\n {currentElement.name}\r\n \r\n \r\n );\r\n };\r\n\r\n renderHorseListMany = (currentElement, index) => {\r\n //currentHorsesIds\r\n };\r\n\r\n render() {\r\n const {\r\n horseArr,\r\n vaccinationTypes,\r\n date,\r\n currentVaccinationType,\r\n nextVaccinationDate,\r\n showHorseList,\r\n } = this.state;\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n {showHorseList ? (\r\n \r\n \r\n \r\n ) : (\r\n <>\r\n )}\r\n \r\n {showHorseList ? (\r\n \r\n ) : (\r\n <>\r\n )}\r\n \r\n \r\n \r\n
{window.lang.horse}
\r\n
\r\n \r\n {horseArr.length\r\n ? horseArr.map((currentElement, index) => {\r\n return this.renderHorseListSingle(\r\n currentElement,\r\n index\r\n );\r\n })\r\n : null}\r\n \r\n
\r\n
\r\n {vaccinationTypes.length ? (\r\n \r\n {vaccinationTypes.map((currentElement, index) => (\r\n \r\n ))}\r\n \r\n ) : (\r\n <>\r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n }\r\n dateFormat=\"yyyy-MM-dd\"\r\n selected={date}\r\n onChange={this.handleChange}\r\n />\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n {window.lang.ok}\r\n \r\n
\r\n
\r\n
\r\n \r\n );\r\n }\r\n}\r\n\r\nconst InputForDesktop = (props) => {\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport default class VaccinationPopup {\r\n showVaccinationPopup(options, item, callback) {\r\n if (options == null) {\r\n options = {};\r\n }\r\n if (options.date == null) {\r\n options.date = new Date();\r\n }\r\n if (options.showHorseList == null) {\r\n options.showHorseList = true;\r\n }\r\n ReactDOM.render(\r\n ,\r\n document.getElementById(\"vaccinationPopupReact\")\r\n );\r\n }\r\n}\r\n","import React, { Component } from \"react\";\r\nimport \"./VaccinationView.css\";\r\nimport VaccinationPopup from \"./VaccinationPopup.js\";\r\nimport XLSX from \"sheetjs-style\";\r\nimport * as FileSaver from \"file-saver\";\r\nimport { Capacitor } from \"@capacitor/core\";\r\nimport { Directory, Filesystem } from \"@capacitor/filesystem\";\r\nimport { FileOpener } from \"@capawesome-team/capacitor-file-opener\";\r\nimport { Share } from \"@capacitor/share\";\r\nimport { Browser } from \"@capacitor/browser\";\r\n\r\nclass VaccinationView extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n vaccinationData: [],\r\n remainingHorses: [],\r\n };\r\n }\r\n\r\n componentDidUpdate = (prevProps) => {\r\n if (this.props != prevProps) {\r\n this.loadData();\r\n }\r\n };\r\n\r\n componentDidMount = () => {\r\n this.loadData();\r\n };\r\n\r\n loadData = () => {\r\n window.db.getVaccinationDataForUser(window.myid, (data) => {\r\n let vaccinationData = [];\r\n if (data.length) {\r\n let vaccination = [];\r\n data.filter((item) => {\r\n let curr = vaccination.find((i) => item.horseid == i.horseid);\r\n\r\n if (!curr) {\r\n vaccination.push(item);\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n });\r\n\r\n for (let i in vaccination) {\r\n let item = vaccination[i];\r\n let type = window.VaccinationPage.types[item[\"vtype\"] - 1];\r\n let minMonths = type.MinMonth;\r\n let maxMonths = type.MaxMonth;\r\n let minDays = type.MinDay;\r\n let maxDays = type.MaxDay;\r\n let lastDate = Date.getNewDate(item[\"vdate\"]);\r\n let minDate = new Date(lastDate);\r\n let maxDate = new Date(lastDate);\r\n\r\n minDate.setMonth(minDate.getMonth() + minMonths);\r\n minDate = minDate.addDays(minDays);\r\n maxDate.setMonth(maxDate.getMonth() + maxMonths);\r\n maxDate = maxDate.addDays(maxDays);\r\n let daysLeft = Date.daysBetween(maxDate, new Date());\r\n vaccinationData.push({\r\n id: vaccination[i].id,\r\n lastVaccination: lastDate.formatDesh(),\r\n nextVaccination: maxDate.formatDesh(),\r\n horse: vaccination[i].HorseName,\r\n daysLeft: daysLeft,\r\n type: type.Name,\r\n remarks: \"\",\r\n horseid: vaccination[i].horseid,\r\n vtype: type,\r\n HorseType: vaccination[i].HorseType,\r\n RFBid: vaccination[i].RFBid,\r\n Chipid: vaccination[i].Chipid,\r\n stable: vaccination[i].StableName ? vaccination[i].StableName : \"\",\r\n });\r\n }\r\n }\r\n let horses = window.DataStorage.getAllHorses();\r\n let remainingHorses = horses.filter(\r\n (e) => vaccinationData.findIndex((i) => e.id == i.horseid) === -1\r\n );\r\n remainingHorses = remainingHorses.sort((t1, t2) => {\r\n if (t1.name.toLowerCase() > t2.name.toLowerCase()) return 1;\r\n if (t1.name.toLowerCase() < t2.name.toLowerCase()) return -1;\r\n return 0;\r\n });\r\n this.setState({\r\n vaccinationData: vaccinationData,\r\n remainingHorses: remainingHorses,\r\n });\r\n });\r\n };\r\n\r\n onNewVaccinationButtonClick = (selectionType) => {\r\n let horseArr = window.DataStorage.getAllHorses();\r\n horseArr = horseArr.sort((h1, h2) => (h1.name > h2.name ? 1 : -1));\r\n window.db.getVaccinationLatest(horseArr[0].id, (rows) => {\r\n let vtype = null;\r\n if (rows.length != 0) {\r\n var lastItem = rows.item(0);\r\n var nextTypeIndex =\r\n window.VaccinationPage.types[lastItem[\"vtype\"] - 1].NextIndex;\r\n vtype = window.VaccinationPage.types[nextTypeIndex];\r\n } else {\r\n vtype = window.VaccinationPage.types[0];\r\n }\r\n let options = {\r\n horseId: horseArr[0].id,\r\n date: new Date(),\r\n vtype: vtype,\r\n selectionType,\r\n };\r\n let vaccinationPopup = new VaccinationPopup();\r\n vaccinationPopup.showVaccinationPopup(options, null, () => {\r\n this.loadData();\r\n });\r\n });\r\n };\r\n\r\n onEditVaccinationButtonClick = (item) => {\r\n let options = {\r\n horseId: item.horseid,\r\n date: new Date(item.lastVaccination),\r\n };\r\n let vaccinationPopup = new VaccinationPopup();\r\n vaccinationPopup.showVaccinationPopup(options, item, () => {\r\n this.loadData();\r\n });\r\n };\r\n\r\n onDeleteButtonClick = (item) => {\r\n window.db.setVaccinationUpdate(item.id, \"d\");\r\n window.DataStorage.deleteTrainingById(item.id);\r\n window.training.refreshLayout();\r\n\r\n window.DataGate.deleteTrainings(\r\n item.id,\r\n \"d\",\r\n item.horseid,\r\n item.lastVaccination,\r\n (code) => {\r\n if (code == window.DataGate.CODE_OK) {\r\n window.training.refresh({ showSpinner: false });\r\n this.loadData();\r\n }\r\n }\r\n );\r\n };\r\n\r\n onNewVaccinationForHorseButtonClick = (horseid) => {\r\n window.db.getVaccinationLatest(horseid, (rows) => {\r\n if (rows.length != 0) {\r\n var lastItem = rows.item(0);\r\n var nextTypeIndex =\r\n window.VaccinationPage.types[lastItem[\"vtype\"] - 1].NextIndex;\r\n } else {\r\n var nextTypeIndex = 0;\r\n }\r\n var type = window.VaccinationPage.types[nextTypeIndex];\r\n let options = {\r\n horseId: horseid,\r\n date: new Date(),\r\n vtype: type,\r\n };\r\n let vaccinationPopup = new VaccinationPopup();\r\n vaccinationPopup.showVaccinationPopup(options, null, () => {\r\n this.loadData();\r\n });\r\n });\r\n };\r\n\r\n onMakePdfClick = () => {\r\n window.Spinner.show();\r\n let reportDataArr = [];\r\n let tasksReportArr = [];\r\n tasksReportArr.push([\r\n window.lang.lastVaccination,\r\n window.lang.nextVaccination,\r\n window.lang.horse,\r\n \"Type\",\r\n \"Reg. nr\",\r\n \"Chipid\",\r\n window.lang.daysLeft,\r\n window.lang.vaccinationType,\r\n window.lang.stable,\r\n ]);\r\n let vaccData = this.state.vaccinationData;\r\n vaccData.map((i) =>\r\n tasksReportArr.push([\r\n i.lastVaccination,\r\n i.nextVaccination,\r\n i.horse,\r\n i.HorseType ? i.HorseType : \"None\",\r\n i.RFBid,\r\n i.Chipid,\r\n i.daysLeft,\r\n i.type,\r\n i.stable,\r\n ])\r\n );\r\n reportDataArr.push({\r\n header: \"\",\r\n data: tasksReportArr,\r\n });\r\n let remainingHorsesReportData = [];\r\n let remainingHorsesArr = [];\r\n remainingHorsesArr.push([window.lang.horse]);\r\n this.state.remainingHorses.map((i) => remainingHorsesArr.push([i.name]));\r\n remainingHorsesReportData.push({\r\n header: \"\",\r\n data: remainingHorsesArr,\r\n });\r\n\r\n window.DataGate.makeVaccinationReportPdf(\r\n reportDataArr,\r\n remainingHorsesReportData,\r\n \"Vaccination report\",\r\n function (data, url) {\r\n if (Capacitor.getPlatform() == \"web\") {\r\n const a = document.createElement(\"a\");\r\n a.style.display = \"none\";\r\n a.href = url;\r\n a.target = \"_blank\";\r\n a.download = \"Report.pdf\";\r\n document.body.appendChild(a);\r\n a.click();\r\n } else {\r\n console.log({ url: url });\r\n Browser.open({ url });\r\n }\r\n window.Spinner.hide();\r\n }\r\n );\r\n };\r\n\r\n getCurrentDate = () => {\r\n const date = new Date();\r\n\r\n let currentDay = String(date.getDate()).padStart(2, \"0\");\r\n\r\n let currentMonth = String(date.getMonth() + 1).padStart(2, \"0\");\r\n\r\n let currentYear = date.getFullYear();\r\n\r\n return `${currentDay}-${currentMonth}-${currentYear}`;\r\n };\r\n\r\n blobToBase64(blob) {\r\n return new Promise((resolve, _) => {\r\n const reader = new FileReader();\r\n reader.onloadend = () => resolve(reader.result);\r\n reader.readAsDataURL(blob);\r\n });\r\n }\r\n\r\n exportToExcell = async (horsesInSystemData, hosesOutSystemData) => {\r\n /* Start from an empty worksheet */\r\n var ws = XLSX.utils.aoa_to_sheet([[]]);\r\n\r\n var ws2 = XLSX.utils.aoa_to_sheet([[]]);\r\n XLSX.utils.sheet_add_aoa(ws, horsesInSystemData);\r\n XLSX.utils.sheet_add_aoa(ws2, hosesOutSystemData);\r\n\r\n /* create workbook and export */\r\n var wb = XLSX.utils.book_new();\r\n XLSX.utils.book_append_sheet(wb, ws, \"Horses in system\");\r\n XLSX.utils.book_append_sheet(wb, ws2, \"Horses not in system\");\r\n\r\n window.Spinner.hide();\r\n if (Capacitor.getPlatform() == \"web\") {\r\n XLSX.writeFile(\r\n wb,\r\n \"Vaccination_report_\" + this.getCurrentDate() + \".xlsx\"\r\n );\r\n return;\r\n }\r\n const excel_buffer = XLSX.write(wb, { bookType: \"xlsx\", type: \"array\" });\r\n\r\n const excel_blob = new Blob([excel_buffer], {\r\n type: \"application/octet-stream\",\r\n });\r\n\r\n const file = await Filesystem.writeFile({\r\n data: await this.blobToBase64(excel_blob),\r\n directory: Directory.Documents,\r\n path: \"Vaccination_report_\" + this.getCurrentDate() + \".xlsx\",\r\n }).catch((error) => console.error(error));\r\n\r\n Share.share({ files: [file.uri] }).catch((error) => console.error(error));\r\n };\r\n\r\n onMakeXlsxClick = () => {\r\n if (window.multimediaMobileHelper.isActive) {\r\n window.multimediaMobileHelper.downloadExcell();\r\n return;\r\n }\r\n\r\n window.Spinner.show();\r\n let tasksReportArr = [];\r\n tasksReportArr.push([\r\n window.lang.lastVaccination,\r\n window.lang.nextVaccination,\r\n window.lang.horse,\r\n \"Type\",\r\n \"Reg. nr\",\r\n \"Chipid\",\r\n window.lang.daysLeft,\r\n window.lang.vaccinationType,\r\n window.lang.stable,\r\n ]);\r\n let vaccData = this.state.vaccinationData;\r\n vaccData.map((i) =>\r\n tasksReportArr.push([\r\n i.lastVaccination,\r\n i.nextVaccination,\r\n i.horse,\r\n i.HorseType ? i.HorseType : \"None\",\r\n i.RFBid,\r\n i.Chipid,\r\n i.daysLeft,\r\n i.type,\r\n i.stable,\r\n ])\r\n );\r\n let remainingHorsesData = [[window.lang.horse]];\r\n for (let horse of this.state.remainingHorses) {\r\n remainingHorsesData.push([horse.name]);\r\n }\r\n console.log(remainingHorsesData);\r\n this.exportToExcell(tasksReportArr, remainingHorsesData);\r\n };\r\n\r\n render() {\r\n const vaccinationData = this.state.vaccinationData.sort(\r\n (a, b) => a.daysLeft - b.daysLeft\r\n );\r\n const { remainingHorses } = this.state;\r\n return (\r\n
\r\n
\r\n this.onNewVaccinationButtonClick(\"single\")}\r\n >\r\n {window.lang.newVaccination}\r\n \r\n this.onNewVaccinationButtonClick(\"many\")}\r\n >\r\n {window.lang.newVaccinationMany}\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {vaccinationData.length ? (\r\n vaccinationData.map((i) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n 0 ? { color: \"black\" } : { color: \"red\" }\r\n }\r\n >\r\n {i.daysLeft}\r\n \r\n \r\n \r\n \r\n \r\n \r\n ))\r\n ) : (\r\n <>\r\n )}\r\n \r\n
{window.lang.lastVaccination}{window.lang.nextVaccination}{window.lang.horse}TypeReg. nrChipid{window.lang.daysLeft}{window.lang.vaccinationType}{window.lang.remark}
{i.lastVaccination}{i.nextVaccination}{i.horse}{i.HorseType ? i.HorseType : \"None\"}{i.RFBid}{i.Chipid}{i.type}{i.remarks}\r\n this.onEditVaccinationButtonClick(i)}\r\n />\r\n this.onDeleteButtonClick(i)}\r\n />\r\n \r\n \r\n this.onNewVaccinationForHorseButtonClick(i.horseid)\r\n }\r\n >\r\n {window.lang.newVaccination}\r\n \r\n
\r\n

\r\n {window.lang.remainingHorsesVacc}\r\n

\r\n \r\n \r\n \r\n {window.lang.horse}\r\n \r\n \r\n {remainingHorses.length ? (\r\n remainingHorses.map((i) => (\r\n \r\n {i.name}\r\n \r\n \r\n this.onNewVaccinationForHorseButtonClick(i.id)\r\n }\r\n >\r\n {window.lang.newVaccination}\r\n \r\n \r\n \r\n ))\r\n ) : (\r\n <>\r\n )}\r\n \r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default VaccinationView;\r\n","import React, { Component } from \"react\";\r\nimport \"./TeethView.css\";\r\nimport ToggleView from \"../../Controls/ToggleView/ToggleView\";\r\nimport TrainingPopup from \"../../TrainingPopup/TrainingPopup\";\r\nimport { capitalize } from \"lodash\";\r\n\r\nexport default class TeethView extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n teethData: [],\r\n };\r\n }\r\n\r\n componentDidUpdate = (prevProps) => {\r\n if (this.props != prevProps) {\r\n this.loadData();\r\n }\r\n };\r\n\r\n componentDidMount = () => {\r\n this.loadData();\r\n };\r\n\r\n loadData = () => {\r\n window.Spinner.show();\r\n window.db.getTeethDataForUser(window.myid, (data) => {\r\n let teethData = [];\r\n if (data.length) {\r\n let teeth = [];\r\n data.filter((item) => {\r\n let curr = teeth.find((i) => item.horseid == i.horseid);\r\n if (!curr) {\r\n teeth.push(item);\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n });\r\n\r\n for (let i = 0; i < teeth.length; i++) {\r\n teethData.push({\r\n id: teeth[i].Id,\r\n horseId: teeth[i].horseid,\r\n horse: teeth[i].Name,\r\n RFBid: teeth[i].RFBid,\r\n bornIn: teeth[i].BirthYear,\r\n remarks: teeth[i].Remark,\r\n starttime: teeth[i].starttime,\r\n isDone: teeth[i].Color == \"green\",\r\n nextTime: teeth[i].NextDewormingPeriod,\r\n });\r\n }\r\n\r\n teethData = teethData.sort(function (h1, h2) {\r\n return h1.horse.toLowerCase() > h2.horse.toLowerCase() ? 1 : -1;\r\n });\r\n\r\n this.setState(\r\n {\r\n teethData: teethData,\r\n },\r\n window.Spinner.hide()\r\n );\r\n } else window.Spinner.hide();\r\n });\r\n };\r\n\r\n onMakePdfClick = () => {\r\n window.Spinner.show();\r\n let reportDataArr = [];\r\n let tasksNotDoneReportArr = [];\r\n tasksNotDoneReportArr.push([\r\n window.lang.horse,\r\n \"Reg. nr\",\r\n window.lang.bornIn,\r\n window.lang.date,\r\n window.lang.nextTeeth,\r\n window.lang.remark,\r\n ]);\r\n let tasksNotDone = this.state.teethData.filter((i) => !i.isDone);\r\n tasksNotDone.map((i) =>\r\n tasksNotDoneReportArr.push([\r\n i.horse,\r\n i.RFBid,\r\n i.bornIn,\r\n i.starttime,\r\n this.periodToNextTeethDate(i.nextTime, i.starttime),\r\n i.remarks,\r\n ])\r\n );\r\n reportDataArr.push({\r\n header: \"Tasks not done\",\r\n data: tasksNotDoneReportArr,\r\n });\r\n\r\n let tasksDoneReportArr = [];\r\n tasksDoneReportArr.push([\r\n window.lang.horse,\r\n \"Reg. nr\",\r\n window.lang.bornIn,\r\n window.lang.date,\r\n window.lang.nextTeeth,\r\n window.lang.remark,\r\n ]);\r\n let tasksDone = this.state.teethData.filter((i) => i.isDone);\r\n tasksDone.map((i) =>\r\n tasksDoneReportArr.push([\r\n i.horse,\r\n i.RFBid,\r\n i.bornIn,\r\n i.starttime,\r\n this.periodToNextTeethDate(i.nextTime, i.starttime),\r\n i.remarks,\r\n ])\r\n );\r\n reportDataArr.push({\r\n header: \"Tasks done\",\r\n data: tasksDoneReportArr,\r\n });\r\n\r\n window.DataGate.makePdf(\r\n reportDataArr,\r\n \"Teeth report\",\r\n function (data, url) {\r\n const a = document.createElement(\"a\");\r\n a.style.display = \"none\";\r\n a.href = url;\r\n a.target = \"_blank\";\r\n a.download = \"Report.pdf\";\r\n document.body.appendChild(a);\r\n a.click();\r\n window.Spinner.hide();\r\n }\r\n );\r\n };\r\n onMakeXlsxClick = () => {\r\n window.Spinner.show();\r\n let reportDataArr = [];\r\n let tasksNotDoneReportArr = [];\r\n tasksNotDoneReportArr.push([\r\n window.lang.horse,\r\n \"Reg. nr\",\r\n window.lang.bornIn,\r\n window.lang.date,\r\n window.lang.nextTeeth,\r\n window.lang.remark,\r\n ]);\r\n let tasksNotDone = this.state.teethData.filter((i) => !i.isDone);\r\n tasksNotDone.map((i) =>\r\n tasksNotDoneReportArr.push([\r\n i.horse,\r\n i.RFBid,\r\n i.bornIn,\r\n i.starttime,\r\n this.periodToNextTeethDate(i.nextTime, i.starttime),\r\n i.remarks,\r\n ])\r\n );\r\n reportDataArr.push({\r\n header: \"Tasks not done\",\r\n data: tasksNotDoneReportArr,\r\n });\r\n\r\n let tasksDoneReportArr = [];\r\n tasksDoneReportArr.push([\r\n window.lang.horse,\r\n \"Reg. nr\",\r\n window.lang.bornIn,\r\n window.lang.date,\r\n window.lang.nextTeeth,\r\n window.lang.remark,\r\n ]);\r\n let tasksDone = this.state.teethData.filter((i) => i.isDone);\r\n tasksDone.map((i) =>\r\n tasksDoneReportArr.push([\r\n i.horse,\r\n i.RFBid,\r\n i.bornIn,\r\n i.starttime,\r\n this.periodToNextTeethDate(i.nextTime, i.starttime),\r\n i.remarks,\r\n ])\r\n );\r\n reportDataArr.push({\r\n header: \"Tasks done\",\r\n data: tasksDoneReportArr,\r\n });\r\n\r\n window.DataGate.makeXlsx(\r\n reportDataArr,\r\n \"Teeth report\",\r\n function (data, url) {\r\n const a = document.createElement(\"a\");\r\n a.style.display = \"none\";\r\n a.href = url;\r\n a.target = \"_blank\";\r\n a.download = \"Report.pdf\";\r\n document.body.appendChild(a);\r\n a.click();\r\n window.Spinner.hide();\r\n }\r\n );\r\n };\r\n\r\n onAddClick = (isDone) => {\r\n let horse = window.DataStorage.getAllHorses()[0];\r\n let trainingTypes = window.DataStorage.trainTypes.filter(\r\n (i) => i.owner == horse.userid\r\n );\r\n console.log(trainingTypes);\r\n let teethTraining = trainingTypes.filter((i) => i.IsVeterinarian);\r\n let date = new Date();\r\n if (!isDone) {\r\n let weeks = window.GlobalData.getItem(\r\n window.GlobalData.SETTINGS_FARRIER_WEEKS\r\n );\r\n if (weeks < 7) {\r\n date.setDate(\r\n date.getDate() + ((parseInt(weeks) + 1 + 7 - date.getDay()) % 7)\r\n );\r\n } else if (weeks > 7) {\r\n date = new Date().addDays(7 * (parseInt(weeks) - 4));\r\n }\r\n }\r\n let currentTrainerId = horse.trainer;\r\n if (!currentTrainerId)\r\n var currentTrainer = window.DataStorage.allUsers.find(\r\n (i) => i.Id == window.myid\r\n );\r\n else\r\n var currentTrainer = window.DataStorage.allUsers.find(\r\n (i) => i.Id == currentTrainerId\r\n );\r\n let options = {\r\n trainingType: teethTraining[0].id,\r\n vetSubType: 3,\r\n date: date,\r\n isDone: isDone,\r\n trainerId: currentTrainer.Id,\r\n trainerName: currentTrainer.Name,\r\n };\r\n let trainingPopup = new TrainingPopup();\r\n trainingPopup.showPopup(options, null, () => {\r\n this.loadData();\r\n // window.HomePage.latestIconClick = \"homeIconTeeth\";\r\n // window.HomePage.prototype.onFarrierMenuClick();\r\n });\r\n };\r\n\r\n onAddForHorseClick = (horseId) => {\r\n let horse = window.DataStorage.getAllHorses().filter(\r\n (i) => i.id == horseId\r\n );\r\n let trainingTypes = window.DataStorage.trainTypes.filter(\r\n (i) => i.owner == horse[0].userid\r\n );\r\n let teethTraining = trainingTypes.filter((i) => i.IsVeterinarian);\r\n let date = new Date();\r\n let farrWeek = window.GlobalData.getItem(\r\n window.GlobalData.SETTINGS_FARRIER_WEEKS + \"&\" + horseId\r\n );\r\n // if (!farrWeek)\r\n // farrWeek = window.GlobalData.getItem(\r\n // window.GlobalData.SETTINGS_FARRIER_WEEKS\r\n // );\r\n // if (farrWeek < 7) {\r\n // date.setDate(\r\n // date.getDate() + ((parseInt(farrWeek) + 1 + 7 - date.getDay()) % 7)\r\n // );\r\n // } else if (farrWeek > 7) {\r\n // date = new Date().addDays(7 * (parseInt(farrWeek) - 4));\r\n // }\r\n let currentTrainerId = horse.trainer;\r\n if (!currentTrainerId)\r\n var currentTrainer = window.DataStorage.allUsers.find(\r\n (i) => i.Id == window.myid\r\n );\r\n else\r\n var currentTrainer = window.DataStorage.allUsers.find(\r\n (i) => i.Id == currentTrainerId\r\n );\r\n let options = {\r\n trainingType: teethTraining[0].id,\r\n date: date,\r\n isDone: false,\r\n vetSubType: 3,\r\n horseId: horse[0].id,\r\n farrWeek: farrWeek,\r\n trainerId: currentTrainer.Id,\r\n trainerName: currentTrainer.Name,\r\n };\r\n let trainingPopup = new TrainingPopup();\r\n trainingPopup.showPopup(options, null, () => {\r\n this.loadData();\r\n // window.HomePage.latestIconClick = \"homeIconFarrier\";\r\n // window.HomePage.prototype.onFarrierMenuClick();\r\n });\r\n };\r\n\r\n onEditClick = (id) => {\r\n window.DataGate.getTraining(id).then((item) => {\r\n window.db.getTrainers(item.HorseId, (data) => {\r\n let horse = window.DataStorage.getAllHorses().find(\r\n (h) => h.id == item.HorseId\r\n );\r\n let trainingTypes = window.DataStorage.trainTypes.filter(\r\n (i) => i.owner == horse.userid\r\n );\r\n let currentTraining = trainingTypes.filter((i) => i.id == item.Type);\r\n let currentTrainer = data.filter((i) => i.id == item.Trainer);\r\n let newItem = {\r\n color: item.Color,\r\n duration: item.Duration,\r\n Evaluation: item.Evaluation,\r\n FarrierType: item.FarrierType,\r\n FarrierTypeName: item.FarrierTypeName,\r\n HasMultimedia: item.HasMultimedia,\r\n HorseId: item.HorseId,\r\n HorseName: item.HorseName,\r\n id: item.Id,\r\n isCanCopy: item.IsCanCopy,\r\n PaddockPeriod: item.PaddockPeriod,\r\n remark: item.Remark,\r\n ReminderType: item.ReminderType,\r\n StartTime: item.StartTime,\r\n status: item.Status,\r\n SyncTime: item.SyncTime,\r\n TimeOfDay: item.TimeOfDay,\r\n trainer: item.Trainer,\r\n Type: item.Type,\r\n U: item.U,\r\n VeterinarianType: item.VeterinarianType,\r\n VeterinarianVacType: item.VeterinarianVacType,\r\n name: currentTraining[0].name,\r\n shortname: currentTraining[0].shortname,\r\n trainername: currentTrainer[0].name,\r\n NextDewormingPeriod: item.NextDewormingPeriod,\r\n };\r\n\r\n let options = {\r\n horseId: item.HorseId,\r\n trainingType: item.Type,\r\n date: Date.getNewDate(item.StartTime),\r\n trainerId: currentTrainer[0].id,\r\n trainerName: currentTrainer[0].name,\r\n };\r\n\r\n let trainingPopup = new TrainingPopup();\r\n trainingPopup.showPopup(options, newItem, () => {\r\n this.loadData();\r\n });\r\n });\r\n });\r\n };\r\n\r\n onDeleteClick = (item) => {\r\n window.Spinner.show();\r\n window.DataGate.deleteTrainings(\r\n item.id,\r\n \"d\",\r\n item.horseId,\r\n item.starttime,\r\n () => {\r\n this.loadData();\r\n }\r\n );\r\n };\r\n renderNotDoneTasks = () => {\r\n const { teethData } = this.state;\r\n if (!teethData) return;\r\n const tasks = teethData\r\n .filter((i) => !i.isDone)\r\n .map((i) => {\r\n i.days = this.calculateDaysSince(i.starttime);\r\n return i;\r\n })\r\n .sort((t1, t2) => t2.days - t1.days);\r\n return (\r\n <>\r\n \r\n {window.lang.trained}\r\n {window.lang.horse}\r\n Reg. nr\r\n {capitalize(window.lang.days)}\r\n\r\n {window.lang.date}\r\n {window.lang.nextTeeth}\r\n {window.lang.remark}\r\n \r\n \r\n {tasks.map((i) => (\r\n \r\n \r\n this.onToggleClick(i.id, i.isDone)}\r\n />\r\n \r\n {i.horse}\r\n {i.RFBid}\r\n {i.days}\r\n\r\n {i.starttime}\r\n {this.periodToNextTeethDate(i.nextTime, i.starttime)}\r\n {i.remarks}\r\n \r\n this.onEditClick(i.id)}\r\n />\r\n this.onDeleteClick(i)}\r\n />\r\n \r\n \r\n ))}\r\n \r\n );\r\n };\r\n\r\n onToggleClick = (training_id, oldColor) => {\r\n // updateTrainingDoneState\r\n const newColor = oldColor ? \"red\" : \"green\";\r\n window.DataGate.updateTrainingDoneState(training_id, newColor, () => {\r\n this.loadData();\r\n });\r\n };\r\n periodToNextTeethDate = (period, starttime) => {\r\n let nextDewormingDate = \"\";\r\n switch (period) {\r\n case \"0\":\r\n var date = new Date(JSON.parse(JSON.stringify(starttime)));\r\n date = new Date(date.setMonth(date.getMonth() + 1));\r\n nextDewormingDate = date.formatDesh();\r\n break;\r\n case \"1\":\r\n var date = new Date(JSON.parse(JSON.stringify(starttime)));\r\n date = new Date(date.setMonth(date.getMonth() + 3));\r\n nextDewormingDate = date.formatDesh();\r\n break;\r\n case \"2\":\r\n var date = new Date(JSON.parse(JSON.stringify(starttime)));\r\n date = new Date(date.setMonth(date.getMonth() + 6));\r\n nextDewormingDate = date.formatDesh();\r\n break;\r\n case \"3\":\r\n var date = new Date(JSON.parse(JSON.stringify(starttime)));\r\n date = new Date(date.setMonth(date.getMonth() + 12));\r\n nextDewormingDate = date.formatDesh();\r\n break;\r\n }\r\n return nextDewormingDate;\r\n };\r\n\r\n calculateDaysSince = (startDateString) => {\r\n const startDate = new Date(startDateString); // Convert the string to a Date object\r\n const currentDate = new Date(); // Get the current date\r\n const timeDifference = currentDate - startDate; // Difference in milliseconds\r\n const daysDifference = Math.floor(timeDifference / (1000 * 60 * 60 * 24)); // Convert to days\r\n return daysDifference;\r\n };\r\n\r\n renderDoneTasks = () => {\r\n const { teethData } = this.state;\r\n if (!teethData) return;\r\n const tasks = teethData\r\n .filter((i) => i.isDone)\r\n .map((i) => {\r\n i.days = this.calculateDaysSince(i.starttime);\r\n return i;\r\n })\r\n .sort((t1, t2) => t2.days - t1.days);\r\n return (\r\n <>\r\n \r\n {window.lang.trained}\r\n {window.lang.horse}\r\n Reg. nr\r\n {capitalize(window.lang.days)}\r\n\r\n {window.lang.date}\r\n {window.lang.nextTeeth}\r\n {window.lang.remark}\r\n \r\n \r\n \r\n {tasks.map((i) => (\r\n \r\n \r\n this.onToggleClick(i.id, i.isDone)}\r\n />\r\n \r\n {i.horse}\r\n {i.RFBid}\r\n {i.days}\r\n\r\n {i.starttime}\r\n {this.periodToNextTeethDate(i.nextTime, i.starttime)}\r\n {i.remarks}\r\n \r\n this.onEditClick(i.id)}\r\n />\r\n this.onDeleteClick(i)}\r\n />\r\n \r\n \r\n this.onAddForHorseClick(i.horseId)}\r\n >\r\n {window.lang.planTeeth}\r\n \r\n \r\n \r\n ))}\r\n \r\n );\r\n };\r\n renderRemainingHorsesTable = () => {\r\n const data = this.state.teethData;\r\n if (!data) return;\r\n let horses = window.DataStorage.getAllHorses();\r\n console.log(data);\r\n let horsesArr = horses.filter(\r\n (e) => data.findIndex((i) => e.id == i.horseId) === -1\r\n );\r\n horsesArr = horsesArr.sort((t1, t2) => {\r\n if (t1.name > t2.name) return 1;\r\n if (t1.name < t2.name) return -1;\r\n return 0;\r\n });\r\n return (\r\n <>\r\n \r\n {window.lang.horse}\r\n \r\n \r\n {horsesArr.length ? (\r\n horsesArr.map((i) => (\r\n \r\n {i.name}\r\n \r\n this.onAddForHorseClick(i.id)}\r\n >\r\n {window.lang.planTeeth}\r\n \r\n \r\n \r\n ))\r\n ) : (\r\n <>\r\n )}\r\n \r\n );\r\n };\r\n\r\n render() {\r\n return (\r\n
\r\n
\r\n this.onAddClick(true)}\r\n >\r\n {window.lang.newTeeth}\r\n \r\n this.onAddClick(false)}\r\n >\r\n {window.lang.planTeeth}\r\n \r\n \r\n \r\n
\r\n \r\n \r\n {this.renderNotDoneTasks()}\r\n {this.renderDoneTasks()}\r\n \r\n
\r\n

\r\n {window.lang.remainingHorsesTeeth}\r\n

\r\n \r\n {this.renderRemainingHorsesTable()}\r\n \r\n
\r\n );\r\n }\r\n}\r\n","import React, { Component } from \"react\";\r\nimport JSZipUtils from \"jszip-utils\";\r\nimport JSZip from \"jszip\";\r\nimport { Document, Page, pdfjs } from \"react-pdf\";\r\nimport SpinnerView from \"../Controls/Spinner/SpinnerView\";\r\nimport \"./ZipViewer.css\";\r\n\r\nclass ZipViewer extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n loading: false,\r\n isError: false,\r\n fileList: [],\r\n fullscreenImage: null,\r\n fullscreenVideo: null,\r\n pdfDocument: null,\r\n currentPdfPage: 1,\r\n pdfNumberOfPages: 1,\r\n };\r\n\r\n pdfjs.GlobalWorkerOptions.workerSrc = `//cdnjs.cloudflare.com/ajax/libs/pdf.js/${pdfjs.version}/pdf.worker.js`;\r\n this.pdfPageWidth = window.isMobileDevice()\r\n ? window.innerWidth - 40\r\n : Math.min(window.innerWidth - 40, 800);\r\n }\r\n\r\n componentDidMount() {\r\n this.loadData();\r\n }\r\n\r\n loadData = () => {\r\n this.setState({\r\n loading: true,\r\n });\r\n\r\n JSZipUtils.getBinaryContent(this.props.fileUrl, (err, data) => {\r\n if (err) {\r\n this.setState({ isError: true });\r\n return;\r\n }\r\n\r\n JSZip.loadAsync(data).then((zip) => {\r\n this.zip = zip;\r\n let fileList = [];\r\n zip.forEach(function (relativePath, file) {\r\n fileList.push(file);\r\n });\r\n this.setState({\r\n loading: false,\r\n fileList: fileList,\r\n });\r\n });\r\n });\r\n };\r\n\r\n onFileSelect = (file) => {\r\n this.zip\r\n .file(file.name)\r\n .async(\"blob\")\r\n .then((res) => {\r\n let url = URL.createObjectURL(res);\r\n let ext = file.name.split(\".\").pop().toLowerCase();\r\n if (\r\n ext == \"png\" ||\r\n ext == \"jpeg\" ||\r\n ext == \"jpg\" ||\r\n ext == \"gif\" ||\r\n ext == \"bmp\"\r\n ) {\r\n this.setState({\r\n fullscreenImage: url,\r\n });\r\n } else if (\r\n ext == \"mp4\" ||\r\n ext == \"mov\" ||\r\n ext == \"wmv\" ||\r\n ext == \"avi\"\r\n ) {\r\n this.setState({\r\n fullscreenVideo: url,\r\n });\r\n } else if (ext == \"pdf\") {\r\n this.setState({\r\n pdfDocument: url,\r\n });\r\n }\r\n });\r\n };\r\n\r\n hideFullscreen = () => {\r\n this.setState({\r\n fullscreenImage: null,\r\n fullscreenVideo: null,\r\n pdfDocument: null,\r\n });\r\n };\r\n\r\n onPdfDocumentLoadSuccess = (args) => {\r\n this.setState({\r\n pdfNumberOfPages: args.numPages,\r\n });\r\n };\r\n\r\n onCurrentPdfPageChange = (offset) => {\r\n const currentPdfPage = this.state.currentPdfPage + offset;\r\n if (currentPdfPage <= 0 || currentPdfPage > this.state.pdfNumberOfPages)\r\n return;\r\n\r\n this.setState({\r\n currentPdfPage: currentPdfPage,\r\n });\r\n };\r\n\r\n render() {\r\n const { fileList } = this.state;\r\n return (\r\n
\r\n {this.state.loading && (\r\n
\r\n \r\n
\r\n )}\r\n {this.state.isError && (\r\n
\r\n Error in loading data. Please try again.\r\n
\r\n )}\r\n {fileList.map((file, fIndex) => (\r\n this.onFileSelect(file)}\r\n >\r\n {file.name}\r\n \r\n
\r\n ))}\r\n {this.state.fullscreenImage && (\r\n
\r\n \r\n ;\r\n \r\n
\r\n )}\r\n {this.state.fullscreenVideo && (\r\n
\r\n \r\n \r\n
\r\n )}\r\n {this.state.pdfDocument && (\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n this.onCurrentPdfPageChange(-1)}\r\n />\r\n
\r\n {this.state.currentPdfPage}/{this.state.pdfNumberOfPages}\r\n
\r\n this.onCurrentPdfPageChange(1)}\r\n />\r\n
\r\n \r\n
\r\n )}\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default ZipViewer;\r\n","import React, { Component } from \"react\";\r\nimport \"./XrayView.css\";\r\nimport MultimediaHelper from \"./../../Multimedia/MultimediaHelper\";\r\nimport { Document, Page, pdfjs } from \"react-pdf\";\r\nimport ZipViewer from \"../../ZipViewer/ZipViewer\";\r\n\r\nexport default class XrayView extends Component {\r\n static DropboxToken =\r\n \"HqmkA9nKm0wAAAAAAADLWpj-stRJN_4JyfLxtRoZD-Rzpjyz9nnuI_CMbkRkOoSk\";\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n multiSelectMode: false,\r\n xrayData: [],\r\n dbxFullScreenItem: null,\r\n showFullScreenView: false,\r\n showFullScreenItemIndex: 0,\r\n showFullScreenLoading: false,\r\n dataIndex: 0,\r\n plusFileIndex: 0,\r\n showPdfDocument: null,\r\n currentPdfPage: 1,\r\n pdfNumberOfPages: 1,\r\n showZipViewer: null,\r\n };\r\n this.dropbox = new window.Dropbox.Dropbox({\r\n accessToken: XrayView.DropboxToken,\r\n });\r\n this.helper = new MultimediaHelper();\r\n }\r\n\r\n componentDidUpdate = (prevProps) => {\r\n if (this.props != prevProps) {\r\n this.loadData();\r\n }\r\n };\r\n\r\n componentDidMount = () => {\r\n this.loadData();\r\n };\r\n\r\n loadData = () => {\r\n window.Spinner.show();\r\n window.db.getXrayDataForUser(window.myid, (data) => {\r\n if (data.length) {\r\n data = data.sort(function (h1, h2) {\r\n return h1.Name.toLowerCase() >= h2.Name.toLowerCase() ? 1 : -1;\r\n });\r\n this.setState(\r\n {\r\n xrayData: data,\r\n },\r\n window.Spinner.hide()\r\n );\r\n for (let i = 0; i < data.length; i++) {\r\n if (data[i].Id != null) {\r\n this.path = `xray-${data[i].Id}`;\r\n // this.helper.handleCreateContainer(this.path).then(() => {\r\n this.helper.listBlobsWithProperties(this.path).then((response) => {\r\n if (response.length) {\r\n data[i].plusFiles = response.map((el) => {\r\n el.path_display = el.name;\r\n el.fullUrl = el.url;\r\n el.thumbUrl = el.url;\r\n el.imageUrl = el.url;\r\n el.type = MultimediaHelper.getTypeItem(el);\r\n return el;\r\n });\r\n }\r\n this.setState({\r\n xrayData: data,\r\n });\r\n });\r\n }\r\n }\r\n } else window.Spinner.hide();\r\n });\r\n };\r\n\r\n toggleExtraButtons = () => {\r\n this.setState({\r\n multiSelectMode: !this.state.multiSelectMode,\r\n });\r\n };\r\n\r\n selectFile = (index, itemIndex) => {\r\n let xrayData = this.state.xrayData;\r\n xrayData[index].plusFiles[itemIndex].isSelected =\r\n !xrayData[index].plusFiles[itemIndex].isSelected;\r\n this.setState({\r\n xrayData: xrayData,\r\n });\r\n };\r\n\r\n onDownloadClick = () => {\r\n let plusFilesItems = JSON.parse(\r\n JSON.stringify(this.state.xrayData.filter((i) => i.plusFiles))\r\n );\r\n let selectedPlusFilesItems = plusFilesItems\r\n .map((j) => j.plusFiles)\r\n .flat()\r\n .filter((i) => i.isSelected);\r\n this.setState({\r\n multiSelectMode: false,\r\n });\r\n\r\n for (let i in selectedPlusFilesItems) {\r\n this.dropbox\r\n .filesDownload({ path: selectedPlusFilesItems[i].path_display })\r\n .then((response) => {\r\n const url = window.URL.createObjectURL(response.fileBlob);\r\n const link = document.createElement(\"a\");\r\n link.href = url;\r\n link.setAttribute(\r\n \"download\",\r\n decodeURI(selectedPlusFilesItems[i].name)\r\n );\r\n document.body.appendChild(link);\r\n link.click();\r\n });\r\n }\r\n };\r\n\r\n showFullscreen = (index, itemIndex) => {\r\n let xrayData = this.state.xrayData;\r\n var item = xrayData[index].plusFiles[itemIndex];\r\n let response = item;\r\n try {\r\n let currentItem = response;\r\n let ext = currentItem.name.split(\".\").pop().toLowerCase();\r\n\r\n if (\r\n ext == \"png\" ||\r\n ext == \"jpeg\" ||\r\n ext == \"jpg\" ||\r\n ext == \"gif\" ||\r\n ext == \"bmp\"\r\n ) {\r\n item.type = 1;\r\n item.fullUrl = response.url;\r\n\r\n this.setState({\r\n showFullScreenView: true,\r\n showFullScreenLoading: false,\r\n vetDataItemIndex: index,\r\n showFullScreenItemIndex: itemIndex,\r\n dbxFullScreenItem: item,\r\n });\r\n } else if (ext == \"mp4\" || ext == \"mov\" || ext == \"wmv\" || ext == \"avi\") {\r\n item.type = 2;\r\n item.fullUrl = response.url;\r\n this.setState({\r\n showFullScreenView: true,\r\n showFullScreenLoading: false,\r\n vetDataItemIndex: index,\r\n showFullScreenItemIndex: itemIndex,\r\n dbxFullScreenItem: item,\r\n });\r\n } else if (ext == \"pdf\") {\r\n this.setState({\r\n showPdfDocument: response.url,\r\n currentPdfPage: 1,\r\n pdfNumberOfPages: 1,\r\n dbxFullScreenItem: item,\r\n });\r\n } else if (ext == \"zip\") {\r\n this.setState({\r\n showZipViewer: response.url,\r\n });\r\n } else {\r\n const a = document.createElement(\"a\");\r\n a.style.display = \"none\";\r\n a.href = response.url;\r\n a.target = \"_blank\";\r\n //a.download = 'Report.pdf';\r\n document.body.appendChild(a);\r\n a.click();\r\n }\r\n } catch (error) {\r\n console.log(error);\r\n }\r\n };\r\n\r\n onPdfDocumentLoadSuccess = (args) => {\r\n this.setState({\r\n pdfNumberOfPages: args.numPages,\r\n });\r\n };\r\n\r\n onCurrentPdfPageChange = (offset) => {\r\n const currentPdfPage = this.state.currentPdfPage + offset;\r\n if (currentPdfPage <= 0 || currentPdfPage > this.state.pdfNumberOfPages)\r\n return;\r\n\r\n this.setState({\r\n currentPdfPage: currentPdfPage,\r\n });\r\n };\r\n\r\n hidePdfDocument = () => {\r\n this.setState({\r\n showPdfDocument: null,\r\n });\r\n };\r\n\r\n hideZipViewer = () => {\r\n this.setState({\r\n showZipViewer: null,\r\n });\r\n };\r\n\r\n renderFullscreenItem = () => {\r\n const item = this.state.dbxFullScreenItem;\r\n switch (item.type) {\r\n case 1:\r\n return (\r\n \r\n );\r\n case 2:\r\n return (\r\n \r\n );\r\n }\r\n return
;\r\n };\r\n\r\n hideFullscreen = () => {\r\n this.setState({\r\n showFullScreenView: false,\r\n });\r\n };\r\n\r\n render() {\r\n const { xrayData } = this.state;\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {!this.state.multiSelectMode ? (\r\n \r\n {window.lang.select}\r\n \r\n ) : (\r\n
\r\n \r\n \r\n {window.lang.cancel2}\r\n
\r\n \r\n )}\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {xrayData.length ? (\r\n xrayData.map((i, index) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ))\r\n ) : (\r\n <>\r\n )}\r\n \r\n
{window.lang.horse}Reg. nr{window.lang.bornIn}{window.lang.date}{window.lang.remark}X-ray
{i.Name}{i.RFBid}{i.BirthYear}{i.starttime}{i.Remark}\r\n
\r\n {i.plusFiles && (\r\n \r\n \r\n {i.plusFiles.map((file, fileIndex) => (\r\n \r\n \r\n \r\n {decodeURI(file.name)}\r\n \r\n this.showFullscreen(index, fileIndex)\r\n }\r\n />\r\n \r\n \r\n ))}\r\n \r\n
\r\n {this.state.multiSelectMode && (\r\n \r\n this.selectFile(index, fileIndex)\r\n }\r\n />\r\n )}\r\n
\r\n )}\r\n
\r\n
\r\n {this.state.showFullScreenView && (\r\n
\r\n {!this.state.showFullScreenLoading && this.renderFullscreenItem()}\r\n {window.multimediaMobileHelper.isActive && (\r\n \r\n )}\r\n \r\n
\r\n )}\r\n {this.state.showPdfDocument && (\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n this.onCurrentPdfPageChange(-1)}\r\n />\r\n
\r\n {this.state.currentPdfPage}/{this.state.pdfNumberOfPages}\r\n
\r\n this.onCurrentPdfPageChange(1)}\r\n />\r\n
\r\n {window.multimediaMobileHelper.isActive && (\r\n \r\n )}\r\n \r\n
\r\n )}\r\n {this.state.showZipViewer && (\r\n
\r\n \r\n \r\n
\r\n )}\r\n
\r\n );\r\n }\r\n}\r\n","import React, { Component, useLayoutEffect } from \"react\";\r\nimport \"./DewormingView.css\";\r\nimport DatePicker from \"react-datepicker\";\r\nimport { useState } from \"react\";\r\nimport { useEffect } from \"react\";\r\nimport ToggleView from \"../../Controls/ToggleView/ToggleView\";\r\n\r\nexport default class DewormingView extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n dewormingData: [],\r\n horsesWithoutDeworming: [],\r\n entryOnEdit: -1,\r\n horseToCreateDewormingFor: null,\r\n };\r\n }\r\n\r\n componentDidUpdate = (prevProps) => {\r\n if (this.props != prevProps) {\r\n this.loadData();\r\n }\r\n };\r\n\r\n componentDidMount = () => {\r\n this.loadData();\r\n };\r\n\r\n loadData = () => {\r\n window.Spinner.show();\r\n window.db.getDewormingDataForUser(window.myid, (data) => {\r\n console.log(data);\r\n let dewormingData = [];\r\n let dewormingDataWithNullNextDeworming = [];\r\n if (data.length) {\r\n let deworming = [];\r\n data.filter((item) => {\r\n let curr = deworming.find((i) => item.horseid == i.horseid);\r\n if (!curr) {\r\n deworming.push(item);\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n });\r\n\r\n for (let i = 0; i < deworming.length; i++) {\r\n let nextDewormingDate = \"\";\r\n\r\n if (deworming[i].NextDewormingPeriod != null) {\r\n switch (deworming[i].NextDewormingPeriod) {\r\n case \"0\":\r\n var date = new Date(\r\n JSON.parse(JSON.stringify(deworming[i].starttime))\r\n );\r\n date = new Date(date.setMonth(date.getMonth() + 1));\r\n nextDewormingDate = date.formatDesh();\r\n break;\r\n case \"1\":\r\n var date = new Date(\r\n JSON.parse(JSON.stringify(deworming[i].starttime))\r\n );\r\n date = new Date(date.setMonth(date.getMonth() + 3));\r\n nextDewormingDate = date.formatDesh();\r\n break;\r\n case \"2\":\r\n var date = new Date(\r\n JSON.parse(JSON.stringify(deworming[i].starttime))\r\n );\r\n date = new Date(date.setMonth(date.getMonth() + 6));\r\n nextDewormingDate = date.formatDesh();\r\n break;\r\n case \"3\":\r\n var date = new Date(\r\n JSON.parse(JSON.stringify(deworming[i].starttime))\r\n );\r\n date = new Date(date.setMonth(date.getMonth() + 12));\r\n nextDewormingDate = date.formatDesh();\r\n break;\r\n }\r\n dewormingData.push({\r\n id: deworming[i].Id,\r\n horseId: deworming[i].horseid,\r\n horse: deworming[i].Name,\r\n RFBid: deworming[i].RFBid,\r\n bornIn: deworming[i].BirthYear,\r\n remarks: deworming[i].Remark,\r\n starttime: deworming[i].starttime,\r\n nextDewormingDate: nextDewormingDate,\r\n dewormingTypeName: deworming[i].DewormingTypeName,\r\n dewormingStage: deworming[i].DewormingStage,\r\n isDone: deworming[i].Color == \"green\",\r\n });\r\n }\r\n }\r\n dewormingData = dewormingData.sort(function (h1, h2) {\r\n return h1.nextDewormingDate < h2.nextDewormingDate ? -1 : 1;\r\n });\r\n\r\n dewormingData.push(...dewormingDataWithNullNextDeworming);\r\n let horseArr = window.DataStorage.getAllHorses();\r\n horseArr = horseArr\r\n .filter(\r\n (horse) =>\r\n !dewormingData.some(\r\n (dewormData) => dewormData.horseId === horse.id\r\n )\r\n )\r\n .sort((h1, h2) =>\r\n h1.name.toLowerCase() > h2.name.toLowerCase() ? 1 : -1\r\n );\r\n this.setState(\r\n {\r\n dewormingData: dewormingData,\r\n horsesWithoutDeworming: horseArr,\r\n },\r\n window.Spinner.hide()\r\n );\r\n } else {\r\n window.Spinner.hide();\r\n }\r\n });\r\n };\r\n\r\n deleteDeworming = (item) => {\r\n window.DataStorage.deleteTrainingById(item.id);\r\n window.training.refreshLayout();\r\n window.Spinner.show();\r\n window.DataGate.deleteTrainings(\r\n item.id,\r\n \"d\",\r\n item.horseId,\r\n item.starttime,\r\n (code) => {\r\n window.Spinner.hide();\r\n if (code == window.DataGate.CODE_OK) {\r\n window.training.refresh({ showSpinner: false });\r\n this.loadData();\r\n }\r\n }\r\n );\r\n };\r\n\r\n onNewDewromingForHorseButtonClick = (horseId) => {\r\n this.setState({ horseToCreateDewormingFor: { horseId: horseId } });\r\n };\r\n\r\n getDewormingStageText = (stage) => {\r\n if (!stage) return window.lang.none;\r\n\r\n return window.lang.dewormingStages[stage - 1];\r\n };\r\n onMakePdfClick = () => {\r\n window.Spinner.show();\r\n let reportDataArr = [];\r\n let reportData = [];\r\n let reportDataFinished = [];\r\n reportData.push([\r\n window.lang.date,\r\n window.lang.nextDeworming,\r\n window.lang.horse,\r\n \"Reg. nr\",\r\n window.lang.bornIn,\r\n \"Deworming type\",\r\n window.lang.remark,\r\n \"Deworming Stage\",\r\n ]);\r\n reportDataFinished.push([\r\n window.lang.date,\r\n window.lang.nextDeworming,\r\n window.lang.horse,\r\n \"Reg. nr\",\r\n window.lang.bornIn,\r\n \"Deworming type\",\r\n window.lang.remark,\r\n \"Deworming Stage\",\r\n ]);\r\n\r\n this.state.dewormingData\r\n .filter((i) => !i.isDone)\r\n .forEach((i) => {\r\n reportData.push([\r\n i.starttime,\r\n i.nextDewormingDate,\r\n i.horse,\r\n i.RFBid,\r\n i.bornIn,\r\n i.dewormingTypeName,\r\n i.remarks,\r\n this.getDewormingStageText(i.dewormingStage),\r\n ]);\r\n });\r\n this.state.dewormingData\r\n .filter((i) => i.isDone)\r\n .forEach((i) => {\r\n reportDataFinished.push([\r\n i.starttime,\r\n i.nextDewormingDate,\r\n i.horse,\r\n i.RFBid,\r\n i.bornIn,\r\n i.dewormingTypeName,\r\n i.remarks,\r\n this.getDewormingStageText(i.dewormingStage),\r\n ]);\r\n });\r\n\r\n reportDataArr.push({\r\n header: \"Tasks done\",\r\n data: reportDataFinished,\r\n });\r\n reportDataArr.push({\r\n header: \"Tasks not done\",\r\n data: reportData,\r\n });\r\n\r\n window.DataGate.makePdf(\r\n reportDataArr,\r\n \"Deworming report\",\r\n function (data, url) {\r\n const a = document.createElement(\"a\");\r\n a.style.display = \"none\";\r\n a.href = url;\r\n a.target = \"_blank\";\r\n a.download = \"Report.pdf\";\r\n document.body.appendChild(a);\r\n a.click();\r\n window.Spinner.hide();\r\n }\r\n );\r\n };\r\n\r\n onMakeXlsxClick = () => {\r\n window.Spinner.show();\r\n let reportDataArr = [];\r\n let reportData = [];\r\n let reportDataFinished = [];\r\n reportData.push([\r\n window.lang.date,\r\n window.lang.nextDeworming,\r\n window.lang.horse,\r\n \"Reg. nr\",\r\n window.lang.bornIn,\r\n \"Deworming type\",\r\n window.lang.remark,\r\n \"Deworming Stage\",\r\n ]);\r\n reportDataFinished.push([\r\n window.lang.date,\r\n window.lang.nextDeworming,\r\n window.lang.horse,\r\n \"Reg. nr\",\r\n window.lang.bornIn,\r\n \"Deworming type\",\r\n window.lang.remark,\r\n \"Deworming Stage\",\r\n ]);\r\n\r\n this.state.dewormingData\r\n .filter((i) => !i.isDone)\r\n .forEach((i) => {\r\n reportData.push([\r\n i.starttime,\r\n i.nextDewormingDate,\r\n i.horse,\r\n i.RFBid,\r\n i.bornIn,\r\n i.dewormingTypeName,\r\n i.remarks,\r\n this.getDewormingStageText(i.dewormingStage),\r\n ]);\r\n });\r\n this.state.dewormingData\r\n .filter((i) => i.isDone)\r\n .forEach((i) => {\r\n reportDataFinished.push([\r\n i.starttime,\r\n i.nextDewormingDate,\r\n i.horse,\r\n i.RFBid,\r\n i.bornIn,\r\n i.dewormingTypeName,\r\n i.remarks,\r\n this.getDewormingStageText(i.dewormingStage),\r\n ]);\r\n });\r\n\r\n reportDataArr.push({\r\n header: \"Tasks not done\",\r\n data: reportData,\r\n });\r\n\r\n reportDataArr.push({\r\n header: \"Tasks done\",\r\n data: reportDataFinished,\r\n });\r\n\r\n window.DataGate.makeXlsx(\r\n reportDataArr,\r\n \"Deworming report\",\r\n function (data, url) {\r\n const a = document.createElement(\"a\");\r\n a.style.display = \"none\";\r\n a.href = url;\r\n a.target = \"_blank\";\r\n a.download = \"Report.pdf\";\r\n document.body.appendChild(a);\r\n a.click();\r\n window.Spinner.hide();\r\n }\r\n );\r\n };\r\n\r\n newDeworming = () => {\r\n this.setState({ horseToCreateDewormingFor: { date: new Date() } });\r\n };\r\n planDeworming = () => {\r\n let date = new Date();\r\n\r\n let weeks = window.GlobalData.getItem(\r\n window.GlobalData.SETTINGS_FARRIER_WEEKS\r\n );\r\n if (weeks < 7) {\r\n date.setDate(\r\n date.getDate() + ((parseInt(weeks) + 1 + 7 - date.getDay()) % 7)\r\n );\r\n } else if (weeks > 7) {\r\n date = new Date().addDays(7 * (parseInt(weeks) - 4));\r\n }\r\n console.log(date.formatDesh());\r\n this.setState({\r\n horseToCreateDewormingFor: { date: date, isDone: true },\r\n });\r\n };\r\n\r\n onToggleClick = (training_id, oldColor) => {\r\n const newColor = oldColor ? \"red\" : \"green\";\r\n\r\n window.DataGate.updateTrainingDoneState(training_id, newColor, () => {\r\n this.loadData();\r\n });\r\n };\r\n\r\n renderTable = (dewormingData) => {\r\n if (!dewormingData || dewormingData.length === 0) return;\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {dewormingData.length ? (\r\n dewormingData.map((i, i_index) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ))\r\n ) : (\r\n <>\r\n )}\r\n \r\n
{window.lang.trained}{window.lang.date}{window.lang.nextDeworming}{window.lang.horse}Reg. nr{window.lang.bornIn}Deworming type{window.lang.remark}Deworming Stage
\r\n this.onToggleClick(i.id, i.isDone)}\r\n />\r\n {i.starttime}{i.nextDewormingDate}{i.horse}{i.RFBid}{i.bornIn}{i.dewormingTypeName}{i.remarks}{this.getDewormingStageText(i.dewormingStage)}\r\n {\r\n if (i.id) this.setState({ entryOnEdit: i_index });\r\n }}\r\n />\r\n this.deleteDeworming(i)}\r\n className=\"actionIcon\"\r\n src=\"img/trashcan.png\"\r\n />\r\n \r\n \r\n this.onNewDewromingForHorseButtonClick(i.horseId)\r\n }\r\n >\r\n {window.lang.newDeworming}\r\n \r\n
\r\n );\r\n };\r\n render() {\r\n const { dewormingData } = this.state;\r\n const doneDewormingData = dewormingData.filter((i) => i.isDone);\r\n const notDoneDewormingData = dewormingData.filter((i) => !i.isDone);\r\n return (\r\n
\r\n
\r\n \r\n {window.lang.newDeworming}\r\n \r\n \r\n {window.lang.planDeworming}\r\n \r\n \r\n \r\n
\r\n {this.renderTable(doneDewormingData)}\r\n {this.renderTable(notDoneDewormingData)}\r\n
\r\n {window.lang.remainingHorsesDeworm}\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n {this.state.horsesWithoutDeworming.map((horse) => (\r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n
{window.lang.horse}
{horse.name}\r\n \r\n this.onNewDewromingForHorseButtonClick(horse.id)\r\n }\r\n >\r\n {window.lang.newDeworming}\r\n \r\n
\r\n {this.state.entryOnEdit >= 0 && (\r\n this.setState({ entryOnEdit: -1 })}\r\n refreshData={this.loadData}\r\n />\r\n )}\r\n {this.state.horseToCreateDewormingFor && (\r\n {\r\n this.setState({ horseToCreateDewormingFor: null });\r\n }}\r\n horseToCreateDewormingFor={this.state.horseToCreateDewormingFor}\r\n refreshData={this.loadData}\r\n />\r\n )}\r\n
\r\n );\r\n }\r\n}\r\n\r\nfunction AddDewormingPopup({ close, refreshData, horseToCreateDewormingFor }) {\r\n const [horseArr, setHorseArr] = useState([]);\r\n const [currentHorsesIds, setCurrentHorsesIds] = useState([\r\n horseToCreateDewormingFor.horseId,\r\n ]);\r\n\r\n const monthsPerPeriod = [1, 3, 6, 12];\r\n const initialNextDate = horseToCreateDewormingFor.date ?? new Date();\r\n\r\n const [date, setDate] = useState(initialNextDate);\r\n const addMonths = (date, months) => {\r\n const result = new Date(date);\r\n result.setMonth(result.getMonth() + months);\r\n return result;\r\n };\r\n\r\n const [nextDewormingDate, setNextDewormingDate] = useState(\r\n addMonths(initialNextDate, 1)\r\n );\r\n\r\n const [nextPeriod, setNextPeriod] = useState(0);\r\n const [dewormingTypes, setDewormingTypes] = useState([]);\r\n const [selectedDewormingType, setSelectedDewormingType] = useState(null);\r\n\r\n const [currentDewormingStage, setCurrentDewormingStage] = useState(0);\r\n\r\n const [isDone, setIsDone] = useState(\r\n horseToCreateDewormingFor.isDone ?? false\r\n );\r\n\r\n const loadData = () => {\r\n let horseArr = window.DataStorage.getAllHorses();\r\n horseArr = horseArr.sort((h1, h2) =>\r\n h1.name.toLowerCase() > h2.name.toLowerCase() ? 1 : -1\r\n );\r\n setHorseArr(horseArr);\r\n };\r\n useEffect(() => {\r\n loadData();\r\n window.db.getUserDewormingType(window.myid, (dewormingTypes) => {\r\n setDewormingTypes(dewormingTypes);\r\n setSelectedDewormingType(dewormingTypes[0].Id);\r\n });\r\n setNextPeriod(getNextPeriodIndex());\r\n }, []);\r\n\r\n useLayoutEffect(() => {\r\n setTimeout(() => {\r\n scrollToSelectedItems();\r\n }, 100);\r\n }, [currentHorsesIds]);\r\n const scrollToSelectedItems = () => {\r\n let selectedCollection = document.getElementsByClassName(\r\n \"ui-btn selectedListItem\"\r\n );\r\n let selectedArr = [].slice.call(selectedCollection);\r\n if (selectedArr.length) selectedArr.map((i) => i.scrollIntoView());\r\n };\r\n\r\n function monthDifference(date1, date2) {\r\n const yearDiff = date2.getFullYear() - date1.getFullYear();\r\n const monthDiff = date2.getMonth() - date1.getMonth();\r\n\r\n return yearDiff * 12 + monthDiff;\r\n }\r\n const getNextPeriodIndex = () => {\r\n let numberOfMonths = monthDifference(date, nextDewormingDate);\r\n\r\n if (numberOfMonths >= 12) {\r\n return 3;\r\n } else if (numberOfMonths >= 6) {\r\n return 2;\r\n } else if (numberOfMonths >= 3) {\r\n return 1;\r\n } else if (numberOfMonths >= 1) {\r\n return 0;\r\n }\r\n\r\n return 0;\r\n };\r\n\r\n const onHorseClick = (horseId) => {\r\n setCurrentHorsesIds([horseId]);\r\n };\r\n const renderHorseListSingle = (currentElement, index) => {\r\n const isFirstChild = index === 0;\r\n const isLastChild = index === horseArr.length - 1;\r\n const isSelected = currentHorsesIds.includes(currentElement.id);\r\n const listItemClass = isSelected\r\n ? \"selectedListItem\"\r\n : \"unselectedListItem\";\r\n const childClass = isFirstChild\r\n ? \"ui-first-child\"\r\n : isLastChild\r\n ? \"ui-last-child\"\r\n : \"\";\r\n\r\n return (\r\n onHorseClick(currentElement.id)}\r\n >\r\n \r\n {currentElement.name}\r\n \r\n \r\n );\r\n };\r\n\r\n const handleChange = (date) => {\r\n let nextDate = new Date(JSON.parse(JSON.stringify(date)));\r\n nextDate = addMonths(nextDate, monthsPerPeriod[nextPeriod]);\r\n setDate(date);\r\n setNextDewormingDate(nextDate);\r\n };\r\n\r\n const dewormingTypesPeriod = [\r\n window.lang.oneMonth,\r\n window.lang.threeMonths,\r\n window.lang.sixMonths,\r\n window.lang.oneYear,\r\n ];\r\n const saveTraining = () => {\r\n // Create training record\r\n\r\n const horseUserId = horseArr.find(\r\n (horse) => horse.id === currentHorsesIds[0]\r\n )?.userid;\r\n window.db.getVeterinarianTrainingTypeByUser(\r\n horseUserId,\r\n (vTrainingTypes) => {\r\n var tr = {};\r\n let Id = Math.uuid();\r\n tr[\"Id\"] = Id;\r\n tr[\"HorseId\"] = currentHorsesIds[0];\r\n tr[\"StartTime\"] = date.formatDesh();\r\n tr[\"Status\"] = \"\";\r\n tr[\"U\"] = \"U\";\r\n tr[\"Remark\"] = \"\";\r\n tr[\"Color\"] = \"red\";\r\n tr[\"Trainer\"] = window.myid;\r\n tr[\"SyncTime\"] = -1;\r\n tr[\"IsCanCopy\"] = \"0\";\r\n tr[\"Duration\"] = \"1\";\r\n tr[\"Type\"] = vTrainingTypes[0].id;\r\n tr[\"TimeOfDay\"] = \"\";\r\n tr[\"HasMultimedia\"] = 0;\r\n tr[\"Evaluation\"] = 0;\r\n tr[\"ReminderType\"] = 4;\r\n tr[\"FarrierType\"] = undefined;\r\n tr[\"PaddockPeriod\"] = null;\r\n tr[\"VeterinarianType\"] = \"4\";\r\n tr[\"DewormingStage\"] = currentDewormingStage;\r\n tr[\"StartTime\"] = date.formatDesh();\r\n tr[\"NextDewormingPeriod\"] = nextPeriod;\r\n tr[\"DewormingType\"] = selectedDewormingType;\r\n tr[\"Color\"] = isDone ? \"green\" : \"red\";\r\n window.DataGate.insertOrUpdateTrainings(tr, (code, data) => {\r\n refreshData();\r\n close();\r\n window.Spinner.hide();\r\n });\r\n }\r\n );\r\n };\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n
{window.lang.horse}
\r\n
\r\n \r\n {horseArr.length\r\n ? horseArr.map((currentElement, index) => {\r\n return renderHorseListSingle(currentElement, index);\r\n })\r\n : null}\r\n \r\n
\r\n
\r\n
\r\n }\r\n dateFormat=\"yyyy-MM-dd\"\r\n selected={date}\r\n onChange={handleChange}\r\n />\r\n
\r\n\r\n {\r\n setCurrentDewormingStage(parseInt(e.target.value));\r\n }}\r\n >\r\n \r\n {window.lang.dewormingStages.map((i, i_index) => (\r\n \r\n ))}\r\n \r\n
\r\n {\r\n setSelectedDewormingType(e.target.value);\r\n }}\r\n >\r\n {dewormingTypes.map((i, i_index) => (\r\n \r\n ))}\r\n \r\n\r\n {\r\n setNextDewormingDate(\r\n addMonths(date, monthsPerPeriod[e.target.value])\r\n );\r\n setNextPeriod(e.target.value);\r\n }}\r\n >\r\n {dewormingTypesPeriod.map((i, i_index) => (\r\n \r\n ))}\r\n \r\n
\r\n

\r\n {window.lang.nextDeworming}: {nextDewormingDate.formatDesh()}\r\n

\r\n
\r\n {\r\n setIsDone(e.target.checked);\r\n }}\r\n />\r\n {window.lang.trained}\r\n
\r\n\r\n \r\n {window.lang.ok}\r\n \r\n
\r\n
\r\n \r\n );\r\n}\r\n\r\nfunction EditDewormingPopup({ close, data, refreshData }) {\r\n const monthsPerPeriod = [1, 3, 6, 12];\r\n const initialNextDate = isNaN(Date.parse(data.nextDewormingDate))\r\n ? new Date() // Use today's date if nextDewormingDate is invalid\r\n : new Date(data.nextDewormingDate);\r\n\r\n const [date, setDate] = useState(new Date(data.starttime));\r\n const [nextDewormingDate, setNextDewormingDate] = useState(initialNextDate);\r\n\r\n const [currentTraining, setCurrentTraining] = useState(null);\r\n\r\n const [nextPeriod, setNextPeriod] = useState(0);\r\n const [dewormingTypes, setDewormingTypes] = useState([]);\r\n const [selectedDewormingType, setSelectedDewormingType] = useState(\r\n data.dewormingTypeId\r\n );\r\n\r\n const [currentDewormingStage, setCurrentDewormingStage] = useState(\r\n data?.dewormingStage\r\n );\r\n\r\n const [isDone, setIsDone] = useState(data.isDone);\r\n\r\n useEffect(() => {\r\n window.db.getUserDewormingType(window.myid, (dewormingTypes) => {\r\n setDewormingTypes(dewormingTypes);\r\n });\r\n //fetch current training by Id\r\n window.DataGate.getTraining(data.id)\r\n .then((training) => {\r\n setCurrentTraining(training);\r\n })\r\n .catch((err) => {});\r\n setNextPeriod(getNextPeriodIndex());\r\n }, []);\r\n function monthDifference(date1, date2) {\r\n const yearDiff = date2.getFullYear() - date1.getFullYear();\r\n const monthDiff = date2.getMonth() - date1.getMonth();\r\n\r\n return yearDiff * 12 + monthDiff;\r\n }\r\n const getNextPeriodIndex = () => {\r\n let numberOfMonths = monthDifference(date, nextDewormingDate);\r\n\r\n if (numberOfMonths >= 12) {\r\n return 3;\r\n } else if (numberOfMonths >= 6) {\r\n return 2;\r\n } else if (numberOfMonths >= 3) {\r\n return 1;\r\n } else if (numberOfMonths >= 1) {\r\n return 0;\r\n }\r\n\r\n return 0;\r\n };\r\n\r\n const handleChange = (date) => {\r\n let nextDate = new Date(JSON.parse(JSON.stringify(date)));\r\n nextDate = addMonths(nextDate, monthsPerPeriod[nextPeriod]);\r\n setDate(date);\r\n setNextDewormingDate(nextDate);\r\n };\r\n const addMonths = (date, months) => {\r\n const result = new Date(date);\r\n result.setMonth(result.getMonth() + months);\r\n return result;\r\n };\r\n\r\n const dewormingTypesPeriod = [\r\n window.lang.oneMonth,\r\n window.lang.threeMonths,\r\n window.lang.sixMonths,\r\n window.lang.oneYear,\r\n ];\r\n\r\n const saveTraining = () => {\r\n let currentTrainingCopy = { ...currentTraining };\r\n currentTrainingCopy.DewormingStage = currentDewormingStage;\r\n currentTrainingCopy.StartTime = date.formatDesh();\r\n currentTrainingCopy.NextDewormingPeriod = nextPeriod;\r\n currentTrainingCopy.DewormingType = selectedDewormingType;\r\n currentTrainingCopy.Color = isDone ? \"green\" : \"red\";\r\n\r\n window.training.trainingRequestStart();\r\n\r\n window.DataGate.insertOrUpdateTrainings(\r\n currentTrainingCopy,\r\n (code, data) => {\r\n if (code == window.DataGate.CODE_OK) {\r\n window.training.trainingRequestEnd();\r\n refreshData();\r\n close();\r\n console.log(\"Training saved\");\r\n } else {\r\n window.showConnectionError();\r\n }\r\n }\r\n );\r\n };\r\n\r\n return (\r\n
\r\n \r\n \r\n
\r\n }\r\n dateFormat=\"yyyy-MM-dd\"\r\n selected={date}\r\n onChange={handleChange}\r\n />\r\n
\r\n {\r\n setCurrentDewormingStage(parseInt(e.target.value));\r\n }}\r\n >\r\n \r\n {window.lang.dewormingStages.map((i, i_index) => (\r\n \r\n ))}\r\n \r\n\r\n
\r\n {\r\n setSelectedDewormingType(e.target.value);\r\n }}\r\n >\r\n {dewormingTypes.map((i, i_index) => (\r\n \r\n ))}\r\n \r\n\r\n {\r\n setNextDewormingDate(\r\n addMonths(date, monthsPerPeriod[e.target.value])\r\n );\r\n setNextPeriod(e.target.value);\r\n }}\r\n >\r\n {dewormingTypesPeriod.map((i, i_index) => (\r\n \r\n ))}\r\n \r\n
\r\n \r\n {window.lang.nextDeworming}: {nextDewormingDate.formatDesh()}\r\n \r\n
\r\n {\r\n setIsDone(e.target.checked);\r\n }}\r\n />\r\n {window.lang.trained}\r\n
\r\n\r\n \r\n {window.lang.ok}\r\n \r\n
\r\n \r\n );\r\n}\r\n\r\nconst InputForDesktop = (props) => {\r\n return (\r\n \r\n );\r\n};\r\n","import React, { Component } from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport DatePicker from \"react-datepicker\";\r\nimport './VaccinationPopup.css';\r\n\r\nclass HerpesVaccinationPopupWindow extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n horseArr: [],\r\n currentHorseId: '',\r\n vaccinationTypes: [],\r\n date: '',\r\n nextVaccinationDate: '',\r\n currentVaccinationType: '',\r\n currentVaccinationId: '',\r\n currentHorseUserid: '',\r\n showHorseList: ''\r\n }\r\n }\r\n\r\n componentDidUpdate = () => {\r\n this.scrollToSelectedItems();\r\n }\r\n\r\n componentDidMount = () => {\r\n this.loadData();\r\n }\r\n\r\n loadData = () => {\r\n let horseArr = window.DataStorage.getAllHorses();\r\n horseArr = horseArr.sort((h1, h2) => (h1.name.toLowerCase() > h2.name.toLowerCase()) ? 1 : -1);\r\n let vaccinationTypes = window.DataStorage.herpesVaccinationTypes;\r\n let currentHorseId = '';\r\n let currentVaccinationType = '';\r\n let currentVaccinationId = '';\r\n\r\n if (!this.props.options.horseId)\r\n currentHorseId = horseArr[0].id;\r\n else\r\n currentHorseId = this.props.options.horseId;\r\n\r\n window.db.getHorse(currentHorseId, (horse) => {\r\n if (this.props.item) {\r\n currentVaccinationType = this.props.item.vtype;\r\n currentVaccinationId = this.props.item.id;\r\n } else {\r\n currentVaccinationType = this.props.options.vtype;\r\n }\r\n\r\n let date = new Date(JSON.parse(JSON.stringify(this.props.options.date)));\r\n let nextVaccinationDate = this.props.options.date;\r\n nextVaccinationDate.setMonth(nextVaccinationDate.getMonth() + currentVaccinationType.MaxMonth);\r\n nextVaccinationDate = nextVaccinationDate.addDays(currentVaccinationType.MaxDay);\r\n let showHorseList = this.props.options.showHorseList;\r\n this.setState({\r\n horseArr: horseArr,\r\n currentHorseId: currentHorseId,\r\n vaccinationTypes: vaccinationTypes,\r\n date: date,\r\n currentVaccinationType: currentVaccinationType,\r\n nextVaccinationDate: nextVaccinationDate.formatDesh(),\r\n currentVaccinationId: currentVaccinationId,\r\n currentHorseUserid: horse.userid,\r\n showHorseList: showHorseList\r\n });\r\n });\r\n }\r\n\r\n scrollToSelectedItems = () => {\r\n let selectedCollection = document.getElementsByClassName(\"ui-btn selectedListItem\");\r\n let selectedArr = [].slice.call(selectedCollection);\r\n if (selectedArr.length)\r\n selectedArr.map(i => i.scrollIntoView());\r\n }\r\n\r\n hide = () => {\r\n ReactDOM.unmountComponentAtNode(document.getElementById('vaccinationPopupReact'));\r\n }\r\n\r\n onCancelClick = () => {\r\n this.hide();\r\n }\r\n\r\n onHorseClick = (e) => {\r\n if (e.currentTarget.dataset.idf) {\r\n var horseid = e.currentTarget.dataset.idf;\r\n window.db.getHerpesVaccinationLatest(horseid, (rows) => {\r\n let nextTypeIndex = 0;\r\n if (rows.length != 0) {\r\n let lastItem = rows.item(0);\r\n nextTypeIndex = window.DataStorage.herpesVaccinationTypes[lastItem[\"vtype\"] - 1].NextIndex;\r\n }\r\n this.setState({\r\n currentHorseId: horseid,\r\n currentVaccinationType: window.DataStorage.herpesVaccinationTypes[nextTypeIndex]\r\n });\r\n });\r\n }\r\n }\r\n\r\n handleChange = (date) => {\r\n let nextVaccinationDate = new Date(JSON.parse(JSON.stringify(date)));\r\n nextVaccinationDate.setMonth(nextVaccinationDate.getMonth() + this.state.currentVaccinationType.MaxMonth);\r\n nextVaccinationDate = nextVaccinationDate.addDays(this.state.currentVaccinationType.MaxDay);\r\n this.setState({\r\n date: date,\r\n nextVaccinationDate: nextVaccinationDate.formatDesh()\r\n });\r\n };\r\n\r\n onVaccinationTypeChange = (e) => {\r\n let nextVaccinationDate = new Date(JSON.parse(JSON.stringify(this.state.date)));\r\n nextVaccinationDate.setMonth(nextVaccinationDate.getMonth() + this.state.vaccinationTypes[e.currentTarget.value].MaxMonth);\r\n nextVaccinationDate = nextVaccinationDate.addDays(this.state.vaccinationTypes[e.currentTarget.value].MaxDay);\r\n this.setState({\r\n currentVaccinationType: this.state.vaccinationTypes[e.currentTarget.value],\r\n nextVaccinationDate: nextVaccinationDate.formatDesh()\r\n });\r\n }\r\n\r\n onOkClick = (e) => {\r\n var Id = this.state.currentVaccinationId ? this.state.currentVaccinationId : Math.uuid();\r\n var item = {\r\n Id: Id,\r\n HorseId: this.state.currentHorseId,\r\n VType: parseInt(window.$(\"#vacAddTypeReact :selected\").val()) + 1,\r\n VDate: this.state.date.formatDesh(),\r\n U: 'u',\r\n SyncTime: -1\r\n };\r\n window.Spinner.show();\r\n window.db.insertOrUpdateHerpesVaccination(item, () => {\r\n this.hide();\r\n window.Spinner.hide();\r\n if (this.props.callback)\r\n this.props.callback();\r\n });\r\n }\r\n\r\n render() {\r\n const { horseArr, currentHorseId, vaccinationTypes, date, currentVaccinationType, nextVaccinationDate, showHorseList } = this.state;\r\n return (\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n {showHorseList ?\r\n \r\n \r\n \r\n : <>\r\n }\r\n \r\n {showHorseList ?\r\n \r\n : <>\r\n }\r\n \r\n \r\n \r\n
{window.lang.horse}
\r\n
\r\n \r\n
\r\n
\r\n {vaccinationTypes.length ?\r\n \r\n :\r\n <>\r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n }\r\n dateFormat=\"yyyy-MM-dd\"\r\n selected={date}\r\n onChange={this.handleChange}\r\n />\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n )\r\n }\r\n}\r\n\r\nconst InputForDesktop = (props) => {\r\n return (\r\n \r\n )\r\n}\r\n\r\nexport default class HerpesVaccinationPopup {\r\n showVaccinationPopup(options, item, callback) {\r\n if (options == null) {\r\n options = {};\r\n }\r\n if (options.date == null) {\r\n options.date = new Date();\r\n }\r\n if (options.showHorseList == null) {\r\n options.showHorseList = true;\r\n }\r\n ReactDOM.render(\r\n ,\r\n document.getElementById('vaccinationPopupReact')\r\n )\r\n }\r\n}","import React, { Component } from \"react\";\r\nimport \"./VaccinationView.css\";\r\nimport HerpesVaccinationPopup from \"./HerpesVaccinationPopup\";\r\n\r\nclass HerpesVaccinationView extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n vaccinationData: [],\r\n remainingHorses: [],\r\n };\r\n }\r\n\r\n componentDidUpdate = (prevProps) => {\r\n if (this.props != prevProps) {\r\n this.loadData();\r\n }\r\n };\r\n\r\n componentDidMount = () => {\r\n this.loadData();\r\n };\r\n\r\n loadData = () => {\r\n window.db.getHerpesVaccinationDataForUser(window.myid, (data) => {\r\n let vaccinationData = [];\r\n if (data.length) {\r\n let vaccination = [];\r\n data.filter((item) => {\r\n let curr = vaccination.find((i) => item.horseid == i.horseid);\r\n\r\n if (!curr) {\r\n vaccination.push(item);\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n });\r\n\r\n for (let i in vaccination) {\r\n let item = vaccination[i];\r\n let type =\r\n window.DataStorage.herpesVaccinationTypes[item[\"vtype\"] - 1];\r\n let nextType =\r\n window.DataStorage.herpesVaccinationTypes[type.NextIndex];\r\n let minMonths = nextType.MinMonth;\r\n let maxMonths = nextType.MaxMonth;\r\n let minDays = nextType.MinDay;\r\n let maxDays = nextType.MaxDay;\r\n let lastDate = Date.getNewDate(item[\"vdate\"]);\r\n let minDate = new Date(lastDate);\r\n let maxDate = new Date(lastDate);\r\n\r\n minDate.setMonth(minDate.getMonth() + minMonths);\r\n minDate = minDate.addDays(minDays);\r\n maxDate.setMonth(maxDate.getMonth() + maxMonths);\r\n maxDate = maxDate.addDays(maxDays);\r\n let daysLeft = Date.daysBetween(maxDate, new Date());\r\n vaccinationData.push({\r\n id: vaccination[i].id,\r\n lastVaccination: lastDate.formatDesh(),\r\n nextVaccination: maxDate.formatDesh(),\r\n horse: vaccination[i].HorseName,\r\n daysLeft: daysLeft,\r\n type: type.Name,\r\n remarks: \"\",\r\n horseid: vaccination[i].horseid,\r\n vtype: type,\r\n HorseType: vaccination[i].HorseType,\r\n RFBid: vaccination[i].RFBid,\r\n Chipid: vaccination[i].Chipid,\r\n stable: vaccination[i].StableName ? vaccination[i].StableName : \"\",\r\n });\r\n }\r\n }\r\n let horses = window.DataStorage.getAllHorses();\r\n let remainingHorses = horses.filter(\r\n (e) => vaccinationData.findIndex((i) => e.id == i.horseid) === -1\r\n );\r\n remainingHorses = remainingHorses.sort((t1, t2) => {\r\n if (t1.name.toLowerCase() > t2.name.toLowerCase()) return 1;\r\n if (t1.name.toLowerCase() < t2.name.toLowerCase()) return -1;\r\n return 0;\r\n });\r\n this.setState({\r\n vaccinationData: vaccinationData,\r\n remainingHorses: remainingHorses,\r\n });\r\n });\r\n };\r\n\r\n onNewVaccinationButtonClick = () => {\r\n let horseArr = window.DataStorage.getAllHorses();\r\n horseArr = horseArr.sort((h1, h2) => (h1.name > h2.name ? 1 : -1));\r\n window.db.getHerpesVaccinationLatest(horseArr[0].id, (rows) => {\r\n let vtype = null;\r\n if (rows.length != 0) {\r\n var lastItem = rows.item(0);\r\n var nextTypeIndex =\r\n window.DataStorage.herpesVaccinationTypes[lastItem[\"vtype\"] - 1]\r\n .NextIndex;\r\n vtype = window.DataStorage.herpesVaccinationTypes[nextTypeIndex];\r\n } else {\r\n vtype = window.DataStorage.herpesVaccinationTypes[0];\r\n }\r\n let options = {\r\n horseId: horseArr[0].id,\r\n date: new Date(),\r\n vtype: vtype,\r\n };\r\n let vaccinationPopup = new HerpesVaccinationPopup();\r\n vaccinationPopup.showVaccinationPopup(options, null, () => {\r\n this.loadData();\r\n });\r\n });\r\n };\r\n\r\n onEditVaccinationButtonClick = (item) => {\r\n let options = {\r\n horseId: item.horseid,\r\n date: new Date(item.lastVaccination),\r\n };\r\n let vaccinationPopup = new HerpesVaccinationPopup();\r\n vaccinationPopup.showVaccinationPopup(options, item, () => {\r\n this.loadData();\r\n });\r\n };\r\n\r\n onDeleteButtonClick = (item) => {\r\n window.db.setHerpesVaccinationUpdate(item.id, \"d\", () => {\r\n this.loadData();\r\n });\r\n };\r\n\r\n onNewVaccinationForHorseButtonClick = (horseid) => {\r\n window.db.getHerpesVaccinationLatest(horseid, (rows) => {\r\n let vtype = null;\r\n if (rows.length != 0) {\r\n var lastItem = rows.item(0);\r\n var nextTypeIndex =\r\n window.DataStorage.herpesVaccinationTypes[lastItem[\"vtype\"] - 1]\r\n .NextIndex;\r\n vtype = window.DataStorage.herpesVaccinationTypes[nextTypeIndex];\r\n } else {\r\n vtype = window.DataStorage.herpesVaccinationTypes[0];\r\n }\r\n let options = {\r\n horseId: horseid,\r\n date: new Date(),\r\n vtype: vtype,\r\n };\r\n let vaccinationPopup = new HerpesVaccinationPopup();\r\n vaccinationPopup.showVaccinationPopup(options, null, () => {\r\n this.loadData();\r\n });\r\n });\r\n };\r\n\r\n onMakePdfClick = () => {\r\n window.Spinner.show();\r\n let reportDataArr = [];\r\n let tasksReportArr = [];\r\n tasksReportArr.push([\r\n \"Last Vaccination Date\",\r\n \"Next Vaccination Date\",\r\n window.lang.horse,\r\n \"Type\",\r\n \"Reg. nr\",\r\n \"Chipid\",\r\n window.lang.daysLeft,\r\n window.lang.vaccinationType,\r\n window.lang.stable,\r\n ]);\r\n let vaccData = this.state.vaccinationData;\r\n vaccData.map((i) =>\r\n tasksReportArr.push([\r\n i.lastVaccination,\r\n i.nextVaccination,\r\n i.horse,\r\n i.HorseType ? i.HorseType : \"None\",\r\n i.RFBid,\r\n i.Chipid,\r\n i.daysLeft,\r\n i.type,\r\n i.stable,\r\n ])\r\n );\r\n reportDataArr.push({\r\n header: \"\",\r\n data: tasksReportArr,\r\n });\r\n let remainingHorsesReportData = [];\r\n let remainingHorsesArr = [];\r\n remainingHorsesArr.push([window.lang.horse]);\r\n this.state.remainingHorses.map((i) => remainingHorsesArr.push([i.name]));\r\n remainingHorsesReportData.push({\r\n header: \"\",\r\n data: remainingHorsesArr,\r\n });\r\n\r\n window.DataGate.makeVaccinationReportPdf(\r\n reportDataArr,\r\n remainingHorsesReportData,\r\n \"Herpes Vaccination report\",\r\n function (data, url) {\r\n const a = document.createElement(\"a\");\r\n a.style.display = \"none\";\r\n a.href = url;\r\n a.target = \"_blank\";\r\n a.download = \"Report.pdf\";\r\n document.body.appendChild(a);\r\n a.click();\r\n window.Spinner.hide();\r\n }\r\n );\r\n };\r\n\r\n onMakeXlsxClick = () => {\r\n window.Spinner.show();\r\n let reportDataArr = [];\r\n let tasksReportArr = [];\r\n tasksReportArr.push([\r\n \"Last Vaccination Date\",\r\n \"Next Vaccination Date\",\r\n window.lang.horse,\r\n \"Type\",\r\n \"Reg. nr\",\r\n \"Chipid\",\r\n window.lang.daysLeft,\r\n window.lang.vaccinationType,\r\n window.lang.stable,\r\n ]);\r\n let vaccData = this.state.vaccinationData;\r\n vaccData.map((i) =>\r\n tasksReportArr.push([\r\n i.lastVaccination,\r\n i.nextVaccination,\r\n i.horse,\r\n i.HorseType ? i.HorseType : \"None\",\r\n i.RFBid,\r\n i.Chipid,\r\n i.daysLeft,\r\n i.type,\r\n i.stable,\r\n ])\r\n );\r\n reportDataArr.push({\r\n header: \"\",\r\n data: tasksReportArr,\r\n });\r\n\r\n window.DataGate.makeXlsx(\r\n reportDataArr,\r\n \"Herpes Vaccination report\",\r\n function (data, url) {\r\n const a = document.createElement(\"a\");\r\n a.style.display = \"none\";\r\n a.href = url;\r\n a.download = \"Report.xlsx\";\r\n document.body.appendChild(a);\r\n a.click();\r\n window.Spinner.hide();\r\n }\r\n );\r\n };\r\n\r\n render() {\r\n const vaccinationData = this.state.vaccinationData.sort(\r\n (a, b) => a.daysLeft - b.daysLeft\r\n );\r\n const { remainingHorses } = this.state;\r\n return (\r\n
\r\n
\r\n \r\n {window.lang.newVaccination}\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {vaccinationData.length ? (\r\n vaccinationData.map((i) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n 0 ? { color: \"black\" } : { color: \"red\" }\r\n }\r\n >\r\n {i.daysLeft}\r\n \r\n \r\n \r\n \r\n \r\n \r\n ))\r\n ) : (\r\n <>\r\n )}\r\n \r\n
Last Vaccination DateNext Vaccination Date{window.lang.horse}TypeReg. nrChipid{window.lang.daysLeft}{window.lang.vaccinationType}{window.lang.remark}
{i.lastVaccination}{i.nextVaccination}{i.horse}{i.HorseType ? i.HorseType : \"None\"}{i.RFBid}{i.Chipid}{i.type}{i.remarks}\r\n this.onEditVaccinationButtonClick(i)}\r\n />\r\n this.onDeleteButtonClick(i)}\r\n />\r\n \r\n \r\n this.onNewVaccinationForHorseButtonClick(i.horseid)\r\n }\r\n >\r\n {window.lang.newVaccination}\r\n \r\n
\r\n

\r\n {window.lang.remainingHorsesVacc}\r\n

\r\n \r\n \r\n \r\n {window.lang.horse}\r\n \r\n \r\n {remainingHorses.length ? (\r\n remainingHorses.map((i) => (\r\n \r\n {i.name}\r\n \r\n \r\n this.onNewVaccinationForHorseButtonClick(i.id)\r\n }\r\n >\r\n {window.lang.newVaccination}\r\n \r\n \r\n \r\n ))\r\n ) : (\r\n <>\r\n )}\r\n \r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default HerpesVaccinationView;\r\n","import React, { Component } from \"react\";\r\nimport ToggleView from \"../Controls/ToggleView/ToggleView\";\r\nimport DataGateActions from \"../DataGateActions\";\r\nimport CreatableSelect from \"react-select/creatable\";\r\nimport \"./HorseViewPage.css\";\r\n\r\nclass HorseEditPage extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.userOwnerId = props.userOwnerId ? props.userOwnerId : window.myid;\r\n\r\n if (props.horseId != -1) {\r\n this.horse = window.DataStorage.getAllHorses().find(\r\n (h) => h.id == props.horseId\r\n );\r\n this.userOwnerId = this.horse.userid;\r\n this.state = {\r\n hasChanges: false,\r\n name: this.horse.name,\r\n imageUrl:\r\n this.horse.LogoFile != null\r\n ? window.DataGate.baseurl + this.horse.LogoFile\r\n : \"img/horselogo.png\",\r\n bornIn: this.horse.BirthYear,\r\n regNr: this.horse.rfbid,\r\n arriveDate: this.parseDateStartDay(this.horse.CreateDate).formatDesh(),\r\n departureDate: this.parseDateStartDay(\r\n this.horse.DepartureDate\r\n ).formatDesh(),\r\n height: this.horse.Height,\r\n stableBoxId:\r\n window.inUseStables == \"Y\" ? this.horse.BoxName : this.horse.StableId,\r\n gender: this.horse.Gender,\r\n horseType: this.horse.HorseType != null ? this.horse.HorseType : \"\",\r\n colorId: this.horse.ColorId,\r\n trainer: this.horse.trainer != null ? this.horse.trainer : \"\",\r\n istraining: this.horse.istraining,\r\n isvisible:\r\n window.Training.hiddenHorses.indexOf(props.horseId) == -1 ? \"1\" : \"0\",\r\n chipid: this.horse.Chipid != null ? this.horse.Chipid : \"\",\r\n trainersArr: [],\r\n labels: [],\r\n selectedLabels: [],\r\n };\r\n } else {\r\n this.state = {\r\n hasChanges: false,\r\n name: \"\",\r\n imageUrl: \"img/horselogo.png\",\r\n bornIn: \"\",\r\n regNr: \"\",\r\n arriveDate: new Date().formatDesh(),\r\n departureDate: \"\", // new Date().formatDesh(),\r\n height: \"\",\r\n stableBoxId: \"\",\r\n gender: \"0\",\r\n horseType: \"\",\r\n colorId: \"020b69ff-6210-41a9-82b0-122091bf88a0\",\r\n trainer: \"\",\r\n istraining: \"1\",\r\n isvisible: \"1\",\r\n chipid: \"\",\r\n trainersArr: [\r\n { key: \"\", value: window.lang.none },\r\n { key: window.myid, value: window.lang.me },\r\n ],\r\n labels: [],\r\n selectedLabels: [],\r\n };\r\n }\r\n\r\n this.isMobile = window.isMobileDevice();\r\n }\r\n\r\n parseDateStartDay(dateStr) {\r\n if (dateStr == null || dateStr == \"\") return new Date(\"1900-01-01\");\r\n\r\n let arr = dateStr.split(\"-\");\r\n return new Date(`${arr[2]}-${arr[1]}-${arr[0]}`);\r\n }\r\n\r\n componentWillMount() {\r\n const GlobalData = window.GlobalData;\r\n this.isShowBornIn = GlobalData.getItem(GlobalData.SHOW_BORNIN) == 1;\r\n this.isShowRegNr = GlobalData.getItem(GlobalData.SHOW_REGNR) == 1;\r\n this.isShowChipid = GlobalData.getItem(GlobalData.SHOW_CHIPID) == 1;\r\n this.isShowArriveDate = GlobalData.getItem(GlobalData.SHOW_ARRIVEDATE) == 1;\r\n this.isShowSendSalesData =\r\n GlobalData.getItem(GlobalData.SHOW_SEND_SALES_DATA) == 1;\r\n this.isShowStable = GlobalData.getItem(GlobalData.SHOW_STABLE) == 1;\r\n this.isShowGender = GlobalData.getItem(GlobalData.SHOW_GENDER) == 1;\r\n this.isShowType = GlobalData.getItem(GlobalData.SHOW_TYPE) == 1;\r\n this.isShowHeight = GlobalData.getItem(GlobalData.SHOW_HEIGHT) == 1;\r\n this.isShowColor = GlobalData.getItem(GlobalData.SHOW_COLOR) == 1;\r\n this.isShowHorseFollowsRider =\r\n GlobalData.getItem(GlobalData.SHOW_HORSE_FOLLOWS_RIDER) == 1;\r\n }\r\n\r\n componentDidMount() {\r\n window.$(\"#addHorsePageContent\").trigger(\"create\");\r\n if (\r\n window.DataStorage.boxesAndStables == null ||\r\n window.DataStorage.boxesAndStables.length == 0\r\n ) {\r\n window.Spinner.show();\r\n window.DataStorage.fetchHorsesData(() => {\r\n window.Spinner.hide();\r\n this.setState({});\r\n });\r\n }\r\n if (this.props.horseId != -1) {\r\n this.loadTrainers();\r\n this.loadLabels();\r\n }\r\n }\r\n\r\n loadTrainers = () => {\r\n window.db.getShareWithHorseTrainers(this.props.horseId, (trainers) => {\r\n let trainerArr = [\r\n { key: \"\", value: window.lang.none },\r\n { key: window.myid, value: window.lang.me },\r\n ];\r\n trainers.filter((item) => {\r\n let curr = trainerArr.find((i) => item.sharewithid == i.key);\r\n if (!curr) {\r\n trainerArr.push({ key: item.sharewithid, value: item.uname });\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n });\r\n let horse = window.DataStorage.getAllHorses().find(\r\n (h) => h.id == this.props.horseId\r\n );\r\n if (horse && horse.userid != window.myid) {\r\n let horseOwner = window.DataStorage.allUsers.find(\r\n (i) => i.Id == horse.userid\r\n );\r\n if (horseOwner)\r\n trainerArr.push({ key: horseOwner.Id, value: horseOwner.Name });\r\n }\r\n this.setState({\r\n trainersArr: trainerArr,\r\n });\r\n });\r\n };\r\n\r\n loadLabels = () => {\r\n if (this.horse.userid == window.myid) {\r\n let horseLabelsArr = [];\r\n let labelsArr = [];\r\n if (this.horse.LabelIds) {\r\n let horseLabelIdArr = JSON.parse(this.horse.LabelIds);\r\n for (let i in horseLabelIdArr) {\r\n if (window.DataStorage.horseLabels.length) {\r\n let element = window.DataStorage.horseLabels.find(\r\n (j) => j.Id == horseLabelIdArr[i]\r\n );\r\n horseLabelsArr.push({ value: element.Id, label: element.Label });\r\n }\r\n }\r\n }\r\n if (window.DataStorage.horseLabels)\r\n labelsArr = [\r\n ...window.DataStorage.horseLabels.map((t) => ({\r\n value: t.Id,\r\n label: t.Label,\r\n })),\r\n ];\r\n\r\n this.setState({\r\n labels: labelsArr,\r\n selectedLabels: horseLabelsArr,\r\n });\r\n } else {\r\n window.DataGate.fetchHorseLabels(this.horse.userid, (code, result) => {\r\n const userLabels = JSON.parse(result);\r\n let horseLabelsArr = [];\r\n let labelsArr = [];\r\n if (userLabels.length) {\r\n if (this.horse.LabelIds) {\r\n let horseLabelIdArr = JSON.parse(this.horse.LabelIds);\r\n for (let i in horseLabelIdArr) {\r\n let element = userLabels.find((j) => j.Id == horseLabelIdArr[i]);\r\n horseLabelsArr.push({ value: element.Id, label: element.Label });\r\n }\r\n }\r\n labelsArr = [\r\n ...userLabels.map((t) => ({ value: t.Id, label: t.Label })),\r\n ];\r\n }\r\n\r\n this.setState({\r\n labels: labelsArr,\r\n selectedLabels: horseLabelsArr,\r\n });\r\n });\r\n }\r\n };\r\n\r\n onTextChange = (e) => {\r\n this.setState({\r\n hasChanges: true,\r\n [e.target.name]: e.target.value,\r\n });\r\n };\r\n\r\n onToggleClick = (name) => {\r\n this.setState({\r\n hasChanges: true,\r\n [name]: this.state[name] == \"1\" ? \"0\" : \"1\",\r\n });\r\n };\r\n\r\n onHorseImageSelect = (e) => {\r\n let reader = new FileReader();\r\n reader.readAsDataURL(e.target.files[0]);\r\n reader.onload = () => {\r\n this.setState({\r\n hasChanges: true,\r\n imageUrl: reader.result,\r\n });\r\n };\r\n };\r\n\r\n doSave = (callback) => {\r\n if (this.state.hasChanges) {\r\n if (this.state.name.length == 0) {\r\n navigator.notification.alert(\r\n window.lang.enterDataAndPushPutton,\r\n null,\r\n \"Equestrians App\"\r\n );\r\n return;\r\n }\r\n\r\n let horseId = this.props.horseId != -1 ? this.props.horseId : Math.uuid();\r\n let notes = this.props.horseId != -1 ? this.horse.notes : \"\";\r\n let userId =\r\n this.props.horseId != -1 ? this.horse.userid : this.userOwnerId;\r\n let defaultUserTypes =\r\n this.props.horseId != -1\r\n ? this.horse.defaultusertypes\r\n : this.userOwnerId;\r\n let vacprogramm = this.props.horseId != -1 ? this.horse.vacprogramm : 1;\r\n let selectedLabels = JSON.stringify(\r\n this.state.selectedLabels.map((i) => i.value)\r\n );\r\n let horseObj = {\r\n BirthYear: this.state.bornIn,\r\n BoxName: window.inUseStables == \"Y\" ? this.state.stableBoxId : \"\",\r\n StableId: window.inUseStables != \"Y\" ? this.state.stableBoxId : \"\",\r\n ColorId: this.state.colorId != \"\" ? this.state.colorId : null,\r\n CreateDate: new Date(this.state.arriveDate).formatDeshStartDay(),\r\n DefaultUserTypes: defaultUserTypes,\r\n DepartureDate: new Date(this.state.departureDate).formatDeshStartDay(),\r\n Gender: this.state.gender,\r\n Height: this.state.height,\r\n HorseType: this.state.horseType != \"\" ? this.state.horseType : \"\",\r\n Id: horseId,\r\n IsTraining: this.state.istraining,\r\n Name: this.state.name,\r\n Notes: notes,\r\n RFBid: this.state.regNr,\r\n SyncTime: -1,\r\n Trainer: this.state.trainer,\r\n U: \"u\",\r\n UserId: userId,\r\n VaccinationProgramm: vacprogramm,\r\n Chipid: this.state.chipid,\r\n LabelIds: selectedLabels,\r\n };\r\n\r\n let logo = null;\r\n if (this.state.imageUrl.indexOf(\"data:image\") != -1) {\r\n logo = this.state.imageUrl.substring(\r\n this.state.imageUrl.indexOf(\"base64,\") + 7\r\n );\r\n }\r\n\r\n DataGateActions.insertOrUpdateHorse(\r\n horseObj,\r\n logo,\r\n this.props.horseId == -1,\r\n () => {\r\n if (window.inUseStables == \"Y\") {\r\n let boxIdNew = this.state.stableBoxId;\r\n let boxIdOld = this.props.horseId == -1 ? null : this.horse.BoxName;\r\n if (boxIdNew != boxIdOld) {\r\n console.log(boxIdNew + \" => \" + boxIdOld);\r\n if (boxIdOld != null && boxIdOld != \"\") {\r\n window.db.updateBoxInUseById(boxIdOld, \"N\");\r\n window.DataStorage.boxesAndStables.find(\r\n (i) => i.IDBox == boxIdOld\r\n ).InUse = \"N\";\r\n }\r\n if (boxIdNew != null && boxIdNew != \"\") {\r\n window.db.updateBoxInUseById(boxIdNew, \"Y\");\r\n window.DataStorage.boxesAndStables.find(\r\n (i) => i.IDBox == boxIdNew\r\n ).InUse = \"Y\";\r\n }\r\n if (this.props.horseId != -1) {\r\n var dt = new Date();\r\n let data = {\r\n horseId: this.props.horseId,\r\n oldStableId: null,\r\n newStableId: null,\r\n oldBoxId: boxIdOld,\r\n newBoxId: boxIdNew,\r\n date: `${(dt.getMonth() + 1).toString().padStart(2, \"0\")}-${dt\r\n .getDate()\r\n .toString()\r\n .padStart(2, \"0\")}-${dt\r\n .getFullYear()\r\n .toString()\r\n .padStart(4, \"0\")} ${dt\r\n .getHours()\r\n .toString()\r\n .padStart(2, \"0\")}:${dt\r\n .getMinutes()\r\n .toString()\r\n .padStart(2, \"0\")}:${dt\r\n .getSeconds()\r\n .toString()\r\n .padStart(2, \"0\")}`,\r\n };\r\n window.DataGate.AddStableBoxHistoryLog(data, () => {});\r\n }\r\n }\r\n } else {\r\n let stableIdNew = this.state.stableBoxId;\r\n let stableIdOld =\r\n this.props.horseId == -1 ? null : this.horse.StableId;\r\n if (stableIdNew != stableIdOld) {\r\n if (this.props.horseId != -1) {\r\n var dt = new Date();\r\n let data = {\r\n horseId: this.props.horseId,\r\n oldStableId: stableIdOld,\r\n newStableId: stableIdNew,\r\n oldBoxId: null,\r\n newBoxId: null,\r\n date: `${(dt.getMonth() + 1).toString().padStart(2, \"0\")}-${dt\r\n .getDate()\r\n .toString()\r\n .padStart(2, \"0\")}-${dt\r\n .getFullYear()\r\n .toString()\r\n .padStart(4, \"0\")} ${dt\r\n .getHours()\r\n .toString()\r\n .padStart(2, \"0\")}:${dt\r\n .getMinutes()\r\n .toString()\r\n .padStart(2, \"0\")}:${dt\r\n .getSeconds()\r\n .toString()\r\n .padStart(2, \"0\")}`,\r\n };\r\n window.DataGate.AddStableBoxHistoryLog(data, () => {});\r\n }\r\n }\r\n }\r\n\r\n callback(horseId);\r\n }\r\n );\r\n\r\n if (\r\n this.state.isvisible == 0 &&\r\n window.Training.hiddenHorses.indexOf(this.props.horseId) == -1\r\n ) {\r\n window.Training.hiddenHorses.push(this.props.horseId);\r\n } else if (\r\n this.state.isvisible == 1 &&\r\n window.Training.hiddenHorses.indexOf(this.props.horseId) != -1\r\n ) {\r\n window.Training.hiddenHorses.splice(\r\n window.Training.hiddenHorses.indexOf(this.props.horseId),\r\n 1\r\n );\r\n }\r\n let hiddenHorses = JSON.stringify(window.Training.hiddenHorses);\r\n window.GlobalData.setItem(window.GlobalData.HIDDEN_HORSES, hiddenHorses);\r\n } else {\r\n callback(this.props.horseId);\r\n }\r\n };\r\n\r\n onSaveClick = () => {\r\n this.doSave((horseId) => {\r\n if (this.props.horseId == -1) {\r\n this.props.onEditBack(horseId);\r\n } else {\r\n this.props.onEditBack();\r\n }\r\n });\r\n };\r\n\r\n onButonClick = (callFunction) => {\r\n this.doSave((horseId) => {\r\n if (horseId != -1) {\r\n this.props.onEditBack(horseId);\r\n setTimeout(() => {\r\n callFunction(horseId);\r\n });\r\n }\r\n });\r\n };\r\n\r\n getStableList = () => {\r\n let boxes = window.DataStorage.boxesAndStables;\r\n\r\n if (window.inUseStables == \"Y\") {\r\n let userId = this.horse ? this.horse.userid : this.userOwnerId;\r\n let resultboxes = boxes.filter(\r\n (b) => b.IDBox != null && b.InUse != \"Y\" && b.UserId == userId\r\n );\r\n if (this.horse && this.horse.BoxName) {\r\n let selectedBox = boxes.find((b) => b.IDBox == this.horse.BoxName);\r\n if (selectedBox) {\r\n resultboxes.push(selectedBox);\r\n }\r\n }\r\n resultboxes = resultboxes\r\n .sort((x, y) => x.OrderBy - y.OrderBy)\r\n .map((b) => ({ key: b.IDBox, value: b.StableName + \" \" + b.BoxName }));\r\n return resultboxes;\r\n } else {\r\n let userId = this.horse ? this.horse.userid : this.userOwnerId;\r\n let stables = boxes\r\n .filter((b) => b.UserId == userId)\r\n .sort((a, b) => a.StableOrderBy - b.StableOrderBy)\r\n .map((b) => ({ key: b.IdStable, value: b.StableName }));\r\n\r\n let allStables = [];\r\n for (let i = 0; i < stables.length; i++) {\r\n if (allStables.find((s) => s.key == stables[i].key) == null) {\r\n allStables.push(stables[i]);\r\n }\r\n }\r\n return allStables;\r\n }\r\n };\r\n\r\n labelChange = (newValue, actionMeta) => {\r\n let labelsArr = JSON.parse(JSON.stringify(this.state.labels));\r\n let selectedLabelsArr = JSON.parse(\r\n JSON.stringify(this.state.selectedLabels)\r\n );\r\n switch (actionMeta.action) {\r\n case \"create-option\":\r\n let newId = Math.uuid();\r\n if (this.horse.userid == window.myid) {\r\n window.DataGate.createHorseLabels(\r\n newId,\r\n newValue[newValue.length - 1].label,\r\n window.myid,\r\n () => {}\r\n );\r\n window.DataStorage.horseLabels.push({\r\n Id: newId,\r\n Label: newValue[newValue.length - 1].label,\r\n UserId: window.myid,\r\n });\r\n } else {\r\n window.DataGate.createHorseLabels(\r\n newId,\r\n newValue[newValue.length - 1].label,\r\n this.horse.userid,\r\n () => {}\r\n );\r\n }\r\n labelsArr.push({\r\n value: newId,\r\n label: newValue[newValue.length - 1].label,\r\n });\r\n selectedLabelsArr.push({\r\n value: newId,\r\n label: newValue[newValue.length - 1].label,\r\n });\r\n window.TopMenu.Self.sidebarExtention.refreshSideMenu();\r\n break;\r\n case \"select-option\":\r\n selectedLabelsArr.push({\r\n value: newValue[newValue.length - 1].value,\r\n label: newValue[newValue.length - 1].label,\r\n });\r\n break;\r\n case \"remove-value\":\r\n selectedLabelsArr = selectedLabelsArr.filter(\r\n (i) => i.value != actionMeta.removedValue.value\r\n );\r\n break;\r\n case \"clear\":\r\n selectedLabelsArr = [];\r\n break;\r\n default:\r\n break;\r\n }\r\n this.setState({\r\n hasChanges: true,\r\n labels: labelsArr,\r\n selectedLabels: selectedLabelsArr,\r\n });\r\n };\r\n\r\n render() {\r\n const {\r\n name,\r\n bornIn,\r\n regNr,\r\n imageUrl,\r\n arriveDate,\r\n departureDate,\r\n height,\r\n stableBoxId,\r\n gender,\r\n horseType,\r\n colorId,\r\n trainer,\r\n istraining,\r\n isvisible,\r\n chipid,\r\n trainersArr,\r\n labels,\r\n selectedLabels,\r\n } = this.state;\r\n\r\n const stableArr = [\r\n { key: \"\", value: window.lang.none },\r\n ...this.getStableList(),\r\n ];\r\n const genderArr = window.DataStorage.getHorseGenderArr().map((g, i) => ({\r\n key: i,\r\n value: g,\r\n }));\r\n\r\n let horseTypeArr = window.DataStorage.horseTypes\r\n .filter((t) => t.OwnerC == this.userOwnerId)\r\n .map((t) => ({ key: t.ID, value: t.Name }));\r\n horseTypeArr = [{ key: \"\", value: window.lang.none }, ...horseTypeArr];\r\n\r\n let colorArr = window.DataStorage.horseColors\r\n .filter((t) => t.UserID == this.userOwnerId)\r\n .map((t) => ({ key: t.Id, value: t.ColorName }));\r\n colorArr = [\r\n { key: \"020b69ff-6210-41a9-82b0-122091bf88a0\", value: window.lang.none },\r\n ...colorArr,\r\n ];\r\n return (\r\n
\r\n
\r\n this.props.onEditBack()}\r\n />\r\n \r\n
\r\n \r\n
\r\n
\r\n
{window.lang.name}
\r\n \r\n {this.isShowBornIn && (\r\n <>\r\n
{window.lang.bornIn}
\r\n \r\n \r\n )}\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n {this.isShowRegNr && (\r\n
\r\n
Reg. nr
\r\n \r\n
\r\n )}\r\n {this.isShowChipid && (\r\n
\r\n
Chipid
\r\n \r\n
\r\n )}\r\n {this.isShowArriveDate && (\r\n
\r\n
{window.lang.arrivDate}
\r\n {arriveDate == \"1900-01-01\" ? (\r\n \r\n ) : (\r\n \r\n )}\r\n
\r\n )}\r\n {this.isShowArriveDate && (\r\n
\r\n
{window.lang.departure}
\r\n {departureDate == \"1900-01-01\" ? (\r\n \r\n ) : (\r\n \r\n )}\r\n
\r\n )}\r\n {this.isShowHeight && (\r\n
\r\n
{window.lang.height}
\r\n \r\n
\r\n )}\r\n
\r\n
Labels
\r\n \r\n
\r\n
\r\n
\r\n {this.isShowStable && (\r\n
\r\n
{window.lang.stable}
\r\n \r\n {stableArr.map((stableItem) => (\r\n \r\n ))}\r\n \r\n
\r\n )}\r\n {this.isShowGender && (\r\n
\r\n
{window.lang.gender}
\r\n \r\n {genderArr.map((item) => (\r\n \r\n ))}\r\n \r\n
\r\n )}\r\n {this.isShowType && (\r\n
\r\n
{window.lang.type}
\r\n \r\n {horseTypeArr.map((item) => (\r\n \r\n ))}\r\n \r\n
\r\n )}\r\n {this.isShowColor && (\r\n
\r\n
{window.lang.color}
\r\n \r\n {colorArr.map((item) => (\r\n \r\n ))}\r\n \r\n
\r\n )}\r\n {this.isShowHorseFollowsRider && (\r\n
\r\n
{window.lang.horseFollowsRider}
\r\n \r\n {trainersArr.map((item) => (\r\n \r\n ))}\r\n \r\n
\r\n )}\r\n {this.isShowInTraining && (\r\n
\r\n
{window.lang.showInTraining}
\r\n this.onToggleClick(\"istraining\")}\r\n checked={istraining == \"1\"}\r\n />\r\n
\r\n )}\r\n {this.isShowIsVisible && (\r\n
\r\n
{window.lang.isVisible}
\r\n this.onToggleClick(\"isvisible\")}\r\n checked={isvisible == \"1\"}\r\n />\r\n
\r\n )}\r\n
\r\n
\r\n this.onButonClick(this.props.openNotes)}\r\n >\r\n \r\n {window.lang.notes}\r\n \r\n this.onButonClick(this.props.openPedigree)}\r\n >\r\n \r\n {window.lang.pedigree}\r\n \r\n this.onButonClick(this.props.openResults)}\r\n >\r\n \r\n {window.lang.result}\r\n \r\n this.onButonClick(this.props.openVaccinations)}\r\n >\r\n \r\n {window.lang.vaccination}\r\n \r\n \r\n this.onButonClick(this.props.openHerpesVaccinations)\r\n }\r\n >\r\n \r\n {window.lang.herpesVaccination}\r\n \r\n this.onButonClick(this.props.openEquipment)}\r\n >\r\n \r\n {window.lang.equipment}\r\n \r\n this.onButonClick(this.props.openFarrier)}\r\n >\r\n \r\n {window.lang.shoes}\r\n \r\n this.onButonClick(this.props.openMultimedia)}\r\n >\r\n \r\n Multimedia\r\n \r\n this.onButonClick(this.props.openVeterinarian)}\r\n >\r\n \r\n {window.lang.veterinarian}\r\n \r\n this.onButonClick(this.props.openReport)}\r\n >\r\n \r\n {window.lang.report}\r\n \r\n this.onButonClick(this.props.openTeeth)}\r\n >\r\n \r\n {window.lang.teeth}\r\n \r\n this.onButonClick(this.props.openOwnerInfo)}\r\n >\r\n \r\n {window.lang.owner}\r\n \r\n this.onButonClick(this.props.openPrice)}\r\n >\r\n \r\n {window.lang.price}\r\n \r\n this.onButonClick(this.props.openLog)}\r\n >\r\n \r\n Log page\r\n \r\n {this.props.horseId != -1 && this.horse.userid == window.myid && (\r\n this.onButonClick(this.props.openShare)}\r\n >\r\n \r\n {window.lang.share}\r\n \r\n )}\r\n {this.props.horseId != -1 &&\r\n this.horse.userid == window.myid &&\r\n (this.horse.u == \"u\" ? (\r\n this.onButonClick(this.props.openDelete)}\r\n >\r\n \r\n {window.lang.deleteHorse}\r\n \r\n ) : (\r\n <>\r\n this.onButonClick(this.props.openUnDelete)}\r\n >\r\n \r\n {window.lang.undeleteHorse}\r\n \r\n \r\n this.onButonClick(this.props.openDeleteCompletly)\r\n }\r\n >\r\n \r\n {window.lang.deleteHorse}\r\n \r\n \r\n ))}\r\n
\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default HorseEditPage;\r\n","import { parse, format, isValid } from \"date-fns\";\r\n\r\n/**\r\n * Converts date string from 'DD-MM-YYYY' to 'YYYY-MM-DD'.\r\n *\r\n * @param {string} dateString - The date string in 'DD-MM-YYYY' format.\r\n * @returns {string} - The date string in 'YYYY-MM-DD' format.\r\n */\r\nexport function convertDateStringDDMMYYYYtoYYYYMMDD(dateString) {\r\n if (!dateString) {\r\n return \"\";\r\n }\r\n\r\n // Parse it into a Date object using date-fns\r\n const parsedDate = parse(dateString, \"dd-MM-yyyy\", new Date());\r\n // Format the Date object to YYYY-MM-DD\r\n return format(parsedDate, \"yyyy-MM-dd\");\r\n}\r\n\r\n/**\r\n * Checks if a string is a valid date in the 'DD-MM-YYYY' format.\r\n *\r\n * @param {string} dateString - The candidate date string.\r\n * @returns {boolean} - `true` if valid; otherwise `false`.\r\n */\r\nexport function isValidDateDDMMYYYY(dateString) {\r\n if (typeof dateString !== \"string\") return false;\r\n\r\n // Optional: quick regex check for basic format 'DD-MM-YYYY'\r\n // This ensures we only parse strings with two digits, dash, two digits, dash, four digits\r\n const basicPattern = /^\\d{2}-\\d{2}-\\d{4}$/;\r\n if (!basicPattern.test(dateString)) {\r\n return false;\r\n }\r\n\r\n // Parse using date-fns\r\n const parsedDate = parse(dateString, \"dd-MM-yyyy\", new Date());\r\n\r\n // Check if the parsed date is valid\r\n if (!isValid(parsedDate)) {\r\n return false;\r\n }\r\n\r\n // Finally, reformat it back as 'DD-MM-YYYY' and compare\r\n // This ensures something like '31-02-2023' won't slip by\r\n const reFormatted = format(parsedDate, \"dd-MM-yyyy\");\r\n return reFormatted === dateString;\r\n}\r\n","import React, { Component } from \"react\";\r\nimport \"./HorseViewPage.css\";\r\nimport HorseEditPage from \"./HorseEditPage\";\r\nimport HorseGallery from \"../Multimedia/HorseGallery\";\r\nimport DataGateActions from \"../DataGateActions\";\r\nimport { Capacitor } from \"@capacitor/core\";\r\nimport { convertDateStringDDMMYYYYtoYYYYMMDD } from \"../Utils/dateUtils\";\r\n\r\nclass HorseViewPage extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.db = window.db;\r\n this.state = {\r\n isViewMode: props.horseId != -1,\r\n horseId: props.horseId,\r\n pedigreeText: \"\",\r\n };\r\n this.loadHorseData(props.horseId);\r\n this.isMobile = Capacitor.getPlatform() != \"web\";\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n if (\r\n prevProps.horseId != this.props.horseId ||\r\n prevProps.date != this.props.date\r\n ) {\r\n this.setState({\r\n isViewMode: this.props.horseId != -1,\r\n horseId: this.props.horseId,\r\n });\r\n this.loadHorseData(this.props.horseId);\r\n }\r\n }\r\n\r\n loadHorseData = (horseId) => {\r\n try {\r\n this.setState({\r\n pedigreeText: \"\",\r\n });\r\n } catch {}\r\n if (horseId != -1 && horseId != null) {\r\n this.db.getPedigreeByHorse(horseId, (pedigreeArr) => {\r\n if (pedigreeArr.length != 0) {\r\n const data = JSON.parse(pedigreeArr[0].PedigreeJsonText);\r\n if (data.mather != \"\" || data.grmather_father != \"\") {\r\n this.setState({\r\n pedigreeText: data.mather + \" / \" + data.grmather_father,\r\n });\r\n }\r\n }\r\n });\r\n }\r\n };\r\n\r\n onEditClick = () => {\r\n let horseItem = window.DataStorage.getAllHorses().find(\r\n (h) => h.id == this.state.horseId\r\n );\r\n if (horseItem.userid != window.myid) {\r\n let role = window.DataStorage.rolesDataFromUsers.find(\r\n (r) => r.UserId == horseItem.userid\r\n );\r\n if (role != null && role.hWrite == false) {\r\n window.onBack();\r\n window.alert(\"You have no access to write\");\r\n return;\r\n }\r\n }\r\n this.setState({\r\n isViewMode: false,\r\n });\r\n };\r\n\r\n onHide = () => {\r\n window.onBack();\r\n };\r\n\r\n openNotes = (horseId) => {\r\n if (horseId == null || typeof horseId == \"object\")\r\n horseId = this.state.horseId;\r\n //const horse = window.DataStorage.getAllHorses().find(h => h.id == horseId);\r\n //window.Managers.self.addNotes(horse);\r\n window.Managers.extention.showNotes(horseId);\r\n };\r\n openPedigree = (horseId) => {\r\n if (horseId == null || typeof horseId == \"object\")\r\n horseId = this.state.horseId;\r\n //const horse = window.DataStorage.getAllHorses().find(h => h.id == horseId);\r\n //window.Managers.self.showPedigree(horse);\r\n window.Managers.extention.showPedigree(horseId);\r\n };\r\n openResults = (horseId) => {\r\n if (horseId == null || typeof horseId == \"object\")\r\n horseId = this.state.horseId;\r\n window.Managers.extention.showResults(horseId);\r\n };\r\n openVaccinations = (horseId) => {\r\n if (horseId == null || typeof horseId == \"object\")\r\n horseId = this.state.horseId;\r\n //const horse = window.DataStorage.getAllHorses().find(h => h.id == horseId);\r\n //window.Managers.self.showHorseVaccination(horse);\r\n window.Managers.extention.showVaccination(horseId);\r\n };\r\n openHerpesVaccinations = (horseId) => {\r\n if (horseId == null || typeof horseId == \"object\")\r\n horseId = this.state.horseId;\r\n window.Managers.extention.showHerpesVaccination(horseId);\r\n };\r\n openEquipment = (horseId) => {\r\n if (horseId == null || typeof horseId == \"object\")\r\n horseId = this.state.horseId;\r\n window.Managers.extention.showEquipment(horseId);\r\n };\r\n openFarrier = (horseId) => {\r\n if (horseId == null || typeof horseId == \"object\")\r\n horseId = this.state.horseId;\r\n window.Managers.extention.showFarrier(horseId);\r\n };\r\n openMultimedia = (horseId) => {\r\n if (horseId == null || typeof horseId == \"object\")\r\n horseId = this.state.horseId;\r\n window.Managers.extention.showMultimedia(horseId);\r\n };\r\n openVeterinarian = (horseId) => {\r\n if (horseId == null || typeof horseId == \"object\")\r\n horseId = this.state.horseId;\r\n const horse = window.DataStorage.getAllHorses().find(\r\n (h) => h.id == horseId\r\n );\r\n if (horse.userid != window.myid) {\r\n let role = window.DataStorage.rolesDataFromUsers.find(\r\n (r) => r.UserId == horse.userid\r\n );\r\n if (role != null && role.hSeeVET == false) {\r\n window.onBack();\r\n window.alert(\"You have no access to see VET on this horse\");\r\n return;\r\n }\r\n }\r\n window.Managers.extention.showVeterinarian(horseId);\r\n };\r\n openReport = (horseId) => {\r\n if (horseId == null || typeof horseId == \"object\")\r\n horseId = this.state.horseId;\r\n const horse = window.DataStorage.getAllHorses().find(\r\n (h) => h.id == horseId\r\n );\r\n window.Managers.self.showHorseReports(horse);\r\n };\r\n\r\n openSendSalesData = () => {\r\n let horseId = this.state.horseId;\r\n const horse = window.DataStorage.getAllHorses().find(\r\n (h) => h.id == horseId\r\n );\r\n if (!horse) {\r\n alert(\"Something went wrong!\");\r\n return;\r\n }\r\n // alert(JSON.stringify(horse));\r\n window.Managers.self.showSendSalesData(horse);\r\n };\r\n openTeeth = (horseId) => {\r\n if (horseId == null || typeof horseId == \"object\")\r\n horseId = this.state.horseId;\r\n window.Managers.extention.showTeeth(horseId);\r\n };\r\n openOwnerInfo = (horseId) => {\r\n if (horseId == null || typeof horseId == \"object\")\r\n horseId = this.state.horseId;\r\n //const horse = window.DataStorage.getAllHorses().find(h => h.id == horseId);\r\n //window.Managers.self.showHorseOwnerInfo(horse);\r\n window.Managers.extention.showOwnerInfo(horseId);\r\n };\r\n openPrice = (horseId) => {\r\n let horseItem = window.DataStorage.getAllHorses().find(\r\n (h) => h.id == this.state.horseId\r\n );\r\n if (horseItem.userid != window.myid) {\r\n let role = window.DataStorage.rolesDataFromUsers.find(\r\n (r) => r.UserId == horseItem.userid\r\n );\r\n if (role != null && role.hSeePriceInReport == false) {\r\n window.onBack();\r\n window.alert(\"You have no access to view price of this horse\");\r\n return;\r\n }\r\n }\r\n if (horseId == null || typeof horseId == \"object\")\r\n horseId = this.state.horseId;\r\n window.Managers.extention.showHorsePrice(horseId);\r\n };\r\n openLog = (horseId) => {\r\n if (horseId == null || typeof horseId == \"object\")\r\n horseId = this.state.horseId;\r\n const horse = window.DataStorage.getAllHorses().find(\r\n (h) => h.id == horseId\r\n );\r\n window.Managers.self.showHorseLog(horse);\r\n };\r\n openShare = (horseId) => {\r\n if (horseId == null || typeof horseId == \"object\")\r\n horseId = this.state.horseId;\r\n const horse = window.DataStorage.getAllHorses().find(\r\n (h) => h.id == horseId\r\n );\r\n window.Managers.self.showHorseShare(horse);\r\n };\r\n openDelete = (horseId) => {\r\n if (horseId == null || typeof horseId == \"object\")\r\n horseId = this.state.horseId;\r\n const horse = window.DataStorage.getAllHorses().find(\r\n (h) => h.id == horseId\r\n );\r\n window.Managers.self.showHorseDelete(horse);\r\n };\r\n openUnDelete = (horseId) => {\r\n if (horseId == null || typeof horseId == \"object\")\r\n horseId = this.state.horseId;\r\n const horse = window.DataStorage.getAllHorses().find(\r\n (h) => h.id == horseId\r\n );\r\n DataGateActions.unDeleteHorse(horse);\r\n };\r\n openDeleteCompletly = (horseId) => {\r\n if (horseId == null || typeof horseId == \"object\")\r\n horseId = this.state.horseId;\r\n window.Spinner.show();\r\n window.DataGate.deleteHorseCompletly(horseId, () => {\r\n this.onHide();\r\n window.Managers.self.refreshHorses();\r\n });\r\n };\r\n\r\n onEditBack = (newHorseId) => {\r\n if (newHorseId == null && this.state.horseId == -1) {\r\n this.onHide();\r\n } else {\r\n if (newHorseId != null && newHorseId != this.props.horseId) {\r\n window.Managers.extention.showHorsePage(newHorseId);\r\n } else {\r\n this.setState({\r\n isViewMode: true,\r\n horseId: newHorseId != null ? newHorseId : this.state.horseId,\r\n });\r\n }\r\n }\r\n };\r\n\r\n getStableName = (horse) => {\r\n if (window.inUseStables == \"Y\") {\r\n //show box and stable\r\n if (horse.BoxName == null || horse.BoxName == \"\") return \"\";\r\n let box = window.DataStorage.boxesAndStables.find(\r\n (s) => s.IDBox == horse.BoxName\r\n );\r\n if (box != null) {\r\n return box.StableName + \" \" + box.BoxName;\r\n }\r\n } else {\r\n //show only stable\r\n if (horse.StableId == null || horse.StableId == \"\") return \"\";\r\n let stable = window.DataStorage.boxesAndStables.find(\r\n (s) => s.IdStable == horse.StableId\r\n );\r\n if (stable != null) {\r\n return stable.StableName;\r\n }\r\n }\r\n return \"\";\r\n };\r\n\r\n render() {\r\n const { horseId, isViewMode, pedigreeText } = this.state;\r\n\r\n window.TopMenu.Self.setVisible(isViewMode && horseId != -1);\r\n\r\n if (!isViewMode || horseId == -1) {\r\n return (\r\n \r\n );\r\n }\r\n\r\n const horse = window.DataStorage.getAllHorses().find(\r\n (h) => h.id == horseId\r\n );\r\n if (horse == null) {\r\n return
;\r\n }\r\n\r\n const horseLogo =\r\n horse.LogoFile != null\r\n ? window.DataGate.baseurl + horse.LogoFile\r\n : \"img/horselogo.png\";\r\n const currentUser = window.Managers.User;\r\n\r\n const GlobalData = window.GlobalData;\r\n const isShowBornIn = GlobalData.getItem(GlobalData.SHOW_BORNIN) == 1;\r\n const isShowArriveDate =\r\n GlobalData.getItem(GlobalData.SHOW_ARRIVEDATE) == 1;\r\n\r\n const isShowStable = GlobalData.getItem(GlobalData.SHOW_STABLE) == 1;\r\n const isShowGender = GlobalData.getItem(GlobalData.SHOW_GENDER) == 1;\r\n const isShowType = GlobalData.getItem(GlobalData.SHOW_TYPE) == 1;\r\n const isShowHeight = GlobalData.getItem(GlobalData.SHOW_HEIGHT) == 1;\r\n const isShowColor = GlobalData.getItem(GlobalData.SHOW_COLOR) == 1;\r\n const isShowHorseFollowsRider =\r\n GlobalData.getItem(GlobalData.SHOW_HORSE_FOLLOWS_RIDER) == 1;\r\n const isShowNotes = GlobalData.getItem(GlobalData.SHOW_NOTES) == 1;\r\n const isShowPedigree = GlobalData.getItem(GlobalData.SHOW_PEDIGREE) == 1;\r\n const isShowResults = GlobalData.getItem(GlobalData.SHOW_PEDIGREE) == 1;\r\n const isShowVaccinations =\r\n GlobalData.getItem(GlobalData.SHOW_VACCINATION) == 1;\r\n const isShowEquipment = GlobalData.getItem(GlobalData.SHOW_EQUIPMENT) == 1;\r\n const isShowFarrier = GlobalData.getItem(GlobalData.SHOW_FARRIER) == 1;\r\n const isShowMultimedia =\r\n GlobalData.getItem(GlobalData.SHOW_MULTUMEDIA) == 1;\r\n const isShowVeterinarian =\r\n GlobalData.getItem(GlobalData.SHOW_VETERINARIAN) == 1;\r\n const isShowReport = GlobalData.getItem(GlobalData.SHOW_REPORT) == 1;\r\n const isShowTeech = GlobalData.getItem(GlobalData.SHOW_TEECH) == 1;\r\n const isShowOwner = GlobalData.getItem(GlobalData.SHOW_OWNER) == 1;\r\n const isShowPrice = GlobalData.getItem(GlobalData.SHOW_PRICE) == 1;\r\n const isShowShareHorse =\r\n GlobalData.getItem(GlobalData.SHOW_SHARE_HORSE) == 1;\r\n const isShowLogPage = GlobalData.getItem(GlobalData.SHOW_LOG_PAGE) == 1;\r\n const isShowDeleteButton =\r\n GlobalData.getItem(GlobalData.SHOW_DELETE_BUTTON) == 1;\r\n\r\n const isShowSendData =\r\n GlobalData.getItem(GlobalData.SHOW_SEND_SALES_DATA) == 1;\r\n\r\n let stableColorArr = [];\r\n if (isShowStable) {\r\n let stableName = this.getStableName(horse);\r\n if (stableName != \"\") {\r\n stableColorArr.push(stableName);\r\n }\r\n }\r\n if (isShowGender && horse.Gender != \"0\") {\r\n stableColorArr.push(\r\n window.DataStorage.getHorseGenderArr()[parseInt(horse.Gender)]\r\n );\r\n }\r\n if (isShowType && horse.HorseType != null) {\r\n let horseType = window.DataStorage.horseTypes.find(\r\n (t) => t.ID == horse.HorseType\r\n );\r\n if (horseType != null) {\r\n stableColorArr.push(horseType.Name);\r\n }\r\n }\r\n if (isShowColor) {\r\n let horseColor = window.DataStorage.horseColors.find(\r\n (c) => c.Id == horse.ColorId\r\n );\r\n if (horseColor != null) {\r\n stableColorArr.push(horseColor.ColorName);\r\n }\r\n }\r\n\r\n let trainer = null;\r\n if (isShowHorseFollowsRider) {\r\n trainer = window.DataStorage.shareDataArray.find(\r\n (s) => s.sharewithid == horse.trainer && s.horseid == horse.id\r\n );\r\n }\r\n\r\n return (\r\n \r\n
\r\n \r\n
\r\n \r\n {horse.name}\r\n
\r\n {this.props.showGallery != true && (\r\n \r\n )}\r\n
\r\n {this.props.showGallery != true && (\r\n <>\r\n {isShowPedigree && (\r\n
{pedigreeText}
\r\n )}\r\n
\r\n {isShowBornIn && horse.BirthYear + \" - \"}\r\n {isShowHeight && horse.Height}\r\n
\r\n {isShowArriveDate && (\r\n
\r\n {window.lang.arrivDate}:{\" \"}\r\n {horse.CreateDate == \"01-01-1900\"\r\n ? \"\"\r\n : convertDateStringDDMMYYYYtoYYYYMMDD(horse.CreateDate)}\r\n
\r\n )}\r\n
\r\n {stableColorArr.join(\" • \")}\r\n {isShowHorseFollowsRider && trainer != null && (\r\n
\r\n {window.lang.riderLabel}: {trainer.uname}\r\n
\r\n )}\r\n
\r\n {isShowNotes && (\r\n
\r\n {window.lang.notes}\r\n
\r\n )}\r\n {isShowPedigree && (\r\n
\r\n {window.lang.pedigree}\r\n
\r\n )}\r\n {isShowResults && (\r\n
\r\n {window.lang.result}\r\n
\r\n )}\r\n {isShowVaccinations && (\r\n
\r\n {window.lang.vaccination}\r\n
\r\n )}\r\n {isShowVaccinations && (\r\n \r\n {window.lang.herpesVaccination}\r\n
\r\n )}\r\n {isShowEquipment && (\r\n
\r\n {window.lang.equipment}\r\n
\r\n )}\r\n {isShowFarrier && (\r\n
\r\n {window.lang.shoes}\r\n
\r\n )}\r\n {isShowMultimedia && (\r\n
\r\n Multimedia\r\n
\r\n )}\r\n {isShowVeterinarian && (\r\n
\r\n {window.lang.veterinarian}\r\n
\r\n )}\r\n {isShowReport && (\r\n
\r\n {window.lang.report}\r\n
\r\n )}\r\n {isShowSendData && (\r\n
\r\n {window.lang.sendSalesData}\r\n
\r\n )}\r\n {isShowTeech && (\r\n
\r\n {window.lang.teeth}\r\n
\r\n )}\r\n {isShowOwner && (\r\n
\r\n {window.lang.owner}\r\n
\r\n )}\r\n {isShowPrice && (\r\n
\r\n {window.lang.price}\r\n
\r\n )}\r\n {isShowLogPage && (\r\n
\r\n Log page\r\n
\r\n )}\r\n {isShowShareHorse && horse.userid == window.myid && (\r\n
\r\n {window.lang.share}\r\n
\r\n )}\r\n {isShowDeleteButton &&\r\n horse.userid == window.myid &&\r\n (horse.u == \"u\" ? (\r\n
\r\n {window.lang.deleteHorse}\r\n
\r\n ) : (\r\n <>\r\n
\r\n {window.lang.undeleteHorse}\r\n
\r\n \r\n {window.lang.deleteHorse}\r\n \r\n \r\n ))}\r\n \r\n \r\n )}\r\n \r\n\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default HorseViewPage;\r\n","import React, { Component } from \"react\";\r\nimport HorseGallery from \"../.././Multimedia/HorseGallery\";\r\n\r\nclass PedigreePage extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n father: \"\",\r\n grfather_father: \"\",\r\n grfather_grfather_f: \"\",\r\n grfather_grfather_m: \"\",\r\n grfather_grmather_f: \"\",\r\n grfather_grmather_m: \"\",\r\n grfather_mather: \"\",\r\n grmather_father: \"\",\r\n grmather_grfather_f: \"\",\r\n grmather_grfather_m: \"\",\r\n grmather_grmather_f: \"\",\r\n grmather_grmather_m: \"\",\r\n grmather_mather: \"\",\r\n mather: \"\",\r\n hasPadigree: false,\r\n };\r\n\r\n window.TopMenu.Self.setVisible(false);\r\n this.loadData();\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n if (this.props.horseId != prevProps.horseId) {\r\n this.loadData();\r\n }\r\n window.TopMenu.Self.setVisible(false);\r\n window.$(\"#addHorsePageContent\").trigger(\"create\");\r\n }\r\n\r\n componentDidMount() {\r\n window.$(\"#addHorsePageContent\").trigger(\"create\");\r\n }\r\n\r\n loadData() {\r\n window.Spinner.show();\r\n window.db.getPedigreeByHorse(this.props.horseId, (pedigreeArr) => {\r\n if (pedigreeArr.length != 0) {\r\n const data = JSON.parse(pedigreeArr[0][\"PedigreeJsonText\"]);\r\n this.setState({\r\n ...data,\r\n hasPadigree: true,\r\n });\r\n } else {\r\n this.setState({\r\n hasPadigree: false,\r\n });\r\n }\r\n window.Spinner.hide();\r\n });\r\n }\r\n\r\n onValueChange = (e) => {\r\n this.setState({\r\n [e.target.name]: e.target.value,\r\n });\r\n };\r\n\r\n onSaveClick = () => {\r\n let data = { ...this.state };\r\n delete data.hasPadigree;\r\n console.log(data);\r\n const strData = JSON.stringify(data).replace(\"'\", \"''\");\r\n window.Spinner.show();\r\n if (!this.state.hasPadigree) {\r\n window.db.insertPedigreeByHorse(this.props.horseId, strData, () => {\r\n window.Spinner.hide();\r\n window.Managers.extention.showHorsePage(this.props.horseId);\r\n });\r\n } else {\r\n window.db.setPedigreeByHorse(this.props.horseId, strData, () => {\r\n window.Spinner.hide();\r\n window.Managers.extention.showHorsePage(this.props.horseId);\r\n });\r\n }\r\n };\r\n\r\n render() {\r\n const { horseId } = this.props;\r\n const horse = window.DataStorage.getAllHorses().find(\r\n (h) => h.id == horseId\r\n );\r\n\r\n return (\r\n
\r\n
\r\n this.onSaveClick()}\r\n />\r\n \r\n
\r\n
\r\n
\r\n {horse.name}\r\n
\r\n \r\n \r\n \r\n {window.lang.parents}\r\n {window.lang.grandparents}\r\n {window.lang.greatGrandparents}\r\n \r\n \r\n \r\n
\r\n {window.lang.stallion}\r\n
\r\n \r\n \r\n \r\n
\r\n {window.lang.stallion}\r\n
\r\n \r\n \r\n \r\n
\r\n {window.lang.stallion}\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
{window.lang.mare}
\r\n \r\n \r\n \r\n \r\n \r\n
{window.lang.mare}
\r\n \r\n \r\n \r\n
\r\n {window.lang.stallion}\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
Mare
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
{window.lang.mare}
\r\n \r\n \r\n \r\n
\r\n {window.lang.stallion}\r\n
\r\n \r\n \r\n \r\n
\r\n {window.lang.stallion}\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
{window.lang.mare}
\r\n \r\n \r\n \r\n \r\n \r\n
{window.lang.mare}
\r\n \r\n \r\n \r\n
\r\n {window.lang.stallion}\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
{window.lang.mare}
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n );\r\n }\r\n}\r\nexport default PedigreePage;\r\n","import React, { Component } from \"react\";\r\nimport Select from \"react-select\";\r\nimport \"./OwnerInfoPage.css\";\r\n\r\nclass OwnerInfoPage extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n owners: [],\r\n };\r\n\r\n window.TopMenu.Self.setVisible(false);\r\n this.loadData();\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n if (this.props.horseId != prevProps.horseId) {\r\n this.loadData();\r\n }\r\n window.TopMenu.Self.setVisible(false);\r\n }\r\n\r\n loadData() {\r\n this.loadOwnwers(() => {\r\n window.Spinner.show();\r\n window.db.getPaperOwnerByHorse(this.props.horseId, (paperOwner) => {\r\n let selectedOwners = [];\r\n if (\r\n paperOwner != null &&\r\n paperOwner[0].PaperOwner != null &&\r\n paperOwner[0].PaperOwner != \"\"\r\n ) {\r\n selectedOwners = JSON.parse(paperOwner[0].PaperOwner);\r\n } else {\r\n }\r\n if (selectedOwners.length == 0) {\r\n selectedOwners.push(-1);\r\n }\r\n let owners = this.state.owners;\r\n for (let i = 0; i < owners.length; i++) {\r\n owners[i].isSelected = selectedOwners.indexOf(owners[i].Id) != -1;\r\n owners[i].isEdit = owners[i].Id != -1 ? false : true;\r\n }\r\n this.setState({\r\n owners: owners,\r\n });\r\n window.Spinner.hide();\r\n });\r\n });\r\n }\r\n\r\n loadOwnwers = (callback) => {\r\n window.Spinner.show();\r\n window.db.getOwnerByUser(window.myid, (owners) => {\r\n owners = [\r\n {\r\n Id: -1,\r\n Name: \"Create\",\r\n Address: \"\",\r\n City: \"\",\r\n Company: \"\",\r\n Country: \"\",\r\n Email: \"\",\r\n Phone: \"\",\r\n },\r\n ...owners,\r\n ];\r\n this.setState({\r\n owners: owners,\r\n });\r\n window.Spinner.hide();\r\n if (callback) {\r\n callback();\r\n }\r\n });\r\n };\r\n\r\n handleSelectChange = (e) => {\r\n const selectedOwners = e.map((item) => item.value);\r\n let owners = this.state.owners;\r\n for (let i = 0; i < owners.length; i++) {\r\n owners[i].isSelected = selectedOwners.indexOf(owners[i].Id) != -1;\r\n }\r\n this.setState({\r\n owners: owners,\r\n });\r\n };\r\n\r\n onInputChange = (e, item) => {\r\n item[e.target.name] = e.target.value;\r\n const index = this.state.owners.findIndex((o) => o.Id == item.Id);\r\n let owners = [...this.state.owners];\r\n owners[index] = item;\r\n this.setState({\r\n owners: owners,\r\n });\r\n };\r\n\r\n onEditClick = (item) => {\r\n const index = this.state.owners.findIndex((o) => o.Id == item.Id);\r\n item.isEdit = true;\r\n let owners = [...this.state.owners];\r\n owners[index] = item;\r\n this.setState({\r\n owners: owners,\r\n });\r\n };\r\n\r\n onDeleteClick = (item) => {\r\n this.setState({\r\n owners: this.state.owners.filter((o) => o.Id != item.Id),\r\n });\r\n\r\n window.Spinner.show();\r\n window.db.deleteOwnerByHorse(item.Id, () => {\r\n window.Spinner.hide();\r\n });\r\n };\r\n\r\n onCallClick = (item) => {\r\n if (window.isMobileDevice()) {\r\n window.location = \"eqapp://caller/tel:\" + item.Phone;\r\n }\r\n };\r\n\r\n onSaveItemClick = (item) => {\r\n if (item.Id != -1) {\r\n window.Spinner.show();\r\n window.db.editOwner(\r\n item.Id,\r\n item.Name,\r\n item.Company,\r\n item.Address,\r\n item.City,\r\n item.Country,\r\n item.Phone,\r\n item.Email,\r\n () => {\r\n window.Spinner.hide();\r\n }\r\n );\r\n } else {\r\n if (item.Name != \"\" && item.Name != \"Create\") {\r\n window.Spinner.show();\r\n item.Id = Math.uuid();\r\n window.db.insertOwner(\r\n item.Id,\r\n item.Name,\r\n item.Company,\r\n item.Address,\r\n item.City,\r\n item.Country,\r\n item.Phone,\r\n item.Email,\r\n () => {\r\n window.Spinner.hide();\r\n }\r\n );\r\n } else {\r\n navigator.notification.confirm(\r\n \"Please, enter Owner's Name\",\r\n function (buttonIndex) {},\r\n \"Equestrians App\",\r\n window.lang.ok\r\n );\r\n }\r\n }\r\n\r\n const index = this.state.owners.findIndex((o) => o.Id == item.Id);\r\n item.isEdit = false;\r\n let owners = [...this.state.owners];\r\n owners[index] = item;\r\n this.setState({\r\n owners: owners,\r\n });\r\n };\r\n\r\n onSaveClick = () => {\r\n const selectedOwners = this.state.owners\r\n .filter((o) => o.isSelected)\r\n .map((o) => o.Id);\r\n const strData = JSON.stringify(selectedOwners);\r\n\r\n window.Spinner.show();\r\n window.db.setPaperOwnerByHorse(this.props.horseId, strData, () => {\r\n window.Spinner.hide();\r\n window.Managers.extention.showHorsePage(this.props.horseId);\r\n });\r\n };\r\n\r\n render() {\r\n const { horseId } = this.props;\r\n const horse = window.DataStorage.getAllHorses().find(\r\n (h) => h.id == horseId\r\n );\r\n\r\n const selectedOwners = this.state.owners.filter((o) => o.isSelected);\r\n\r\n const options = this.state.owners.map((o) => ({\r\n value: o.Id,\r\n label: o.Name,\r\n }));\r\n const values = this.state.owners\r\n .filter((o) => o.isSelected)\r\n .map((o) => ({ value: o.Id, label: o.Name }));\r\n\r\n return (\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n {horse.name}\r\n
\r\n\r\n \r\n\r\n
\r\n {selectedOwners.map((item) => (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {!item.isEdit ? (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ) : (\r\n \r\n \r\n \r\n )}\r\n \r\n
\r\n
Name
\r\n this.onInputChange(e, item)}\r\n disabled={!item.isEdit}\r\n />\r\n
\r\n
Company
\r\n this.onInputChange(e, item)}\r\n disabled={!item.isEdit}\r\n />\r\n
\r\n
Address
\r\n this.onInputChange(e, item)}\r\n disabled={!item.isEdit}\r\n />\r\n
\r\n
City
\r\n this.onInputChange(e, item)}\r\n disabled={!item.isEdit}\r\n />\r\n
\r\n
Country
\r\n this.onInputChange(e, item)}\r\n disabled={!item.isEdit}\r\n />\r\n
\r\n
Phone
\r\n this.onInputChange(e, item)}\r\n disabled={!item.isEdit}\r\n />\r\n
\r\n
Email
\r\n this.onInputChange(e, item)}\r\n disabled={!item.isEdit}\r\n />\r\n
\r\n this.onCallClick(item)}\r\n >\r\n Call\r\n \r\n
\r\n this.onDeleteClick(item)}\r\n >\r\n {window.lang.deleteL}\r\n \r\n
\r\n this.onEditClick(item)}\r\n >\r\n {window.lang.edit}\r\n \r\n
\r\n this.onSaveItemClick(item)}\r\n >\r\n Save\r\n \r\n
\r\n
\r\n ))}\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\nexport default OwnerInfoPage;\r\n","import React, { Component } from \"react\";\r\nimport \"./NotesPage.css\";\r\nimport HorseGallery from \"../.././Multimedia/HorseGallery\";\r\n\r\nclass NotesPage extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n mainNote: \"\",\r\n notes: [],\r\n selectedNoteIndex: -1,\r\n isAddShow: false,\r\n addNoteTitle: \"\",\r\n };\r\n }\r\n componentDidMount() {\r\n window.TopMenu.Self.setVisible(false);\r\n this.loadData();\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n if (this.props.horseId != prevProps.horseId) {\r\n this.loadData();\r\n }\r\n window.TopMenu.Self.setVisible(false);\r\n }\r\n\r\n loadData() {\r\n const horse = window.DataStorage.getAllHorses().find(\r\n (h) => h.id == this.props.horseId\r\n );\r\n if (horse.notes != null) {\r\n this.setState({\r\n mainNote: horse.notes,\r\n });\r\n }\r\n\r\n window.Spinner.show();\r\n window.db.getNotesByHorse(this.props.horseId, (data) => {\r\n window.Spinner.hide();\r\n this.setState({\r\n notes: data,\r\n });\r\n });\r\n }\r\n\r\n onNoteTextChange = (e) => {\r\n if (this.state.selectedNoteIndex == -1) {\r\n this.setState({\r\n mainNote: e.target.value,\r\n isChanged: true,\r\n });\r\n } else {\r\n let notes = [...this.state.notes];\r\n notes[this.state.selectedNoteIndex].TextNote = e.target.value;\r\n notes[this.state.selectedNoteIndex].isChanged = true;\r\n this.setState({\r\n notes: notes,\r\n });\r\n }\r\n };\r\n\r\n selectNote = (noteIndex) => {\r\n this.setState({\r\n selectedNoteIndex: noteIndex,\r\n });\r\n };\r\n\r\n saveCurrentText = (callback) => {\r\n if (this.state.selectedNoteIndex == -1) {\r\n //save main note\r\n if (this.state.isChanged) {\r\n window.Spinner.show();\r\n window.db.updateNoteByHorse(\r\n this.props.horseId,\r\n this.state.mainNote,\r\n () => {\r\n let horse = window.DataStorage.getAllHorses().find(\r\n (h) => h.id == this.props.horseId\r\n );\r\n horse.notes = this.state.mainNote;\r\n window.training.refresh();\r\n window.Spinner.hide();\r\n this.setState({\r\n isChanged: false,\r\n });\r\n if (callback) callback();\r\n }\r\n );\r\n } else {\r\n if (callback) callback();\r\n }\r\n } else {\r\n //save selected note\r\n const note = this.state.notes[this.state.selectedNoteIndex];\r\n if (note.isChanged) {\r\n window.Spinner.show();\r\n window.db.updateNoteHorse(note.Id, note.TextNote, () => {\r\n window.Spinner.hide();\r\n if (callback) callback();\r\n });\r\n } else {\r\n if (callback) callback();\r\n }\r\n }\r\n };\r\n\r\n deleteNote = (note) => {\r\n navigator.notification.confirm(\r\n \"Do you want delete note?\",\r\n (buttonIndex) => {\r\n if (buttonIndex == 1) {\r\n window.Spinner.show();\r\n window.db.deleteNote(note.Id, () => {\r\n window.Spinner.hide();\r\n this.setState({\r\n notes: this.state.notes.filter((n) => n.Id != note.Id),\r\n selectedNoteIndex: -1,\r\n });\r\n this.needDropboxUpdate = true;\r\n });\r\n }\r\n }\r\n );\r\n };\r\n\r\n addNewNotesStart = () => {\r\n this.setState({\r\n isAddShow: true,\r\n addNoteTitle: \"\",\r\n });\r\n };\r\n\r\n onAddNoteTitleChange = (e) => {\r\n this.setState({\r\n addNoteTitle: e.target.value,\r\n });\r\n };\r\n\r\n addNewNotesFinish = () => {\r\n const noteNew = {\r\n Id: Math.uuid(),\r\n HeaderNote: this.state.addNoteTitle,\r\n IdHorse: this.props.horseId,\r\n IsPrice: 0,\r\n OrderBy: Math.round(new Date().getTime() / 1000),\r\n TextNote: \"\",\r\n };\r\n window.Spinner.show();\r\n window.db.insertNote(\r\n noteNew.Id,\r\n noteNew.IdHorse,\r\n noteNew.HeaderNote,\r\n noteNew.IsPrice,\r\n noteNew.OrderBy,\r\n () => {\r\n window.Spinner.hide();\r\n this.setState({\r\n isAddShow: false,\r\n notes: [...this.state.notes, noteNew],\r\n selectedNoteIndex: this.state.notes.length,\r\n });\r\n this.needDropboxUpdate = true;\r\n }\r\n );\r\n };\r\n\r\n onSaveClick = () => {\r\n this.saveCurrentText(() => {\r\n window.Managers.extention.showHorsePage(this.props.horseId);\r\n });\r\n };\r\n\r\n render() {\r\n const { mainNote, notes, selectedNoteIndex, isAddShow } = this.state;\r\n const { horseId } = this.props;\r\n const horse = window.DataStorage.getAllHorses().find(\r\n (h) => h.id == horseId\r\n );\r\n let noteText = mainNote;\r\n if (selectedNoteIndex != -1) {\r\n noteText = notes[selectedNoteIndex].TextNote;\r\n }\r\n\r\n return (\r\n
\r\n
\r\n \r\n {horse.name}\r\n \r\n
\r\n
\r\n \r\n this.selectNote(-1)}\r\n >\r\n {window.lang.notes}\r\n \r\n {notes.map((note, noteIndex) => (\r\n this.selectNote(noteIndex)}\r\n >\r\n {note.HeaderNote}\r\n this.deleteNote(note)}\r\n />\r\n \r\n ))}\r\n {!isAddShow ? (\r\n \r\n ) : (\r\n <>\r\n \r\n \r\n \r\n )}\r\n
\r\n this.saveCurrentText()}\r\n >\r\n {selectedNoteIndex == -1 ? (\r\n \r\n ) : (\r\n \r\n )}\r\n
\r\n \r\n );\r\n }\r\n}\r\nexport default NotesPage;\r\n","import React, { Component } from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\n\r\nclass LogHorsePricePage extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n logData: \"\",\r\n horse: \"\",\r\n };\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n if (this.props != prevProps) {\r\n this.loadData();\r\n }\r\n }\r\n\r\n componentDidMount = () => {\r\n this.loadData();\r\n };\r\n\r\n loadData = () => {\r\n const { horseId } = this.props;\r\n const horse = window.DataStorage.getAllHorses().find(\r\n (h) => h.id == horseId\r\n );\r\n window.db.getLogPriceByHorse(this.props.horseId, (data) => {\r\n if (data.length) {\r\n let logData = [];\r\n for (let i in data) {\r\n let d = new Date();\r\n d.setTime(Date.parse(data[i][\"DateTime\"]));\r\n logData.push({\r\n Date: d.toLocaleString(),\r\n Email: data[i][\"Email\"] ? data[i][\"Email\"] : \"Updated by server\",\r\n LogData: data[i][\"LogData\"],\r\n });\r\n }\r\n this.setState({\r\n logData: logData,\r\n horse: horse,\r\n });\r\n } else\r\n this.setState({\r\n logData: data,\r\n horse: horse,\r\n });\r\n });\r\n };\r\n\r\n onOkClick = () => {\r\n window.showPage(\"#addHorsePage\");\r\n if (!window.location.href.includes(\"?id=\"))\r\n window.location.href = window.location.href + \"?id=\" + this.props.horseId;\r\n window.Managers.extention.showHorsePrice(this.props.horseId);\r\n };\r\n\r\n render() {\r\n const { logData, horse } = this.state;\r\n return (\r\n
\r\n
\r\n \r\n {horse.name}\r\n \r\n
\r\n
\r\n {logData.length ? (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {logData.map((i) => (\r\n \r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n
DateTimeUserAction
{i.Date}{i.Email}{i.LogData}
\r\n ) : (\r\n <>\r\n )}\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default class LogHorsePrice {\r\n showLogHorsePrice(horseId) {\r\n ReactDOM.render(\r\n ,\r\n document.getElementById(\"logHorsePricePageReact\")\r\n );\r\n }\r\n}\r\n","import React, { Component } from \"react\";\r\nimport \"./PricePage.css\";\r\nimport LogHorsePrice from \"./LogHorsePricePage.js\";\r\n\r\nclass PricePage extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n price: \"\",\r\n notes: null,\r\n selectedNoteIndex: 0,\r\n isAddShow: false,\r\n addNoteTitle: \"\",\r\n inputData: {},\r\n inputDataChanged: false,\r\n inputDataReadOnly: false,\r\n selectedInput: false,\r\n selectedPrice: false,\r\n selectedCostPrice: false,\r\n priceData: \"\",\r\n showPriceData: false,\r\n horseTypePrice: 0,\r\n vatArr: [],\r\n };\r\n }\r\n componentDidMount() {\r\n window.TopMenu.Self.setVisible(false);\r\n this.loadData();\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n if (this.props.time != prevProps.time) {\r\n this.loadData();\r\n }\r\n window.TopMenu.Self.setVisible(false);\r\n }\r\n\r\n loadData() {\r\n const horse = window.DataStorage.getAllHorses().find(\r\n (h) => h.id == this.props.horseId\r\n );\r\n if (horse.Price != null) {\r\n this.setState({\r\n price: horse.Price,\r\n });\r\n }\r\n window.Spinner.show();\r\n window.db.getPriceNotesByHorse(this.props.horseId, (data) => {\r\n window.db.getHorsePricesData(this.props.horseId, (priceData) => {\r\n window.db.getHorseTypePricesData(horse.userid, (horseTypeData) => {\r\n console.log(priceData);\r\n window.Spinner.hide();\r\n let vatArr = [\r\n {\r\n value: \"Købt erhverv uden brugtmoms\",\r\n label: \"Købt erhverv uden brugtmoms\",\r\n },\r\n {\r\n value: \"Købt erhverv brugtvognsordning\",\r\n label: \"Købt erhverv brugtvognsordning\",\r\n },\r\n {\r\n value: \"Købt privat(ikke cvr nr)\",\r\n label: \"Købt privat(ikke cvr nr)\",\r\n },\r\n ];\r\n let index = horseTypeData.findIndex(\r\n (i) => i.HorseTypeId == horse.HorseType\r\n );\r\n if (priceData.length) {\r\n let priceForPotentialDate = 0;\r\n let costPriceActual =\r\n priceData[0].PurchasePrice + priceData[0].CostPriceAccumulated;\r\n if (index != -1) {\r\n let parseDay = this.parseDateStartDay(\r\n priceData[0].PotentialDate\r\n ).formatDesh();\r\n let monthDifference =\r\n new Date(parseDay).getMonth() -\r\n new Date().getMonth() +\r\n 12 *\r\n (new Date(parseDay).getFullYear() - new Date().getFullYear());\r\n if (monthDifference < 0) monthDifference = 0;\r\n priceForPotentialDate =\r\n costPriceActual + monthDifference * horseTypeData[index].Price;\r\n var showPriceData = true;\r\n var horseTypePrice = horseTypeData[index].Price;\r\n } else {\r\n priceForPotentialDate = costPriceActual;\r\n var showPriceData = false;\r\n var horseTypePrice = 0;\r\n }\r\n var price =\r\n \"Salgspris: \" +\r\n priceData[0].SellingPrice.toString()\r\n .replace(\".\", \",\")\r\n .replace(/\\B(?=(?:\\d{3})+(?!\\d))/g, \".\") +\r\n \"\\n\" +\r\n \"Moms: \" +\r\n priceData[0].VAT +\r\n \"\\n\" +\r\n \"Vurdering aktuelt: \" +\r\n priceData[0].CurrentAssessment.toString()\r\n .replace(\".\", \",\")\r\n .replace(/\\B(?=(?:\\d{3})+(?!\\d))/g, \".\") +\r\n \"\\n\" +\r\n \"Kostpris aktuel: \" +\r\n costPriceActual\r\n .toString()\r\n .replace(\".\", \",\")\r\n .replace(/\\B(?=(?:\\d{3})+(?!\\d))/g, \".\") +\r\n \"\\n\" +\r\n \"Potentiel vurdering: \" +\r\n priceData[0].PotentialAssessment.toString()\r\n .replace(\".\", \",\")\r\n .replace(/\\B(?=(?:\\d{3})+(?!\\d))/g, \".\") +\r\n \"\\n\" +\r\n \"\\n\" +\r\n priceData[0].Notes;\r\n var costPriceData =\r\n \"Indkøbspris: \" +\r\n priceData[0].PurchasePrice.toString()\r\n .replace(\".\", \",\")\r\n .replace(/\\B(?=(?:\\d{3})+(?!\\d))/g, \".\") +\r\n \"\\n\\n\" +\r\n \"Kostpris aktuel: \" +\r\n costPriceActual\r\n .toString()\r\n .replace(\".\", \",\")\r\n .replace(/\\B(?=(?:\\d{3})+(?!\\d))/g, \".\") +\r\n \"\\n\" +\r\n \"Vurdering aktuelt: \" +\r\n priceData[0].CurrentAssessment.toString()\r\n .replace(\".\", \",\")\r\n .replace(/\\B(?=(?:\\d{3})+(?!\\d))/g, \".\") +\r\n \"\\n\" +\r\n \"Vurderingsdato: \" +\r\n priceData[0].ValuationDate +\r\n \"\\n\" +\r\n \"Kostpris fremskreven: \" +\r\n priceForPotentialDate\r\n .toString()\r\n .replace(\".\", \",\")\r\n .replace(/\\B(?=(?:\\d{3})+(?!\\d))/g, \".\") +\r\n \"\\n\" +\r\n \"Potentiel vurdering: \" +\r\n priceData[0].PotentialAssessment.toString()\r\n .replace(\".\", \",\")\r\n .replace(/\\B(?=(?:\\d{3})+(?!\\d))/g, \".\") +\r\n \"\\n\" +\r\n \"Potentiel dato: \" +\r\n priceData[0].PotentialDate;\r\n this.setState({\r\n notes: data,\r\n inputData: {\r\n HorseId: this.props.horseId,\r\n SellingPrice: priceData[0].SellingPrice,\r\n PurchasePrice: priceData[0].PurchasePrice,\r\n VAT: priceData[0].VAT,\r\n CurrentAssessment: priceData[0].CurrentAssessment,\r\n ValuationDate: this.parseDateStartDay(\r\n priceData[0].ValuationDate\r\n ).formatDesh(),\r\n Remark: priceData[0].Remark,\r\n PotentialAssessment: priceData[0].PotentialAssessment,\r\n PotentialDate: this.parseDateStartDay(\r\n priceData[0].PotentialDate\r\n ).formatDesh(),\r\n CostPriceActual: priceData[0].CostPriceActual,\r\n CostPriceAccumulated: priceData[0].CostPriceAccumulated,\r\n },\r\n inputDataChanged: false,\r\n inputDataReadOnly: true,\r\n priceData: price,\r\n costPriceData: costPriceData,\r\n showPriceData: showPriceData,\r\n horseTypePrice: horseTypePrice,\r\n vatArr: vatArr,\r\n });\r\n } else {\r\n if (index != -1) var showPriceData = true;\r\n else var showPriceData = false;\r\n\r\n let inputData = {\r\n HorseId: this.props.horseId,\r\n SellingPrice: \"\",\r\n PurchasePrice: \"\",\r\n VAT: \"\",\r\n CurrentAssessment: \"\",\r\n ValuationDate: \"\",\r\n Remark: \"\",\r\n PotentialAssessment: \"\",\r\n PotentialDate: \"\",\r\n CostPriceActual: \"\",\r\n CostPriceAccumulated: \"\",\r\n };\r\n var price =\r\n \"Salgspris: \\n Moms: \\n\" +\r\n \"Vurdering aktuelt: \\n Kostpris aktuel: \\n\" +\r\n \"Potentiel vurdering: \\n\";\r\n var costPriceData =\r\n \"Indkøbspris: \\n\\n Kostpris aktuel: \\n\" +\r\n \"Vurdering aktuelt: \\n Vurderingsdato: \\n\" +\r\n \"Kostpris fremskreven: \\n Potentiel vurdering: \\n\" +\r\n \"Potentiel dato: \\n\";\r\n this.setState({\r\n notes: data,\r\n inputData: inputData,\r\n inputDataChanged: false,\r\n inputDataReadOnly: false,\r\n priceData: price,\r\n costPriceData: costPriceData,\r\n showPriceData: showPriceData,\r\n horseTypePrice: index != -1 ? horseTypeData[index].Price : 0,\r\n vatArr: vatArr,\r\n });\r\n }\r\n });\r\n });\r\n });\r\n }\r\n\r\n parseDateStartDay(dateStr) {\r\n if (dateStr == null || dateStr == \"\") return new Date(\"1900-01-01\");\r\n\r\n let arr = dateStr.split(\"-\");\r\n return new Date(`${arr[2]}-${arr[1]}-${arr[0]}`);\r\n }\r\n\r\n onPriceChange = (e) => {\r\n this.setState({\r\n price: e.target.value,\r\n });\r\n };\r\n\r\n onNoteTextChange = (e) => {\r\n let notes = [...this.state.notes];\r\n notes[this.state.selectedNoteIndex].TextNote = e.target.value;\r\n notes[this.state.selectedNoteIndex].isChanged = true;\r\n this.setState({\r\n notes: notes,\r\n });\r\n };\r\n\r\n selectNote = (noteIndex) => {\r\n this.setState({\r\n selectedNoteIndex: noteIndex,\r\n selectedInput: false,\r\n selectedPrice: false,\r\n selectedCostPrice: false,\r\n });\r\n if (this.state.showPriceData) this.saveInputData();\r\n };\r\n\r\n saveCurrentText = (callback) => {\r\n window.db.updatePriceByHorse(this.props.horseId, this.state.price, () => {\r\n let horse = window.DataStorage.getAllHorses().find(\r\n (h) => h.id == this.props.horseId\r\n );\r\n horse.Price = this.state.price;\r\n });\r\n const note = this.state.notes[this.state.selectedNoteIndex];\r\n if (note) {\r\n if (note.isChanged) {\r\n window.Spinner.show();\r\n window.db.updateNoteHorse(note.Id, note.TextNote, () => {\r\n window.Spinner.hide();\r\n if (callback) callback();\r\n });\r\n } else {\r\n if (callback) callback();\r\n }\r\n }\r\n if (callback) callback();\r\n };\r\n\r\n deleteNote = (note) => {\r\n navigator.notification.confirm(\r\n \"Do you want delete note?\",\r\n (buttonIndex) => {\r\n if (buttonIndex == 1) {\r\n window.Spinner.show();\r\n window.db.deleteNote(note.Id, () => {\r\n window.Spinner.hide();\r\n this.setState({\r\n notes: this.state.notes.filter((n) => n.Id != note.Id),\r\n selectedNoteIndex: 0,\r\n });\r\n });\r\n }\r\n }\r\n );\r\n };\r\n\r\n addNewNotesStart = () => {\r\n this.setState({\r\n isAddShow: true,\r\n addNoteTitle: \"\",\r\n });\r\n };\r\n\r\n onAddNoteTitleChange = (e) => {\r\n this.setState({\r\n addNoteTitle: e.target.value,\r\n });\r\n };\r\n\r\n addNewNotesFinish = () => {\r\n const noteNew = {\r\n Id: Math.uuid(),\r\n HeaderNote: this.state.addNoteTitle,\r\n IdHorse: this.props.horseId,\r\n IsPrice: 1,\r\n OrderBy: Math.round(new Date().getTime() / 1000),\r\n TextNote: \"\",\r\n };\r\n window.Spinner.show();\r\n window.db.insertNote(\r\n noteNew.Id,\r\n noteNew.IdHorse,\r\n noteNew.HeaderNote,\r\n noteNew.IsPrice,\r\n noteNew.OrderBy,\r\n () => {\r\n window.Spinner.hide();\r\n this.setState({\r\n isAddShow: false,\r\n notes: [...this.state.notes, noteNew],\r\n selectedNoteIndex: this.state.notes.length,\r\n });\r\n }\r\n );\r\n };\r\n\r\n onSaveClick = () => {\r\n if (this.state.showPriceData) this.saveInputData();\r\n this.saveCurrentText(() => {\r\n window.Managers.extention.showHorsePage(this.props.horseId);\r\n });\r\n };\r\n\r\n createDefaultNotes = () => {\r\n const firstDefaultNote = {\r\n Id: Math.uuid(),\r\n HeaderNote: window.lang.priceFirstDefaultNote,\r\n IdHorse: this.props.horseId,\r\n IsPrice: 1,\r\n OrderBy: Math.round(new Date().getTime() / 1000),\r\n TextNote: \"\",\r\n };\r\n window.db.insertNote(\r\n firstDefaultNote.Id,\r\n firstDefaultNote.IdHorse,\r\n firstDefaultNote.HeaderNote,\r\n firstDefaultNote.IsPrice,\r\n firstDefaultNote.OrderBy,\r\n () => {\r\n this.setState({\r\n notes: [...this.state.notes, firstDefaultNote],\r\n });\r\n }\r\n );\r\n const secondDefaultNote = {\r\n Id: Math.uuid(),\r\n HeaderNote: window.lang.priceSecondDefaultNote,\r\n IdHorse: this.props.horseId,\r\n IsPrice: 1,\r\n OrderBy: Math.round(new Date().getTime() / 1000 + 1),\r\n TextNote: \"\",\r\n };\r\n window.db.insertNote(\r\n secondDefaultNote.Id,\r\n secondDefaultNote.IdHorse,\r\n secondDefaultNote.HeaderNote,\r\n secondDefaultNote.IsPrice,\r\n secondDefaultNote.OrderBy,\r\n () => {\r\n this.setState({\r\n notes: [...this.state.notes, secondDefaultNote],\r\n });\r\n }\r\n );\r\n };\r\n\r\n onInputButtonClick = () => {\r\n this.setState({\r\n selectedInput: true,\r\n selectedNoteIndex: -1,\r\n selectedPrice: false,\r\n selectedCostPrice: false,\r\n });\r\n };\r\n\r\n onInputDataChange = (name, value) => {\r\n let inputData = this.state.inputData;\r\n inputData[name] = value;\r\n this.setState({\r\n inputData: inputData,\r\n inputDataChanged: true,\r\n });\r\n };\r\n\r\n saveInputData = () => {\r\n if (!this.state.inputDataChanged) return;\r\n\r\n let inputData = JSON.parse(JSON.stringify(this.state.inputData));\r\n inputData.ValuationDate = !isNaN(inputData.ValuationDate)\r\n ? new Date().formatDeshStartDay()\r\n : new Date(inputData.ValuationDate).formatDeshStartDay();\r\n inputData.PotentialDate = !isNaN(inputData.PotentialDate)\r\n ? new Date().formatDeshStartDay()\r\n : new Date(inputData.PotentialDate).formatDeshStartDay();\r\n inputData.SellingPrice = inputData.SellingPrice\r\n ? parseFloat(inputData.SellingPrice.toString().replace(\",\", \".\"))\r\n : 0;\r\n inputData.PurchasePrice = inputData.PurchasePrice\r\n ? parseFloat(inputData.PurchasePrice.toString().replace(\",\", \".\"))\r\n : 0;\r\n inputData.CurrentAssessment = inputData.CurrentAssessment\r\n ? parseFloat(inputData.CurrentAssessment.toString().replace(\",\", \".\"))\r\n : 0;\r\n inputData.PotentialAssessment = inputData.PotentialAssessment\r\n ? parseFloat(inputData.PotentialAssessment.toString().replace(\",\", \".\"))\r\n : 0;\r\n inputData.CostPriceActual = inputData.CostPriceActual\r\n ? parseFloat(inputData.CostPriceActual.toString().replace(\",\", \".\"))\r\n : parseFloat(inputData.PurchasePrice.toString().replace(\",\", \".\")); // + parseInt(this.state.horseTypePrice);\r\n inputData.VAT = inputData.VAT ? inputData.VAT : this.state.vatArr[0].label;\r\n inputData.CostPriceAccumulated = inputData.CostPriceAccumulated\r\n ? parseFloat(inputData.CostPriceAccumulated.toString().replace(\",\", \".\"))\r\n : 0;\r\n window.DataGate.insertOrUpdateHorseInputData(inputData, window.myid, () => {\r\n this.loadData();\r\n });\r\n };\r\n\r\n onPriceButtonClick = () => {\r\n this.setState({\r\n selectedInput: false,\r\n selectedNoteIndex: -1,\r\n selectedPrice: true,\r\n selectedCostPrice: false,\r\n });\r\n if (this.state.showPriceData) this.saveInputData();\r\n };\r\n\r\n onCostPriceButtonClick = () => {\r\n this.setState({\r\n selectedInput: false,\r\n selectedNoteIndex: -1,\r\n selectedPrice: false,\r\n selectedCostPrice: true,\r\n });\r\n if (this.state.showPriceData) this.saveInputData();\r\n };\r\n\r\n onLogButtonClick = () => {\r\n window.showPage(\"#logHorsePricePage\");\r\n let logHorsePrice = new LogHorsePrice();\r\n logHorsePrice.showLogHorsePrice(this.props.horseId);\r\n };\r\n\r\n onDeleteButtonClick = () => {\r\n window.DataGate.deleteHorseInputData(this.props.horseId, () => {\r\n this.loadData();\r\n window.showPage(\"#addHorsePage\");\r\n window.Managers.extention.showHorsePrice(this.props.horseId);\r\n });\r\n };\r\n\r\n render() {\r\n const { horseId } = this.props;\r\n const horse = window.DataStorage.getAllHorses().find(\r\n (h) => h.id == horseId\r\n );\r\n const {\r\n notes,\r\n selectedNoteIndex,\r\n isAddShow,\r\n inputData,\r\n selectedInput,\r\n selectedPrice,\r\n priceData,\r\n selectedCostPrice,\r\n costPriceData,\r\n showPriceData,\r\n vatArr,\r\n } = this.state;\r\n let noteText = \"\";\r\n if (notes) {\r\n if (notes.length) {\r\n if (notes[0].TextNote) noteText = notes[0].TextNote;\r\n else noteText = \"\";\r\n } else {\r\n this.createDefaultNotes();\r\n }\r\n if (selectedNoteIndex != 0 && selectedNoteIndex != -1) {\r\n if (notes[selectedNoteIndex].TextNote)\r\n noteText = notes[selectedNoteIndex].TextNote;\r\n else noteText = \"\";\r\n }\r\n }\r\n\r\n return (\r\n
\r\n
\r\n \r\n {horse.name}\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n {notes ? (\r\n notes.map((note, noteIndex) => (\r\n this.selectNote(noteIndex)}\r\n >\r\n {note.HeaderNote}\r\n this.deleteNote(note)}\r\n />\r\n \r\n ))\r\n ) : (\r\n <>\r\n )}\r\n {!isAddShow ? (\r\n \r\n ) : (\r\n <>\r\n \r\n \r\n \r\n )}\r\n {showPriceData ? (\r\n \r\n Price\r\n \r\n ) : (\r\n <>\r\n )}\r\n {showPriceData ? (\r\n \r\n Cost price\r\n \r\n ) : (\r\n <>\r\n )}\r\n {showPriceData ? (\r\n \r\n Input\r\n \r\n ) : (\r\n <>\r\n )}\r\n
\r\n {selectedInput ? (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Salgspris
\r\n {\r\n this.onInputDataChange(\r\n \"SellingPrice\",\r\n e.target.value.toString().replaceAll(/\\./g, \"\")\r\n );\r\n }}\r\n />\r\n
Indkøbspris
\r\n {inputData.PurchasePrice && this.state.inputDataReadOnly ? (\r\n \r\n ) : (\r\n {\r\n this.onInputDataChange(\r\n \"PurchasePrice\",\r\n e.target.value.toString().replaceAll(/\\./g, \"\")\r\n );\r\n }}\r\n />\r\n )}\r\n
Accumulered kostpris
\r\n {inputData.CostPriceAccumulated &&\r\n this.state.inputDataReadOnly ? (\r\n \r\n ) : (\r\n {\r\n this.onInputDataChange(\r\n \"CostPriceAccumulated\",\r\n e.target.value.toString().replaceAll(/\\./g, \"\")\r\n );\r\n }}\r\n />\r\n )}\r\n
Moms
\r\n {inputData.VAT ? (\r\n vatArr.length ? (\r\n \r\n {vatArr.map((j) => (\r\n \r\n ))}\r\n \r\n ) : (\r\n <>\r\n )\r\n ) : vatArr.length ? (\r\n {\r\n this.onInputDataChange(\"VAT\", e.target.value);\r\n }}\r\n >\r\n {vatArr.map((j) => (\r\n \r\n ))}\r\n \r\n ) : (\r\n <>\r\n )}\r\n
Vurdering aktuelt
\r\n {\r\n this.onInputDataChange(\r\n \"CurrentAssessment\",\r\n e.target.value.toString().replaceAll(/\\./g, \"\")\r\n );\r\n }}\r\n />\r\n
Vurderingsdato
\r\n {\r\n this.onInputDataChange(\"ValuationDate\", e.target.value);\r\n }}\r\n />\r\n
Bemærkning
\r\n {\r\n this.onInputDataChange(\"Remark\", e.target.value);\r\n }}\r\n />\r\n
Potentiel vurdering
\r\n {\r\n this.onInputDataChange(\r\n \"PotentialAssessment\",\r\n e.target.value.toString().replaceAll(/\\./g, \"\")\r\n );\r\n }}\r\n />\r\n
Potentiel dato
\r\n {\r\n this.onInputDataChange(\"PotentialDate\", e.target.value);\r\n }}\r\n />\r\n
\r\n \r\n Delete\r\n \r\n \r\n \r\n Log\r\n \r\n
\r\n ) : selectedPrice ? (\r\n \r\n
\r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default ResultsPage;\r\n","import React, { Component } from \"react\";\r\nimport HorseGallery from \"../.././Multimedia/HorseGallery\";\r\n\r\nclass EquipmentPage extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n equipment: \"\",\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n window.$(\"#bottomMenu\").hide();\r\n window.TopMenu.Self.setVisible(false);\r\n this.loadData();\r\n }\r\n\r\n loadData = () => {\r\n window.db.getNoteByHorse(this.props.horseId, (data) => {\r\n this.setState({\r\n equipment: data[0].Equipment,\r\n });\r\n });\r\n };\r\n\r\n onEquipmentChange = (e) => {\r\n this.setState({\r\n equipment: e.target.value,\r\n });\r\n };\r\n\r\n saveCurrentText = (callback) => {\r\n const equipmentStr =\r\n this.state.equipment != null ? this.state.equipment : \"\";\r\n window.DataStorage.getAllHorses().find(\r\n (h) => h.id == this.props.horseId\r\n ).Equipment = equipmentStr;\r\n window.db.updateEquipmentByHorse(this.props.horseId, equipmentStr);\r\n if (callback) callback();\r\n };\r\n\r\n onSaveClick = () => {\r\n this.saveCurrentText(() => {\r\n window.training.refresh();\r\n window.Managers.extention.showHorsePage(this.props.horseId);\r\n window.$(\"#bottomMenu\").show();\r\n });\r\n };\r\n\r\n render() {\r\n const { equipment } = this.state;\r\n let horse = window.DataStorage.getAllHorses().find(\r\n (h) => h.id == this.props.horseId\r\n );\r\n return (\r\n
\r\n
\r\n \r\n {window.lang.equipment}\r\n \r\n {horse.name}\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default EquipmentPage;\r\n","import React, { Component } from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport './VaccinationNextPopup.css';\r\n\r\nclass VaccinationNextPopupWindow extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n vaccinationData: []\r\n }\r\n }\r\n\r\n componentDidMount = () => {\r\n this.loadData();\r\n }\r\n\r\n loadData = () => {\r\n let horseArr = [...window.DataStorage.myHorseArray, ...window.DataStorage.notMyHorseArray];\r\n let reportData = [];\r\n for (let i = 0; i < horseArr.length; i++) {\r\n window.db.getVaccinationLatest(horseArr[i][\"id\"], (rows) => {\r\n if (rows.length == 0) {\r\n return;\r\n }\r\n let lastItem = rows.item(0);\r\n let type = window.VaccinationPage.types[lastItem[\"vtype\"] - 1];\r\n let nextType = window.VaccinationPage.types[type.NextIndex];\r\n let minMonths = nextType.MinMonth;\r\n let maxMonths = nextType.MaxMonth;\r\n let minDays = nextType.MinDay;\r\n let maxDays = nextType.MaxDay;\r\n let lastDate = Date.getNewDate(lastItem[\"vdate\"]);\r\n let minDate = new Date(lastDate);\r\n let maxDate = new Date(lastDate);\r\n\r\n minDate.setMonth(minDate.getMonth() + minMonths);\r\n minDate = minDate.addDays(minDays);\r\n maxDate.setMonth(maxDate.getMonth() + maxMonths);\r\n maxDate = maxDate.addDays(maxDays);\r\n let daysLeft = Date.daysBetween(maxDate, new Date());\r\n\r\n reportData.push({\r\n horse: horseArr[i][\"name\"], vaccinationType: nextType.Name, lastVaccination: lastDate.formatDeshStartDay(), nextVaccination: maxDate.formatDeshStartDay(),\r\n daysLeft: daysLeft, vaccinationAllow: Date.daysBetween(new Date(), minDate) < 0 ? window.lang.vacNotAllowed : ''\r\n });\r\n reportData = reportData.sort(this.sortVacinationArr);\r\n this.setState({\r\n vaccinationData: reportData\r\n })\r\n });\r\n }\r\n }\r\n\r\n sortVacinationArr = (a, b) => {\r\n if (a.daysLeft < b.daysLeft)\r\n return -1;\r\n if (a.daysLeft > b.daysLeft)\r\n return 1;\r\n return 0;\r\n }\r\n\r\n onCancelClick = () => {\r\n ReactDOM.unmountComponentAtNode(document.getElementById('VaccinationNextPopup'));\r\n }\r\n\r\n render() {\r\n const { vaccinationData } = this.state;\r\n let height = window.$(window).height();\r\n return (\r\n\r\n
\r\n \r\n \r\n
\r\n {vaccinationData.length ?\r\n vaccinationData.map(i => (\r\n
\r\n {i.horse}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {window.lang.vaccinationType}\r\n \r\n Last Vaccination Date\r\n \r\n {window.lang.nextVaccination}\r\n
\r\n {i.vaccinationType}\r\n \r\n {i.lastVaccination}\r\n 0 ? { color: 'black' } : { color: 'red' }}>\r\n {i.nextVaccination}\r\n
0 ? { color: 'black' } : { color: 'red' }}>\r\n {window.lang.daysLeft + ': ' + i.daysLeft}\r\n \r\n {i.vaccinationAllow}\r\n
\r\n
\r\n ))\r\n : <>\r\n }\r\n
\r\n
\r\n )\r\n }\r\n}\r\n\r\nexport default class VaccinationNextPopup {\r\n showVaccinationNextPopup() {\r\n ReactDOM.render(\r\n ,\r\n document.getElementById('VaccinationNextPopup')\r\n )\r\n }\r\n}","import React, { Component } from \"react\";\r\nimport VaccinationPopup from \"../../Home/VaccinationView/VaccinationPopup\";\r\nimport \"./VaccinationPage.css\";\r\nimport VaccinationNextPopup from \"./VaccinationNextPopup\";\r\nimport HorseGallery from \"../.././Multimedia/HorseGallery\";\r\n\r\nclass VaccinationPage extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n vaccinationData: [],\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n window.$(\"#bottomMenu\").hide();\r\n window.TopMenu.Self.setVisible(false);\r\n this.loadData();\r\n new window.dropboxData(this.props.horseId, \"Vaccination\");\r\n }\r\n\r\n loadData = () => {\r\n window.db.getVaccination(this.props.horseId, (data) => {\r\n let vaccinationData = [];\r\n for (let i = 0; i < data.length; i++) {\r\n let item = data[i];\r\n let type = window.VaccinationPage.types[item[\"vtype\"] - 1];\r\n let minMonths = type.MinMonth;\r\n let maxMonths = type.MaxMonth;\r\n let minDays = type.MinDay;\r\n let maxDays = type.MaxDay;\r\n let lastDate = Date.getNewDate(item[\"vdate\"]);\r\n let minDate = new Date(lastDate);\r\n let maxDate = new Date(lastDate);\r\n\r\n minDate.setMonth(minDate.getMonth() + minMonths);\r\n minDate = minDate.addDays(minDays);\r\n maxDate.setMonth(maxDate.getMonth() + maxMonths);\r\n maxDate = maxDate.addDays(maxDays);\r\n vaccinationData.push({\r\n id: data[i].id,\r\n vdate: lastDate.formatDesh(),\r\n nextVaccination: maxDate.formatDesh(),\r\n type: type.Name,\r\n horseid: data[i].horseid,\r\n vtype: type,\r\n });\r\n }\r\n this.setState({\r\n vaccinationData: vaccinationData,\r\n });\r\n });\r\n };\r\n\r\n onEditClick = (item) => {\r\n let options = {\r\n horseId: this.props.horseId,\r\n date: new Date(item.vdate),\r\n showHorseList: false,\r\n };\r\n let vaccinationPopup = new VaccinationPopup();\r\n vaccinationPopup.showVaccinationPopup(options, item, () => {\r\n this.loadData();\r\n });\r\n };\r\n\r\n onDeleteClick = (item) => {\r\n window.db.setVaccinationUpdate(item.id, \"d\");\r\n window.DataStorage.deleteTrainingById(item.id);\r\n window.training.refreshLayout();\r\n\r\n window.DataGate.deleteTrainings(\r\n item.id,\r\n \"d\",\r\n item.horseid,\r\n item.vdate,\r\n (code) => {\r\n if (code == window.DataGate.CODE_OK) {\r\n window.training.refresh({ showSpinner: false });\r\n this.loadData();\r\n }\r\n }\r\n );\r\n };\r\n\r\n onNewVaccinationButtonClick = () => {\r\n window.db.getVaccinationLatest(this.props.horseId, (rows) => {\r\n let vtype = null;\r\n if (rows.length != 0) {\r\n var lastItem = rows.item(0);\r\n var nextTypeIndex =\r\n window.VaccinationPage.types[lastItem[\"vtype\"] - 1].NextIndex;\r\n vtype = window.VaccinationPage.types[nextTypeIndex];\r\n } else {\r\n vtype = window.VaccinationPage.types[0];\r\n }\r\n let options = {\r\n horseId: this.props.horseId,\r\n date: new Date(),\r\n vtype: vtype,\r\n };\r\n let vaccinationPopup = new VaccinationPopup();\r\n vaccinationPopup.showVaccinationPopup(options, null, () => {\r\n this.loadData();\r\n });\r\n });\r\n };\r\n\r\n onAllVaccinationClick = () => {\r\n let vaccinationNextPopup = new VaccinationNextPopup();\r\n vaccinationNextPopup.showVaccinationNextPopup();\r\n };\r\n\r\n onSaveClick = () => {\r\n window.Managers.extention.showHorsePage(this.props.horseId);\r\n window.$(\"#bottomMenu\").show();\r\n };\r\n\r\n render() {\r\n const { vaccinationData } = this.state;\r\n let horse = window.DataStorage.getAllHorses().find(\r\n (h) => h.id == this.props.horseId\r\n );\r\n\r\n return (\r\n
\r\n
\r\n \r\n {window.lang.vaccination}\r\n \r\n {horse.name}\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {vaccinationData.length ? (\r\n vaccinationData.map((currentElement, index) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ))\r\n ) : (\r\n <>\r\n )}\r\n \r\n
Type{window.lang.date}{window.lang.nextVaccinationShort}
{currentElement.type}{currentElement.vdate}\r\n {index == vaccinationData.length - 1\r\n ? currentElement.nextVaccination\r\n : \"\"}\r\n \r\n this.onEditClick(currentElement)}\r\n />\r\n \r\n this.onDeleteClick(currentElement)}\r\n />\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n {window.lang.newVaccination}\r\n \r\n \r\n \r\n {window.lang.allVacinations}\r\n \r\n
\r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default VaccinationPage;\r\n","import React, { Component } from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport './FarrierPopup.css';\r\n\r\nclass FarrierWindow extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.farrierTrainingTypes = [];\r\n this.state = {\r\n farrierData: []\r\n }\r\n }\r\n\r\n componentDidMount = () => {\r\n this.loadData();\r\n }\r\n\r\n loadData = () => {\r\n window.Spinner.show();\r\n window.db.getFarrierDataForAllHorses(window.myid, (rows) => {\r\n let reportData = [];\r\n rows.filter(item => {\r\n let curr = reportData.find(i => item.horseid == i.horseid);\r\n\r\n if (!curr) {\r\n let isHighPriority = item.FarrierTypeName == window.lang.shoeType4;\r\n var days = null;\r\n if (isHighPriority) {\r\n days = Date.daysBetween(new Date(), Date.getNewDate(item.starttime));\r\n let daysStr = (days < 7) ? (days + \" \" + window.lang.days) : ((days / 7).toFixed(1) + \" \" + window.lang.week);\r\n var msgStr = window.lang.shoeDaysSinceLost + ': ' + daysStr;\r\n } else {\r\n days = Date.daysBetween(new Date(), Date.getNewDate(item.starttime));\r\n let daysStr = (days < 7) ? (days + \" \" + window.lang.days) : ((days / 7).toFixed(1) + \" \" + window.lang.week);\r\n var msgStr = window.lang.shoeDaysSinceLast + ': ' + daysStr;\r\n }\r\n reportData.push({ horseid: item.horseid, horse: item.Name, daysSinceLast: msgStr, days: days, isHighPriority: isHighPriority });\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n });\r\n reportData = this.sortFarrierArrByPriority(reportData);\r\n this.setState({\r\n farrierData: reportData\r\n });\r\n window.Spinner.hide();\r\n });\r\n }\r\n\r\n sortFarrierArrByPriority = (data) => {\r\n let lowPriority = [];\r\n let highPriority = [];\r\n for (let i in data) {\r\n if (data[i].isHighPriority)\r\n highPriority.push(data[i]);\r\n else\r\n lowPriority.push(data[i]);\r\n }\r\n lowPriority = lowPriority.sort(this.sortFarrierArrByDays);\r\n highPriority = highPriority.sort(this.sortFarrierArrByDays);\r\n return [...highPriority, ...lowPriority];\r\n }\r\n\r\n sortFarrierArrByDays = (a, b) => {\r\n if (a.days > b.days)\r\n return -1;\r\n if (a.days < b.days)\r\n return 1;\r\n return 0;\r\n }\r\n\r\n onCancelClick = () => {\r\n ReactDOM.unmountComponentAtNode(document.getElementById('allFarrierPopup'));\r\n }\r\n\r\n render() {\r\n const { farrierData } = this.state;\r\n let height = window.$(window).height();\r\n\r\n return (\r\n
\r\n \r\n \r\n
\r\n
\r\n {farrierData.length ?\r\n farrierData.map(i => (\r\n
\r\n {i.horse}\r\n
\r\n {i.daysSinceLast}\r\n
\r\n ))\r\n : <>\r\n }\r\n
\r\n
\r\n
\r\n )\r\n }\r\n}\r\n\r\nexport default class FarrierAllPopup {\r\n showFarrierAllPopup() {\r\n ReactDOM.render(\r\n ,\r\n document.getElementById('allFarrierPopup')\r\n )\r\n }\r\n}","import React, { Component } from \"react\";\r\nimport \"./FarrierPage.css\";\r\nimport ToggleView from \"../../Controls/ToggleView/ToggleView\";\r\nimport TrainingPopup from \"../../TrainingPopup/TrainingPopup\";\r\nimport FarrierAllPopup from \"./FarrierPopup\";\r\nimport HorseGallery from \"../.././Multimedia/HorseGallery\";\r\n\r\nclass FarrierPage extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.farrierTrainingTypes = [];\r\n this.reminderNames = [\r\n window.lang.reminder_No,\r\n window.lang.reminder_SameDay,\r\n window.lang.reminder_1_dayBefore,\r\n window.lang.reminder_2_dayBefore,\r\n window.lang.reminder_3_dayBefore,\r\n window.lang.reminder_4_dayBefore,\r\n window.lang.reminder_5_dayBefore,\r\n window.lang.reminder_6_dayBefore,\r\n window.lang.reminder_7_dayBefore,\r\n ];\r\n this.state = {\r\n farrierData: [],\r\n horse: \"\",\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n window.$(\"#bottomMenu\").hide();\r\n window.TopMenu.Self.setVisible(false);\r\n this.loadData();\r\n }\r\n\r\n loadData = () => {\r\n let horse = window.DataStorage.getAllHorses().find(\r\n (h) => h.id == this.props.horseId\r\n );\r\n this.getFarrierTypes(horse.userid, (fTrainingTypes) => {\r\n this.farrierTrainingTypes = fTrainingTypes;\r\n window.db.getFarrierTrainingsByHorse(\r\n this.props.horseId,\r\n window.myid,\r\n (farriers) => {\r\n this.setState({\r\n farrierData: farriers,\r\n horse: horse,\r\n });\r\n }\r\n );\r\n });\r\n };\r\n\r\n getFarrierTypes = (userId, callback) => {\r\n window.db.getFarrierTypes(userId, (ftypes) => {\r\n if (ftypes.length == 0) {\r\n this.insertDefaultTypes(userId, () => {\r\n callback(ftypes);\r\n });\r\n return;\r\n }\r\n callback(ftypes);\r\n });\r\n };\r\n\r\n insertDefaultTypes = (userId, callback) => {\r\n window.db.insertFarrierType(\r\n { UserId: userId, Name: window.lang.shoeType1, OrderC: 1 },\r\n () => {\r\n window.db.insertFarrierType(\r\n { UserId: userId, Name: window.lang.shoeType2, OrderC: 2 },\r\n () => {\r\n window.db.insertFarrierType(\r\n { UserId: userId, Name: window.lang.shoeType3, OrderC: 3 },\r\n () => {\r\n window.db.insertFarrierType(\r\n { UserId: userId, Name: window.lang.shoeType4, OrderC: 4 },\r\n () => {\r\n callback();\r\n }\r\n );\r\n }\r\n );\r\n }\r\n );\r\n }\r\n );\r\n };\r\n\r\n getFarrierTypeName = (farrierTypeId) => {\r\n for (var i = 0; i < this.farrierTrainingTypes.length; i++) {\r\n if (this.farrierTrainingTypes[i][\"Id\"] == farrierTypeId) {\r\n return this.farrierTrainingTypes[i][\"Name\"];\r\n }\r\n }\r\n return this.farrierTrainingTypes[0][\"Name\"];\r\n };\r\n\r\n addNewTrainingPopup = (isDone) => {\r\n let trainingTypes = window.DataStorage.trainTypes.filter(\r\n (i) => i.owner == this.state.horse.userid\r\n );\r\n let farTraining = trainingTypes.filter((i) => i.IsFarrier == true);\r\n var date = new Date();\r\n if (!isDone) date = new Date(date.setDate(date.getDate() + 35));\r\n let currentTrainerId = window.DataStorage.getAllHorses().find(\r\n (i) => i.id == this.state.horse.id\r\n ).trainer;\r\n if (!currentTrainerId)\r\n var currentTrainer = window.DataStorage.allUsers.find(\r\n (i) => i.Id == window.myid\r\n );\r\n else\r\n var currentTrainer = window.DataStorage.allUsers.find(\r\n (i) => i.Id == currentTrainerId\r\n );\r\n let options = {\r\n horseId: this.state.horse.id,\r\n trainingType: farTraining[0]?.id || \"\",\r\n date: date,\r\n isDone: isDone,\r\n trainerId: currentTrainer?.Id,\r\n trainerName: currentTrainer?.Name,\r\n };\r\n let trainingPopup = new TrainingPopup();\r\n trainingPopup.showPopup(options, null, () => {\r\n this.loadData();\r\n });\r\n };\r\n\r\n onDoneToggle = (item) => {\r\n item.color = item.color == \"green\" ? \"red\" : \"green\";\r\n let farrierData = [...this.state.farrierData];\r\n let index = farrierData.findIndex((t) => t.id == item.id);\r\n farrierData[index] = item;\r\n this.setState({\r\n farrierData: farrierData,\r\n });\r\n\r\n let trainingItem = window.DataStorage.addTrainingArr.find(\r\n (d) => d.id == item.id\r\n );\r\n if (trainingItem == null) {\r\n trainingItem = farrierData.find((d) => d.id == item.id);\r\n }\r\n trainingItem.color = item.color;\r\n window.DataStorage.updateTrainingBackground(trainingItem);\r\n };\r\n\r\n onEditButtonClick = (id) => {\r\n let trainingItem = window.DataStorage.addTrainingArr.find(\r\n (d) => d.id == id\r\n );\r\n if (trainingItem == null) {\r\n trainingItem = this.state.farrierData.find((d) => d.id == id);\r\n }\r\n var currentTrainer = window.DataStorage.allUsers.find(\r\n (i) => i.Id == trainingItem.trainer\r\n );\r\n const options = {\r\n horseId: trainingItem.horseid,\r\n trainingType: trainingItem.type,\r\n date: new Date(trainingItem.starttime),\r\n trainerId: currentTrainer.Id,\r\n trainerName: currentTrainer.Name,\r\n };\r\n new window.TrainingPopup().showPopup(options, trainingItem, () => {\r\n this.loadData();\r\n });\r\n return;\r\n };\r\n\r\n onAllFarrierButtonClick = () => {\r\n let farrierAllPopup = new FarrierAllPopup();\r\n farrierAllPopup.showFarrierAllPopup();\r\n };\r\n\r\n onDeleteButtonClick = (id) => {\r\n window.db.deleteTraining(id);\r\n this.loadData();\r\n };\r\n\r\n onOkClick = () => {\r\n window.Managers.extention.showHorsePage(this.props.horseId);\r\n window.$(\"#bottomMenu\").show();\r\n };\r\n\r\n render() {\r\n const { farrierData } = this.state;\r\n let horse = window.DataStorage.getAllHorses().find(\r\n (h) => h.id == this.props.horseId\r\n );\r\n\r\n return (\r\n
\r\n
\r\n \r\n {window.lang.shoes}\r\n \r\n {horse.name}\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n this.addNewTrainingPopup(true)}\r\n >\r\n {\" \"}\r\n {window.lang.shoeNewFarrier}\r\n \r\n \r\n this.addNewTrainingPopup(false)}\r\n >\r\n {window.lang.planFarrier}\r\n \r\n \r\n \r\n {\" \"}\r\n {window.lang.farrierView}\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {farrierData.length ? (\r\n farrierData.map((i) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ))\r\n ) : (\r\n <>\r\n )}\r\n \r\n
Done {window.lang.planedFarrier}{window.lang.shoeType}Notification{window.lang.remark}
\r\n this.onDoneToggle(i)}\r\n />\r\n {i.starttime}{this.getFarrierTypeName(i.FarrierType)}{this.reminderNames[i.ReminderType]}{i.remark}\r\n this.onEditButtonClick(i.id)}\r\n />\r\n this.onDeleteButtonClick(i.id)}\r\n />\r\n
\r\n \r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default FarrierPage;\r\n","import React, { Component } from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport DatePicker from \"react-datepicker\";\r\nimport \"./NextTeethCheckPopup.css\";\r\n\r\nclass NextTeethCheckPopupWindow extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n firstDate: '',\r\n secondDate: ''\r\n };\r\n }\r\n\r\n componentDidMount = () => {\r\n this.loadData();\r\n }\r\n\r\n loadData() {\r\n let now = new Date();\r\n let next = new Date();\r\n next.setFullYear(now.getFullYear() + 1);\r\n this.setState({\r\n firstDate: now,\r\n secondDate: next\r\n })\r\n }\r\n\r\n onCancelClick = () => {\r\n ReactDOM.unmountComponentAtNode(document.getElementById('nextTeethCheckPopup'));\r\n }\r\n\r\n firstDateChange = (firstDate) => {\r\n let date = new Date(JSON.parse(JSON.stringify(firstDate)));\r\n this.setState({\r\n firstDate: date\r\n });\r\n };\r\n\r\n secondDateChange = (secondDate) => {\r\n let date = new Date(JSON.parse(JSON.stringify(secondDate)));\r\n this.setState({\r\n secondDate: date\r\n });\r\n }\r\n\r\n onAddButtonClick = () => {\r\n window.Spinner.show();\r\n let item = {\r\n Id: Math.uuid(),\r\n HorseId: this.props.horseId,\r\n TDateFirst: this.state.firstDate.formatDesh(),\r\n TDateSecond: this.state.secondDate.formatDesh(),\r\n U: 'u',\r\n SyncTime: -1\r\n };\r\n window.db.insertOrUpdateTeeth(item, () => {\r\n window.Spinner.hide();\r\n this.onCancelClick();\r\n this.props.callback();\r\n });\r\n }\r\n\r\n render() {\r\n const { firstDate, secondDate } = this.state;\r\n return (\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n }\r\n dateFormat=\"yyyy-MM-dd\"\r\n selected={firstDate}\r\n onChange={this.firstDateChange}\r\n />\r\n
\r\n \r\n
\r\n }\r\n dateFormat=\"yyyy-MM-dd\"\r\n selected={secondDate}\r\n onChange={this.secondDateChange}\r\n />\r\n
\r\n \r\n
\r\n
\r\n )\r\n }\r\n}\r\n\r\nconst InputForDesktop = (props) => {\r\n return (\r\n \r\n )\r\n}\r\n\r\nexport default class NextTeethCheckPopup {\r\n showNextTeethCheckPopup(horseId, callback) {\r\n ReactDOM.render(\r\n ,\r\n document.getElementById('nextTeethCheckPopup')\r\n )\r\n }\r\n}","import React, { Component } from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport './TeethPopup.css';\r\n\r\nclass TeethWindow extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n teethData: []\r\n }\r\n }\r\n\r\n componentDidMount = () => {\r\n this.loadData();\r\n }\r\n\r\n loadData() {\r\n window.Spinner.show();\r\n window.db.getTeethDataForAllHorses(window.myid, (data) => {\r\n let reportData = [];\r\n data.filter(item => {\r\n let curr = reportData.find(i => item.HorseId == i.horseid);\r\n if (!curr) {\r\n let firstDate = Date.getNewDate(item.TDateFirst);\r\n let secondDate = Date.getNewDate(item.TDateSecond);\r\n let daysLeft = Date.daysBetween(secondDate, firstDate);\r\n let horse = window.DataStorage.getAllHorses().find(h => h.id == item.HorseId);\r\n reportData.push({ horseName: horse.name, horseid: item.HorseId, firstDate: firstDate.formatDeshStartDay(), secondDate: secondDate.formatDeshStartDay(), daysLeft: daysLeft });\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n });\r\n reportData = reportData.sort(this.sortTeethArr);\r\n this.setState({\r\n teethData: reportData\r\n });\r\n window.Spinner.hide();\r\n });\r\n }\r\n\r\n sortTeethArr = (a, b) => {\r\n if (a.daysLeft < b.daysLeft)\r\n return -1;\r\n if (a.daysLeft > b.daysLeft)\r\n return 1;\r\n return 0;\r\n }\r\n\r\n onCancelClick = () => {\r\n ReactDOM.unmountComponentAtNode(document.getElementById('allTeethPopup'));\r\n }\r\n\r\n render() {\r\n const { teethData } = this.state;\r\n let height = window.$(window).height();\r\n return (\r\n
\r\n \r\n \r\n
\r\n {teethData.length ?\r\n teethData.map(i =>\r\n
\r\n \r\n {i.horseName}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
{window.lang.teethSubDate}{window.lang.teethNextDate}
{i.firstDate}{i.secondDate}
\r\n {i.daysLeft >= 0 ?\r\n {window.lang.daysLeft + ': ' + i.daysLeft}\r\n :\r\n \r\n \r\n {window.lang.daysLeft + ': ' + i.daysLeft}\r\n \r\n \r\n }\r\n
\r\n
\r\n )\r\n :\r\n <>\r\n }\r\n
\r\n
\r\n )\r\n }\r\n}\r\n\r\nexport default class TeethAllPopup {\r\n showTeethAllPopup() {\r\n ReactDOM.render(\r\n ,\r\n document.getElementById('allTeethPopup')\r\n )\r\n }\r\n}","import React, { Component } from \"react\";\r\nimport \"./TeethPage.css\";\r\nimport NextTeethCheckPopup from \"./NextTeethCheckPopup\";\r\nimport TeethPopup from \"./TeethPopup\";\r\nimport HorseGallery from \"../../../././Multimedia/HorseGallery\";\r\n\r\nexport default class TeethPage extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n teethData: \"\",\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n window.$(\"#bottomMenu\").hide();\r\n window.TopMenu.Self.setVisible(false);\r\n this.loadData();\r\n }\r\n\r\n loadData = () => {\r\n window.db.getTeeth(this.props.horseId, (data) => {\r\n this.setState({\r\n teethData: data,\r\n });\r\n });\r\n };\r\n\r\n onDeleteButtonClick = (id) => {\r\n window.db.setTeethUpdate(id, \"d\", () => {\r\n this.loadData();\r\n });\r\n };\r\n\r\n onNextTeethCheckButtonClick = () => {\r\n let nextTeethCheckPopup = new NextTeethCheckPopup();\r\n nextTeethCheckPopup.showNextTeethCheckPopup(this.props.horseId, () => {\r\n this.loadData();\r\n });\r\n };\r\n\r\n onAllNextTeethButtonClick = () => {\r\n let teethPopup = new TeethPopup();\r\n teethPopup.showTeethAllPopup();\r\n };\r\n\r\n onOkClick = () => {\r\n window.Managers.extention.showHorsePage(this.props.horseId);\r\n window.$(\"#bottomMenu\").show();\r\n };\r\n\r\n render() {\r\n const { teethData } = this.state;\r\n let horse = window.DataStorage.getAllHorses().find(\r\n (h) => h.id == this.props.horseId\r\n );\r\n return (\r\n
\r\n
\r\n \r\n {window.lang.teeth}\r\n \r\n {horse.name}\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {teethData.length ? (\r\n teethData.map((i) => (\r\n \r\n \r\n \r\n \r\n \r\n ))\r\n ) : (\r\n <>\r\n )}\r\n \r\n
{window.lang.teethNewVisit}{window.lang.teethNextVisit}
{Date.reformatToDMY(i.TDateFirst)}{Date.reformatToDMY(i.TDateSecond)}\r\n {\" \"}\r\n {\r\n this.onDeleteButtonClick(i.Id);\r\n }}\r\n >\r\n {window.lang.deleteL}\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n {window.lang.teethNewVisit}\r\n \r\n \r\n \r\n {window.lang.teethNextVisit}{\" \"}\r\n \r\n
\r\n
\r\n \r\n
\r\n );\r\n }\r\n}\r\n","import React, { Component } from \"react\";\r\n\r\nimport ToggleView from \"../../Controls/ToggleView/ToggleView\";\r\nimport TrainingPopup from \"../../TrainingPopup/TrainingPopup\";\r\nimport ZipViewer from \"../../ZipViewer/ZipViewer\";\r\nimport MultimediaHelper from \"./../../Multimedia/MultimediaHelper\";\r\nimport \"./VeterinarianPage.css\";\r\n\r\nimport { Document, Page, pdfjs } from \"react-pdf\";\r\nimport pdfjsWorker from \"react-pdf/dist/esm/pdf.worker.entry\";\r\n//import 'react-pdf/dist/esm/Page/AnnotationLayer.css';\r\n\r\nexport default class VeterinarianPage extends Component {\r\n static DropboxToken =\r\n \"HqmkA9nKm0wAAAAAAADLWpj-stRJN_4JyfLxtRoZD-Rzpjyz9nnuI_CMbkRkOoSk\";\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n dbxFullScreenItem: null,\r\n showFullScreenView: false,\r\n showFullScreenItemIndex: 0,\r\n showFullScreenLoading: false,\r\n vetDataItemIndex: 0,\r\n multiSelectMode: false,\r\n veterinarianData: [],\r\n showPdfDocument: null,\r\n currentPdfPage: 1,\r\n pdfNumberOfPages: 1,\r\n showZipViewer: null,\r\n healthStatuses: [],\r\n healthStatus: \"\",\r\n };\r\n this.dropbox = new window.Dropbox.Dropbox({\r\n accessToken: VeterinarianPage.DropboxToken,\r\n });\r\n\r\n pdfjs.GlobalWorkerOptions.workerSrc = pdfjsWorker; //`//cdnjs.cloudflare.com/ajax/libs/pdf.js/${pdfjs.version}/pdf.worker.js`;\r\n this.pdfPageWidth = window.isMobileDevice()\r\n ? window.innerWidth - 40\r\n : Math.min(window.innerWidth - 40, 800);\r\n }\r\n\r\n componentDidMount() {\r\n window.$(\"#bottomMenu\").hide();\r\n window.TopMenu.Self.setVisible(false);\r\n this.loadData();\r\n }\r\n\r\n onHealthStatusChange = (e) => {\r\n const newValue = e.target.value;\r\n window.DataGate.updateHealthStatusOfHorse(\r\n this.props.horseId,\r\n e.target.value,\r\n (code, data) => {\r\n if (code != 1) {\r\n console.error(\r\n \"An error has occured when chaning the health status of the horse\"\r\n );\r\n return;\r\n }\r\n this.setState({\r\n healthStatus: newValue,\r\n });\r\n }\r\n );\r\n };\r\n loadData = () => {\r\n window.Spinner.show();\r\n\r\n let horse = window.DataStorage.getAllHorses().find(\r\n (h) => h.id == this.props.horseId\r\n );\r\n\r\n console.log(horse);\r\n\r\n const healthStatusesForHorse =\r\n window.DataStorage.getHealthStatuses().filter(\r\n (hs) => hs.userId == horse.userid\r\n );\r\n this.setState({\r\n healthStatus: horse.HealthStatusId,\r\n healthStatuses: healthStatusesForHorse,\r\n });\r\n window.db.getVeterinarianTrainingsByHorse(\r\n this.props.horseId,\r\n window.myid,\r\n new Date().formatDeshStartDay(),\r\n (vetData) => {\r\n if (vetData.length) {\r\n vetData = vetData.sort((first, second) => {\r\n if (first[\"starttime\"] == second[\"starttime\"])\r\n return first.synctime - second.synctime;\r\n return first[\"starttime\"] < second[\"starttime\"] ? 1 : -1;\r\n });\r\n this.setState(\r\n {\r\n veterinarianData: vetData,\r\n },\r\n window.Spinner.hide()\r\n );\r\n\r\n let horse = window.DataStorage.getAllHorses().find(\r\n (h) => h.id == this.props.horseId\r\n );\r\n for (let i = 0; i < vetData.length; i++) {\r\n this.helper = new MultimediaHelper(\r\n \"Task\",\r\n horse.id,\r\n horse.userid,\r\n null,\r\n vetData[i].id\r\n );\r\n this.helper.loadList(document.location.href, (data) => {\r\n //this.setState({\r\n // veterinarianData: vetData\r\n //}, window.Spinner.hide());\r\n // console.log(data);\r\n this.path = `xray-${vetData[i].id}`;\r\n this.helper\r\n .listBlobsWithProperties(this.path)\r\n .then((response) => {\r\n console.log(response);\r\n let plusFiles = [];\r\n if (data != null) {\r\n plusFiles = [...plusFiles, ...data];\r\n //vetData[i].multimedia = data;\r\n }\r\n if (response.length) {\r\n plusFiles = [...plusFiles, ...response];\r\n //vetData[i].plusFiles = response.entries;\r\n }\r\n vetData[i].plusFiles = plusFiles;\r\n vetData[i].multimedia = [];\r\n this.setState(\r\n {\r\n veterinarianData: vetData,\r\n },\r\n window.Spinner.hide()\r\n );\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n });\r\n });\r\n }\r\n } else window.Spinner.hide();\r\n }\r\n );\r\n //\r\n };\r\n\r\n getVeterinarTypeName = (index) => {\r\n for (var i = 0; i < window.VeterinarPage.VeterinarType.length; i++) {\r\n if (window.VeterinarPage.VeterinarType[i][\"value\"] == index) {\r\n var name = window.VeterinarPage.VeterinarType[i][\"Name\"];\r\n break;\r\n } else {\r\n var name = window.VeterinarPage.VeterinarType[0][\"Name\"];\r\n }\r\n }\r\n return name;\r\n };\r\n\r\n onNewVetereinarianClick = () => {\r\n let horse = window.DataStorage.getAllHorses().find(\r\n (h) => h.id == this.props.horseId\r\n );\r\n let trainingTypes = window.DataStorage.trainTypes.filter(\r\n (i) => i.owner == horse.userid\r\n );\r\n let vetTraining = trainingTypes.filter((i) => i.IsVeterinarian == true);\r\n let currentTrainerId = window.DataStorage.getAllHorses().find(\r\n (i) => i.id == this.props.horseId\r\n ).trainer;\r\n if (!currentTrainerId)\r\n var currentTrainer = window.DataStorage.allUsers.find(\r\n (i) => i.Id == window.myid\r\n );\r\n else\r\n var currentTrainer = window.DataStorage.allUsers.find(\r\n (i) => i.Id == currentTrainerId\r\n );\r\n let options = {\r\n horseId: horse.id,\r\n trainingType: vetTraining[0].id,\r\n date: new Date(),\r\n isDone: false,\r\n isVetPage: true,\r\n trainerId: currentTrainer.Id,\r\n trainerName: currentTrainer.Name,\r\n };\r\n let trainingPopup = new TrainingPopup();\r\n trainingPopup.showPopup(\r\n options,\r\n null,\r\n () => {\r\n //this.loadData(); // ToDo update loadData\r\n },\r\n (item) => {\r\n let newVetData = this.state.veterinarianData;\r\n newVetData.push(item);\r\n newVetData = newVetData.sort((first, second) => {\r\n if (first[\"starttime\"] == second[\"starttime\"])\r\n return first.synctime - second.synctime;\r\n return first[\"starttime\"] < second[\"starttime\"] ? 1 : -1;\r\n });\r\n this.setState({\r\n veterinarianData: newVetData,\r\n });\r\n }\r\n );\r\n };\r\n\r\n onDoneToggle = (item) => {\r\n item.color = item.color == \"green\" ? \"red\" : \"green\";\r\n let veterinarianData = [...this.state.veterinarianData];\r\n let index = veterinarianData.findIndex((t) => t.id == item.id);\r\n veterinarianData[index] = item;\r\n this.setState({\r\n veterinarianData: veterinarianData,\r\n });\r\n let trainingItem = window.DataStorage.addTrainingArr.find(\r\n (d) => d.id == item.id\r\n );\r\n if (trainingItem == null) {\r\n trainingItem = this.state.veterinarianData.find((d) => d.id == item.id);\r\n }\r\n trainingItem.color = item.color;\r\n window.DataStorage.updateTrainingBackground(trainingItem);\r\n };\r\n\r\n onEditClick = (id) => {\r\n let trainingItem = window.DataStorage.addTrainingArr.find(\r\n (d) => d.id == id\r\n );\r\n if (trainingItem == null) {\r\n trainingItem = this.state.veterinarianData.find((d) => d.id == id);\r\n }\r\n var currentTrainer = window.DataStorage.allUsers.find(\r\n (i) => i.Id == trainingItem.trainer\r\n );\r\n const options = {\r\n horseId: trainingItem.horseid,\r\n trainingType: trainingItem.type,\r\n date: new Date(trainingItem.starttime),\r\n isVetPage: true,\r\n trainerId: currentTrainer.Id,\r\n trainerName: currentTrainer.Name,\r\n };\r\n let trainingPopup = new TrainingPopup();\r\n trainingPopup.showPopup(\r\n options,\r\n trainingItem,\r\n () => {\r\n // this.loadData(); // ToDo update loadData\r\n },\r\n (item) => {\r\n let index = this.state.veterinarianData.findIndex((i) => i.id == id);\r\n let newVetData = [...this.state.veterinarianData];\r\n newVetData[index] = item;\r\n newVetData = newVetData.sort((first, second) => {\r\n if (first[\"starttime\"] == second[\"starttime\"])\r\n return first.synctime - second.synctime;\r\n return first[\"starttime\"] < second[\"starttime\"] ? 1 : -1;\r\n });\r\n this.setState({\r\n veterinarianData: newVetData,\r\n });\r\n }\r\n );\r\n };\r\n\r\n onDeleteClick = (id) => {\r\n let newVetData = this.state.veterinarianData.filter((i) => i.id != id);\r\n this.setState({\r\n veterinarianData: newVetData,\r\n });\r\n window.db.deleteTrainingCallBack(id, () => {\r\n //this.loadData(); // ToDo update loadData\r\n });\r\n };\r\n\r\n onSaveClick = () => {\r\n window.Managers.extention.showHorsePage(this.props.horseId);\r\n window.$(\"#bottomMenu\").show();\r\n };\r\n\r\n showFullscreen = (index, itemIndex) => {\r\n let item = this.state.veterinarianData[index].multimedia[itemIndex];\r\n if (item.fullUrl == null) {\r\n this.setState({\r\n showFullScreenView: true,\r\n vetDataItemIndex: index,\r\n showFullScreenItemIndex: itemIndex,\r\n showFullScreenLoading: true,\r\n });\r\n this.helper.getItemLink(item, (url) => {\r\n this.setState({\r\n showFullScreenView: true,\r\n vetDataItemIndex: index,\r\n showFullScreenItemIndex: itemIndex,\r\n showFullScreenLoading: false,\r\n });\r\n });\r\n } else {\r\n this.setState({\r\n showFullScreenView: true,\r\n vetDataItemIndex: index,\r\n showFullScreenItemIndex: itemIndex,\r\n showFullScreenLoading: false,\r\n });\r\n }\r\n };\r\n\r\n showFullscreenRight = () => {\r\n const index = this.state.showFullScreenItemIndex + 1;\r\n const vetIndex = this.state.vetDataItemIndex;\r\n if (this.state.veterinarianData[vetIndex].multimedia)\r\n if (index < this.state.veterinarianData[vetIndex].multimedia.length) {\r\n this.showFullscreen(this.state.vetDataItemIndex, index);\r\n }\r\n };\r\n\r\n showFullscreenLeft = () => {\r\n const index = this.state.showFullScreenItemIndex - 1;\r\n if (index >= 0) {\r\n this.showFullscreen(this.state.vetDataItemIndex, index);\r\n }\r\n };\r\n\r\n hideFullscreen = () => {\r\n this.setState({\r\n showFullScreenView: false,\r\n });\r\n };\r\n\r\n renderFullscreenItem = () => {\r\n const item =\r\n this.state.veterinarianData[this.state.vetDataItemIndex].plusFiles[\r\n this.state.showFullScreenItemIndex\r\n ];\r\n switch (item.type) {\r\n case 1:\r\n return (\r\n \r\n );\r\n case 2:\r\n return (\r\n \r\n );\r\n }\r\n return
;\r\n };\r\n\r\n toggleExtraButtons = () => {\r\n this.setState({\r\n multiSelectMode: !this.state.multiSelectMode,\r\n });\r\n };\r\n\r\n selectMultimedia = (index, itemIndex) => {\r\n let veterinarianData = this.state.veterinarianData;\r\n veterinarianData[index].multimedia[itemIndex].isSelected =\r\n !veterinarianData[index].multimedia[itemIndex].isSelected;\r\n this.setState({\r\n veterinarianData: veterinarianData,\r\n });\r\n };\r\n\r\n selectFile = (index, itemIndex) => {\r\n let veterinarianData = this.state.veterinarianData;\r\n veterinarianData[index].plusFiles[itemIndex].isSelected =\r\n !veterinarianData[index].plusFiles[itemIndex].isSelected;\r\n this.setState({\r\n veterinarianData: veterinarianData,\r\n });\r\n };\r\n\r\n onDownloadClick = () => {\r\n //@todo\r\n let multimediaItems = JSON.parse(\r\n JSON.stringify(\r\n this.state.veterinarianData.filter(\r\n (i) => i.multimedia && i.multimedia.length\r\n )\r\n )\r\n );\r\n let selectedMultimediaItems = multimediaItems\r\n .map((j) => j.multimedia)\r\n .flat()\r\n .filter((i) => i.isSelected);\r\n let plusFilesItems = JSON.parse(\r\n JSON.stringify(this.state.veterinarianData.filter((i) => i.plusFiles))\r\n );\r\n let selectedPlusFilesItems = plusFilesItems\r\n .map((j) => j.plusFiles)\r\n .flat()\r\n .filter((i) => i.isSelected);\r\n this.setState({\r\n multiSelectMode: false,\r\n });\r\n\r\n // if (selectedMultimediaItems.length != 0) {\r\n // this.helper.downloadItems(selectedMultimediaItems, () => {});\r\n // }\r\n if (selectedPlusFilesItems.length <= 0) return;\r\n const imagesToDownload = selectedPlusFilesItems.map((el) => {\r\n return { url: el.url, name: el.name };\r\n });\r\n if (imagesToDownload.length < 5) {\r\n MultimediaHelper.downloadFilesOneByOne(imagesToDownload);\r\n } else {\r\n MultimediaHelper.downloadZip(imagesToDownload);\r\n }\r\n // console.log(selectedPlusFilesItems);\r\n // // return;\r\n // for (let i in selectedPlusFilesItems) {\r\n // const url = i.url;\r\n // const link = document.createElement(\"a\");\r\n // link.href = url;\r\n // link.setAttribute(\"download\", decodeURI(selectedPlusFilesItems[i].name));\r\n // document.body.appendChild(link);\r\n // link.click();\r\n // }\r\n };\r\n\r\n onShareClick = () => {\r\n let plusFilesItems = JSON.parse(\r\n JSON.stringify(this.state.veterinarianData.filter((i) => i.plusFiles))\r\n );\r\n let selectedPlusFilesItems = plusFilesItems\r\n .map((j) => j.plusFiles)\r\n .flat()\r\n .filter((i) => i.isSelected);\r\n this.setState({\r\n multiSelectMode: false,\r\n });\r\n\r\n console.log(selectedPlusFilesItems);\r\n const helper = new MultimediaHelper(\r\n MultimediaHelper.FOLDER_OTHER,\r\n null,\r\n null,\r\n null,\r\n null\r\n );\r\n helper.downloadAndShareItems(selectedPlusFilesItems);\r\n };\r\n\r\n onShareFullscreenItem = () => {\r\n const helper = new MultimediaHelper(\r\n MultimediaHelper.FOLDER_OTHER,\r\n null,\r\n null,\r\n null,\r\n null\r\n );\r\n helper.downloadAndShareItems([this.state.dbxFullScreenItem]);\r\n };\r\n\r\n onViewDocumentClick = (index, itemIndex) => {\r\n let dataArr = this.state.veterinarianData;\r\n let item = dataArr[index].plusFiles[itemIndex];\r\n // this.dropbox\r\n // .filesGetTemporaryLink({ path: item.path_display })\r\n // .then((response) =>\r\n let response = item;\r\n // return;\r\n try {\r\n let currentItem = response;\r\n let ext = currentItem.name.split(\".\").pop().toLowerCase();\r\n if (\r\n ext == \"png\" ||\r\n ext == \"jpeg\" ||\r\n ext == \"jpg\" ||\r\n ext == \"gif\" ||\r\n ext == \"bmp\"\r\n ) {\r\n item.type = 1;\r\n item.fullUrl = response.url;\r\n this.setState({\r\n veterinarianData: dataArr,\r\n showFullScreenView: true,\r\n showFullScreenLoading: false,\r\n vetDataItemIndex: index,\r\n showFullScreenItemIndex: itemIndex,\r\n dbxFullScreenItem: currentItem,\r\n });\r\n } else if (ext == \"mp4\" || ext == \"mov\" || ext == \"wmv\" || ext == \"avi\") {\r\n item.type = 2;\r\n item.fullUrl = response.url;\r\n this.setState({\r\n veterinarianData: dataArr,\r\n showFullScreenView: true,\r\n showFullScreenLoading: false,\r\n vetDataItemIndex: index,\r\n showFullScreenItemIndex: itemIndex,\r\n dbxFullScreenItem: currentItem,\r\n });\r\n } else if (ext == \"pdf\") {\r\n this.setState({\r\n showPdfDocument: response.url,\r\n currentPdfPage: 1,\r\n pdfNumberOfPages: 1,\r\n dbxFullScreenItem: currentItem,\r\n });\r\n } else if (ext == \"zip\") {\r\n this.setState({\r\n showZipViewer: response.url,\r\n });\r\n } else {\r\n const a = document.createElement(\"a\");\r\n a.style.display = \"none\";\r\n a.href = response.url;\r\n a.target = \"_blank\";\r\n //a.download = 'Report.pdf';\r\n document.body.appendChild(a);\r\n a.click();\r\n }\r\n } catch (error) {\r\n console.log(error);\r\n }\r\n };\r\n\r\n onPdfDocumentLoadSuccess = (args) => {\r\n this.setState({\r\n pdfNumberOfPages: args.numPages,\r\n });\r\n };\r\n\r\n onCurrentPdfPageChange = (offset) => {\r\n const currentPdfPage = this.state.currentPdfPage + offset;\r\n if (currentPdfPage <= 0 || currentPdfPage > this.state.pdfNumberOfPages)\r\n return;\r\n\r\n this.setState({\r\n currentPdfPage: currentPdfPage,\r\n });\r\n };\r\n\r\n hidePdfDocument = () => {\r\n this.setState({\r\n showPdfDocument: null,\r\n });\r\n };\r\n\r\n hideZipViewer = () => {\r\n this.setState({\r\n showZipViewer: null,\r\n });\r\n };\r\n\r\n render() {\r\n const { veterinarianData } = this.state;\r\n let horse = window.DataStorage.getAllHorses().find(\r\n (h) => h.id == this.props.horseId\r\n );\r\n\r\n return (\r\n
\r\n
\r\n \r\n {window.lang.veterinarian}\r\n \r\n {horse.name}\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n \r\n {\" \"}\r\n {window.lang.newVeterinar}\r\n \r\n \r\n \r\n \r\n {this.state.healthStatuses.map((hs) => (\r\n \r\n ))}\r\n \r\n \r\n {!this.state.multiSelectMode ? (\r\n \r\n \r\n {window.lang.select}\r\n \r\n ) : (\r\n
\r\n {window.multimediaMobileHelper.isActive ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n {window.lang.cancel2}\r\n
\r\n \r\n )}\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {veterinarianData.length ? (\r\n veterinarianData.map((i, index) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ))\r\n ) : (\r\n <>\r\n )}\r\n \r\n
Done{window.lang.date}Type{window.lang.remark}Files
\r\n this.onDoneToggle(i)}\r\n />\r\n {i.starttime}{this.getVeterinarTypeName(i[\"VeterinarianType\"])}{i.remark}\r\n
\r\n {i.multimedia &&\r\n i.multimedia.map((item, number) => (\r\n
\r\n \r\n !this.state.multiSelectMode\r\n ? this.showFullscreen(index, number)\r\n : this.selectMultimedia(index, number)\r\n }\r\n >\r\n {(item.type == MultimediaHelper.TYPE_VIDEO ||\r\n item.type ==\r\n MultimediaHelper.TYPE_YOUTUBE) && (\r\n \r\n )}\r\n {this.state.multiSelectMode && (\r\n \r\n )}\r\n
\r\n
\r\n ))}\r\n \r\n {i.plusFiles && (\r\n \r\n \r\n {i.plusFiles.map((file, fileIndex) => (\r\n \r\n \r\n \r\n !this.state.multiSelectMode\r\n ? this.onViewDocumentClick(\r\n index,\r\n fileIndex\r\n )\r\n : this.selectFile(index, fileIndex)\r\n }\r\n >\r\n {decodeURI(file.name)}\r\n \r\n \r\n \r\n ))}\r\n \r\n
\r\n {this.state.multiSelectMode && (\r\n \r\n this.selectFile(index, fileIndex)\r\n }\r\n />\r\n )}\r\n
\r\n )}\r\n
\r\n this.onEditClick(i.id)}\r\n />\r\n this.onDeleteClick(i.id)}\r\n />\r\n
\r\n {this.state.showFullScreenView && (\r\n
\r\n {!this.state.showFullScreenLoading && this.renderFullscreenItem()}\r\n {window.multimediaMobileHelper.isActive && (\r\n \r\n )}\r\n \r\n
\r\n )}\r\n {this.state.showPdfDocument && (\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n this.onCurrentPdfPageChange(-1)}\r\n />\r\n
\r\n {this.state.currentPdfPage}/{this.state.pdfNumberOfPages}\r\n
\r\n this.onCurrentPdfPageChange(1)}\r\n />\r\n
\r\n {window.multimediaMobileHelper.isActive && (\r\n \r\n )}\r\n \r\n
\r\n )}\r\n {this.state.showZipViewer && (\r\n
\r\n \r\n \r\n
\r\n )}\r\n
\r\n
\r\n );\r\n }\r\n}\r\n","import React, { Component } from \"react\";\r\nimport HorseGallery from \"../.././Multimedia/HorseGallery\";\r\n\r\nexport default class MultimediaPage extends Component {\r\n constructor(props) {\r\n super(props);\r\n }\r\n\r\n componentDidMount = () => {\r\n window.$(\"#bottomMenu\").hide();\r\n window.TopMenu.Self.setVisible(false);\r\n };\r\n\r\n onOkClick = () => {\r\n window.Managers.extention.showHorsePage(this.props.horseId);\r\n window.$(\"#bottomMenu\").show();\r\n };\r\n\r\n render() {\r\n let horse = window.DataStorage.getAllHorses().find(\r\n (h) => h.id == this.props.horseId\r\n );\r\n let logoSrc = \"url(img/horselogo.png)\";\r\n if (horse.LogoFile != null) {\r\n logoSrc = `url(${window.DataGate.baseurl + horse.LogoFile})`;\r\n }\r\n\r\n return (\r\n
\r\n
\r\n \r\n Multimedia\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n {horse.name}\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n );\r\n }\r\n}\r\n","import React, { Component } from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport './VaccinationNextPopup.css';\r\n\r\nclass HerpesVaccinationNextPopupWindow extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n vaccinationData: []\r\n }\r\n }\r\n\r\n componentDidMount = () => {\r\n this.loadData();\r\n }\r\n\r\n loadData = () => {\r\n let horseArr = [...window.DataStorage.myHorseArray, ...window.DataStorage.notMyHorseArray];\r\n let reportData = [];\r\n for (let i = 0; i < horseArr.length; i++) {\r\n window.db.getHerpesVaccinationLatest(horseArr[i][\"id\"], (rows) => {\r\n if (rows.length == 0) {\r\n return;\r\n }\r\n let lastItem = rows.item(0);\r\n let type = window.DataStorage.herpesVaccinationTypes[lastItem[\"vtype\"] - 1];\r\n let nextType = window.DataStorage.herpesVaccinationTypes[type.NextIndex];\r\n let minMonths = nextType.MinMonth;\r\n let maxMonths = nextType.MaxMonth;\r\n let minDays = nextType.MinDay;\r\n let maxDays = nextType.MaxDay;\r\n let lastDate = Date.getNewDate(lastItem[\"vdate\"]);\r\n let minDate = new Date(lastDate);\r\n let maxDate = new Date(lastDate);\r\n\r\n minDate.setMonth(minDate.getMonth() + minMonths);\r\n minDate = minDate.addDays(minDays);\r\n maxDate.setMonth(maxDate.getMonth() + maxMonths);\r\n maxDate = maxDate.addDays(maxDays);\r\n let daysLeft = Date.daysBetween(maxDate, new Date());\r\n\r\n reportData.push({\r\n horse: horseArr[i][\"name\"],\r\n vaccinationType: nextType.Name,\r\n lastVaccination: lastDate.formatDeshStartDay(),\r\n nextVaccination: maxDate.formatDeshStartDay(),\r\n daysLeft: daysLeft,\r\n vaccinationAllow: ''//Date.daysBetween(new Date(), minDate) < 0 ? window.lang.vacNotAllowed : ''\r\n });\r\n reportData = reportData.sort(this.sortVacinationArr);\r\n this.setState({\r\n vaccinationData: reportData\r\n })\r\n });\r\n }\r\n }\r\n\r\n sortVacinationArr = (a, b) => {\r\n if (a.daysLeft < b.daysLeft)\r\n return -1;\r\n if (a.daysLeft > b.daysLeft)\r\n return 1;\r\n return 0;\r\n }\r\n\r\n onCancelClick = () => {\r\n ReactDOM.unmountComponentAtNode(document.getElementById('VaccinationNextPopup'));\r\n }\r\n\r\n render() {\r\n const { vaccinationData } = this.state;\r\n let height = window.$(window).height();\r\n return (\r\n\r\n
\r\n \r\n \r\n
\r\n {vaccinationData.length ?\r\n vaccinationData.map(i => (\r\n
\r\n {i.horse}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {window.lang.vaccinationType}\r\n \r\n Last Vaccination Date\r\n \r\n {window.lang.nextVaccination}\r\n
\r\n {i.vaccinationType}\r\n \r\n {i.lastVaccination}\r\n 0 ? { color: 'black' } : { color: 'red' }}>\r\n {i.nextVaccination}\r\n
0 ? { color: 'black' } : { color: 'red' }}>\r\n {window.lang.daysLeft + ': ' + i.daysLeft}\r\n \r\n {i.vaccinationAllow}\r\n
\r\n
\r\n ))\r\n : <>\r\n }\r\n
\r\n
\r\n )\r\n }\r\n}\r\n\r\nexport default class HerpesVaccinationNextPopup {\r\n showVaccinationNextPopup() {\r\n ReactDOM.render(\r\n ,\r\n document.getElementById('VaccinationNextPopup')\r\n )\r\n }\r\n}","import React, { Component } from \"react\";\r\nimport HerpesVaccinationPopup from \"../../Home/VaccinationView/HerpesVaccinationPopup\";\r\nimport \"./VaccinationPage.css\";\r\nimport HerpesVaccinationNextPopup from \"./HerpesVaccinationNextPopup\";\r\n//import HorseGallery from \"../.././Multimedia/HorseGallery\";\r\n\r\nclass HerpesVaccinationPage extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n vaccinationData: [],\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n window.$(\"#bottomMenu\").hide();\r\n window.TopMenu.Self.setVisible(false);\r\n this.loadData();\r\n //new window.dropboxData(this.props.horseId, \"Vaccination\");\r\n }\r\n\r\n loadData = () => {\r\n window.db.getHerpesVaccination(this.props.horseId, (data) => {\r\n let vaccinationData = [];\r\n for (let i = 0; i < data.length; i++) {\r\n let item = data[i];\r\n let type = window.DataStorage.herpesVaccinationTypes[item[\"vtype\"] - 1];\r\n let nextType =\r\n window.DataStorage.herpesVaccinationTypes[type.NextIndex];\r\n let minMonths = nextType.MinMonth;\r\n let maxMonths = nextType.MaxMonth;\r\n let minDays = nextType.MinDay;\r\n let maxDays = nextType.MaxDay;\r\n let lastDate = Date.getNewDate(item[\"vdate\"]);\r\n let minDate = new Date(lastDate);\r\n let maxDate = new Date(lastDate);\r\n\r\n minDate.setMonth(minDate.getMonth() + minMonths);\r\n minDate = minDate.addDays(minDays);\r\n maxDate.setMonth(maxDate.getMonth() + maxMonths);\r\n maxDate = maxDate.addDays(maxDays);\r\n vaccinationData.push({\r\n id: data[i].id,\r\n vdate: lastDate.formatDesh(),\r\n nextVaccination: maxDate.formatDesh(),\r\n type: type.Name,\r\n horseid: data[i].horseid,\r\n vtype: type,\r\n });\r\n }\r\n this.setState({\r\n vaccinationData: vaccinationData,\r\n });\r\n });\r\n };\r\n\r\n onEditClick = (item) => {\r\n let options = {\r\n horseId: this.props.horseId,\r\n date: new Date(item.vdate),\r\n showHorseList: false,\r\n };\r\n let vaccinationPopup = new HerpesVaccinationPopup();\r\n vaccinationPopup.showVaccinationPopup(options, item, () => {\r\n this.loadData();\r\n });\r\n };\r\n\r\n onDeleteClick = (item) => {\r\n window.db.setHerpesVaccinationUpdate(item.id, \"d\", () => {\r\n this.loadData();\r\n });\r\n //window.DataStorage.deleteTrainingById(item.id);\r\n //window.training.refreshLayout();\r\n\r\n //window.DataGate.deleteTrainings(item.id, 'd', item.horseid, item.vdate,\r\n // (code) => {\r\n // if (code == window.DataGate.CODE_OK) {\r\n // window.training.refresh({ showSpinner: false });\r\n // this.loadData();\r\n // }\r\n // });\r\n };\r\n\r\n onNewVaccinationButtonClick = () => {\r\n window.db.getHerpesVaccinationLatest(this.props.horseId, (rows) => {\r\n let vtype = null;\r\n if (rows.length != 0) {\r\n var lastItem = rows.item(0);\r\n var nextTypeIndex =\r\n window.DataStorage.herpesVaccinationTypes[lastItem[\"vtype\"] - 1]\r\n .NextIndex;\r\n vtype = window.DataStorage.herpesVaccinationTypes[nextTypeIndex];\r\n } else {\r\n vtype = window.DataStorage.herpesVaccinationTypes[0];\r\n }\r\n let options = {\r\n horseId: this.props.horseId,\r\n date: new Date(),\r\n vtype: vtype,\r\n };\r\n let vaccinationPopup = new HerpesVaccinationPopup();\r\n vaccinationPopup.showVaccinationPopup(options, null, () => {\r\n this.loadData();\r\n });\r\n });\r\n };\r\n\r\n onAllVaccinationClick = () => {\r\n let vaccinationNextPopup = new HerpesVaccinationNextPopup();\r\n vaccinationNextPopup.showVaccinationNextPopup();\r\n };\r\n\r\n onSaveClick = () => {\r\n window.Managers.extention.showHorsePage(this.props.horseId);\r\n window.$(\"#bottomMenu\").show();\r\n };\r\n\r\n render() {\r\n const { vaccinationData } = this.state;\r\n let horse = window.DataStorage.getAllHorses().find(\r\n (h) => h.id == this.props.horseId\r\n );\r\n\r\n return (\r\n
\r\n
\r\n \r\n {window.lang.herpesVaccination}\r\n \r\n {horse.name}\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {vaccinationData.length ? (\r\n vaccinationData.map((currentElement, index) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ))\r\n ) : (\r\n <>\r\n )}\r\n \r\n
Type{window.lang.date}{window.lang.nextVaccinationShort}
{currentElement.type}{currentElement.vdate}\r\n {index == vaccinationData.length - 1\r\n ? currentElement.nextVaccination\r\n : \"\"}\r\n \r\n this.onEditClick(currentElement)}\r\n />\r\n \r\n this.onDeleteClick(currentElement)}\r\n />\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n {window.lang.newVaccination}\r\n \r\n \r\n \r\n {window.lang.allVacinations}\r\n \r\n
\r\n {/**/}\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default HerpesVaccinationPage;\r\n","import ReactDOM from \"react-dom\";\r\nimport React, { Component } from \"react\";\r\nimport Select from \"react-select\";\r\nimport \"./SideMenu.css\";\r\nimport TrainingPopup from \"../TrainingPopup/TrainingPopup\";\r\n\r\nclass SideMenu extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.containerRef = React.createRef();\r\n this.handleClickOutside = this.handleClickOutside.bind(this);\r\n\r\n this.state = {\r\n showTrianingGroup: false,\r\n showFilterGroup: false,\r\n riders: [],\r\n riderValue: [],\r\n horseTypes: [],\r\n selectedHorseType: [],\r\n stables: [],\r\n selectedStable: [],\r\n labels: [],\r\n selectedLabels: [],\r\n };\r\n }\r\n\r\n componentDidMount = () => {\r\n this.loadData();\r\n document.addEventListener(\"mousedown\", this.handleClickOutside);\r\n document.addEventListener(\"touchstart\", this.handleClickOutside);\r\n };\r\n componentWillUnmount() {\r\n document.removeEventListener(\"mousedown\", this.handleClickOutside);\r\n document.removeEventListener(\"touchstart\", this.handleClickOutside);\r\n }\r\n handleClickOutside(event) {\r\n // Check if the click was outside the component\r\n\r\n if (\r\n this.containerRef.current &&\r\n !this.containerRef.current.contains(event.target) &&\r\n event.target.id !== \"menuIcon\"\r\n ) {\r\n window.$(\"#sideMenuDiv\").hide();\r\n }\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n if (this.props.time !== prevProps.time) {\r\n this.loadData();\r\n }\r\n }\r\n\r\n loadData = () => {\r\n if (window.myid) {\r\n window.db.getAllUsersExceptId(window.myid, (dataU) => {\r\n const riders = [\r\n { value: 1, label: window.lang.showAllRiders },\r\n { value: window.myid, label: window.lang.me },\r\n ...dataU.map((t) => ({ value: t.id, label: t.name })),\r\n ];\r\n\r\n const riderArr = JSON.parse(\r\n window.GlobalData.getItem(window.GlobalData.FILTER_RIDER)\r\n );\r\n const selectedRiderArr = riders.filter(\r\n (i) => riderArr.indexOf(i.value) != -1\r\n );\r\n\r\n this.setState({\r\n riders: riders,\r\n riderValue: selectedRiderArr,\r\n });\r\n });\r\n\r\n window.db.getHorseTypesBySelector(window.myid, (types) => {\r\n window.DataStorage.horseTypes = types;\r\n let typesMap = types.map((t) => ({ value: t.ID, label: t.Name }));\r\n let hTypes = [];\r\n typesMap.filter((item) => {\r\n let curr = hTypes.find((i) => i.label === item.label);\r\n if (!curr) {\r\n hTypes.push(item);\r\n return true;\r\n } else {\r\n curr.value += \",\" + item.value;\r\n return false;\r\n }\r\n });\r\n\r\n const horseTypes = [\r\n { value: 1, label: window.lang.showAllHorseTypes },\r\n { value: 2, label: window.lang.showInTraining },\r\n { value: 3, label: window.lang.showOwnInTraining },\r\n ...hTypes,\r\n { value: 101, label: window.lang.historical },\r\n ];\r\n\r\n const sarr = JSON.parse(\r\n window.GlobalData.getItem(window.GlobalData.SHOW_IN_TRAINING)\r\n );\r\n const selectedArr = horseTypes.filter(\r\n (t) => sarr.indexOf(t.value) != -1\r\n );\r\n\r\n this.setState({\r\n horseTypes: horseTypes,\r\n selectedHorseType: selectedArr,\r\n });\r\n\r\n window.DataStorage.clearAllHorses();\r\n });\r\n\r\n window.db.getAllStables(window.myid, (stablesData) => {\r\n window.db.getAllStablesSharedHorses(window.myid, (stablesShared) => {\r\n console.log(stablesShared);\r\n window.DataStorage.stables = stablesData;\r\n const stables = [\r\n { value: 1, label: window.lang.showAllStables },\r\n ...stablesData.map((t) => ({ value: t.Id, label: t.StableName })),\r\n ...stablesShared.map((t) => ({ value: t.Id, label: t.StableName })),\r\n ];\r\n\r\n const stableArr = JSON.parse(\r\n window.GlobalData.getItem(window.GlobalData.SHOW_IN_STABLE)\r\n );\r\n const selectedStableArr = stables.filter(\r\n (t) => stableArr.indexOf(t.value) != -1\r\n );\r\n\r\n this.setState({\r\n stables: stables,\r\n selectedStable: selectedStableArr,\r\n });\r\n });\r\n });\r\n\r\n window.DataStorage.fetchHorseLabels(() => {\r\n let labels = [{ value: 1, label: \"All Labels\" }];\r\n if (window.DataStorage.horseLabels)\r\n labels = [\r\n ...labels,\r\n ...window.DataStorage.horseLabels.map((t) => ({\r\n value: t.Id,\r\n label: t.Label,\r\n })),\r\n ];\r\n const labelsArr = JSON.parse(\r\n window.GlobalData.getItem(window.GlobalData.FILTER_LABEL)\r\n );\r\n const selectedLabelsArr = labels.filter(\r\n (t) => labelsArr.indexOf(t.value) != -1\r\n );\r\n\r\n this.setState({\r\n labels: labels,\r\n selectedLabels: selectedLabelsArr,\r\n });\r\n });\r\n } else {\r\n return null;\r\n }\r\n };\r\n\r\n onToggle = (name) => {\r\n this.setState({\r\n [name]: !this.state[name],\r\n });\r\n };\r\n\r\n onNewTraningClick = () => {\r\n window.TopMenu.Self.setSideMenuVisible(false);\r\n //let trainItem = {\r\n // id: \"create\",\r\n // horseName: null,\r\n // horseTrainer: null,\r\n // trainId: null,\r\n // trainerId: null,\r\n // trainType: null,\r\n // horseId: null\r\n //};\r\n //new window.trainingPopup(trainItem);\r\n var currentTrainer = window.DataStorage.allUsers.find(\r\n (i) => i.Id == window.myid\r\n );\r\n let options = {\r\n trainerId: currentTrainer.Id,\r\n trainerName: currentTrainer.Name,\r\n };\r\n new TrainingPopup().showPopup(options, null, () => {});\r\n };\r\n\r\n onDeleteTraningClick = () => {\r\n window.TopMenu.Self.setSideMenuVisible(false);\r\n window.Training.prototype.showDeletePopup();\r\n };\r\n\r\n onCopyTraningClick = () => {\r\n window.TopMenu.Self.setSideMenuVisible(false);\r\n window.$(\"#mainPageCopy\").popup();\r\n window.$(\"#mainPageCopy\").trigger(\"create\");\r\n window.$(\"#mainPageCopy\").popup(\"open\");\r\n };\r\n\r\n onLanguageClick = () => {\r\n window.TopMenu.Self.setSideMenuVisible(false);\r\n new window.LanguagePage().show();\r\n };\r\n\r\n onHelpClick = () => {\r\n window.open(\"https://www.eqapp.dk/faq\", \"_blank\");\r\n };\r\n\r\n onContactClick = () => {\r\n window.TopMenu.Self.setSideMenuVisible(false);\r\n window.showPage(\"#contactUsPage\");\r\n };\r\n\r\n onLogoutClick = () => {\r\n window.onLogout();\r\n };\r\n\r\n onOrderSelectChange = (e) => {\r\n window.TopMenu.Self.setSideMenuVisible(false);\r\n\r\n const val = e.target.value;\r\n window.GlobalData.setItem(window.GlobalData.ORDER_BY, val);\r\n\r\n if (window.training) window.training.refresh();\r\n };\r\n\r\n onRiderSelectChange = (riderArr) => {\r\n //window.TopMenu.Self.setSideMenuVisible(false);\r\n if (Array.isArray(riderArr) && riderArr.length) {\r\n const valArr = riderArr.map((item) => item.value);\r\n let selectedRiderArr = [];\r\n if (valArr[valArr.length - 1] == 1) {\r\n window.GlobalData.setItem(\r\n window.GlobalData.FILTER_RIDER,\r\n JSON.stringify([1])\r\n );\r\n selectedRiderArr[0] = riderArr[riderArr.length - 1];\r\n } else {\r\n selectedRiderArr = riderArr.filter((i) => i.value != 1);\r\n const valArr = selectedRiderArr.map((i) => i.value);\r\n window.GlobalData.setItem(\r\n window.GlobalData.FILTER_RIDER,\r\n JSON.stringify(valArr)\r\n );\r\n }\r\n this.setState({\r\n riderValue: selectedRiderArr,\r\n });\r\n } else {\r\n window.GlobalData.setItem(\r\n window.GlobalData.FILTER_RIDER,\r\n JSON.stringify([1])\r\n );\r\n this.setState({\r\n riderValue: { key: 1, value: 1, label: \"All riders\" },\r\n });\r\n }\r\n window.Training.needRefresh = true;\r\n if (window.training) window.training.refresh();\r\n if (window.location.hash == \"#homePage\")\r\n window.HomePage.prototype.showHorses();\r\n };\r\n\r\n onHorseTypeChange = (newValue) => {\r\n //window.TopMenu.Self.setSideMenuVisible(false);\r\n if (Array.isArray(newValue) && newValue.length) {\r\n const valArr = newValue.map((item) => item.value);\r\n let selectedHorseTypeArr = [];\r\n if (\r\n valArr[valArr.length - 1] == 1 ||\r\n valArr[valArr.length - 1] == 2 ||\r\n valArr[valArr.length - 1] == 3 ||\r\n valArr[valArr.length - 1] == 101\r\n ) {\r\n window.GlobalData.setItem(\r\n window.GlobalData.SHOW_IN_TRAINING,\r\n JSON.stringify([valArr[valArr.length - 1]])\r\n );\r\n selectedHorseTypeArr[0] = newValue[newValue.length - 1];\r\n window.DataStorage.clearAllHorses();\r\n window.training.loadHorseData(() => {\r\n window.training.loadCache();\r\n if (window.location.hash == \"#homePage\")\r\n window.HomePage.prototype.showHorses();\r\n });\r\n } else {\r\n selectedHorseTypeArr = newValue.filter(\r\n (i) => i.value != 1 && i.value != 2 && i.value != 3 && i.value != 101\r\n );\r\n const valArr = selectedHorseTypeArr.map((i) => i.value);\r\n window.GlobalData.setItem(\r\n window.GlobalData.SHOW_IN_TRAINING,\r\n JSON.stringify(valArr)\r\n );\r\n }\r\n\r\n this.setState({\r\n selectedHorseType: selectedHorseTypeArr,\r\n });\r\n\r\n if (window.HomePage.horseFilterCallback)\r\n window.HomePage.horseFilterCallback(\r\n window.HomePage.FILTER_HORSE_TYPE,\r\n valArr\r\n );\r\n if (window.training) window.training.refresh();\r\n } else {\r\n window.GlobalData.setItem(\r\n window.GlobalData.SHOW_IN_TRAINING,\r\n JSON.stringify([1])\r\n );\r\n window.DataStorage.clearAllHorses();\r\n window.training.loadHorseData(() => {\r\n window.training.loadCache();\r\n if (window.location.hash == \"#homePage\")\r\n window.HomePage.prototype.showHorses();\r\n });\r\n this.setState({\r\n selectedHorseType: { key: 1, value: 1, label: \"All horse types\" },\r\n });\r\n if (window.HomePage.horseFilterCallback)\r\n window.HomePage.horseFilterCallback(\r\n window.HomePage.FILTER_HORSE_TYPE,\r\n 1\r\n );\r\n if (window.training) window.training.refresh();\r\n }\r\n };\r\n\r\n onStableChange = (stableArr) => {\r\n //window.TopMenu.Self.setSideMenuVisible(false);\r\n if (Array.isArray(stableArr) && stableArr.length) {\r\n const valArr = stableArr.map((item) => item.value);\r\n let selectedStableArr = [];\r\n if (valArr[valArr.length - 1] == 1) {\r\n window.GlobalData.setItem(\r\n window.GlobalData.SHOW_IN_STABLE,\r\n JSON.stringify([1])\r\n );\r\n selectedStableArr[0] = stableArr[stableArr.length - 1];\r\n } else {\r\n selectedStableArr = stableArr.filter((i) => i.value != 1);\r\n const valArr = selectedStableArr.map((i) => i.value);\r\n window.GlobalData.setItem(\r\n window.GlobalData.SHOW_IN_STABLE,\r\n JSON.stringify(valArr)\r\n );\r\n }\r\n this.setState({\r\n selectedStable: selectedStableArr,\r\n });\r\n\r\n if (window.HomePage.horseFilterCallback)\r\n window.HomePage.horseFilterCallback(\r\n window.HomePage.FILTER_HORSE_STABLE,\r\n valArr\r\n );\r\n if (window.training) window.training.refresh();\r\n } else {\r\n window.GlobalData.setItem(\r\n window.GlobalData.SHOW_IN_STABLE,\r\n JSON.stringify([1])\r\n );\r\n this.setState({\r\n selectedStable: { key: 1, value: 1, label: \"All Stables\" },\r\n });\r\n if (window.HomePage.horseFilterCallback)\r\n window.HomePage.horseFilterCallback(\r\n window.HomePage.FILTER_HORSE_STABLE,\r\n 1\r\n );\r\n if (window.training) window.training.refresh();\r\n }\r\n };\r\n\r\n onLabelChange = (labelArr) => {\r\n if (Array.isArray(labelArr) && labelArr.length) {\r\n const valArr = labelArr.map((item) => item.value);\r\n let selectedLabelArr = [];\r\n if (valArr[valArr.length - 1] == 1) {\r\n window.GlobalData.setItem(\r\n window.GlobalData.FILTER_LABEL,\r\n JSON.stringify([1])\r\n );\r\n selectedLabelArr[0] = labelArr[labelArr.length - 1];\r\n } else {\r\n selectedLabelArr = labelArr.filter((i) => i.value != 1);\r\n const valArr = selectedLabelArr.map((i) => i.value);\r\n window.GlobalData.setItem(\r\n window.GlobalData.FILTER_LABEL,\r\n JSON.stringify(valArr)\r\n );\r\n }\r\n this.setState({\r\n selectedLabels: selectedLabelArr,\r\n });\r\n } else {\r\n window.GlobalData.setItem(\r\n window.GlobalData.FILTER_LABEL,\r\n JSON.stringify([1])\r\n );\r\n this.setState({\r\n selectedLabels: { key: 1, value: 1, label: \"All Labels\" },\r\n });\r\n }\r\n if (window.location.hash == \"#homePage\")\r\n window.HomePage.prototype.showHorses();\r\n if (window.training) window.training.refresh();\r\n };\r\n\r\n render() {\r\n const {\r\n showTrianingGroup,\r\n showFilterGroup,\r\n riders,\r\n riderValue,\r\n horseTypes,\r\n selectedHorseType,\r\n stables,\r\n selectedStable,\r\n labels,\r\n selectedLabels,\r\n } = this.state;\r\n const orderDefaultValue = window.GlobalData.getItem(\r\n window.GlobalData.ORDER_BY\r\n );\r\n\r\n return (\r\n
\r\n this.onToggle(\"showFilterGroup\")}\r\n >\r\n Filter\r\n \r\n
\r\n {showFilterGroup && (\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n )}\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n Lang\r\n
\r\n
\r\n Help\r\n
\r\n
\r\n Contact\r\n
\r\n \r\n Logout\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport class SideMenuExtention {\r\n renderSideMenu() {\r\n ReactDOM.render(, document.getElementById(\"sideMenuDiv\"));\r\n }\r\n\r\n refreshSideMenu() {\r\n ReactDOM.render(\r\n ,\r\n document.getElementById(\"sideMenuDiv\")\r\n );\r\n }\r\n}\r\n","import React, { Component } from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport * as XLSX from \"xlsx\";\r\nimport \"./Report.css\";\r\nimport MultimediaHelper from \"../Multimedia/MultimediaHelper\";\r\nimport {\r\n convertDateStringDDMMYYYYtoYYYYMMDD,\r\n isValidDateDDMMYYYY,\r\n} from \"../Utils/dateUtils\";\r\n\r\nclass ReportsPage extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.purchasePrice = \"Indkøbspris:\";\r\n this.withVAT = \"Med moms:\";\r\n this.currentAssessment = \"Vurdering aktuelt:\";\r\n this.assessmentPotential = \"Vurdering Potentielt:\";\r\n this.salePrice = \"Salgspris:\";\r\n this.costPrice1 = \"Kostpris 1:\";\r\n this.costPrice2 = \"Kostpris 2:\";\r\n this.costPrice3 = \"Kostpris 3:\";\r\n this.purchasePriceLength = 12;\r\n this.withVATLength = 9;\r\n this.currentAssessmentLength = 18;\r\n this.assessmentPotentialLength = 21;\r\n this.salePriceLength = 10;\r\n this.costPrice1Length = 11;\r\n this.costPrice2Length = 11;\r\n this.costPrice3Length = 11;\r\n\r\n this.state = {\r\n farVetSelector: [],\r\n reportDataArray: [],\r\n selectedValue: \"\",\r\n horse: props.horseId,\r\n headerTitle: \"\",\r\n };\r\n }\r\n\r\n componentDidUpdate = (prevProps) => {\r\n if (prevProps.horseId !== this.props.horseId) {\r\n this.setState({ horse: this.props.horseId }, () => {\r\n this.loadData();\r\n });\r\n }\r\n if (prevProps.date !== this.props.date && prevProps.date != null) {\r\n this.onFarVetSelectorChange({\r\n target: { value: this.state.selectedValue },\r\n });\r\n }\r\n };\r\n\r\n componentDidMount = () => {\r\n const horseTypes = JSON.parse(\r\n window.GlobalData.getItem(window.GlobalData.SHOW_IN_TRAINING)\r\n );\r\n this.isHistoricHorses = horseTypes[0] == 101;\r\n this.loadData();\r\n };\r\n\r\n loadData = () => {\r\n let farVetSelector;\r\n\r\n if (this.state.horse) {\r\n farVetSelector = [\r\n { value: 1, label: window.lang.vetReport },\r\n { value: 2, label: window.lang.farReport },\r\n { value: 3, label: window.lang.allHorsesAndTasksToday },\r\n { value: 4, label: window.lang.horse45days },\r\n { value: 5, label: window.lang.taskHorsesWithRemarks },\r\n { value: 6, label: window.lang.allHorsesByType },\r\n { value: 7, label: window.lang.stabletime },\r\n { value: 8, label: window.lang.allHorsesWithPrice },\r\n { value: 9, label: window.lang.allHorsesTodayWithNotes },\r\n { value: 10, label: window.lang.horse45daysRemarks },\r\n { value: 11, label: window.lang.allHorses45days },\r\n { value: 12, label: \"Horses with id and notats\" },\r\n { value: 13, label: window.lang.allVacinations },\r\n { value: 14, label: \"Horses with sales info\" },\r\n { value: 15, label: window.lang.ownerHorseType },\r\n { value: 16, label: window.lang.ownerHorse },\r\n { value: 17, label: window.lang.horseFollowsRider },\r\n { value: 18, label: window.lang.horseAge },\r\n { value: 19, label: window.lang.salesNotesHorse },\r\n { value: 20, label: window.lang.salesNotesHorseType },\r\n { value: 21, label: window.lang.trainingHistory },\r\n { value: 22, label: window.lang.vaccinationHorse },\r\n { value: 23, label: window.lang.vaccinationHorseType },\r\n { value: 24, label: window.lang.farrierHorse },\r\n { value: 25, label: window.lang.farrierHorseType },\r\n { value: 26, label: window.lang.vetHorse },\r\n { value: 27, label: window.lang.vetHorseType },\r\n { value: 28, label: window.lang.priceReport },\r\n { value: 29, label: \"All horses all data\" },\r\n { value: 30, label: \"This horse with remarks and workouts\" },\r\n { value: 31, label: \"Stable History Report\" },\r\n ];\r\n this.setState({ selectedValue: 4 }, () => {\r\n this.createHorse45DaysReport();\r\n });\r\n } else {\r\n farVetSelector = [\r\n { value: 1, label: window.lang.vetReport },\r\n { value: 2, label: window.lang.farReport },\r\n { value: 3, label: window.lang.allHorsesAndTasksToday },\r\n { value: 6, label: window.lang.allHorsesByType },\r\n { value: 7, label: window.lang.stabletime },\r\n { value: 8, label: window.lang.allHorsesWithPrice },\r\n { value: 9, label: window.lang.allHorsesTodayWithNotes },\r\n { value: 11, label: window.lang.allHorses45days },\r\n { value: 12, label: \"Horses with id and notats\" },\r\n { value: 13, label: window.lang.allVacinations },\r\n { value: 14, label: \"Horses with sales info\" },\r\n { value: 15, label: window.lang.ownerHorseType },\r\n { value: 16, label: window.lang.ownerHorse },\r\n { value: 17, label: window.lang.horseFollowsRider },\r\n { value: 18, label: window.lang.horseAge },\r\n { value: 19, label: window.lang.salesNotesHorse },\r\n { value: 20, label: window.lang.salesNotesHorseType },\r\n { value: 21, label: window.lang.trainingHistory },\r\n { value: 22, label: window.lang.vaccinationHorse },\r\n { value: 23, label: window.lang.vaccinationHorseType },\r\n { value: 24, label: window.lang.farrierHorse },\r\n { value: 25, label: window.lang.farrierHorseType },\r\n { value: 26, label: window.lang.vetHorse },\r\n { value: 27, label: window.lang.vetHorseType },\r\n { value: 28, label: window.lang.priceReport },\r\n { value: 29, label: \"All horses all data\" },\r\n ];\r\n this.setState({ selectedValue: 6 }, () => {\r\n this.createAllHorsesByTypeReport();\r\n });\r\n }\r\n\r\n const settingsReportStr = window.GlobalData.getItem(\r\n window.GlobalData.SETTINGS_REPPORT\r\n );\r\n let settingsReport = [];\r\n if (settingsReportStr) {\r\n settingsReport = JSON.parse(settingsReportStr);\r\n }\r\n farVetSelector = farVetSelector.map((item) => {\r\n const settingsReportItem = settingsReport.find(\r\n (r) => r.value == item.value\r\n );\r\n return {\r\n ...item,\r\n isVisible: settingsReportItem ? settingsReportItem.isVisible : true,\r\n orderIndex: settingsReportItem ? settingsReportItem.orderIndex : 1000,\r\n };\r\n });\r\n farVetSelector = farVetSelector.sort((a, b) => a.orderIndex - b.orderIndex);\r\n\r\n this.setState({\r\n farVetSelector: farVetSelector,\r\n });\r\n };\r\n\r\n onFarVetSelectorChange = (e) => {\r\n switch (e.target.value) {\r\n case \"1\":\r\n window.Spinner.show();\r\n this.createVetReport();\r\n this.setState({ selectedValue: e.target.value });\r\n break;\r\n case \"2\":\r\n window.Spinner.show();\r\n this.createFarReport();\r\n this.setState({ selectedValue: e.target.value });\r\n break;\r\n case \"3\":\r\n window.Spinner.show();\r\n this.createAllHorsesAndTasksTodayReport();\r\n this.setState({ selectedValue: e.target.value });\r\n break;\r\n case \"4\":\r\n window.Spinner.show();\r\n this.createHorse45DaysReport();\r\n this.setState({ selectedValue: e.target.value });\r\n break;\r\n case \"5\":\r\n window.Spinner.show();\r\n this.createTaskHorsesWithRemarksReport();\r\n this.setState({ selectedValue: e.target.value });\r\n break;\r\n case \"6\":\r\n window.Spinner.show();\r\n this.createAllHorsesByTypeReport();\r\n this.setState({ selectedValue: e.target.value });\r\n break;\r\n case \"7\":\r\n window.Spinner.show();\r\n this.createStableTimeReport();\r\n this.setState({ selectedValue: e.target.value });\r\n break;\r\n case \"8\":\r\n window.Spinner.show();\r\n this.createAllHorsesWithPrice();\r\n this.setState({ selectedValue: e.target.value });\r\n break;\r\n case \"9\":\r\n window.Spinner.show();\r\n this.createAllHorsesTodayWithNotesReport();\r\n this.setState({ selectedValue: e.target.value });\r\n break;\r\n case \"10\":\r\n window.Spinner.show();\r\n this.createHorse45DaysRemarksReport();\r\n this.setState({ selectedValue: e.target.value });\r\n break;\r\n case \"11\":\r\n window.Spinner.show();\r\n this.createAllHorses45daysReport();\r\n this.setState({ selectedValue: e.target.value });\r\n break;\r\n case \"12\":\r\n window.Spinner.show();\r\n this.createHorsesWithIdAndNotesReport();\r\n this.setState({ selectedValue: e.target.value });\r\n break;\r\n case \"13\":\r\n window.Spinner.show();\r\n this.createAllVaccinationReport();\r\n this.setState({ selectedValue: e.target.value });\r\n break;\r\n case \"14\":\r\n window.Spinner.show();\r\n this.createHorsesSalesReport();\r\n this.setState({ selectedValue: e.target.value });\r\n break;\r\n case \"15\":\r\n window.Spinner.show();\r\n this.createOwnerTypeReport();\r\n this.setState({ selectedValue: e.target.value });\r\n break;\r\n case \"16\":\r\n window.Spinner.show();\r\n this.createOwnerHorseReport();\r\n this.setState({ selectedValue: e.target.value });\r\n break;\r\n case \"17\":\r\n window.Spinner.show();\r\n this.createHorseFollowsRiderReport();\r\n this.setState({ selectedValue: e.target.value });\r\n break;\r\n case \"18\":\r\n window.Spinner.show();\r\n this.createHorseAgeReport();\r\n this.setState({ selectedValue: e.target.value });\r\n break;\r\n case \"19\":\r\n window.Spinner.show();\r\n this.createSalesNotesHorseReport();\r\n this.setState({ selectedValue: e.target.value });\r\n break;\r\n case \"20\":\r\n window.Spinner.show();\r\n this.createSalesNotesTypeReport();\r\n this.setState({ selectedValue: e.target.value });\r\n break;\r\n case \"21\":\r\n window.Spinner.show();\r\n this.createTrainingHistoryReport();\r\n this.setState({ selectedValue: e.target.value });\r\n break;\r\n case \"22\":\r\n window.Spinner.show();\r\n this.createVaccinationsHorseReport();\r\n this.setState({ selectedValue: e.target.value });\r\n break;\r\n case \"23\":\r\n window.Spinner.show();\r\n this.createVaccinationsTypeReport();\r\n this.setState({ selectedValue: e.target.value });\r\n break;\r\n case \"24\":\r\n window.Spinner.show();\r\n this.createFarrierHorseReport();\r\n this.setState({ selectedValue: e.target.value });\r\n break;\r\n case \"25\":\r\n window.Spinner.show();\r\n this.createFarrierHorseTypeReport();\r\n this.setState({ selectedValue: e.target.value });\r\n break;\r\n case \"26\":\r\n window.Spinner.show();\r\n this.createVetHorseReport();\r\n this.setState({ selectedValue: e.target.value });\r\n break;\r\n case \"27\":\r\n window.Spinner.show();\r\n this.createVetHorseTypeReport();\r\n this.setState({ selectedValue: e.target.value });\r\n break;\r\n case \"28\":\r\n window.Spinner.show();\r\n this.createPriceReport();\r\n this.setState({ selectedValue: e.target.value });\r\n break;\r\n case \"29\":\r\n window.Spinner.show();\r\n this.createAllHorsesAllDataReport();\r\n this.setState({ selectedValue: e.target.value });\r\n break;\r\n case \"30\":\r\n window.Spinner.show();\r\n this.createThisHorseWithRemarksAndWorkoutsReport();\r\n this.setState({ selectedValue: e.target.value });\r\n break;\r\n case \"31\":\r\n window.Spinner.show();\r\n this.createThisHorseStableBoxHistoryLogReport();\r\n this.setState({ selectedValue: e.target.value });\r\n break;\r\n default:\r\n break;\r\n }\r\n };\r\n\r\n getPermission = (horseId) => {\r\n let horseItem = window.DataStorage.getAllHorses().find(\r\n (h) => h.id == horseId\r\n );\r\n if (horseItem) {\r\n if (horseItem.userid != window.myid) {\r\n let role = window.DataStorage.rolesDataFromUsers.find(\r\n (r) => r.UserId == horseItem.userid\r\n );\r\n if (role != null && role.rSeeHorseData == false) return false;\r\n else return true;\r\n } else return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n\r\n createVetReport = () => {\r\n window.db.getVetFarTrainingsByUser(\r\n window.myid,\r\n this.isHistoricHorses,\r\n (data) => {\r\n let farTrainings = [];\r\n let vetTrainings = [];\r\n for (var i = 0; i < data.length; i++) {\r\n if (\r\n data[i][\"ShortName\"] == \"VET\" ||\r\n data[i][\"ShortName\"] == \"DYR\" ||\r\n data[i][\"ShortName\"] == \"TI\"\r\n ) {\r\n if (!this.getPermission(data[i].horseId)) continue;\r\n vetTrainings.push(data[i]);\r\n } else {\r\n farTrainings.push(data[i]);\r\n }\r\n }\r\n let tableArr = [\r\n [\"Date\", window.lang.name, window.lang.remark],\r\n ...vetTrainings.map((t) => [t.StartTime, t.Name, t.Remark]),\r\n ];\r\n this.setState({\r\n reportDataArray: [\r\n {\r\n header: \"\",\r\n data: tableArr,\r\n },\r\n ],\r\n headerTitle: window.lang.vetReport,\r\n });\r\n window.Spinner.hide();\r\n }\r\n );\r\n };\r\n\r\n createFarReport = () => {\r\n window.db.getVetFarTrainingsByUser(\r\n window.myid,\r\n this.isHistoricHorses,\r\n (data) => {\r\n let farTrainings = [];\r\n let vetTrainings = [];\r\n for (var i = 0; i < data.length; i++) {\r\n if (\r\n data[i][\"ShortName\"] == \"VET\" ||\r\n data[i][\"ShortName\"] == \"DYR\" ||\r\n data[i][\"ShortName\"] == \"TI\"\r\n ) {\r\n if (data[i][\"SeeVet\"] == \"n\") {\r\n continue;\r\n }\r\n vetTrainings.push(data[i]);\r\n } else {\r\n if (!this.getPermission(data[i].horseId)) continue;\r\n farTrainings.push(data[i]);\r\n }\r\n }\r\n let tableArr = [\r\n [\"Date\", window.lang.name, window.lang.remark],\r\n ...farTrainings.map((t) => [t.StartTime, t.Name, t.Remark]),\r\n ];\r\n this.setState({\r\n reportDataArray: [\r\n {\r\n header: \"\",\r\n data: tableArr,\r\n },\r\n ],\r\n headerTitle: window.lang.farReport,\r\n });\r\n window.Spinner.hide();\r\n }\r\n );\r\n };\r\n\r\n createAllHorsesAndTasksTodayReport = () => {\r\n let startDate = new Date().formatDesh();\r\n var endDate = new Date().formatDesh();\r\n window.db.getTrainingsByHorseAndDateForMyHorses(\r\n window.myid,\r\n startDate,\r\n endDate,\r\n (trainData) => {\r\n window.db.getMyAndSharedHorses(\r\n window.myid,\r\n (hdata1, hdata2) => {\r\n var rows = [];\r\n var data = hdata1.concat(hdata2);\r\n var names = [];\r\n for (var i = 0; i < data.length; i++) {\r\n names[data[i][\"id\"]] = data[i][\"name\"];\r\n }\r\n for (var i = 0; i < trainData.length; i++) {\r\n if (!this.getPermission(trainData[i][\"horseid\"])) continue;\r\n var trainItem = trainData.item(i);\r\n var name = names[trainItem[\"horseid\"]];\r\n var row = [\r\n name,\r\n trainItem[\"name\"],\r\n this.getSmileyForItem(trainItem[\"Evaluation\"]),\r\n trainItem[\"trainername\"],\r\n trainItem[\"remark\"],\r\n ];\r\n rows.push(row);\r\n }\r\n\r\n let tableArr = [\r\n [\r\n window.lang.horse,\r\n window.lang.type,\r\n window.lang.evaluation,\r\n window.lang.riders,\r\n window.lang.notes,\r\n ],\r\n ...rows,\r\n ];\r\n\r\n this.setState({\r\n reportDataArray: [\r\n {\r\n header: \"\",\r\n data: tableArr,\r\n },\r\n ],\r\n headerTitle: window.lang.allHorsesAndTasksToday,\r\n });\r\n window.Spinner.hide();\r\n },\r\n this.isHistoricHorses ? 101 : 1\r\n );\r\n },\r\n this.isHistoricHorses\r\n );\r\n };\r\n\r\n getSmileyForItem = (item) => {\r\n var str = \"\";\r\n if (item && item != 0) {\r\n str = '';\r\n }\r\n return str;\r\n };\r\n\r\n createHorse45DaysReport = () => {\r\n const { horse } = this.state;\r\n let startDate = new Date();\r\n let endDate = new Date().formatDesh();\r\n startDate.setDate(startDate.getDate() - 45);\r\n startDate = startDate.formatDesh();\r\n window.db.getTrainingsByHorseAndDate(\r\n horse.id,\r\n startDate,\r\n endDate,\r\n (trainData) => {\r\n trainData = trainData.sort(this.sortStartTime);\r\n if (!this.getPermission(horse.id))\r\n var tableArr = [\r\n [\r\n \"Date\",\r\n window.lang.type,\r\n window.lang.evaluation,\r\n window.lang.riders,\r\n window.lang.notes,\r\n ],\r\n ];\r\n else\r\n var tableArr = [\r\n [\r\n \"Date\",\r\n window.lang.type,\r\n window.lang.evaluation,\r\n window.lang.riders,\r\n window.lang.notes,\r\n ],\r\n ...trainData.map((t) => [\r\n Date.reformatToDMY(t.starttime),\r\n t.name,\r\n this.getSmileyForItem(t.Evaluation),\r\n t.trainername,\r\n t.remark,\r\n ]),\r\n ];\r\n this.setState({\r\n reportDataArray: [\r\n {\r\n header: \"\",\r\n data: tableArr,\r\n },\r\n ],\r\n headerTitle: this.state.horse.name,\r\n });\r\n window.Spinner.hide();\r\n },\r\n this.isHistoricHorses\r\n );\r\n };\r\n\r\n sortStartTime = (a, b) => {\r\n const startTimeA = a.starttime;\r\n const statrTimeB = b.starttime;\r\n let comparison = 0;\r\n if (startTimeA < statrTimeB) {\r\n comparison = 1;\r\n } else if (startTimeA > statrTimeB) {\r\n comparison = -1;\r\n }\r\n return comparison;\r\n };\r\n\r\n createTaskHorsesWithRemarksReport = () => {\r\n const { horse } = this.state;\r\n let startDate = new Date();\r\n let endDate = new Date().formatDesh();\r\n startDate.setMonth(startDate.getMonth() - 1);\r\n startDate = startDate.formatDesh();\r\n window.db.getTrainingsByHorseAndDateWithRemark(\r\n horse.id,\r\n startDate,\r\n endDate,\r\n (trainData) => {\r\n if (!this.getPermission(horse.id))\r\n var tableArr = [\r\n [\r\n \"Date\",\r\n window.lang.type,\r\n window.lang.evaluation,\r\n window.lang.riders,\r\n window.lang.notes,\r\n ],\r\n ];\r\n else\r\n var tableArr = [\r\n [\r\n \"Date\",\r\n window.lang.type,\r\n window.lang.evaluation,\r\n window.lang.riders,\r\n window.lang.notes,\r\n ],\r\n ...trainData.map((t) => [\r\n Date.reformatToDMY(t.starttime),\r\n t.name,\r\n this.getSmileyForItem(t.Evaluation),\r\n t.trainername,\r\n t.remark,\r\n ]),\r\n ];\r\n this.setState({\r\n reportDataArray: [\r\n {\r\n header: \"\",\r\n data: tableArr,\r\n },\r\n ],\r\n headerTitle: this.state.horse.name,\r\n });\r\n window.Spinner.hide();\r\n }\r\n );\r\n };\r\n\r\n createAllHorsesByTypeReport = () => {\r\n window.db.getHorsesForReportByTypeAndWithPrice(\r\n this.isHistoricHorses,\r\n (dataHorses) => {\r\n var typesNotNull = [];\r\n for (var i = 0; i < dataHorses.length; i++) {\r\n if (!this.getPermission(dataHorses[i].id)) continue;\r\n if (typesNotNull.indexOf(dataHorses[i][\"Type\"]) == -1) {\r\n typesNotNull.push(dataHorses[i][\"Type\"]);\r\n }\r\n }\r\n let reportData = [];\r\n\r\n for (var j = 0; j < typesNotNull.length; j++) {\r\n let tableArr = [];\r\n var typeName = typesNotNull[j] != null ? typesNotNull[j] : \"None\";\r\n tableArr.push([\r\n window.lang.name,\r\n window.lang.age,\r\n \"Sex\",\r\n window.lang.pedigree,\r\n window.lang.result,\r\n \"Reg. nr\",\r\n ]);\r\n for (var i = 0; i < dataHorses.length; i++) {\r\n if (!this.getPermission(dataHorses[i].id)) continue;\r\n if (dataHorses[i].Type == typesNotNull[j]) {\r\n tableArr.push([\r\n dataHorses[i].Name,\r\n dataHorses[i].BirthYear,\r\n this.setGender(dataHorses[i].Gender),\r\n this.setPeddi(dataHorses[i].PedigreeJsonText),\r\n dataHorses[i].Result,\r\n dataHorses[i].RFBid,\r\n ]);\r\n }\r\n }\r\n reportData.push({\r\n header: typeName,\r\n data: tableArr,\r\n });\r\n }\r\n\r\n this.setState({\r\n reportDataArray: reportData,\r\n headerTitle: window.lang.allHorsesByType,\r\n });\r\n window.Spinner.hide();\r\n }\r\n );\r\n };\r\n\r\n setGender = (index) => {\r\n var genderText = \"\";\r\n if (index == 0) {\r\n genderText = \"None\";\r\n } else if (index == 1) {\r\n genderText = window.lang.horseTypeMare;\r\n } else if (index == 2) {\r\n genderText = window.lang.horseTypeGelding;\r\n } else {\r\n genderText = window.lang.horseTypeStallion;\r\n }\r\n return genderText;\r\n };\r\n\r\n setPeddi = (jsonText) => {\r\n var text = JSON.parse(jsonText);\r\n if (text != null) {\r\n var peddiText =\r\n text[\"mather\"] +\r\n \" / \" +\r\n text[\"grmather_father\"] +\r\n \" / \" +\r\n text[\"grmather_grfather_f\"];\r\n } else {\r\n var peddiText = \"\";\r\n }\r\n return peddiText;\r\n };\r\n\r\n createStableTimeReport = () => {\r\n var nDate = new Date().formatDeshStartDay().split(\"-\");\r\n var month = nDate[1] - 1;\r\n var periodDay = new Date();\r\n var today = new Date();\r\n var lastDayOfMonth = new Date(today.getFullYear(), month, 0);\r\n periodDay.setMonth(periodDay.getMonth() - 1);\r\n periodDay.setDate(lastDayOfMonth.getDate());\r\n var periodStart = new Date(\r\n lastDayOfMonth.getFullYear(),\r\n month - 1,\r\n 1\r\n ).formatDeshStartDay();\r\n var periodEnd = periodDay.formatDeshStartDay();\r\n window.db.getRepportFreeBoxesByUser(\r\n window.myid,\r\n periodStart,\r\n periodEnd,\r\n (data) => {\r\n var dataNorm = [];\r\n for (var i = 0; i < data.length; i++) {\r\n var f = data[i][\"Finish\"].split(\"-\");\r\n var s = data[i][\"Start\"].split(\"-\");\r\n if (data[i][\"Finish\"] != \"null\") {\r\n if (parseInt(f[1]) < month) {\r\n continue;\r\n } else if (parseInt(f[1]) > month) {\r\n var finishDate = new Date(\r\n lastDayOfMonth.getFullYear(),\r\n month - 1,\r\n lastDayOfMonth.getDate()\r\n );\r\n } else {\r\n var finishDate = new Date(f[2], f[1] - 1, f[0]);\r\n }\r\n } else {\r\n var finishDate = new Date(\r\n lastDayOfMonth.getFullYear(),\r\n month - 1,\r\n lastDayOfMonth.getDate()\r\n );\r\n }\r\n if (parseInt(s[1]) < month) {\r\n var startDate = new Date(\r\n lastDayOfMonth.getFullYear(),\r\n month - 1,\r\n \"01\"\r\n );\r\n } else {\r\n var startDate = new Date(s[2], s[1] - 1, s[0]);\r\n }\r\n var one_day = 1000 * 60 * 60 * 24;\r\n var dayCount = (finishDate - startDate) / one_day + 1;\r\n data[i][\"Summ\"] = dayCount;\r\n if (!dataNorm[data[i][\"Name\"]]) {\r\n dataNorm[data[i][\"Name\"]] = data[i];\r\n } else {\r\n if (dataNorm[data[i][\"Name\"]][\"Name\"] == data[i][\"Name\"]) {\r\n dataNorm[data[i][\"Name\"]][\"Summ\"] += dayCount;\r\n }\r\n }\r\n }\r\n\r\n let dataArray = [];\r\n for (var key in dataNorm) {\r\n if (!this.getPermission(dataNorm[key].Id)) continue;\r\n var cdate =\r\n dataNorm[key][\"CreateDate\"] == null\r\n ? \"\"\r\n : dataNorm[key][\"CreateDate\"] == \"01-01-1900\"\r\n ? \"\"\r\n : dataNorm[key][\"CreateDate\"];\r\n var owner =\r\n (dataNorm[key][\"Owner\"] == null ? \"\" : dataNorm[key][\"Owner\"]) +\r\n \" and \" +\r\n (dataNorm[key][\"Company\"] == null ? \"\" : dataNorm[key][\"Company\"]);\r\n dataArray.push([\r\n dataNorm[key].Name,\r\n owner,\r\n dataNorm[key].Company,\r\n cdate.toString(),\r\n dataNorm[key].Summ.toString(),\r\n dataNorm[key].Notes,\r\n ]);\r\n }\r\n let tableArr = [\r\n [\r\n window.lang.name,\r\n window.lang.owner,\r\n window.lang.arrival,\r\n window.lang.departure,\r\n window.lang.Sum,\r\n window.lang.notes,\r\n ],\r\n ...dataArray,\r\n ];\r\n\r\n this.setState({\r\n reportDataArray: [\r\n {\r\n header: \"\",\r\n data: tableArr,\r\n },\r\n ],\r\n headerTitle: window.lang.stabletime,\r\n });\r\n window.Spinner.hide();\r\n },\r\n this.isHistoricHorses\r\n );\r\n };\r\n\r\n createAllHorsesWithPrice = () => {\r\n window.db.getHorsesForReportByTypeAndWithPrice(\r\n this.isHistoricHorses,\r\n (dataHorses) => {\r\n var typesNotNull = [];\r\n for (let i = 0; i < dataHorses.length; i++) {\r\n if (!this.getPermission(dataHorses[i].id)) continue;\r\n if (typesNotNull.indexOf(dataHorses[i][\"Type\"]) == -1) {\r\n typesNotNull.push(dataHorses[i][\"Type\"]);\r\n }\r\n }\r\n let reportData = [];\r\n for (let j = 0; j < typesNotNull.length; j++) {\r\n let dataArray = [];\r\n var typeName = typesNotNull[j] != null ? typesNotNull[j] : \"None\";\r\n dataArray.push([\r\n window.lang.name,\r\n window.lang.age,\r\n \"Sex\",\r\n window.lang.pedigree,\r\n window.lang.color,\r\n window.lang.height,\r\n window.lang.result,\r\n \"Reg. nr\",\r\n window.lang.price,\r\n ]);\r\n for (let t = 0; t < dataHorses.length; t++) {\r\n if (!this.getPermission(dataHorses[t].id)) continue;\r\n if (dataHorses[t][\"Type\"] == typesNotNull[j]) {\r\n var color =\r\n dataHorses[t].ColorName == null ? \"\" : dataHorses[t].ColorName;\r\n var price =\r\n dataHorses[t].Price == null ? \"\" : dataHorses[t].Price;\r\n var peddi = this.setPeddi(dataHorses[t].PedigreeJsonText);\r\n dataArray.push([\r\n dataHorses[t].Name,\r\n dataHorses[t].BirthYear,\r\n this.setGender(dataHorses[t].Gender),\r\n peddi,\r\n color,\r\n dataHorses[t].Height,\r\n dataHorses[t].Result,\r\n dataHorses[t].RFBid,\r\n price,\r\n ]);\r\n }\r\n }\r\n reportData.push({\r\n header: typeName,\r\n data: dataArray,\r\n });\r\n }\r\n\r\n this.setState({\r\n reportDataArray: reportData,\r\n headerTitle: window.lang.allHorsesWithPrice,\r\n });\r\n window.Spinner.hide();\r\n }\r\n );\r\n };\r\n\r\n createAllHorsesTodayWithNotesReport = () => {\r\n let startDate = new Date();\r\n startDate = startDate.formatDesh();\r\n let endDate = new Date().formatDesh();\r\n window.db.getTrainingsWithRemark(\r\n startDate,\r\n endDate,\r\n (trainData) => {\r\n let tData = [];\r\n for (let i = 0; i < trainData.length; i++) {\r\n if (!this.getPermission(trainData[i].horseid)) continue;\r\n tData.push(trainData[i]);\r\n }\r\n let tableArr = [\r\n [\r\n \"Date\",\r\n window.lang.horse,\r\n window.lang.type,\r\n window.lang.evaluation,\r\n window.lang.riders,\r\n window.lang.notes,\r\n ],\r\n ...tData.map((t) => [\r\n Date.reformatToDMY(t.starttime),\r\n t.horsename,\r\n t.name,\r\n this.getSmileyForItem(t.Evaluation),\r\n t.trainername,\r\n t.remark,\r\n ]),\r\n ];\r\n\r\n this.setState({\r\n reportDataArray: [\r\n {\r\n header: \"\",\r\n data: tableArr,\r\n },\r\n ],\r\n headerTitle: window.lang.allHorsesTodayWithNotes,\r\n });\r\n window.Spinner.hide();\r\n },\r\n this.isHistoricHorses\r\n );\r\n };\r\n\r\n createHorse45DaysRemarksReport = () => {\r\n const { horse } = this.state;\r\n let startDate = new Date();\r\n let endDate = new Date().formatDesh();\r\n startDate.setDate(startDate.getDate() - 45);\r\n startDate = startDate.formatDesh();\r\n window.db.getTrainingsByHorseAndDate(\r\n horse.id,\r\n startDate,\r\n endDate,\r\n (trainData) => {\r\n trainData = trainData.sort(this.sortStartTime);\r\n let dataArr = [];\r\n if (this.getPermission(horse.id))\r\n for (var i = 0; i < trainData.length; i++) {\r\n var trainItem = trainData.item(i);\r\n if (trainItem.remark == \"\") {\r\n continue;\r\n }\r\n var dateStr = trainItem.starttime;\r\n dataArr.push([\r\n Date.reformatToDMY(dateStr),\r\n trainItem.name,\r\n this.getSmileyForItem(trainItem.Evaluation),\r\n trainItem.trainername,\r\n trainItem.remark,\r\n ]);\r\n }\r\n\r\n let tableArr = [\r\n [\r\n \"Date\",\r\n window.lang.type,\r\n window.lang.evaluation,\r\n window.lang.riders,\r\n window.lang.notes,\r\n ],\r\n ...dataArr,\r\n ];\r\n this.setState({\r\n reportDataArray: [\r\n {\r\n header: \"\",\r\n data: tableArr,\r\n },\r\n ],\r\n headerTitle: this.state.horse.name,\r\n });\r\n window.Spinner.hide();\r\n }\r\n );\r\n };\r\n\r\n createAllHorses45daysReport = () => {\r\n var startDate = new Date();\r\n var endDate = new Date().formatDesh();\r\n startDate.setDate(startDate.getDate() - 45);\r\n startDate = startDate.formatDesh();\r\n window.db.getTrainingsByHorseAndDateForMyHorses(\r\n window.myid,\r\n startDate,\r\n endDate,\r\n (trainData) => {\r\n window.db.getMyAndSharedHorses(\r\n window.myid,\r\n (hdata1, hdata2) => {\r\n var data = hdata1.concat(hdata2);\r\n var names = [];\r\n for (var i = 0; i < data.length; i++) {\r\n names[data[i][\"id\"]] = data[i][\"name\"];\r\n }\r\n var rows = [];\r\n trainData = trainData.sort(this.sortStartTime);\r\n for (var i = 0; i < trainData.length; i++) {\r\n var trainItem = trainData.item(i);\r\n if (!this.getPermission(trainItem.horseid)) continue;\r\n var name = names[trainItem[\"horseid\"]];\r\n var row = [\r\n name,\r\n trainItem[\"starttime\"],\r\n trainItem[\"name\"],\r\n this.getSmileyForItem(trainItem[\"Evaluation\"]),\r\n trainItem[\"trainername\"],\r\n trainItem[\"remark\"],\r\n ];\r\n names.push(name);\r\n rows.push(row);\r\n }\r\n names = names.filter(\r\n (item, index) => names.indexOf(item) === index\r\n );\r\n let reportData = [];\r\n for (var q = 0; q < names.length; q++) {\r\n let dataArr = [];\r\n dataArr.push([\r\n window.lang.horse,\r\n \"Date\",\r\n window.lang.type,\r\n window.lang.evaluation,\r\n window.lang.riders,\r\n window.lang.notes,\r\n ]);\r\n for (var i = 0; i < rows.length; i++) {\r\n if (rows[i][0] == names[q]) {\r\n dataArr.push(rows[i]);\r\n }\r\n }\r\n reportData.push({\r\n header: names[q],\r\n data: dataArr,\r\n });\r\n }\r\n this.setState({\r\n reportDataArray: reportData,\r\n headerTitle: window.lang.allHorses45days,\r\n });\r\n },\r\n this.isHistoricHorses ? 101 : 1\r\n );\r\n window.Spinner.hide();\r\n },\r\n this.isHistoricHorses\r\n );\r\n };\r\n\r\n createHorsesWithIdAndNotesReport = () => {\r\n window.db.getReportHorseNotes(\r\n window.myid,\r\n false,\r\n (notes) => {\r\n let noteHeaders = [];\r\n for (let hi = 0; hi < notes.length; hi++) {\r\n if (noteHeaders.find((h) => h == notes[hi].HeaderNote) == null) {\r\n noteHeaders.push(notes[hi].HeaderNote);\r\n }\r\n }\r\n const horseArr = window.DataStorage.getAllHorses();\r\n let tableTh = [];\r\n tableTh = [window.lang.horse, \"Reg nr\", \"Chipid\", window.lang.notes];\r\n for (let hi = 0; hi < noteHeaders.length; hi++) {\r\n tableTh.push(noteHeaders[hi]);\r\n }\r\n\r\n let tdArray = [];\r\n for (let i = 0; i < horseArr.length; i++) {\r\n if (!this.getPermission(horseArr[i].id)) continue;\r\n tdArray.push(\r\n horseArr[i].name,\r\n horseArr[i].rfbid,\r\n horseArr[i].Chipid,\r\n horseArr[i].notes\r\n );\r\n for (let hi = 0; hi < noteHeaders.length; hi++) {\r\n const n = notes.find(\r\n (n) =>\r\n n.IdHorse == horseArr[i].id && n.HeaderNote == noteHeaders[hi]\r\n );\r\n if (n != null) {\r\n tdArray.push(n.TextNote);\r\n } else {\r\n tdArray.push(\"\");\r\n }\r\n }\r\n }\r\n\r\n let size = tableTh.length;\r\n let tableArr = [tableTh];\r\n for (let i = 0; i < Math.ceil(tdArray.length / size); i++) {\r\n tableArr.push(tdArray.slice(i * size, i * size + size));\r\n }\r\n\r\n this.setState({\r\n reportDataArray: [\r\n {\r\n header: \"\",\r\n data: tableArr,\r\n },\r\n ],\r\n headerTitle: \"Horses with id and notats\",\r\n });\r\n window.Spinner.hide();\r\n },\r\n this.isHistoricHorses\r\n );\r\n };\r\n\r\n createHorsesSalesReport = () => {\r\n window.db.getReportHorseNotes(\r\n window.myid,\r\n true,\r\n (notes) => {\r\n let noteHeaders = [];\r\n for (let hi = 0; hi < notes.length; hi++) {\r\n if (!this.getPermission(notes[hi].IdHorse)) continue;\r\n if (noteHeaders.find((h) => h == notes[hi].HeaderNote) == null) {\r\n noteHeaders.push(notes[hi].HeaderNote);\r\n }\r\n }\r\n const horseArr = window.DataStorage.getAllHorses();\r\n let tableTh = [];\r\n tableTh = [window.lang.horse, \"Reg nr\", \"Chipid\", window.lang.price];\r\n for (let hi = 0; hi < noteHeaders.length; hi++) {\r\n tableTh.push(noteHeaders[hi]);\r\n }\r\n\r\n let tdArray = [];\r\n for (let i = 0; i < horseArr.length; i++) {\r\n if (!this.getPermission(horseArr[i].id)) continue;\r\n tdArray.push(\r\n horseArr[i].name,\r\n horseArr[i].rfbid,\r\n horseArr[i].Chipid,\r\n horseArr[i].Price\r\n );\r\n for (let hi = 0; hi < noteHeaders.length; hi++) {\r\n const n = notes.find(\r\n (n) =>\r\n n.IdHorse == horseArr[i].id && n.HeaderNote == noteHeaders[hi]\r\n );\r\n if (n != null) {\r\n tdArray.push(n.TextNote);\r\n } else {\r\n tdArray.push(\"\");\r\n }\r\n }\r\n }\r\n\r\n let size = tableTh.length;\r\n let tableArr = [tableTh];\r\n for (let i = 0; i < Math.ceil(tdArray.length / size); i++) {\r\n tableArr.push(tdArray.slice(i * size, i * size + size));\r\n }\r\n\r\n this.setState({\r\n reportDataArray: [\r\n {\r\n header: \"\",\r\n data: tableArr,\r\n },\r\n ],\r\n headerTitle: \"Horses with id and notats\",\r\n });\r\n window.Spinner.hide();\r\n },\r\n this.isHistoricHorses\r\n );\r\n };\r\n\r\n createAllVaccinationReport = () => {\r\n let horseArr = [\r\n ...window.DataStorage.myHorseArray,\r\n ...window.DataStorage.notMyHorseArray,\r\n ];\r\n let reportData = [];\r\n for (let i = 0; i < horseArr.length; i++) {\r\n if (!this.getPermission(horseArr[i][\"id\"])) continue;\r\n window.db.getVaccinationLatest(horseArr[i][\"id\"], (rows) => {\r\n if (rows.length == 0) {\r\n return;\r\n }\r\n let lastItem = rows.item(0);\r\n let type = window.VaccinationPage.types[lastItem[\"vtype\"] - 1];\r\n let nextType = window.VaccinationPage.types[type.NextIndex];\r\n let minMonths = nextType.MinMonth;\r\n let maxMonths = nextType.MaxMonth;\r\n let minDays = nextType.MinDay;\r\n let maxDays = nextType.MaxDay;\r\n let lastDate = Date.getNewDate(lastItem[\"vdate\"]);\r\n let minDate = new Date(lastDate);\r\n let maxDate = new Date(lastDate);\r\n\r\n minDate.setMonth(minDate.getMonth() + minMonths);\r\n minDate = minDate.addDays(minDays);\r\n maxDate.setMonth(maxDate.getMonth() + maxMonths);\r\n maxDate = maxDate.addDays(maxDays);\r\n let daysLeft = Date.daysBetween(maxDate, new Date());\r\n let dataArr = [];\r\n dataArr.push(\r\n [\r\n window.lang.vaccinationType,\r\n \"Last Vaccination Date\",\r\n window.lang.nextVaccination,\r\n ],\r\n [\r\n nextType.Name,\r\n lastDate.formatDeshStartDay(),\r\n maxDate.formatDeshStartDay(),\r\n ],\r\n [\r\n window.lang.daysLeft + \": \" + daysLeft,\r\n \"\",\r\n Date.daysBetween(new Date(), minDate) < 0\r\n ? window.lang.vacNotAllowed\r\n : \"\",\r\n ]\r\n );\r\n\r\n reportData.push({\r\n header: horseArr[i].name,\r\n data: dataArr,\r\n days: daysLeft,\r\n });\r\n reportData = reportData.sort(this.sortVacinationArr);\r\n\r\n this.setState({\r\n reportDataArray: reportData,\r\n headerTitle: window.lang.allVacinations,\r\n });\r\n });\r\n }\r\n window.Spinner.hide();\r\n };\r\n\r\n sortVacinationArr = (a, b) => {\r\n if (a.days < b.days) return -1;\r\n if (a.days > b.days) return 1;\r\n return 0;\r\n };\r\n\r\n createOwnerTypeReport = () => {\r\n window.db.getOwnerType(\r\n window.myid,\r\n (hdata1) => {\r\n window.db.getOwnerTypeSharedHorses(\r\n window.myid,\r\n (hdata2) => {\r\n window.db.getOwnerByUser(window.myid, (owners) => {\r\n var horses = hdata1.concat(hdata2);\r\n for (let i in horses) {\r\n if (\r\n horses[i].PaperOwner != null &&\r\n horses[i].PaperOwner != \"\"\r\n ) {\r\n horses[i].PaperOwner = JSON.parse(horses[i].PaperOwner);\r\n let ownerName = \"\";\r\n for (let j in horses[i].PaperOwner) {\r\n let item = owners.filter(\r\n (item) => item.Id == horses[i].PaperOwner[j]\r\n );\r\n if (j == 0) item.map((k) => (ownerName += k.Name));\r\n else item.map((k) => (ownerName += \", \" + k.Name));\r\n }\r\n horses[i].PaperOwner = ownerName;\r\n } else horses[i].PaperOwner = \"\";\r\n }\r\n\r\n let dataArr = [];\r\n dataArr.push([\r\n window.lang.type,\r\n window.lang.name,\r\n \"Reg. nr\",\r\n \"Chipid\",\r\n window.lang.owner,\r\n ]);\r\n for (var q = 0; q < horses.length; q++) {\r\n if (!this.getPermission(horses[q].Id)) continue;\r\n dataArr.push([\r\n horses[q].HorseType == null ? \"None\" : horses[q].HorseType,\r\n horses[q].Name,\r\n horses[q].RFBid,\r\n horses[q].Chipid,\r\n horses[q].PaperOwner,\r\n ]);\r\n }\r\n\r\n this.setState({\r\n reportDataArray: [\r\n {\r\n header: \"\",\r\n data: dataArr,\r\n },\r\n ],\r\n headerTitle: window.lang.ownerHorseType,\r\n });\r\n window.Spinner.hide();\r\n });\r\n },\r\n this.isHistoricHorses\r\n );\r\n },\r\n this.isHistoricHorses\r\n );\r\n };\r\n\r\n createOwnerHorseReport = () => {\r\n window.db.getOwnerType(\r\n window.myid,\r\n (hdata1) => {\r\n window.db.getOwnerTypeSharedHorses(\r\n window.myid,\r\n (hdata2) => {\r\n window.db.getOwnerByUser(window.myid, (owners) => {\r\n var horses = hdata1.concat(hdata2);\r\n for (let i in horses) {\r\n if (\r\n horses[i].PaperOwner != null &&\r\n horses[i].PaperOwner != \"\"\r\n ) {\r\n horses[i].PaperOwner = JSON.parse(horses[i].PaperOwner);\r\n let ownerName = \"\";\r\n for (let j in horses[i].PaperOwner) {\r\n let item = owners.filter(\r\n (item) => item.Id == horses[i].PaperOwner[j]\r\n );\r\n if (j == 0) item.map((k) => (ownerName += k.Name));\r\n else item.map((k) => (ownerName += \", \" + k.Name));\r\n }\r\n horses[i].PaperOwner = ownerName;\r\n } else horses[i].PaperOwner = \"\";\r\n }\r\n\r\n let dataArr = [];\r\n dataArr.push([\r\n window.lang.name,\r\n window.lang.type,\r\n \"Reg. nr\",\r\n \"Chipid\",\r\n window.lang.owner,\r\n ]);\r\n for (var q = 0; q < horses.length; q++) {\r\n if (!this.getPermission(horses[q].Id)) continue;\r\n dataArr.push([\r\n horses[q].Name,\r\n horses[q].HorseType == null ? \"None\" : horses[q].HorseType,\r\n horses[q].RFBid,\r\n horses[q].Chipid,\r\n horses[q].PaperOwner,\r\n ]);\r\n }\r\n\r\n this.setState({\r\n reportDataArray: [\r\n {\r\n header: \"\",\r\n data: dataArr,\r\n },\r\n ],\r\n headerTitle: window.lang.ownerHorse,\r\n });\r\n window.Spinner.hide();\r\n });\r\n },\r\n this.isHistoricHorses\r\n );\r\n },\r\n this.isHistoricHorses\r\n );\r\n };\r\n\r\n createHorseFollowsRiderReport = () => {\r\n window.db.getHorseFollowsRider(\r\n window.myid,\r\n (hdata1) => {\r\n window.db.getSharedHorseFollowsRider(\r\n window.myid,\r\n (hdata2) => {\r\n var horses = hdata1.concat(hdata2);\r\n let dataArr = [];\r\n dataArr.push([\r\n window.lang.trainerName,\r\n window.lang.name,\r\n window.lang.notes,\r\n window.lang.type,\r\n ]);\r\n for (var q = 0; q < horses.length; q++) {\r\n if (!this.getPermission(horses[q].Id)) continue;\r\n dataArr.push([\r\n horses[q].Trainer == null ? \"\" : horses[q].Trainer,\r\n horses[q].Name,\r\n horses[q].Notes,\r\n horses[q].HorseType == null ? \"None\" : horses[q].HorseType,\r\n ]);\r\n }\r\n\r\n this.setState({\r\n reportDataArray: [\r\n {\r\n header: \"\",\r\n data: dataArr,\r\n },\r\n ],\r\n headerTitle: window.lang.horseFollowsRider,\r\n });\r\n window.Spinner.hide();\r\n },\r\n this.isHistoricHorses\r\n );\r\n },\r\n this.isHistoricHorses\r\n );\r\n };\r\n\r\n createHorseAgeReport = () => {\r\n window.db.getHorseAge(\r\n window.myid,\r\n (hdata1) => {\r\n window.db.getSharedHorseAge(\r\n window.myid,\r\n (hdata2) => {\r\n window.db.getOwnerByUser(window.myid, (owners) => {\r\n var horses = hdata1.concat(hdata2);\r\n for (let i in horses) {\r\n if (!this.getPermission(horses[i].Id)) continue;\r\n if (\r\n horses[i].PaperOwner != null &&\r\n horses[i].PaperOwner != \"\"\r\n ) {\r\n horses[i].PaperOwner = JSON.parse(horses[i].PaperOwner);\r\n let ownerName = \"\";\r\n for (let j in horses[i].PaperOwner) {\r\n let item = owners.filter(\r\n (item) => item.Id == horses[i].PaperOwner[j]\r\n );\r\n if (j == 0) item.map((k) => (ownerName += k.Name));\r\n else item.map((k) => (ownerName += \", \" + k.Name));\r\n }\r\n horses[i].PaperOwner = ownerName;\r\n } else horses[i].PaperOwner = \"\";\r\n }\r\n\r\n let dataArr = [];\r\n dataArr.push([\r\n window.lang.bornIn,\r\n window.lang.name,\r\n \"Reg. nr\",\r\n window.lang.type,\r\n \"Chipid\",\r\n window.lang.owner,\r\n ]);\r\n for (var q = 0; q < horses.length; q++) {\r\n if (!this.getPermission(horses[q].Id)) continue;\r\n dataArr.push([\r\n horses[q].BirthYear,\r\n horses[q].Name,\r\n horses[q].RFBid,\r\n horses[q].Chipid,\r\n horses[q].HorseType == null ? \"None\" : horses[q].HorseType,\r\n horses[q].PaperOwner,\r\n ]);\r\n }\r\n\r\n this.setState({\r\n reportDataArray: [\r\n {\r\n header: \"\",\r\n data: dataArr,\r\n },\r\n ],\r\n headerTitle: window.lang.horseAge,\r\n });\r\n window.Spinner.hide();\r\n });\r\n },\r\n this.isHistoricHorses\r\n );\r\n },\r\n this.isHistoricHorses\r\n );\r\n };\r\n\r\n createSalesNotesHorseReport = () => {\r\n window.db.getSalesNotesHorse(\r\n window.myid,\r\n (hdata1) => {\r\n window.db.getSalesNotesSharedHorse(\r\n window.myid,\r\n (hdata2) => {\r\n var horses = hdata1.concat(hdata2);\r\n let horsesArr = [];\r\n horses.filter((item) => {\r\n let curr = horsesArr.find((i) => item.Id == i.Id);\r\n if (!curr) {\r\n let header =\r\n item.HeaderNote == null ? \"\" : item.HeaderNote + \": \";\r\n let text = item.TextNote == null ? \"\" : item.TextNote;\r\n let note = header + text;\r\n horsesArr.push({\r\n Id: item.Id,\r\n Name: item.Name,\r\n HorseType: item.HorseType,\r\n RFBid: item.RFBid,\r\n Chipid: item.Chipid,\r\n Note: note,\r\n });\r\n return true;\r\n } else {\r\n let header =\r\n item.HeaderNote == null ? \"\" : item.HeaderNote + \": \";\r\n let text = item.TextNote == null ? \"\" : item.TextNote;\r\n let note = \"; \" + header + text;\r\n curr.Note += note;\r\n return false;\r\n }\r\n });\r\n\r\n let dataArr = [];\r\n dataArr.push([\r\n window.lang.name,\r\n window.lang.type,\r\n \"Reg. nr\",\r\n \"Chipid\",\r\n window.lang.priceSecondDefaultNote,\r\n ]);\r\n for (var q = 0; q < horsesArr.length; q++) {\r\n if (!this.getPermission(horsesArr[q].Id)) continue;\r\n dataArr.push([\r\n horsesArr[q].Name,\r\n horsesArr[q].HorseType == null\r\n ? \"None\"\r\n : horsesArr[q].HorseType,\r\n horsesArr[q].RFBid,\r\n horsesArr[q].Chipid,\r\n horsesArr[q].Note,\r\n ]);\r\n }\r\n\r\n this.setState({\r\n reportDataArray: [\r\n {\r\n header: \"\",\r\n data: dataArr,\r\n },\r\n ],\r\n headerTitle: window.lang.salesNotesHorse,\r\n });\r\n window.Spinner.hide();\r\n },\r\n this.isHistoricHorses\r\n );\r\n },\r\n this.isHistoricHorses\r\n );\r\n };\r\n\r\n createSalesNotesTypeReport = () => {\r\n window.db.getSalesNotesHorse(\r\n window.myid,\r\n (hdata1) => {\r\n window.db.getSalesNotesSharedHorse(\r\n window.myid,\r\n (hdata2) => {\r\n var horses = hdata1.concat(hdata2);\r\n let horsesArr = [];\r\n horses.filter((item) => {\r\n let curr = horsesArr.find((i) => item.Id == i.Id);\r\n if (!curr) {\r\n let header =\r\n item.HeaderNote == null ? \"\" : item.HeaderNote + \": \";\r\n let text = item.TextNote == null ? \"\" : item.TextNote;\r\n let note = header + text;\r\n horsesArr.push({\r\n Id: item.Id,\r\n Name: item.Name,\r\n HorseType: item.HorseType,\r\n RFBid: item.RFBid,\r\n Chipid: item.Chipid,\r\n Note: note,\r\n });\r\n return true;\r\n } else {\r\n let header =\r\n item.HeaderNote == null ? \"\" : item.HeaderNote + \": \";\r\n let text = item.TextNote == null ? \"\" : item.TextNote;\r\n let note = \"; \" + header + text;\r\n curr.Note += note;\r\n return false;\r\n }\r\n });\r\n\r\n let dataArr = [];\r\n dataArr.push([\r\n window.lang.type,\r\n window.lang.name,\r\n \"Reg. nr\",\r\n \"Chipid\",\r\n window.lang.priceSecondDefaultNote,\r\n ]);\r\n for (var q = 0; q < horsesArr.length; q++) {\r\n if (!this.getPermission(horsesArr[q].Id)) continue;\r\n dataArr.push([\r\n horsesArr[q].HorseType == null\r\n ? \"None\"\r\n : horsesArr[q].HorseType,\r\n horsesArr[q].Name,\r\n horsesArr[q].RFBid,\r\n horsesArr[q].Chipid,\r\n horsesArr[q].Note,\r\n ]);\r\n }\r\n\r\n this.setState({\r\n reportDataArray: [\r\n {\r\n header: \"\",\r\n data: dataArr,\r\n },\r\n ],\r\n headerTitle: window.lang.salesNotesHorseType,\r\n });\r\n window.Spinner.hide();\r\n },\r\n this.isHistoricHorses\r\n );\r\n },\r\n this.isHistoricHorses\r\n );\r\n };\r\n\r\n createTrainingHistoryReport = () => {\r\n var startDate = new Date();\r\n var endDate = new Date().formatDesh();\r\n startDate.setDate(startDate.getDate() - 45);\r\n startDate = startDate.formatDesh();\r\n window.db.getTrainingsByHorseAndDateForMyHorses(\r\n window.myid,\r\n startDate,\r\n endDate,\r\n (trainData) => {\r\n window.db.getMyAndSharedHorses(\r\n window.myid,\r\n (hdata1, hdata2) => {\r\n var data = hdata1.concat(hdata2);\r\n var names = [];\r\n for (var i = 0; i < data.length; i++) {\r\n if (!this.getPermission(data[i].id)) continue;\r\n names[data[i][\"id\"]] = data[i][\"name\"];\r\n }\r\n var rows = [];\r\n trainData = trainData.sort(this.sortStartTime);\r\n for (var i = 0; i < trainData.length; i++) {\r\n if (!this.getPermission(trainData[i].horseid)) continue;\r\n var trainItem = trainData.item(i);\r\n var name = names[trainItem[\"horseid\"]];\r\n var row = [\r\n name,\r\n trainItem[\"trainername\"],\r\n trainItem[\"name\"],\r\n this.getSmileyForItem(trainItem[\"Evaluation\"]),\r\n trainItem[\"remark\"],\r\n ];\r\n names.push(name);\r\n rows.push(row);\r\n }\r\n names = names.filter(\r\n (item, index) => names.indexOf(item) === index\r\n );\r\n let reportData = [];\r\n for (var q = 0; q < names.length; q++) {\r\n let dataArr = [];\r\n dataArr.push([\r\n window.lang.horse,\r\n window.lang.riders,\r\n window.lang.type,\r\n window.lang.evaluation,\r\n window.lang.notes,\r\n ]);\r\n for (var i = 0; i < rows.length; i++) {\r\n if (rows[i][0] == names[q]) {\r\n dataArr.push(rows[i]);\r\n }\r\n }\r\n reportData.push({\r\n header: names[q],\r\n data: dataArr,\r\n });\r\n }\r\n this.setState({\r\n reportDataArray: reportData,\r\n headerTitle: window.lang.trainingHistory,\r\n });\r\n },\r\n this.isHistoricHorses ? 101 : 1\r\n );\r\n window.Spinner.hide();\r\n },\r\n this.isHistoricHorses\r\n );\r\n };\r\n\r\n createVaccinationsHorseReport = () => {\r\n let horseArr = [\r\n ...window.DataStorage.myHorseArray,\r\n ...window.DataStorage.notMyHorseArray,\r\n ];\r\n let reportData = [];\r\n for (let i = 0; i < horseArr.length; i++) {\r\n if (!this.getPermission(horseArr[i].id)) continue;\r\n\r\n window.db.getVaccinationsHorse(horseArr[i][\"id\"], (rows) => {\r\n if (rows.length == 0) {\r\n return;\r\n }\r\n\r\n let dataArr = [];\r\n dataArr.push([\r\n window.lang.name,\r\n window.lang.type,\r\n \"Reg. nr\",\r\n \"Chipid\",\r\n window.lang.vaccinationType,\r\n window.lang.nextVaccination,\r\n ]);\r\n for (let j = 0; j < rows.length; j++) {\r\n let lastItem = rows.item(j);\r\n let type = window.VaccinationPage.types[lastItem[\"vtype\"] - 1];\r\n let nextType = window.VaccinationPage.types[type.NextIndex];\r\n let maxMonths = nextType.MaxMonth;\r\n let maxDays = nextType.MaxDay;\r\n let lastDate = Date.getNewDate(lastItem[\"vdate\"]);\r\n let maxDate = new Date(lastDate);\r\n\r\n maxDate.setMonth(maxDate.getMonth() + maxMonths);\r\n maxDate = maxDate.addDays(maxDays);\r\n\r\n dataArr.push([\r\n lastItem.Name,\r\n lastItem.HorseType == null ? \"None\" : lastItem.HorseType,\r\n lastItem.RFBid,\r\n lastItem.Chipid,\r\n nextType.Name,\r\n maxDate.formatDeshStartDay(),\r\n ]);\r\n }\r\n\r\n reportData.push({\r\n header: horseArr[i].name,\r\n data: dataArr,\r\n });\r\n\r\n this.setState({\r\n reportDataArray: reportData,\r\n headerTitle: window.lang.vaccinationHorse,\r\n });\r\n });\r\n }\r\n window.Spinner.hide();\r\n };\r\n\r\n createVaccinationsTypeReport = () => {\r\n let horseArr = [\r\n ...window.DataStorage.myHorseArray,\r\n ...window.DataStorage.notMyHorseArray,\r\n ];\r\n let reportData = [];\r\n for (let i = 0; i < horseArr.length; i++) {\r\n if (!this.getPermission(horseArr[i].id)) continue;\r\n\r\n window.db.getVaccinationsHorse(horseArr[i][\"id\"], (rows) => {\r\n if (rows.length == 0) {\r\n return;\r\n }\r\n\r\n let dataArr = [];\r\n dataArr.push([\r\n window.lang.type,\r\n window.lang.name,\r\n \"Reg. nr\",\r\n \"Chipid\",\r\n window.lang.vaccinationType,\r\n window.lang.nextVaccination,\r\n ]);\r\n for (let j = 0; j < rows.length; j++) {\r\n let lastItem = rows.item(j);\r\n let type = window.VaccinationPage.types[lastItem[\"vtype\"] - 1];\r\n let nextType = window.VaccinationPage.types[type.NextIndex];\r\n let maxMonths = nextType.MaxMonth;\r\n let maxDays = nextType.MaxDay;\r\n let lastDate = Date.getNewDate(lastItem[\"vdate\"]);\r\n let maxDate = new Date(lastDate);\r\n\r\n maxDate.setMonth(maxDate.getMonth() + maxMonths);\r\n maxDate = maxDate.addDays(maxDays);\r\n\r\n dataArr.push([\r\n lastItem.HorseType == null ? \"None\" : lastItem.HorseType,\r\n lastItem.Name,\r\n lastItem.RFBid,\r\n lastItem.Chipid,\r\n nextType.Name,\r\n maxDate.formatDeshStartDay(),\r\n ]);\r\n }\r\n\r\n reportData.push({\r\n header: horseArr[i].name,\r\n data: dataArr,\r\n });\r\n\r\n this.setState({\r\n reportDataArray: reportData,\r\n headerTitle: window.lang.vaccinationHorseType,\r\n });\r\n });\r\n }\r\n window.Spinner.hide();\r\n };\r\n\r\n createFarrierHorseReport = () => {\r\n let horseArr = [\r\n ...window.DataStorage.myHorseArray,\r\n ...window.DataStorage.notMyHorseArray,\r\n ];\r\n let reportData = [];\r\n for (let i = 0; i < horseArr.length; i++) {\r\n if (!this.getPermission(horseArr[i].id)) continue;\r\n\r\n window.db.getFarrierHorse(horseArr[i][\"id\"], (rows) => {\r\n if (rows.length == 0) {\r\n return;\r\n }\r\n let lastItem = rows.item(0);\r\n let dataArr = [];\r\n let days = Date.daysBetween(\r\n new Date(),\r\n Date.getNewDate(lastItem[\"starttime\"])\r\n );\r\n var daysStr =\r\n days < 7\r\n ? days + \" \" + window.lang.days\r\n : (days / 7).toFixed(1) + \" \" + window.lang.week;\r\n dataArr.push(\r\n [\r\n window.lang.name,\r\n window.lang.type,\r\n \"Reg. nr\",\r\n \"Chipid\",\r\n window.lang.trainerName,\r\n window.lang.shoeDaysSinceLast,\r\n ],\r\n [\r\n lastItem.Horse,\r\n lastItem.HorseType == null ? \"None\" : lastItem.HorseType,\r\n lastItem.RFBid,\r\n lastItem.Chipid,\r\n lastItem.Trainer,\r\n daysStr,\r\n ]\r\n );\r\n\r\n reportData.push({\r\n header: horseArr[i].name,\r\n data: dataArr,\r\n });\r\n\r\n this.setState({\r\n reportDataArray: reportData,\r\n headerTitle: window.lang.farrierHorse,\r\n });\r\n window.Spinner.hide();\r\n });\r\n }\r\n };\r\n\r\n createFarrierHorseTypeReport = () => {\r\n let horseArr = [\r\n ...window.DataStorage.myHorseArray,\r\n ...window.DataStorage.notMyHorseArray,\r\n ];\r\n let reportData = [];\r\n for (let i = 0; i < horseArr.length; i++) {\r\n if (!this.getPermission(horseArr[i].id)) continue;\r\n\r\n window.db.getFarrierHorse(horseArr[i][\"id\"], (rows) => {\r\n if (rows.length == 0) {\r\n return;\r\n }\r\n let lastItem = rows.item(0);\r\n let dataArr = [];\r\n let days = Date.daysBetween(\r\n new Date(),\r\n Date.getNewDate(lastItem[\"starttime\"])\r\n );\r\n var daysStr =\r\n days < 7\r\n ? days + \" \" + window.lang.days\r\n : (days / 7).toFixed(1) + \" \" + window.lang.week;\r\n dataArr.push(\r\n [\r\n window.lang.type,\r\n window.lang.name,\r\n \"Reg. nr\",\r\n \"Chipid\",\r\n window.lang.trainerName,\r\n window.lang.shoeDaysSinceLast,\r\n ],\r\n [\r\n lastItem.HorseType == null ? \"None\" : lastItem.HorseType,\r\n lastItem.Horse,\r\n lastItem.RFBid,\r\n lastItem.Chipid,\r\n lastItem.Trainer,\r\n daysStr,\r\n ]\r\n );\r\n\r\n reportData.push({\r\n header: horseArr[i].name,\r\n data: dataArr,\r\n });\r\n\r\n this.setState({\r\n reportDataArray: reportData,\r\n headerTitle: window.lang.farrierHorseType,\r\n });\r\n window.Spinner.hide();\r\n });\r\n }\r\n };\r\n\r\n createVetHorseReport = () => {\r\n let horseArr = [\r\n ...window.DataStorage.myHorseArray,\r\n ...window.DataStorage.notMyHorseArray,\r\n ];\r\n let reportData = [];\r\n for (let i = 0; i < horseArr.length; i++) {\r\n if (!this.getPermission(horseArr[i].id)) continue;\r\n\r\n window.db.getVetHorse(horseArr[i][\"id\"], (data) => {\r\n if (data.length == 0) {\r\n return;\r\n }\r\n let dataArr = [];\r\n dataArr.push([\r\n window.lang.name,\r\n window.lang.type,\r\n \"Reg. nr\",\r\n \"Chipid\",\r\n \"VET Type\",\r\n window.lang.remark,\r\n ]);\r\n for (let j = 0; j < data.length; j++) {\r\n let VetType = \"\";\r\n for (let k in window.VeterinarPage.VeterinarType) {\r\n if (\r\n data[j].VeterinarianType ==\r\n window.VeterinarPage.VeterinarType[k].value\r\n )\r\n VetType = window.VeterinarPage.VeterinarType[k].Name;\r\n }\r\n dataArr.push([\r\n data[j].Name,\r\n data[j].HorseType == null ? \"None\" : data[j].HorseType,\r\n data[j].RFBid,\r\n data[j].Chipid,\r\n VetType,\r\n data[j].remark,\r\n ]);\r\n }\r\n reportData.push({\r\n header: data[0].Name,\r\n data: dataArr,\r\n });\r\n this.setState({\r\n reportDataArray: reportData,\r\n headerTitle: window.lang.vetHorse,\r\n });\r\n window.Spinner.hide();\r\n });\r\n }\r\n };\r\n\r\n createVetHorseTypeReport = () => {\r\n let horseArr = [\r\n ...window.DataStorage.myHorseArray,\r\n ...window.DataStorage.notMyHorseArray,\r\n ];\r\n let reportData = [];\r\n for (let i = 0; i < horseArr.length; i++) {\r\n if (!this.getPermission(horseArr[i].id)) continue;\r\n\r\n window.db.getVetHorse(horseArr[i][\"id\"], (data) => {\r\n if (data.length == 0) {\r\n return;\r\n }\r\n let dataArr = [];\r\n dataArr.push([\r\n window.lang.type,\r\n window.lang.name,\r\n \"Reg. nr\",\r\n \"Chipid\",\r\n \"VET Type\",\r\n window.lang.remark,\r\n ]);\r\n for (let j = 0; j < data.length; j++) {\r\n let VetType = \"\";\r\n for (let k in window.VeterinarPage.VeterinarType) {\r\n if (\r\n data[j].VeterinarianType ==\r\n window.VeterinarPage.VeterinarType[k].value\r\n )\r\n VetType = window.VeterinarPage.VeterinarType[k].Name;\r\n }\r\n dataArr.push([\r\n data[j].HorseType == null ? \"None\" : data[j].HorseType,\r\n data[j].Name,\r\n data[j].RFBid,\r\n data[j].Chipid,\r\n VetType,\r\n data[j].remark,\r\n ]);\r\n }\r\n reportData.push({\r\n header: data[0].Name,\r\n data: dataArr,\r\n });\r\n this.setState({\r\n reportDataArray: reportData,\r\n headerTitle: window.lang.vetHorseType,\r\n });\r\n window.Spinner.hide();\r\n });\r\n }\r\n };\r\n\r\n getStableList = () => {\r\n let boxes = window.DataStorage.boxesAndStables;\r\n if (window.inUseStables == \"Y\") {\r\n let userId = window.myid;\r\n let resultboxes = boxes\r\n .filter((b) => b.IDBox != null && b.InUse != \"Y\" && b.UserId == userId)\r\n .map((b) => ({ key: b.IDBox, value: b.StableName + \" \" + b.BoxName }));\r\n return resultboxes;\r\n } else {\r\n let userId = window.myid;\r\n let stables = boxes\r\n .filter((b) => b.UserId == userId)\r\n .sort((a, b) => a.StableOrderBy - b.StableOrderBy)\r\n .map((b) => ({ key: b.IdStable, value: b.StableName }));\r\n\r\n let allStables = [];\r\n for (let i = 0; i < stables.length; i++) {\r\n if (allStables.find((s) => s.key == stables[i].key) == null) {\r\n allStables.push(stables[i]);\r\n }\r\n }\r\n return allStables;\r\n }\r\n };\r\n\r\n createPriceReport = () => {\r\n window.db.getPriceReportData(\r\n window.myid,\r\n (data) => {\r\n window.db.getAllOwnersByUser((owners) => {\r\n let ids = [];\r\n for (let i = 0; i < data.length; i++) {\r\n let item = data[i];\r\n if (item.LabelIds != null && item.LabelIds.length != 0) {\r\n let a = JSON.parse(item.LabelIds);\r\n ids.push(...a);\r\n }\r\n }\r\n window.db.getLabelsByIds(ids, (labelsData) => {\r\n console.log(labelsData);\r\n const genderArr = window.DataStorage.getHorseGenderArr();\r\n const stableArr = this.getStableList();\r\n\r\n let horsesArr = [];\r\n for (let i = 0; i < data.length; i++) {\r\n let item = data[i];\r\n let costPriceActual = \"\";\r\n let owner = \"\";\r\n if (item.PotentialDate) {\r\n let parseDay = this.parseDateStartDay(\r\n item.PotentialDate\r\n ).formatDesh();\r\n let monthDifference =\r\n new Date(parseDay).getMonth() -\r\n new Date().getMonth() +\r\n 12 *\r\n (new Date(parseDay).getFullYear() -\r\n new Date().getFullYear());\r\n if (monthDifference < 0) monthDifference = 0;\r\n costPriceActual =\r\n item.PurchasePrice +\r\n item.CostPriceAccumulated +\r\n monthDifference * item.Price;\r\n }\r\n\r\n if (item.PaperOwner != null && item.PaperOwner != \"\") {\r\n item.PaperOwner = JSON.parse(item.PaperOwner);\r\n let ownerName = \"\";\r\n for (let j in item.PaperOwner) {\r\n let ownerItem = owners.filter(\r\n (k) => k.Id == item.PaperOwner[j]\r\n );\r\n if (j == 0) ownerItem.map((l) => (ownerName += l.Name));\r\n else ownerItem.map((l) => (ownerName += \"\\n\" + l.Name));\r\n }\r\n owner = ownerName;\r\n } else owner = \"\";\r\n const priceActual =\r\n item.PurchasePrice + item.CostPriceAccumulated;\r\n const stableItem = stableArr.find((s) => s.key == item.StableId);\r\n\r\n let pedigree = \"\";\r\n if (item.PedigreeJsonText) {\r\n const p = JSON.parse(item.PedigreeJsonText);\r\n pedigree =\r\n p.mather +\r\n \"/\" +\r\n p.grmather_father +\r\n \"/\" +\r\n p.grmather_grfather_f;\r\n }\r\n\r\n let labels = \"\";\r\n if (item.LabelIds != null && item.LabelIds.length != 0) {\r\n let al = JSON.parse(item.LabelIds);\r\n labels = al\r\n .map((lid) => {\r\n let lItem = labelsData.find((l) => l.Id == lid);\r\n if (lItem) return lItem.Label;\r\n return \"\";\r\n })\r\n .join();\r\n }\r\n\r\n horsesArr.push({\r\n Id: item.Id,\r\n Name: item.Name,\r\n RFBid: item.RFBid,\r\n Type: item.HorseType,\r\n CreateDate: item.CreateDate,\r\n Owner: owner,\r\n BirthYear: item.BirthYear,\r\n Indkøbspris: item.PurchasePrice,\r\n Moms: item.VAT,\r\n VurderingAktuelt: item.CurrentAssessment,\r\n Vurderingsdato: item.ValuationDate,\r\n PotentialVurdering: item.PotentialAssessment,\r\n PotentielDato: item.PotentialDate,\r\n Bemærkning: item.Remark,\r\n CostPriceAccumulated: item.CostPriceAccumulated,\r\n KostprisAktuel: priceActual,\r\n KostprisFremskreven: costPriceActual,\r\n SellingPrice: item.SellingPrice,\r\n Historisk: item.Historik,\r\n Chipid: item.Chipid,\r\n Height: item.Height,\r\n Gender: genderArr[item.Gender],\r\n ColorName: item.ColorName,\r\n StableName: stableItem ? stableItem.value : \"\",\r\n TrainerName: item.TrainerName,\r\n DepartureDate: item.DepartureDate,\r\n Pedigree: pedigree,\r\n Labels: labels,\r\n });\r\n }\r\n\r\n let dataArr = [];\r\n dataArr.push([\r\n window.lang.name,\r\n \"Reg. nr\",\r\n \"Chip nr.\",\r\n \"Afstamning\",\r\n window.lang.height,\r\n \"Labels\",\r\n window.lang.gender,\r\n window.lang.color,\r\n window.lang.stable,\r\n window.lang.horseFollowsRider,\r\n window.lang.type,\r\n window.lang.arrivDate,\r\n window.lang.departure,\r\n window.lang.owner,\r\n window.lang.bornIn,\r\n \"Moms\",\r\n \"Indkøbspris\",\r\n \"Akkumuleret kostpris\",\r\n \"Kostpris aktuel\",\r\n \"Vurderingsdato\",\r\n \"Vurdering aktuelt\",\r\n \"Potentiel dato\",\r\n \"Potential vurdering\",\r\n \"Kostpris fremskreven\",\r\n \"Bemærkning\",\r\n \"Salgspris\",\r\n \"Historisk\",\r\n ]);\r\n for (var q = 0; q < horsesArr.length; q++) {\r\n if (!this.getPermission(horsesArr[q].Id)) continue;\r\n dataArr.push([\r\n horsesArr[q].Name,\r\n horsesArr[q].RFBid,\r\n horsesArr[q].Chipid,\r\n horsesArr[q].Pedigree,\r\n horsesArr[q].Height,\r\n horsesArr[q].Labels,\r\n horsesArr[q].Gender,\r\n horsesArr[q].ColorName,\r\n horsesArr[q].StableName,\r\n horsesArr[q].TrainerName,\r\n horsesArr[q].Type == null ? \"None\" : horsesArr[q].Type,\r\n horsesArr[q].CreateDate == \"01-01-1900\"\r\n ? \"\"\r\n : horsesArr[q].CreateDate,\r\n horsesArr[q].DepartureDate == \"01-01-1900\"\r\n ? \"\"\r\n : horsesArr[q].DepartureDate,\r\n horsesArr[q].Owner,\r\n horsesArr[q].BirthYear,\r\n horsesArr[q].Moms ? horsesArr[q].Moms : \"\",\r\n horsesArr[q].Indkøbspris\r\n ? horsesArr[q].Indkøbspris.toString().replace(\r\n /\\B(?=(?:\\d{3})+(?!\\d))/g,\r\n \".\"\r\n )\r\n : \"\",\r\n horsesArr[q].CostPriceAccumulated\r\n ? horsesArr[q].CostPriceAccumulated.toString().replace(\r\n /\\B(?=(?:\\d{3})+(?!\\d))/g,\r\n \".\"\r\n )\r\n : \"\",\r\n horsesArr[q].KostprisAktuel\r\n ? horsesArr[q].KostprisAktuel.toString().replace(\r\n /\\B(?=(?:\\d{3})+(?!\\d))/g,\r\n \".\"\r\n )\r\n : \"\",\r\n horsesArr[q].Vurderingsdato ? horsesArr[q].Vurderingsdato : \"\",\r\n horsesArr[q].VurderingAktuelt\r\n ? horsesArr[q].VurderingAktuelt.toString().replace(\r\n /\\B(?=(?:\\d{3})+(?!\\d))/g,\r\n \".\"\r\n )\r\n : \"\",\r\n horsesArr[q].PotentielDato ? horsesArr[q].PotentielDato : \"\",\r\n horsesArr[q].PotentialVurdering\r\n ? horsesArr[q].PotentialVurdering.toString().replace(\r\n /\\B(?=(?:\\d{3})+(?!\\d))/g,\r\n \".\"\r\n )\r\n : \"\",\r\n horsesArr[q].KostprisFremskreven\r\n ? horsesArr[q].KostprisFremskreven.toString().replace(\r\n /\\B(?=(?:\\d{3})+(?!\\d))/g,\r\n \".\"\r\n )\r\n : \"\",\r\n horsesArr[q].Bemærkning ? horsesArr[q].Bemærkning : \"\",\r\n horsesArr[q].SellingPrice\r\n ? horsesArr[q].SellingPrice.toString().replace(\r\n /\\B(?=(?:\\d{3})+(?!\\d))/g,\r\n \".\"\r\n )\r\n : \"\",\r\n horsesArr[q].Historisk ? horsesArr[q].Historisk : \"\",\r\n ]);\r\n }\r\n this.setState({\r\n reportDataArray: [\r\n {\r\n header: \"\",\r\n data: dataArr,\r\n },\r\n ],\r\n headerTitle: window.lang.priceFirstDefaultNote,\r\n });\r\n window.Spinner.hide();\r\n });\r\n });\r\n },\r\n this.isHistoricHorses\r\n );\r\n };\r\n\r\n parseDateStartDay(dateStr) {\r\n if (dateStr == null || dateStr == \"\") return new Date(\"1900-01-01\");\r\n\r\n let arr = dateStr.split(\"-\");\r\n return new Date(`${arr[2]}-${arr[1]}-${arr[0]}`);\r\n }\r\n\r\n //createPriceReport = () => {\r\n // window.db.getPriceReportData(window.myid, (hdata1) => {\r\n // window.db.getPriceSharedHorsesReportData(window.myid, (hdata2) => {\r\n // var horses = hdata1.concat(hdata2);\r\n // let horsesArr = [];\r\n // horses.filter(item => {\r\n // let curr = horsesArr.find(i => item.Id == i.Id);\r\n\r\n // if (!curr) {\r\n // horsesArr.push({\r\n // Id: item.Id, Name: item.Name, RFBid: item.RFBid, Type: item.HorseType, CreateDate: item.CreateDate, DepartureDate: item.DepartureDate,\r\n // Indkøbspris: '', MedMoms: '', VurderingAktuelt: '', VurderingPotentielt: '', Salgspris: '', Kostpris1: '', Kostpris2: '', Kostpris3: '',\r\n // TextNote: item.HeaderNote == 'Cost price' ? item.TextNote : ''\r\n // });\r\n // return true;\r\n // } else {\r\n // if (item.HeaderNote == 'Cost price')\r\n // curr.TextNote = item.TextNote;\r\n // return false;\r\n // }\r\n // });\r\n\r\n // for (let i in horsesArr) {\r\n // let noteData = this.readDataFromNote(horsesArr[i].TextNote);\r\n // horsesArr[i].Indkøbspris = noteData[0];\r\n // horsesArr[i].MedMoms = noteData[1];\r\n // horsesArr[i].VurderingAktuelt = noteData[2];\r\n // horsesArr[i].VurderingPotentielt = noteData[3];\r\n // horsesArr[i].Salgspris = noteData[4];\r\n // horsesArr[i].Kostpris1 = noteData[5];\r\n // horsesArr[i].Kostpris2 = noteData[6];\r\n // horsesArr[i].Kostpris3 = noteData[7];\r\n // }\r\n // let dataArr = [];\r\n // dataArr.push([window.lang.name, 'Reg. nr', window.lang.type, window.lang.arrivDate, window.lang.departure, 'Indkøbspris', 'Med moms', 'Vurdering aktuelt',\r\n // 'Vurdering Potentielt', 'Salgspris', 'Kostpris 1', 'Kostpris 2', 'Kostpris 3']);\r\n // for (var q = 0; q < horsesArr.length; q++) {\r\n // if (!this.getPermission(horsesArr[q].Id))\r\n // continue;\r\n // dataArr.push([horsesArr[q].Name, horsesArr[q].RFBid, horsesArr[q].Type == null ? 'None' : horsesArr[q].Type, horsesArr[q].CreateDate, horsesArr[q].DepartureDate, horsesArr[q].Indkøbspris,\r\n // horsesArr[q].MedMoms, horsesArr[q].VurderingAktuelt, horsesArr[q].VurderingPotentielt, horsesArr[q].Salgspris, horsesArr[q].Kostpris1, horsesArr[q].Kostpris2, horsesArr[q].Kostpris3]);\r\n // }\r\n\r\n // this.setState({\r\n // reportDataArray: [\r\n // {\r\n // header: '',\r\n // data: dataArr\r\n // }\r\n // ],\r\n // headerTitle: window.lang.priceFirstDefaultNote\r\n // });\r\n // window.Spinner.hide();\r\n // });\r\n // });\r\n //}\r\n\r\n readDataFromNote = (textNote) => {\r\n let purchasePrice = \"\";\r\n let withVAT = \"\";\r\n let currentAssessment = \"\";\r\n let assessmentPotential = \"\";\r\n let salePrice = \"\";\r\n let costPrice1 = \"\";\r\n let costPrice2 = \"\";\r\n let costPrice3 = \"\";\r\n\r\n if (textNote != null) {\r\n let indexOfPurchasePrice = textNote.lastIndexOf(this.purchasePrice);\r\n let indexOfWithVAT = textNote.lastIndexOf(this.withVAT);\r\n let indexOfCurrentAssessment = textNote.lastIndexOf(\r\n this.currentAssessment\r\n );\r\n let indexOfAssessmentPotential = textNote.lastIndexOf(\r\n this.assessmentPotential\r\n );\r\n let indexOfSalePrice = textNote.lastIndexOf(this.salePrice);\r\n let indexOfCostPrice1 = textNote.lastIndexOf(this.costPrice1);\r\n let indexOfCostPrice2 = textNote.lastIndexOf(this.costPrice2);\r\n let indexOfCostPrice3 = textNote.lastIndexOf(this.costPrice3);\r\n\r\n let dataArr = [\r\n { index: indexOfPurchasePrice, label: this.purchasePrice },\r\n { index: indexOfWithVAT, label: this.withVAT },\r\n { index: indexOfCurrentAssessment, label: this.currentAssessment },\r\n { index: indexOfAssessmentPotential, label: this.assessmentPotential },\r\n { index: indexOfSalePrice, label: this.salePrice },\r\n { index: indexOfCostPrice1, label: this.costPrice1 },\r\n { index: indexOfCostPrice2, label: this.costPrice2 },\r\n { index: indexOfCostPrice3, label: this.costPrice3 },\r\n ];\r\n dataArr = dataArr.sort(this.sortIndex);\r\n dataArr = dataArr.filter((i) => i.index != \"-1\");\r\n\r\n for (let i = 0; i < dataArr.length; i++) {\r\n let end =\r\n i == dataArr.length - 1 ? textNote.length : dataArr[i + 1].index;\r\n if (dataArr[i].label == this.purchasePrice) {\r\n let start = dataArr[i].index + this.purchasePriceLength;\r\n purchasePrice = textNote.slice(start, end);\r\n } else if (dataArr[i].label == this.withVAT) {\r\n let start = dataArr[i].index + this.withVATLength;\r\n withVAT = textNote.slice(start, end);\r\n } else if (dataArr[i].label == this.currentAssessment) {\r\n let start = dataArr[i].index + this.currentAssessmentLength;\r\n currentAssessment = textNote.slice(start, end);\r\n } else if (dataArr[i].label == this.assessmentPotential) {\r\n let start = dataArr[i].index + this.assessmentPotentialLength;\r\n assessmentPotential = textNote.slice(start, end);\r\n } else if (dataArr[i].label == this.salePrice) {\r\n let start = dataArr[i].index + this.salePriceLength;\r\n salePrice = textNote.slice(start, end);\r\n } else if (dataArr[i].label == this.costPrice1) {\r\n let start = dataArr[i].index + this.costPrice1Length;\r\n costPrice1 = textNote.slice(start, end);\r\n } else if (dataArr[i].label == this.costPrice2) {\r\n let start = dataArr[i].index + this.costPrice2Length;\r\n costPrice2 = textNote.slice(start, end);\r\n } else if (dataArr[i].label == this.costPrice3) {\r\n let start = dataArr[i].index + this.costPrice3Length;\r\n costPrice3 = textNote.slice(start, end);\r\n }\r\n }\r\n }\r\n return [\r\n purchasePrice,\r\n withVAT,\r\n currentAssessment,\r\n assessmentPotential,\r\n salePrice,\r\n costPrice1,\r\n costPrice2,\r\n costPrice3,\r\n ];\r\n };\r\n\r\n sortIndex = (a, b) => {\r\n let indexA = a.index;\r\n let indexB = b.index;\r\n let comparison = 0;\r\n if (indexA > indexB) {\r\n comparison = 1;\r\n } else if (indexA < indexB) {\r\n comparison = -1;\r\n }\r\n return comparison;\r\n };\r\n\r\n createAllHorsesAllDataReport = () => {\r\n window.db.getAllHorsesData(\r\n window.myid,\r\n (hdata1) => {\r\n window.db.getAllSharedHorsesData(\r\n window.myid,\r\n (hdata2) => {\r\n window.db.getReportHorseNotes(\r\n window.myid,\r\n false,\r\n (notes) => {\r\n window.db.getReportHorseNotes(\r\n window.myid,\r\n true,\r\n (salesNotes) => {\r\n var horses = hdata1.concat(hdata2);\r\n let dataArray = [];\r\n let horsesArr = [];\r\n let tableHeader = [\r\n [\r\n window.lang.name,\r\n window.lang.bornIn,\r\n \"Reg. nr\",\r\n \"Chipid\",\r\n window.lang.arrivDate,\r\n window.lang.departure,\r\n window.lang.height,\r\n window.lang.stable,\r\n window.lang.gender,\r\n window.lang.type,\r\n window.lang.color,\r\n window.lang.horseFollowsRider,\r\n window.lang.notes,\r\n window.lang.priceSecondDefaultNote,\r\n \"Has Image\",\r\n ],\r\n ];\r\n for (let i in horses) {\r\n if (!this.getPermission(horses[i].Id)) continue;\r\n horsesArr.push(horses[i]);\r\n horsesArr[i].SalesNotes = \"\";\r\n horsesArr[i].HasImages = \"\";\r\n }\r\n\r\n notes.filter((item) => {\r\n let curr = horsesArr.find((i) => item.IdHorse == i.Id);\r\n\r\n if (!curr) {\r\n return true;\r\n } else {\r\n let noteArr = curr.Notes\r\n ? [curr.Notes,
]\r\n : [curr.Notes];\r\n noteArr.push([\r\n \r\n {item.HeaderNote}: \r\n {item.TextNote}\r\n ,\r\n ]);\r\n curr.Notes = noteArr;\r\n return false;\r\n }\r\n });\r\n\r\n salesNotes.filter((item) => {\r\n let curr = horsesArr.find((i) => item.IdHorse == i.Id);\r\n\r\n if (!curr) {\r\n return true;\r\n } else {\r\n let noteArr = curr.SalesNotes\r\n ? [curr.SalesNotes,
]\r\n : [curr.SalesNotes];\r\n noteArr.push([\r\n \r\n {item.HeaderNote}: \r\n {item.TextNote}\r\n ,\r\n ]);\r\n curr.SalesNotes = noteArr;\r\n return false;\r\n }\r\n });\r\n\r\n for (let i = 0; i < horsesArr.length; i++) {\r\n window.Spinner.show();\r\n let multimedia = new MultimediaHelper(\r\n horsesArr[i].Id,\r\n horsesArr[i].UserId\r\n );\r\n multimedia.hasImages((hasImage) => {\r\n horsesArr[i].HasImages = hasImage;\r\n let dArray = [];\r\n for (let j = 1; j < dataArray.length; j++)\r\n dArray.push(dataArray[j]);\r\n\r\n dArray.push([\r\n horsesArr[i].Name,\r\n horsesArr[i].BirthYear,\r\n horsesArr[i].RFBid,\r\n horsesArr[i].Chipid,\r\n horsesArr[i].CreateDate == \"01-01-1900\"\r\n ? \"\"\r\n : horsesArr[i].CreateDate,\r\n horsesArr[i].DepartureDate == \"01-01-1900\"\r\n ? \"\"\r\n : horsesArr[i].DepartureDate,\r\n horsesArr[i].Height,\r\n horsesArr[i].StableName,\r\n this.setGender(horsesArr[i].Gender),\r\n horsesArr[i].HorseType == null\r\n ? \"None\"\r\n : horsesArr[i].HorseType,\r\n horsesArr[i].Color,\r\n horsesArr[i].Trainer,\r\n horsesArr[i].Notes,\r\n horsesArr[i].SalesNotes,\r\n horsesArr[i].HasImages\r\n ? ''\r\n : \"\",\r\n ]);\r\n\r\n dArray = dArray.sort(this.sortAllDataArr);\r\n dataArray = [...tableHeader, ...dArray];\r\n this.setState(\r\n {\r\n reportDataArray: [\r\n {\r\n header: \"\",\r\n data: dataArray,\r\n },\r\n ],\r\n headerTitle: \"All horses all data\",\r\n },\r\n window.Spinner.hide()\r\n );\r\n });\r\n }\r\n },\r\n this.isHistoricHorses\r\n );\r\n },\r\n this.isHistoricHorses\r\n );\r\n },\r\n this.isHistoricHorses\r\n );\r\n },\r\n this.isHistoricHorses\r\n );\r\n };\r\n\r\n createThisHorseWithRemarksAndWorkoutsReport = () => {\r\n window.db.getTrainingsByHorseWithRemarks(\r\n this.state.horse.id,\r\n (trainData) => {\r\n if (!this.getPermission(this.state.horse.id))\r\n var tableArr = [\r\n [\r\n \"Date\",\r\n window.lang.type,\r\n window.lang.evaluation,\r\n window.lang.riders,\r\n window.lang.notes,\r\n ],\r\n ];\r\n else\r\n var tableArr = [\r\n [\r\n \"Date\",\r\n window.lang.type,\r\n window.lang.evaluation,\r\n window.lang.riders,\r\n window.lang.notes,\r\n ],\r\n ...trainData.map((t) => [\r\n Date.reformatToDMY(t.starttime),\r\n t.name,\r\n this.getSmileyForItem(t.Evaluation),\r\n t.trainername,\r\n t.remark,\r\n ]),\r\n ];\r\n this.setState({\r\n reportDataArray: [\r\n {\r\n header: \"\",\r\n data: tableArr,\r\n },\r\n ],\r\n headerTitle: this.state.horse.name,\r\n });\r\n window.Spinner.hide();\r\n }\r\n );\r\n };\r\n\r\n createThisHorseStableBoxHistoryLogReport = () => {\r\n window.db.getStableBoxHistoryLogReport(\r\n this.state.horse.id,\r\n (reportData) => {\r\n if (!this.getPermission(this.state.horse.id))\r\n var tableArr = [\r\n [\"Date\", \"Old Stable\", \"New Stable\", \"Old Box\", \"New Box\"],\r\n ];\r\n else\r\n var tableArr = [\r\n [\"Date\", \"Old Stable\", \"New Stable\", \"Old Box\", \"New Box\"],\r\n ...reportData.map((t) => [\r\n new Date(reportData[0].Time).formatDeshStartDay(),\r\n t.oldStable ?? \"\",\r\n t.newStable ?? \"\",\r\n t.oldBox ?? \"\",\r\n t.newBox ?? \"\",\r\n ]),\r\n ];\r\n this.setState({\r\n reportDataArray: [\r\n {\r\n header: \"\",\r\n data: tableArr,\r\n },\r\n ],\r\n headerTitle: this.state.horse.name,\r\n });\r\n window.Spinner.hide();\r\n }\r\n );\r\n };\r\n\r\n sortAllDataArr = (a, b) => {\r\n if (a[0] < b[0]) return -1;\r\n if (a[0] > b[0]) return 1;\r\n return 0;\r\n };\r\n\r\n onExitClick = () => {\r\n if (window.HomePage.isReportClicked) {\r\n new window.HomePage().show();\r\n } else {\r\n window.onBack();\r\n }\r\n };\r\n\r\n onMakePdfClick = () => {\r\n window.Spinner.show();\r\n window.DataGate.makePdf(\r\n this.state.reportDataArray,\r\n this.state.headerTitle,\r\n function (data, url) {\r\n const a = document.createElement(\"a\");\r\n a.style.display = \"none\";\r\n a.href = url;\r\n a.target = \"_blank\";\r\n a.download = \"Report.pdf\";\r\n document.body.appendChild(a);\r\n a.click();\r\n window.Spinner.hide();\r\n }\r\n );\r\n };\r\n\r\n onMakeXlsxClick = () => {\r\n window.Spinner.show();\r\n window.DataGate.makeXlsx(\r\n this.state.reportDataArray,\r\n this.state.headerTitle,\r\n function (data, url) {\r\n const a = document.createElement(\"a\");\r\n a.style.display = \"none\";\r\n a.href = url;\r\n a.download = \"Report.xlsx\";\r\n document.body.appendChild(a);\r\n a.click();\r\n window.Spinner.hide();\r\n }\r\n );\r\n };\r\n\r\n getCellContent = (t, colIndex) => {\r\n if (isValidDateDDMMYYYY(t)) {\r\n t = convertDateStringDDMMYYYYtoYYYYMMDD(t);\r\n }\r\n if (t != null && t.indexOf(\"= 0) {\r\n return
;\r\n }\r\n return t;\r\n };\r\n\r\n onExcelFileSelect = (e) => {\r\n if (e.target.files.length) {\r\n let reader = new FileReader();\r\n reader.onload = (e) => {\r\n let wb = XLSX.read(e.target.result, { type: \"binary\" });\r\n let wsname = wb.SheetNames[0];\r\n let ws = wb.Sheets[wsname];\r\n let data = XLSX.utils.sheet_to_json(ws, { header: 1 });\r\n data = data.filter((i) => i.length > 2);\r\n let regNr = \"\";\r\n let titleArrIndex = \"\";\r\n let costPrice1Index = \"\";\r\n let costPrice2Index = \"\";\r\n let costPrice3Index = \"\";\r\n let horsePriceArr = [];\r\n for (let i in data) {\r\n if (data[i].indexOf(\"Reg. nr\") != -1) {\r\n regNr = data[i].indexOf(\"Reg. nr\");\r\n if (\r\n data[i].indexOf(\r\n this.costPrice1.substring(0, this.costPrice1.length - 1)\r\n ) != -1\r\n ) {\r\n costPrice1Index = data[i].indexOf(\r\n this.costPrice1.substring(0, this.costPrice1.length - 1)\r\n );\r\n titleArrIndex = parseInt(i);\r\n }\r\n if (\r\n data[i].indexOf(\r\n this.costPrice2.substring(0, this.costPrice2.length - 1)\r\n ) != -1\r\n ) {\r\n costPrice2Index = data[i].indexOf(\r\n this.costPrice2.substring(0, this.costPrice2.length - 1)\r\n );\r\n }\r\n if (\r\n data[i].indexOf(\r\n this.costPrice3.substring(0, this.costPrice3.length - 1)\r\n ) != -1\r\n ) {\r\n costPrice3Index = data[i].indexOf(\r\n this.costPrice3.substring(0, this.costPrice3.length - 1)\r\n );\r\n }\r\n }\r\n }\r\n if (\r\n regNr ||\r\n (regNr == 0 && titleArrIndex) ||\r\n (titleArrIndex == 0 && costPrice1Index) ||\r\n costPrice1Index == 0\r\n ) {\r\n for (let i = titleArrIndex + 1; i < data.length; i++) {\r\n if (data[i][regNr] || data[i][regNr] === 0) {\r\n horsePriceArr.push(data[i]);\r\n }\r\n }\r\n }\r\n this.updatePriceNote(\r\n horsePriceArr,\r\n regNr,\r\n costPrice1Index,\r\n costPrice2Index,\r\n costPrice3Index\r\n );\r\n };\r\n reader.readAsBinaryString(e.target.files[e.target.files.length - 1]);\r\n }\r\n };\r\n\r\n updatePriceNote = (\r\n dataArr,\r\n regNr,\r\n costPrice1Index,\r\n costPrice2Index,\r\n costPrice3Index\r\n ) => {\r\n for (let i in dataArr) {\r\n window.db.getPrisNote(dataArr[i][regNr], (data) => {\r\n if (data.length) {\r\n let noteData = this.readDataFromNote(data[0].TextNote);\r\n window.Spinner.show();\r\n let noteText = \"\";\r\n if (\r\n !noteData[0] &&\r\n !noteData[1] &&\r\n !noteData[2] &&\r\n !noteData[3] &&\r\n !noteData[4] &&\r\n !noteData[5] &&\r\n !noteData[6] &&\r\n !noteData[7]\r\n )\r\n noteText += data[0].TextNote + \"\\n\";\r\n\r\n let costPrice1 =\r\n dataArr[i][costPrice1Index] == undefined\r\n ? \"\"\r\n : dataArr[i][costPrice1Index];\r\n let costPrice2 =\r\n dataArr[i][costPrice2Index] == undefined\r\n ? \"\"\r\n : dataArr[i][costPrice2Index];\r\n let costPrice3 =\r\n dataArr[i][costPrice3Index] == undefined\r\n ? \"\"\r\n : dataArr[i][costPrice3Index];\r\n noteText +=\r\n this.purchasePrice +\r\n noteData[0].toString().replace(/\\n/g, \"\") +\r\n \"\\n\" +\r\n this.withVAT +\r\n noteData[1].toString().replace(/\\n/g, \"\") +\r\n \"\\n\" +\r\n this.currentAssessment +\r\n noteData[2].toString().replace(/\\n/g, \"\") +\r\n \"\\n\" +\r\n this.assessmentPotential +\r\n noteData[3].toString().replace(/\\n/g, \"\") +\r\n \"\\n\" +\r\n this.salePrice +\r\n noteData[4].toString().replace(/\\n/g, \"\") +\r\n \"\\n\" +\r\n this.costPrice1 +\r\n \" \" +\r\n costPrice1.toString().replace(/\\n/g, \"\") +\r\n \"\\n\" +\r\n this.costPrice2 +\r\n \" \" +\r\n costPrice2.toString().replace(/\\n/g, \"\") +\r\n \"\\n\" +\r\n this.costPrice3 +\r\n \" \" +\r\n costPrice3.toString().replace(/\\n/g, \"\");\r\n\r\n window.db.updateNoteHorse(data[0].Id, noteText, () => {\r\n window.Spinner.hide();\r\n this.createPriceReport();\r\n });\r\n } else {\r\n let horseId = window.DataStorage.getAllHorses().filter(\r\n (j) => j.rfbid == dataArr[i][regNr]\r\n )[0].id;\r\n let costPrice1 =\r\n dataArr[i][costPrice1Index] == undefined\r\n ? \"\"\r\n : dataArr[i][costPrice1Index];\r\n let costPrice2 =\r\n dataArr[i][costPrice2Index] == undefined\r\n ? \"\"\r\n : dataArr[i][costPrice2Index];\r\n let costPrice3 =\r\n dataArr[i][costPrice3Index] == undefined\r\n ? \"\"\r\n : dataArr[i][costPrice3Index];\r\n let textNote =\r\n this.purchasePrice +\r\n \"\\n\" +\r\n this.withVAT +\r\n \"\\n\" +\r\n this.currentAssessment +\r\n \"\\n\" +\r\n this.assessmentPotential +\r\n \"\\n\" +\r\n this.salePrice +\r\n \"\\n\" +\r\n this.costPrice1 +\r\n \" \" +\r\n costPrice1.toString().replace(/\\n/g, \"\") +\r\n \"\\n\" +\r\n this.costPrice2 +\r\n \" \" +\r\n costPrice2.toString().replace(/\\n/g, \"\") +\r\n \"\\n\" +\r\n this.costPrice3 +\r\n \" \" +\r\n costPrice3.toString().replace(/\\n/g, \"\");\r\n this.addNewPriceNote(horseId, textNote);\r\n }\r\n });\r\n }\r\n };\r\n\r\n addNewPriceNote = (horseId, textNote) => {\r\n let noteNew = {\r\n Id: Math.uuid(),\r\n HeaderNote: \"Cost price\",\r\n IdHorse: horseId,\r\n IsPrice: 1,\r\n OrderBy: Math.round(new Date().getTime() / 1000),\r\n TextNote: textNote,\r\n };\r\n window.Spinner.show();\r\n window.db.insertPriceNote(\r\n noteNew.Id,\r\n noteNew.IdHorse,\r\n noteNew.HeaderNote,\r\n noteNew.IsPrice,\r\n noteNew.TextNote,\r\n noteNew.OrderBy,\r\n () => {\r\n window.Spinner.hide();\r\n this.createPriceReport();\r\n }\r\n );\r\n };\r\n\r\n render() {\r\n const { farVetSelector, reportDataArray, headerTitle } = this.state;\r\n let isMobile = window.isMobileDevice();\r\n return (\r\n
\r\n
\r\n \r\n {headerTitle}\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n {farVetSelector.length ? (\r\n \r\n {farVetSelector.map((item) => (\r\n \r\n {item.label}\r\n \r\n ))}\r\n \r\n ) : (\r\n <>\r\n )}\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n {reportDataArray.length ? (\r\n reportDataArray.map((tableObj) => (\r\n
\r\n
\r\n
{tableObj.header}
\r\n
\r\n \r\n \r\n {tableObj.data.map((row, rowIndex) => (\r\n \r\n {rowIndex == 0\r\n ? row.map((h) => )\r\n : row.map((h, colIndex) => (\r\n \r\n ))}\r\n \r\n ))}\r\n \r\n
{h}\r\n
\r\n {this.getCellContent(h, colIndex)}\r\n
\r\n
\r\n
\r\n ))\r\n ) : (\r\n <>\r\n )}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default class Report {\r\n createReport(horseId) {\r\n ReactDOM.render(\r\n ,\r\n document.getElementById(\"reportsPageReact\")\r\n );\r\n }\r\n}\r\n","import React, { Component } from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport ToggleView from \"../Controls/ToggleView/ToggleView\";\r\n\r\nclass Permissions extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n roleId: \"\",\r\n dataArr: [],\r\n OrderC: \"\",\r\n hOpenHorse: \"\",\r\n hSeeVET: \"\",\r\n hWrite: \"\",\r\n hSeePriceInReport: \"\",\r\n tShowSmileOnTask: \"\",\r\n rSeeHorseData: \"\",\r\n vDeleteDay: \"\",\r\n vCopyAllHorses: \"\",\r\n hCreateOnMyAccount: \"\",\r\n };\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n if (this.props.roleId != prevProps.roleId) {\r\n this.loadData();\r\n }\r\n }\r\n\r\n componentDidMount = () => {\r\n this.loadData();\r\n };\r\n\r\n loadData = () => {\r\n window.db.getRiderRolePermissions(this.props.roleId, (data) => {\r\n var item = data[0];\r\n console.log(data);\r\n this.setState({\r\n roleId: this.props.roleId,\r\n dataArr: data,\r\n OrderC: item.OrderC,\r\n hOpenHorse: item.hOpenHorse,\r\n hSeeVET: item.hSeeVET,\r\n hWrite: item.hWrite,\r\n hSeePriceInReport: item.hSeePriceInReport,\r\n tShowSmileOnTask: item.tShowSmileOnTask,\r\n rSeeHorseData: item.rSeeHorseData,\r\n vDeleteDay: item.vDeleteDay,\r\n vCopyAllHorses: item.vCopyAllHorses,\r\n hCreateOnMyAccount: item.hCreateOnMyAccount,\r\n });\r\n });\r\n };\r\n\r\n onToggleChange = (name) => {\r\n this.setState({ [name]: this.state[name] ? 0 : 1 });\r\n };\r\n\r\n onHOpenHorseClick = () => {\r\n this.state.hOpenHorse\r\n ? this.setState({ hOpenHorse: 0 })\r\n : this.setState({ hOpenHorse: 1 });\r\n };\r\n\r\n onHSeeVETClick = () => {\r\n this.state.hSeeVET\r\n ? this.setState({ hSeeVET: 0 })\r\n : this.setState({ hSeeVET: 1 });\r\n };\r\n\r\n onHWriteClick = () => {\r\n this.state.hWrite\r\n ? this.setState({ hWrite: 0 })\r\n : this.setState({ hWrite: 1 });\r\n };\r\n\r\n onHSeePriceInReportClick = () => {\r\n this.state.hSeePriceInReport\r\n ? this.setState({ hSeePriceInReport: 0 })\r\n : this.setState({ hSeePriceInReport: 1 });\r\n };\r\n\r\n onTShowSmileOnTaskClick = () => {\r\n this.state.tShowSmileOnTask\r\n ? this.setState({ tShowSmileOnTask: 0 })\r\n : this.setState({ tShowSmileOnTask: 1 });\r\n };\r\n\r\n onRSeeHorseDataClick = () => {\r\n this.state.rSeeHorseData\r\n ? this.setState({ rSeeHorseData: 0 })\r\n : this.setState({ rSeeHorseData: 1 });\r\n };\r\n\r\n onVDeleteDayClick = () => {\r\n this.state.vDeleteDay\r\n ? this.setState({ vDeleteDay: 0 })\r\n : this.setState({ vDeleteDay: 1 });\r\n };\r\n\r\n onVCopyAllHorsesClick = () => {\r\n this.state.vCopyAllHorses\r\n ? this.setState({ vCopyAllHorses: 0 })\r\n : this.setState({ vCopyAllHorses: 1 });\r\n };\r\n\r\n onOKClick = () => {\r\n const {\r\n roleId,\r\n hOpenHorse,\r\n hSeeVET,\r\n hWrite,\r\n hSeePriceInReport,\r\n tShowSmileOnTask,\r\n rSeeHorseData,\r\n vDeleteDay,\r\n vCopyAllHorses,\r\n hCreateOnMyAccount,\r\n } = this.state;\r\n window.Spinner.show();\r\n window.DataGate.editRiderRole(\r\n roleId,\r\n hOpenHorse,\r\n hSeeVET,\r\n hWrite,\r\n hSeePriceInReport,\r\n tShowSmileOnTask,\r\n rSeeHorseData,\r\n vDeleteDay,\r\n vCopyAllHorses,\r\n hCreateOnMyAccount,\r\n () => {\r\n window.Spinner.hide();\r\n this.onCancelClick();\r\n }\r\n );\r\n };\r\n\r\n onCancelClick = () => {\r\n window.showPage(\"#riderRolePage\");\r\n window.$(\"#riderRolePage\").css(\"min-height\", \"95%\");\r\n };\r\n\r\n render() {\r\n const {\r\n dataArr,\r\n OrderC,\r\n hOpenHorse,\r\n hSeeVET,\r\n hWrite,\r\n hSeePriceInReport,\r\n tShowSmileOnTask,\r\n rSeeHorseData,\r\n vDeleteDay,\r\n vCopyAllHorses,\r\n hCreateOnMyAccount,\r\n } = this.state;\r\n return (\r\n
\r\n
\r\n \r\n

\r\n \r\n
\r\n
\r\n {dataArr.length ? (\r\n \r\n \r\n \r\n \r\n

{window.lang.permissionForHorses}

\r\n \r\n \r\n \r\n \r\n \r\n {window.lang.permissionCreateHorseOnMyAccount}\r\n \r\n \r\n this.onToggleChange(\"hCreateOnMyAccount\")}\r\n />\r\n \r\n \r\n \r\n \r\n {window.lang.permissionOpenHorse}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {window.lang.permissionSeeVET}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Permission to see 'sales' data under horse// see sales\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {window.lang.permissionWrite}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n

{window.lang.permissionForTasks}

\r\n \r\n \r\n \r\n \r\n \r\n {window.lang.permissionShowSmilOnTask}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n

Permission for Reports

\r\n \r\n \r\n \r\n \r\n \r\n See horse data in reports // See horse data\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n

{window.lang.permissionForView}

\r\n \r\n \r\n \r\n \r\n \r\n {window.lang.permissionDeleteDay}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {window.lang.permissionCopyAllHorses}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ) : (\r\n <>\r\n )}\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default class PermissionsPage {\r\n showPermissions(roleId) {\r\n ReactDOM.render(\r\n ,\r\n document.getElementById(\"permissionsContentReact\")\r\n );\r\n }\r\n}\r\n","import React, { Component } from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport \"./RiderRole.css\";\r\nimport PermissionsPage from \"../RiderRole/PermissionsPage\";\r\n\r\nclass RiderRolePage extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n newRole: \"\",\r\n rolesArr: [],\r\n };\r\n }\r\n\r\n componentDidMount = () => {\r\n this.loadData();\r\n };\r\n\r\n loadData = () => {\r\n window.db.getRiderRoles(window.myid, (data) => {\r\n data = data.sort(this.sortRolesArr);\r\n this.setState({\r\n rolesArr: data,\r\n });\r\n });\r\n };\r\n\r\n sortRolesArr = (a, b) => {\r\n if (a.OrderC < b.OrderC) return -1;\r\n if (a.OrderC > b.OrderC) return 1;\r\n return 0;\r\n };\r\n\r\n onExitClick = () => {\r\n window.showPage(\"#sharingPage\");\r\n window.managers.extention.showSharingPage();\r\n };\r\n\r\n onNewRoleInputChange = (e) => {\r\n this.setState({\r\n newRole: e.target.value,\r\n });\r\n };\r\n\r\n onAddNewRoleClick = () => {\r\n window.Spinner.show();\r\n window.DataGate.createRiderRole(\r\n Math.uuid(),\r\n window.myid,\r\n this.state.newRole,\r\n () => {\r\n window.Spinner.hide();\r\n this.setState(\r\n {\r\n newRole: \"\",\r\n },\r\n this.loadData()\r\n );\r\n }\r\n );\r\n };\r\n\r\n onDeleteRoleClick = (e) => {\r\n window.Spinner.show();\r\n window.DataGate.deleteRiderRole(e.currentTarget.dataset.id, () => {\r\n window.Spinner.hide();\r\n this.loadData();\r\n });\r\n };\r\n\r\n onEditClick = (e) => {\r\n window.showPage(\"#permissionsPageReact\");\r\n let permissionsPage = new PermissionsPage();\r\n permissionsPage.showPermissions(e.currentTarget.dataset.id);\r\n };\r\n\r\n onOrderDownClick = (item, itemIndex) => {\r\n if (itemIndex >= this.state.rolesArr.length - 1) return;\r\n\r\n window.DataGate.swipeRiderRoleOrder(\r\n this.state.rolesArr[itemIndex].Id,\r\n this.state.rolesArr[itemIndex + 1].Id,\r\n () => {\r\n this.loadData();\r\n }\r\n );\r\n };\r\n\r\n onOrderUpClick = (item, itemIndex) => {\r\n if (itemIndex <= 0) return;\r\n\r\n window.DataGate.swipeRiderRoleOrder(\r\n this.state.rolesArr[itemIndex].Id,\r\n this.state.rolesArr[itemIndex - 1].Id,\r\n () => {\r\n this.loadData();\r\n }\r\n );\r\n };\r\n\r\n render() {\r\n const { newRole, rolesArr } = this.state;\r\n return (\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n {rolesArr.length ? (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {rolesArr.map((item, itemIndex) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n
NameEditDeleteOrder
{item.Name}\r\n \r\n Edit\r\n \r\n \r\n \r\n Delete\r\n \r\n \r\n this.onOrderDownClick(item, itemIndex)}\r\n />\r\n \r\n this.onOrderUpClick(item, itemIndex)}\r\n />\r\n
\r\n ) : (\r\n <>\r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n Add Role\r\n \r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default class RiderRole {\r\n showRiderRolePage() {\r\n ReactDOM.render(\r\n ,\r\n document.getElementById(\"riderRolePageReact\")\r\n );\r\n }\r\n}\r\n","import React, { Component } from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport ToggleView from \"../Controls/ToggleView/ToggleView\";\r\nimport \"./SharePage.css\";\r\n\r\nclass Share extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n riderId: \"\",\r\n currentEmails: \"\",\r\n shareEmails: [],\r\n autoShare: \"\",\r\n myHorsesArr: [],\r\n role: \"\",\r\n originalHorseList: [],\r\n };\r\n this.sharedUsersData = [];\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n if (this.props != prevProps) {\r\n console.log(\"DADASD\");\r\n this.loadData();\r\n }\r\n }\r\n\r\n componentDidMount = () => {\r\n this.loadData();\r\n };\r\n\r\n loadData = () => {\r\n window.Spinner.show();\r\n window.db.getAllUsersExceptId(window.myid, (data) => {\r\n window.db.getLocalSettingsById(window.myid, (dataSettings) => {\r\n console.log(\"__________________________--\");\r\n console.log(dataSettings);\r\n this.sharedUsersData = data;\r\n\r\n let autoShare = 0;\r\n let shareEmails = [];\r\n let riderId = \"\";\r\n let currentRiderRole = \"\";\r\n let currentEmail = \"\";\r\n let myHorses = window.DataStorage.myHorseArray;\r\n let myHorsesArr = [];\r\n let sharedHorsesArr = [];\r\n\r\n for (var i = 0; i < myHorses.length; i++) {\r\n myHorsesArr.push({ shared: 0, horseData: myHorses[i] });\r\n }\r\n\r\n for (var i = 0; i < data.length; i++) {\r\n shareEmails.push(data[i].email);\r\n }\r\n if (this.props.riderId) {\r\n riderId = this.props.riderId;\r\n window.Managers.shareAllHorsesUserId = riderId;\r\n if (dataSettings.length != 0) {\r\n if (\r\n dataSettings[0][\"ShareAllUsersId\"] != null &&\r\n dataSettings[0][\"ShareAllUsersId\"] != \"\"\r\n ) {\r\n window.Managers.shareAllHorsesUsersId = JSON.parse(\r\n dataSettings[0][\"ShareAllUsersId\"]\r\n );\r\n if (\r\n window.Managers.shareAllHorsesUsersId.indexOf(\r\n window.Managers.shareAllHorsesUserId\r\n ) != -1\r\n ) {\r\n autoShare = 1;\r\n } else {\r\n autoShare = 0;\r\n }\r\n }\r\n }\r\n window.db.getMyAndSharedHorses(riderId, (myHorses, shareData) => {\r\n sharedHorsesArr = shareData.map((i) => i.id);\r\n sharedHorsesArr.filter((item) => {\r\n let curr = myHorsesArr.filter((i) => item == i.horseData.id);\r\n if (!curr) {\r\n return true;\r\n } else {\r\n if (curr[0]) curr[0].shared = 1;\r\n return false;\r\n }\r\n });\r\n\r\n this.setState({\r\n myHorsesArr: myHorsesArr,\r\n originalHorseList: myHorsesArr.map((x) => x.shared),\r\n });\r\n });\r\n } else if (this.props.horseId) {\r\n let horse = myHorsesArr.find(\r\n (h) => h.horseData.id == this.props.horseId\r\n );\r\n if (horse != null) {\r\n horse.shared = 1;\r\n }\r\n }\r\n if (this.props.email) currentEmail = this.props.email + \";\";\r\n if (this.props.role) currentRiderRole = this.props.role;\r\n\r\n this.setState(\r\n {\r\n riderId: riderId,\r\n currentEmails: currentEmail,\r\n role: currentRiderRole,\r\n shareEmails: shareEmails,\r\n autoShare: autoShare,\r\n myHorsesArr: myHorsesArr,\r\n originalHorseList: myHorsesArr.map((x) => x.shared),\r\n },\r\n window.Spinner.hide()\r\n );\r\n });\r\n });\r\n };\r\n\r\n onEmailChange = (e) => {\r\n this.setState({\r\n currentEmails: e.target.value,\r\n });\r\n };\r\n\r\n onEmailInputClick = () => {\r\n window.$(\".emailsList\").css(\"display\", \"contents\");\r\n };\r\n\r\n onEmailClick = (e) => {\r\n let oldEmails = this.state.currentEmails;\r\n let newEmails = oldEmails + e.currentTarget.dataset.email + \";\";\r\n this.setState({\r\n currentEmails: newEmails,\r\n });\r\n\r\n const user = this.sharedUsersData.find(\r\n (u) => u.email == e.currentTarget.dataset.email\r\n );\r\n if (user) {\r\n window.Managers.shareAllHorsesUserId = user.id;\r\n }\r\n };\r\n\r\n onShareOtherHorseClick = () => {\r\n if (window.$(\".collapsible-content\").css(\"display\") === \"block\")\r\n window.$(\".collapsible-content\").css(\"display\", \"none\");\r\n else window.$(\".collapsible-content\").css(\"display\", \"block\");\r\n };\r\n\r\n onAutomaticallyShareAllHorsesClick = () => {\r\n var set = this.state.autoShare;\r\n if (window.Managers.shareAllHorsesUserId != undefined) {\r\n window.db.getLocalSettingsById(window.myid, (dataSettings) => {\r\n if (dataSettings.length != 0) {\r\n if (\r\n dataSettings[0][\"ShareAllUsersId\"] != null &&\r\n dataSettings[0][\"ShareAllUsersId\"] != \"\"\r\n ) {\r\n window.Managers.shareAllHorsesUsersId = JSON.parse(\r\n dataSettings[0][\"ShareAllUsersId\"]\r\n );\r\n } else {\r\n window.Managers.shareAllHorsesUsersId = [];\r\n }\r\n } else {\r\n window.Managers.shareAllHorsesUsersId = [];\r\n }\r\n if (set == \"0\") {\r\n if (\r\n window.Managers.shareAllHorsesUsersId.indexOf(\r\n window.Managers.shareAllHorsesUserId\r\n ) == -1\r\n ) {\r\n window.Managers.shareAllHorsesUsersId.push(\r\n window.Managers.shareAllHorsesUserId\r\n );\r\n window.db.updateLocalSettingsShareAllHorses(\r\n JSON.stringify(window.Managers.shareAllHorsesUsersId)\r\n );\r\n }\r\n let myHorsesArr = this.state.myHorsesArr;\r\n for (var i in myHorsesArr) myHorsesArr[i].shared = 1;\r\n this.setState({\r\n autoShare: 1,\r\n myHorsesArr: myHorsesArr,\r\n });\r\n } else {\r\n window.Managers.shareAllHorsesUsersId.splice(\r\n window.Managers.shareAllHorsesUsersId.indexOf(\r\n window.Managers.shareAllHorsesUserId\r\n ),\r\n 1\r\n );\r\n window.db.updateLocalSettingsShareAllHorses(\r\n JSON.stringify(window.Managers.shareAllHorsesUsersId)\r\n );\r\n this.setState({\r\n autoShare: 0,\r\n });\r\n }\r\n });\r\n }\r\n };\r\n\r\n onSelectAllClick = () => {\r\n let myHorsesArr = this.state.myHorsesArr;\r\n for (var i in myHorsesArr) myHorsesArr[i].shared = 1;\r\n this.setState({\r\n myHorsesArr: myHorsesArr,\r\n });\r\n };\r\n\r\n onHorseClick = (horseId) => {\r\n let myHorsesArrAux = [...this.state.myHorsesArr];\r\n let currentIndex = myHorsesArrAux.findIndex(\r\n (i) => i.horseData.id == horseId\r\n );\r\n myHorsesArrAux[currentIndex].shared = !myHorsesArrAux[currentIndex].shared;\r\n this.setState(\r\n {\r\n myHorsesArr: myHorsesArrAux,\r\n },\r\n () => {}\r\n );\r\n };\r\n\r\n onCancelClick = () => {\r\n window.showPage(\"#sharingPage\");\r\n window.managers.extention.showSharingPage();\r\n };\r\n\r\n onOkClick = () => {\r\n window.Spinner.show();\r\n\r\n let selectedForShareHorsesArr = this.state.myHorsesArr.filter(\r\n (i, index) => i.shared == 1 && this.state.originalHorseList[index] == 0\r\n );\r\n let horseIds = \"\";\r\n let notSelectedForShareHorsesArr = this.state.myHorsesArr.filter(\r\n (i, index) => i.shared == 0 && this.state.originalHorseList[index] == 1\r\n );\r\n\r\n if (\r\n notSelectedForShareHorsesArr.length == 0 &&\r\n selectedForShareHorsesArr.length == 0\r\n ) {\r\n window.Spinner.hide();\r\n setTimeout(() => {\r\n window.showPage(\"#sharingPage\");\r\n window.managers.extention.showSharingPage();\r\n }, 500);\r\n return;\r\n }\r\n\r\n let notSelectesHorseIds = \"\";\r\n\r\n for (var i in selectedForShareHorsesArr) {\r\n horseIds += selectedForShareHorsesArr[i].horseData.id + \";\";\r\n }\r\n for (var i in notSelectedForShareHorsesArr) {\r\n notSelectesHorseIds += notSelectedForShareHorsesArr[i].horseData.id + \";\";\r\n }\r\n window.DataGate.shareHorse(\r\n window.myid,\r\n this.state.currentEmails,\r\n horseIds,\r\n notSelectesHorseIds,\r\n \"w\",\r\n this.state.role != \"None\" ? this.state.role : undefined,\r\n (code, data) => {\r\n if (code == window.DataGate.CODE_OK) {\r\n var dataObj = JSON.parse(data);\r\n if (dataObj[\"NotValidEmails\"].length == 0) {\r\n window.Spinner.hide();\r\n //var text = window.lang.horseShared.replace('{0}', dataObj[\"ValidEmails\"].join(\",\"));\r\n //window.navigator.notification.alert(text, null, 'Equestrians App');\r\n setTimeout(() => {\r\n window.showPage(\"#sharingPage\");\r\n window.managers.extention.showSharingPage();\r\n }, 500);\r\n } else {\r\n window.Spinner.hide();\r\n var text = window.lang.horseNotShared.replace(\r\n \"{0}\",\r\n dataObj[\"NotValidEmails\"].join(\",\")\r\n );\r\n window.navigator.notification.alert(text, null, \"Equestrians App\");\r\n }\r\n } else {\r\n window.Spinner.hide();\r\n window.navigator.notification.alert(\r\n window.lang.horseNotShared,\r\n null,\r\n \"Equestrians App\"\r\n );\r\n }\r\n }\r\n );\r\n };\r\n\r\n render() {\r\n const { currentEmails, shareEmails, autoShare, myHorsesArr } = this.state;\r\n return (\r\n
\r\n
\r\n \r\n {window.lang.share}\r\n \r\n
\r\n
\r\n
{window.lang.shareWith}
\r\n
\r\n \r\n
\r\n
\r\n \r\n {shareEmails.length ? (\r\n shareEmails.map((currentElement, index) =>\r\n index == 0 ? (\r\n \r\n \r\n {currentElement}\r\n \r\n \r\n ) : index == shareEmails.length - 1 ? (\r\n \r\n \r\n {currentElement}\r\n \r\n \r\n ) : (\r\n \r\n \r\n {currentElement}\r\n \r\n \r\n )\r\n )\r\n ) : (\r\n <>\r\n )}\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n {window.lang.shareOtherHorses}\r\n \r\n
\r\n \r\n {window.lang.selectAll}\r\n \r\n {myHorsesArr.length ? (\r\n \r\n \r\n {myHorsesArr.map((i) => (\r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n
\r\n {i.horseData.name}\r\n \r\n {\r\n // console.log(i);\r\n this.onHorseClick(i.horseData.id);\r\n }}\r\n />\r\n
\r\n ) : (\r\n <>\r\n )}\r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default class SharePage {\r\n showSharePage = (riderId, email, role, horseId) => {\r\n window.showPage(\"#sharePage\");\r\n ReactDOM.render(\r\n ,\r\n document.getElementById(\"shareReact\")\r\n );\r\n };\r\n}\r\n","import React, { Component } from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport \"./SharePage.css\";\r\nimport SharePage from \"./SharePage\";\r\n\r\nclass CreateRiderView extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n email: \"\",\r\n password: \"\",\r\n confirmPassword: \"\",\r\n name: \"\",\r\n phone: \"\",\r\n image: null,\r\n };\r\n }\r\n\r\n onCancelClick = () => {\r\n window.showPage(\"#sharingPage\");\r\n window.managers.extention.showSharingPage();\r\n };\r\n\r\n onInputChange = (e, propName) => {\r\n this.setState({\r\n [propName]: e.target.value,\r\n });\r\n };\r\n\r\n onImageClick = () => {\r\n window.getPhoto((imageData) => {\r\n this.setState({\r\n image: imageData,\r\n });\r\n });\r\n };\r\n\r\n onOkClick = () => {\r\n const { email, password, confirmPassword, name, phone, image } = this.state;\r\n if (email == null || email == \"\" || password == null || password == \"\") {\r\n window.navigator.notification.alert(\"Email and password are required\");\r\n return;\r\n }\r\n\r\n if (password != confirmPassword) {\r\n window.navigator.notification.alert(\r\n \"Password and confirm password should be the same\"\r\n );\r\n return;\r\n }\r\n\r\n window.Spinner.show();\r\n let pswd = window.hex_md5(password);\r\n window.DataGate.register(\r\n email,\r\n pswd,\r\n null,\r\n name,\r\n image,\r\n \"\",\r\n \"\",\r\n \"\",\r\n \"\",\r\n phone,\r\n window.lang.getLangName(),\r\n true,\r\n (code, data) => {\r\n console.log(\"register code: \" + code, data);\r\n if (code == window.DataGate.CODE_OK) {\r\n const realMyId = window.myid;\r\n window.myid = data.userId;\r\n\r\n let signUp = new window.SignUp();\r\n signUp.gtypeVal = 0;\r\n signUp.createDefaultTypes();\r\n signUp.createDefaultHorseTypes();\r\n signUp.fillInitialValues();\r\n window.Spinner.show();\r\n window.DefaultValue.CreateDefaultStables(() => {\r\n window.Spinner.show();\r\n setTimeout(() => {\r\n window.myid = realMyId;\r\n window.Spinner.hide();\r\n\r\n //share with email\r\n var sharePage = new SharePage();\r\n window.showPage(\"#sharePage\");\r\n sharePage.showSharePage(data.userId, email, null);\r\n }, 2000);\r\n });\r\n } else if (code == window.DataGate.CODE_EMAIL_EXISTS) {\r\n window.navigator.notification.alert(window.lang.alertLoginExistsNew);\r\n window.Spinner.hide();\r\n } else {\r\n window.navigator.notification.alert(window.lang.alertLoginNotValid);\r\n window.Spinner.hide();\r\n }\r\n }\r\n );\r\n };\r\n\r\n render() {\r\n const { email, password, confirmPassword, name, phone, image } = this.state;\r\n return (\r\n \r\n
\r\n \r\n {window.lang.createNewRider}\r\n \r\n
\r\n \r\n
Email
\r\n
\r\n this.onInputChange(e, \"email\")}\r\n />\r\n
\r\n
{window.lang.password}
\r\n
\r\n this.onInputChange(e, \"password\")}\r\n />\r\n
\r\n
{window.lang.confirmPassword}
\r\n
\r\n this.onInputChange(e, \"confirmPassword\")}\r\n />\r\n
\r\n
{window.lang.name}
\r\n
\r\n this.onInputChange(e, \"name\")}\r\n />\r\n
\r\n
{window.lang.phone}
\r\n
\r\n this.onInputChange(e, \"phone\")}\r\n />\r\n
\r\n {image ? (\r\n \r\n ) : (\r\n \r\n {window.lang.image}\r\n \r\n )}\r\n
\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default class CreateRiderPage {\r\n showPage() {\r\n window.showPage(\"#createRiderPage\");\r\n ReactDOM.render(\r\n ,\r\n document.getElementById(\"createRiderPageReact\")\r\n );\r\n }\r\n}\r\n","import React, { Component, useEffect, useState } from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport DatePicker from \"react-datepicker\";\r\nimport RiderRole from \"../RiderRole/RiderRole\";\r\nimport SharePage from \"./SharePage\";\r\nimport \"./SharePage.css\";\r\nimport CreateRiderPage from \"./CreateRiderPage\";\r\nimport ToggleView from \"../Controls/ToggleView/ToggleView\";\r\n\r\nfunction ShareColumn(props) {\r\n const { i, myStables } = props;\r\n const [selectedStables, setSelectedStables] = useState(i.stablesShared);\r\n const [nonSelectedStables, setNonSelectedStables] = useState([]);\r\n\r\n useEffect(() => {\r\n setNonSelectedStables(\r\n myStables.filter((x) => !selectedStables.find((y) => y == x.Id))\r\n );\r\n }, [myStables, selectedStables]);\r\n\r\n const selectStable = (id) => {\r\n if (id == 0) return;\r\n if (id == -1) {\r\n const newStables = nonSelectedStables.map((x) => x.Id);\r\n window.Spinner.show();\r\n window.DataGate.shareStable(i.id, newStables, (code, data) => {\r\n if (code == window.DataGate.CODE_OK) {\r\n let aux = [...selectedStables];\r\n aux.push(...newStables);\r\n setSelectedStables(aux);\r\n window.Spinner.hide();\r\n }\r\n });\r\n return;\r\n }\r\n window.Spinner.show();\r\n window.DataGate.shareStable(i.id, [id], (code, data) => {\r\n if (code == window.DataGate.CODE_OK) {\r\n let aux = [...selectedStables];\r\n aux.push(id);\r\n setSelectedStables(aux);\r\n window.Spinner.hide();\r\n }\r\n });\r\n };\r\n const getItemFromId = (id) => myStables.find((x) => x.Id == id);\r\n\r\n const deselectStable = (target) => {\r\n window.Spinner.show();\r\n window.DataGate.DeleteShareStable(i.id, [target], (code, data) => {\r\n if (code == window.DataGate.CODE_OK) {\r\n setSelectedStables([...selectedStables].filter((x) => x != target));\r\n window.Spinner.hide();\r\n }\r\n });\r\n };\r\n return (\r\n
\r\n
\r\n {selectedStables.map((stableId) => (\r\n deselectStable(stableId)}\r\n className=\"badge\"\r\n >\r\n \r\n \r\n \r\n {getItemFromId(stableId).StableName}\r\n \r\n ))}\r\n
\r\n\r\n {selectedStables.length < myStables.length && (\r\n {\r\n e.preventDefault();\r\n selectStable(e.target.value);\r\n }}\r\n >\r\n \r\n \r\n {nonSelectedStables.map((stable) => (\r\n \r\n ))}\r\n \r\n )}\r\n
\r\n );\r\n}\r\n\r\nclass SharingPage extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n myStables: [],\r\n shareArr: [],\r\n riderRoles: [],\r\n changeLicenseItem: null,\r\n changeResetPasswordItem: null,\r\n resetPasswordInputValue: \"\",\r\n resetPasswordRetypeInputValue: \"\",\r\n };\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n if (this.props != prevProps) {\r\n this.loadData();\r\n }\r\n }\r\n\r\n componentDidMount = () => {\r\n this.loadData();\r\n };\r\n\r\n loadData = () => {\r\n window.Spinner.show();\r\n window.db.getRiderRoles(window.myid, (roles) => {\r\n window.DataGate.getShareWithData(async (code, responseData) => {\r\n console.log(responseData);\r\n const data = responseData.Item1;\r\n const stablesData = responseData.Item2;\r\n\r\n if (code != 1) {\r\n return;\r\n }\r\n console.log(data);\r\n // return;\r\n var dataArr = [];\r\n data.forEach((itemD) => {\r\n let curr = dataArr.find((i) => i.id == itemD.ShareWith);\r\n if (!curr) {\r\n let item = data.find(\r\n (i) => i.ShareWith == itemD.ShareWith && i.RoleId != null\r\n );\r\n if (!item) item = itemD;\r\n //find all stables\r\n let stablesOfUser = [];\r\n for (let x of stablesData) {\r\n if (x.ShareWith == itemD.ShareWith)\r\n stablesOfUser.push(x.StableId);\r\n }\r\n\r\n dataArr.push({\r\n name: item.Name,\r\n email: item.Email,\r\n id: item.ShareWith,\r\n currentRole: item.RoleId ? item.RoleId : \"None\",\r\n sender_id: item.sender_id || false,\r\n notAccepted: item.NotAccepted,\r\n createLicenseTo: item.CreateLicenseTo\r\n ? new Date(\r\n parseInt(\r\n item.CreateLicenseTo.replace(\"/Date(\", \"\").replace(\r\n \")/\",\r\n \"\"\r\n )\r\n )\r\n )\r\n : null,\r\n licenseExpire: new Date(item.licenseExpire * 1000),\r\n stablesShared: stablesOfUser,\r\n });\r\n }\r\n });\r\n roles.push({ Id: \"None\", Name: \"None\" });\r\n\r\n let stables = await window.db.getAllStablesAsync(window.myid);\r\n console.log(dataArr);\r\n this.setState(\r\n {\r\n myStables: stables,\r\n shareArr: dataArr,\r\n riderRoles: roles,\r\n },\r\n window.Spinner.hide()\r\n );\r\n });\r\n });\r\n };\r\n\r\n onRoleChange = (e) => {\r\n window.Spinner.show();\r\n window.DataGate.setRiderRole(\r\n e.currentTarget.dataset.id,\r\n window.myid,\r\n e.target.value,\r\n e.currentTarget.dataset.notaccepted,\r\n () => {\r\n this.loadData();\r\n window.Spinner.hide();\r\n }\r\n );\r\n };\r\n\r\n onShareRoleButtonClick = () => {\r\n var riderRole = new RiderRole();\r\n window.showPage(\"#riderRolePage\");\r\n riderRole.showRiderRolePage();\r\n };\r\n\r\n onOpenShareButtonClick = (e) => {\r\n var sharePage = new SharePage();\r\n window.showPage(\"#sharePage\");\r\n sharePage.showSharePage(\r\n e.currentTarget.dataset.id,\r\n e.currentTarget.dataset.email,\r\n e.currentTarget.dataset.role\r\n );\r\n };\r\n\r\n onCreateRiderClick = () => {\r\n var createRider = new CreateRiderPage();\r\n createRider.showPage();\r\n };\r\n\r\n onDeleteButtonClick = (e) => {\r\n let id = e.currentTarget.dataset.id;\r\n let notaccepted = e.currentTarget.dataset.notaccepted;\r\n window.$(\"#sharingPopupDialog\").popup(\"open\");\r\n window.$(\"#sharingPopupDialogTitle\").html(window.lang.alertDeleteShare);\r\n window.$(\"#sharingDelete\").unbind(\"click\");\r\n window.$(\"#sharingDelete\").click(() => {\r\n if (notaccepted == 0) {\r\n window.db.setShareWithUpdate(window.myid, id, \"horseId\", \"d\");\r\n // }\r\n setTimeout(() => {\r\n window.showPage(\"#sharingPage\");\r\n window.managers.extention.showSharingPage();\r\n }, 500);\r\n } else {\r\n window.db.deleteNotAcceptedHorseByNotAccepted(id);\r\n setTimeout(() => {\r\n window.showPage(\"#sharingPage\");\r\n window.managers.extention.showSharingPage();\r\n }, 500);\r\n }\r\n window.db.getLocalSettingsById(window.myid, (dataSettings) => {\r\n if (dataSettings.length != 0) {\r\n if (\r\n dataSettings[0][\"ShareAllUsersId\"] != null &&\r\n dataSettings[0][\"ShareAllUsersId\"] != \"\"\r\n ) {\r\n window.Managers.shareAllHorsesUsersId = JSON.parse(\r\n dataSettings[0][\"ShareAllUsersId\"]\r\n );\r\n for (\r\n var i = 0;\r\n i < window.Managers.shareAllHorsesUsersId.length;\r\n i++\r\n ) {\r\n if (window.Managers.shareAllHorsesUsersId[i] == id) {\r\n window.Managers.shareAllHorsesUsersId.splice(i, 1);\r\n window.db.updateLocalSettingsShareAllHorses(\r\n JSON.stringify(window.Managers.shareAllHorsesUsersId)\r\n );\r\n }\r\n }\r\n }\r\n }\r\n });\r\n });\r\n window.$(\"#sharingDeleteCancel\").unbind(\"click\");\r\n window.$(\"#sharingDeleteCancel\").click(() => {\r\n window.$(\"#sharingPopupDialog\").popup(\"close\");\r\n });\r\n };\r\n\r\n onShareHorsesWithNewRiderClick = () => {\r\n var sharePage = new SharePage();\r\n window.showPage(\"#sharePage\");\r\n sharePage.showSharePage();\r\n };\r\n\r\n onOkClick = () => {\r\n window.showPage(\"#settingsPage\");\r\n window.$(\"#settingsPage\").css(\"min-height\", \"95%\");\r\n };\r\n\r\n onChangeLicenseDate = (item) => {\r\n this.setState({\r\n changeLicenseItem: { ...item },\r\n });\r\n };\r\n\r\n handleChangeLicenseDate = (date) => {\r\n this.setState({\r\n changeLicenseItem: {\r\n ...this.state.changeLicenseItem,\r\n licenseExpire: date,\r\n },\r\n });\r\n };\r\n\r\n saveChangeLicenseDate = () => {\r\n let arr = this.state.shareArr;\r\n let shareItem = arr.find(\r\n (item) => item.id == this.state.changeLicenseItem.id\r\n );\r\n shareItem.licenseExpire = this.state.changeLicenseItem.licenseExpire;\r\n this.setState({\r\n shareArr: arr,\r\n });\r\n this.closeChangeLicensePopup();\r\n window.Spinner.show();\r\n window.DataGate.changeCreateHorseLicenseDate(\r\n window.myid,\r\n shareItem.id,\r\n shareItem.licenseExpire,\r\n () => {\r\n window.Spinner.hide();\r\n }\r\n );\r\n };\r\n\r\n handleResetPassword = (item) => {\r\n this.setState({\r\n changeResetPasswordItem: item,\r\n resetPasswordInputValue: \"\",\r\n resetPasswordRetypeInputValue: \"\",\r\n });\r\n };\r\n\r\n resetPassword = () => {\r\n if (\r\n this.state.resetPasswordInputValue == \"\" ||\r\n this.state.resetPasswordRetypeInputValue == \"\"\r\n ) {\r\n alert(\"Passwords cannot be empty\");\r\n return;\r\n }\r\n if (\r\n this.state.resetPasswordInputValue !=\r\n this.state.resetPasswordRetypeInputValue\r\n ) {\r\n alert(\"Passwords do not match\");\r\n return;\r\n }\r\n\r\n //reset password\r\n window.DataGate.changePasswordForSharedUser(\r\n window.myid,\r\n this.state.changeResetPasswordItem.id,\r\n this.state.resetPasswordInputValue,\r\n (err) => {\r\n if (err) {\r\n alert(\"Something went wrong\");\r\n return;\r\n }\r\n alert(\"Password updated\");\r\n this.setState({ changeResetPasswordItem: null });\r\n }\r\n );\r\n };\r\n\r\n toggleShareOtherTasks = (id) => {\r\n let arr = [...this.state.shareArr];\r\n\r\n let shareItem = arr.find((item) => item.id == id);\r\n if (!shareItem) return;\r\n console.log(shareItem);\r\n\r\n window.DataGate.changeCreateHorseShareOtherTasks(shareItem.id, (data) => {\r\n if (data?.Data == \"0\") {\r\n shareItem.sender_id = shareItem.id;\r\n } else {\r\n shareItem.sender_id = false;\r\n }\r\n this.setState({ shareArr: arr });\r\n });\r\n };\r\n\r\n closeChangeLicensePopup = () => {\r\n this.setState({ changeLicenseItem: null });\r\n };\r\n\r\n render() {\r\n const { shareArr, riderRoles, changeLicenseItem } = this.state;\r\n var inches =\r\n Math.sqrt(\r\n Math.pow(window.screen.width, 2) + Math.pow(window.screen.height, 2)\r\n ) *\r\n (1 / window.inch.offsetWidth);\r\n return (\r\n
\r\n
\r\n \r\n {window.lang.share}\r\n \r\n
\r\n
\r\n {{ inches } < 9 ||\r\n /Android/.test(navigator.userAgent) ||\r\n /iPhone/.test(navigator.userAgent) ? (\r\n
\r\n {shareArr.length ? (\r\n
\r\n {shareArr.map((i) => (\r\n
\r\n
\r\n {i.name + \" (\" + i.email + \")\"} -{\" \"}\r\n \r\n {!i.notAccepted ? \"Accepted\" : \"Not Accepted\"}\r\n \r\n
\r\n
\r\n {riderRoles.length ? (\r\n \r\n {riderRoles.map((j) => (\r\n \r\n ))}\r\n \r\n ) : (\r\n <>\r\n )}\r\n
\r\n
\r\n \r\n {window.lang.sharedHorses}\r\n \r\n
\r\n {/* @todo */}\r\n
\r\n \r\n {window.lang.sharedHorses}\r\n \r\n
\r\n
\r\n \r\n {window.lang.deleteL}\r\n \r\n
\r\n {i.licenseExpire && (\r\n
\r\n \r\n License to: {i.licenseExpire.formatDesh()}\r\n \r\n this.onChangeLicenseDate(i)}\r\n >\r\n {window.lang.edit}\r\n \r\n
\r\n )}\r\n {!i.notAccepted && (\r\n
\r\n this.handleResetPassword(i)}\r\n >\r\n {\"Reset password\"}\r\n \r\n
\r\n )}\r\n\r\n
\r\n
\r\n ))}\r\n
\r\n \r\n {\" \"}\r\n {window.lang.shareHorsesWithNewRider}{\" \"}\r\n \r\n \r\n {\" \"}\r\n Rider roles\r\n \r\n \r\n {window.lang.createNewRider}\r\n \r\n
\r\n
\r\n ) : (\r\n
\r\n \r\n {\" \"}\r\n {window.lang.shareHorsesWithNewRider}{\" \"}\r\n \r\n \r\n {\" \"}\r\n Rider roles\r\n \r\n \r\n {window.lang.createNewRider}\r\n \r\n
\r\n )}\r\n
\r\n ) : (\r\n
\r\n {shareArr.length ? (\r\n
\r\n \r\n \r\n \r\n \r\n Role \r\n \r\n {window.lang.sharedHorses}\r\n \r\n {window.lang.deleteL}\r\n {window.lang.accepted}\r\n Share other tasks\r\n License\r\n Password\r\n \r\n \r\n \r\n {shareArr.map((i) => (\r\n \r\n {i.name + \" (\" + i.email + \")\"}\r\n \r\n {riderRoles.length ? (\r\n \r\n {riderRoles.map((j) => (\r\n \r\n ))}\r\n \r\n ) : (\r\n <>\r\n )}\r\n \r\n \r\n
\r\n \r\n {window.lang.sharedHorses}\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n {window.lang.deleteL}\r\n \r\n
\r\n \r\n \r\n {!i.notAccepted ? \"Accepted\" : \"Not Accepted\"}\r\n \r\n \r\n {\r\n this.toggleShareOtherTasks(i.id);\r\n }}\r\n />\r\n {/* TODO */}\r\n \r\n \r\n {i.licenseExpire && (\r\n <>\r\n
{i.licenseExpire.formatDesh()}
\r\n this.onChangeLicenseDate(i)}\r\n >\r\n {window.lang.edit}\r\n \r\n \r\n )}\r\n \r\n \r\n {!i.notAccepted && (\r\n
\r\n this.handleResetPassword(i)}\r\n >\r\n {\"Reset password\"}\r\n \r\n
\r\n )}\r\n \r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n {\" \"}\r\n {window.lang.shareHorsesWithNewRider}{\" \"}\r\n \r\n \r\n \r\n {\" \"}\r\n Rider roles\r\n \r\n \r\n \r\n {window.lang.createNewRider}\r\n \r\n
\r\n
\r\n ) : (\r\n
\r\n \r\n {\" \"}\r\n {window.lang.shareHorsesWithNewRider}{\" \"}\r\n \r\n \r\n {\" \"}\r\n Rider roles\r\n \r\n \r\n {window.lang.createNewRider}\r\n \r\n
\r\n )}\r\n
\r\n )}\r\n
\r\n {changeLicenseItem && (\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n OK\r\n \r\n
\r\n )}\r\n\r\n {this.state.changeResetPasswordItem && (\r\n
\r\n this.setState({ changeResetPasswordItem: null })}\r\n />\r\n \r\n New password\r\n
\r\n
\r\n \r\n this.setState({\r\n resetPasswordInputValue: e.currentTarget.value,\r\n })\r\n }\r\n />\r\n
\r\n
\r\n
\r\n
\r\n Retype new password\r\n
\r\n
\r\n \r\n this.setState({\r\n resetPasswordRetypeInputValue: e.currentTarget.value,\r\n })\r\n }\r\n />\r\n
\r\n
\r\n
\r\n \r\n OK\r\n \r\n \r\n )}\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default class Sharing {\r\n showSharingPage = () => {\r\n ReactDOM.render(, document.getElementById(\"sharingReact\"));\r\n };\r\n}\r\n","import React, { Component } from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\n\r\nimport \"./AutoCreateTaskPage.css\";\r\n\r\nclass AutoCreateTaskCompoment extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n userTimeZone: 0,\r\n timeZoneArray: [],\r\n weekDays: [],\r\n horseTypes: [],\r\n riderArray: [],\r\n trainingTypes: [],\r\n addData: {\r\n CreateWeekDay: 1,\r\n CreateTime: \"09:00\",\r\n CreateToDay: 1,\r\n HorseTypes: \"\",\r\n Rider: \"\",\r\n TrainingTypes: \"\",\r\n },\r\n createTaskArray: [],\r\n };\r\n }\r\n\r\n onBackClick = () => {\r\n window.onBack();\r\n };\r\n\r\n componentDidMount() {\r\n this.loadData();\r\n }\r\n\r\n loadData = () => {\r\n let weekDays = window.lang.daysNames.map((d, i) => ({\r\n value: i,\r\n label: d,\r\n }));\r\n let s = weekDays.shift();\r\n weekDays.push(s);\r\n\r\n let hoseTypes = [\r\n {\r\n ID: \"\",\r\n Name: window.lang.selectAll,\r\n OwnerC: window.myid,\r\n },\r\n ...window.DataStorage.horseTypes.filter((t) => t.OwnerC == window.myid),\r\n ];\r\n\r\n let trainingTypes = window.DataStorage.trainTypes.filter(\r\n (t) => t.owner == window.myid\r\n );\r\n\r\n this.setState({\r\n weekDays: weekDays,\r\n horseTypes: hoseTypes,\r\n trainingTypes: trainingTypes,\r\n addData: {\r\n ...this.state.addData,\r\n TrainingTypes: trainingTypes[0].id,\r\n },\r\n });\r\n\r\n window.db.getAllUsersExceptId(window.myid, (dataU) => {\r\n const riders = [\r\n { value: \"\", label: \"Horse follows rider\" },\r\n { value: window.myid, label: window.lang.me },\r\n ...dataU.map((t) => ({ value: t.id, label: t.name })),\r\n ];\r\n\r\n this.setState({\r\n riderArray: riders,\r\n });\r\n });\r\n\r\n window.$.getJSON(\"js/timeZone.json\", (json) => {\r\n var timezone = -(new Date().getTimezoneOffset() / 60);\r\n if (timezone != null) {\r\n this.setState({\r\n userTimeZone: timezone,\r\n timeZoneArray: json,\r\n });\r\n }\r\n });\r\n\r\n this.loadTaskData();\r\n };\r\n\r\n loadTaskData = () => {\r\n window.Spinner.show();\r\n window.db.getAutoCreateJobs(window.myid, (data) => {\r\n window.Spinner.hide();\r\n this.setState({\r\n createTaskArray: data,\r\n });\r\n });\r\n };\r\n\r\n onTimeZoneChange = (e) => {\r\n this.setState({\r\n userTimeZone: e.target.value,\r\n });\r\n window.db.setUserTimeZone(e.target.value, () => {});\r\n };\r\n\r\n onAddDataChange = (name, value) => {\r\n this.setState({\r\n addData: {\r\n ...this.state.addData,\r\n [name]: value,\r\n },\r\n });\r\n };\r\n\r\n onAddClick = () => {\r\n let data = {\r\n ...this.state.addData,\r\n UserId: window.myid,\r\n };\r\n window.Spinner.show();\r\n window.db.insertAutoCreateJob(data, () => {\r\n window.Spinner.hide();\r\n this.loadTaskData();\r\n });\r\n };\r\n\r\n onItemDataChange = (name, value, itemIndex) => {\r\n let createTaskArray = [...this.state.createTaskArray];\r\n createTaskArray[itemIndex] = {\r\n ...createTaskArray[itemIndex],\r\n [name]: value,\r\n };\r\n this.setState({\r\n createTaskArray: createTaskArray,\r\n });\r\n window.db.updateAutoCreateJob(createTaskArray[itemIndex], () => {});\r\n };\r\n\r\n onDeleteClick = (itemIndex) => {\r\n window.db.deleteAutoCreateJob(\r\n this.state.createTaskArray[itemIndex].Id,\r\n () => {}\r\n );\r\n this.setState({\r\n createTaskArray: this.state.createTaskArray.filter(\r\n (o, i) => i != itemIndex\r\n ),\r\n });\r\n };\r\n\r\n render() {\r\n const {\r\n userTimeZone,\r\n timeZoneArray,\r\n weekDays,\r\n horseTypes,\r\n riderArray,\r\n trainingTypes,\r\n addData,\r\n createTaskArray,\r\n } = this.state;\r\n\r\n return (\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {createTaskArray.map((item, itemIndex) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Time to make jobsTime to insert jobsTime of dayHorse typesRidersTraining typesAdd/Delete
\r\n \r\n this.onItemDataChange(\r\n \"CreateWeekDay\",\r\n e.target.value,\r\n itemIndex\r\n )\r\n }\r\n >\r\n {weekDays.map((day) => (\r\n \r\n ))}\r\n \r\n \r\n \r\n this.onItemDataChange(\r\n \"CreateToDay\",\r\n e.target.value,\r\n itemIndex\r\n )\r\n }\r\n >\r\n {weekDays.map((day) => (\r\n \r\n ))}\r\n \r\n \r\n \r\n this.onItemDataChange(\r\n \"CreateTime\",\r\n e.target.value,\r\n itemIndex\r\n )\r\n }\r\n />\r\n \r\n \r\n this.onItemDataChange(\r\n \"HorseTypes\",\r\n e.target.value,\r\n itemIndex\r\n )\r\n }\r\n >\r\n {horseTypes.map((item) => (\r\n \r\n ))}\r\n \r\n \r\n \r\n this.onItemDataChange(\r\n \"Rider\",\r\n e.target.value,\r\n itemIndex\r\n )\r\n }\r\n >\r\n {riderArray.map((item) => (\r\n \r\n ))}\r\n \r\n \r\n \r\n this.onItemDataChange(\r\n \"TrainingTypes\",\r\n e.target.value,\r\n itemIndex\r\n )\r\n }\r\n >\r\n {trainingTypes.map((item) => (\r\n \r\n ))}\r\n \r\n \r\n this.onDeleteClick(itemIndex)}\r\n >\r\n {window.lang.deleteL}\r\n \r\n
\r\n \r\n this.onAddDataChange(\"CreateWeekDay\", e.target.value)\r\n }\r\n >\r\n {weekDays.map((day) => (\r\n \r\n ))}\r\n \r\n \r\n \r\n this.onAddDataChange(\"CreateToDay\", e.target.value)\r\n }\r\n >\r\n {weekDays.map((day) => (\r\n \r\n ))}\r\n \r\n \r\n \r\n this.onAddDataChange(\"CreateTime\", e.target.value)\r\n }\r\n />\r\n \r\n \r\n this.onAddDataChange(\"HorseTypes\", e.target.value)\r\n }\r\n >\r\n {horseTypes.map((item) => (\r\n \r\n ))}\r\n \r\n \r\n \r\n this.onAddDataChange(\"Rider\", e.target.value)\r\n }\r\n >\r\n {riderArray.map((item) => (\r\n \r\n ))}\r\n \r\n \r\n \r\n this.onAddDataChange(\"TrainingTypes\", e.target.value)\r\n }\r\n >\r\n {trainingTypes.map((item) => (\r\n \r\n ))}\r\n \r\n \r\n \r\n {window.lang.add}\r\n \r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default class AutoCreateTaskPage {\r\n show() {\r\n window.showPage(\"#autoCreateTaskPage\");\r\n ReactDOM.render(\r\n ,\r\n document.getElementById(\"autoCreateTaskReact\")\r\n );\r\n }\r\n}\r\n","import React, { Component } from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport PriceReport from \"./PriceReport\";\r\n\r\nclass LogPriceReportPage extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n logData: [],\r\n };\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n if (this.props != prevProps) {\r\n this.loadData();\r\n }\r\n }\r\n\r\n componentDidMount = () => {\r\n this.loadData();\r\n };\r\n\r\n loadData = () => {\r\n window.db.getLogPriceReportByUser(window.myid, (data) => {\r\n if (data.length) {\r\n let logData = [];\r\n for (let i in data) {\r\n let d = new Date();\r\n d.setTime(Date.parse(data[i][\"DateTime\"]));\r\n logData.push({\r\n Date: d.toLocaleString(),\r\n Email: data[i][\"Email\"],\r\n LogData: data[i][\"LogData\"],\r\n });\r\n }\r\n this.setState({\r\n logData: logData,\r\n });\r\n }\r\n });\r\n };\r\n\r\n onOkClick = () => {\r\n window.showPage(\"#showPriceReportPage\");\r\n let logPrice = new PriceReport();\r\n logPrice.showPriceReport();\r\n };\r\n\r\n render() {\r\n const { logData } = this.state;\r\n return (\r\n
\r\n
\r\n \r\n Logs\r\n \r\n
\r\n
\r\n {logData.length ? (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {logData.map((i) => (\r\n \r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n
DateTimeUserAction
{i.Date}{i.Email}{i.LogData}
\r\n ) : (\r\n <>\r\n )}\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default class LogPriceReport {\r\n showLogPriceReport() {\r\n ReactDOM.render(\r\n ,\r\n document.getElementById(\"logPriceReportPageReact\")\r\n );\r\n }\r\n}\r\n","import React, { Component } from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport ToggleView from \"../../Controls/ToggleView/ToggleView\";\r\nimport LogPriceReport from \"./LogPriceReport\";\r\nimport \"./PriceReport.css\";\r\n\r\nclass PriceReportPage extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n horseTypes: [],\r\n horsePriceReportData: [],\r\n addData: {\r\n Id: \"\",\r\n UserId: window.myid,\r\n HorseTypeId: 1,\r\n Price: \"\",\r\n },\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n this.loadData();\r\n }\r\n\r\n loadData = () => {\r\n window.db.getHorseTypePricesData(window.myid, (data) => {\r\n window.db.getHorseTypes(window.myid, (types) => {\r\n let typesMap = types.map((t) => ({ value: t.ID, label: t.Name }));\r\n let hTypes = [];\r\n typesMap.filter((item) => {\r\n let curr = hTypes.find((i) => i.label === item.label);\r\n if (!curr) {\r\n hTypes.push(item);\r\n return true;\r\n } else {\r\n curr.value += \",\" + item.value;\r\n return false;\r\n }\r\n });\r\n let horseTypes = [\r\n { value: 1, label: window.lang.showAllHorseTypes },\r\n ...hTypes,\r\n ];\r\n\r\n this.setState({\r\n horseTypes: horseTypes,\r\n horsePriceReportData: data,\r\n });\r\n });\r\n });\r\n };\r\n\r\n onItemDataChange = (name, value, id, updateServer) => {\r\n let horsePriceReportData = this.state.horsePriceReportData;\r\n let item = horsePriceReportData.find((i) => i.Id == id);\r\n item[name] = value;\r\n item.updateRequired = true;\r\n if (updateServer) {\r\n window.DataGate.updateHorseTypePriceData(item, () => {\r\n this.setState({\r\n horsePriceReportData: horsePriceReportData,\r\n });\r\n });\r\n } else {\r\n this.setState({\r\n horsePriceReportData: horsePriceReportData,\r\n });\r\n }\r\n };\r\n\r\n updateItemOnServer = (id) => {\r\n const item = this.state.horsePriceReportData.find((i) => i.Id == id);\r\n if (item.updateRequired) {\r\n window.DataGate.updateHorseTypePriceData(item, () => {\r\n item.updateRequired = false;\r\n this.setState({\r\n horsePriceReportData: this.state.horsePriceReportData,\r\n });\r\n });\r\n }\r\n };\r\n\r\n onDeleteClick = (itemIndex) => {\r\n window.DataGate.deleteHorseTypePriceData(\r\n this.state.horsePriceReportData[itemIndex],\r\n () => {\r\n this.loadData();\r\n }\r\n );\r\n };\r\n\r\n onAddDataHorseTypeChange = (e) => {\r\n this.setState({\r\n addData: {\r\n ...this.state.addData,\r\n HorseTypeId: e.target.value,\r\n },\r\n });\r\n };\r\n\r\n onAddDataPriceChange = (e) => {\r\n this.setState({\r\n addData: {\r\n ...this.state.addData,\r\n Price: e.target.value,\r\n },\r\n });\r\n };\r\n\r\n onAddClick = () => {\r\n if (\r\n this.state.horsePriceReportData.some(\r\n (i) => i.HorseTypeId == this.state.addData.HorseTypeId\r\n )\r\n ) {\r\n window.$(\"#itemExist\").text(\"Selected Horse Type already exist\");\r\n } else {\r\n window.$(\"#itemExist\").text(\"\");\r\n window.Spinner.show();\r\n window.DataGate.insertHorseTypePriceData(this.state.addData, () => {\r\n window.Spinner.hide();\r\n this.loadData();\r\n this.setState({\r\n addData: {\r\n Id: \"\",\r\n UserId: window.myid,\r\n HorseTypeId: 1,\r\n Price: \"\",\r\n },\r\n });\r\n });\r\n }\r\n };\r\n\r\n onLogButtonClick = () => {\r\n window.showPage(\"#logPriceReportPage\");\r\n let logPriceReport = new LogPriceReport();\r\n logPriceReport.showLogPriceReport();\r\n };\r\n\r\n onBackClick = () => {\r\n window.showPage(\"#settingsPage\");\r\n window.$(\"#settingsPage\").css(\"min-height\", \"95%\");\r\n };\r\n\r\n render() {\r\n const { horsePriceReportData, horseTypes, addData } = this.state;\r\n return (\r\n
\r\n
\r\n \r\n Price Report\r\n \r\n
\r\n
\r\n {/*\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n Use price report\r\n \r\n { }} />\r\n
*/}\r\n \r\n {\" \"}\r\n Log\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {horsePriceReportData.length ? (\r\n horsePriceReportData.map((i, itemIndex) => (\r\n \r\n \r\n \r\n \r\n \r\n ))\r\n ) : (\r\n <>\r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Horse TypePrice each monthsAdd/Delete
\r\n {\r\n this.onItemDataChange(\r\n \"HorseTypeId\",\r\n e.target.value,\r\n i.Id,\r\n true\r\n );\r\n }}\r\n >\r\n {horseTypes.length ? (\r\n horseTypes.map((j) => (\r\n \r\n ))\r\n ) : (\r\n <>\r\n )}\r\n \r\n \r\n {\r\n this.onItemDataChange(\r\n \"Price\",\r\n e.target.value,\r\n i.Id,\r\n false\r\n );\r\n }}\r\n onBlur={() => {\r\n this.updateItemOnServer(i.Id);\r\n }}\r\n />\r\n \r\n this.onDeleteClick(itemIndex)}\r\n >\r\n {window.lang.deleteL}\r\n \r\n
\r\n \r\n
\r\n \r\n {horseTypes.length ? (\r\n horseTypes.map((j) => (\r\n \r\n ))\r\n ) : (\r\n <>\r\n )}\r\n \r\n \r\n \r\n \r\n \r\n {window.lang.add}\r\n \r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default class PriceReport {\r\n showPriceReport() {\r\n ReactDOM.render(\r\n ,\r\n document.getElementById(\"showPriceReportReact\")\r\n );\r\n }\r\n}\r\n","import React, { Component } from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport \"./DewormingTypes.css\";\r\n\r\nclass DewormingTypesPage extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n dewormingTypes: [],\r\n newType: \"\",\r\n };\r\n }\r\n\r\n componentDidMount = () => {\r\n this.loadData();\r\n };\r\n\r\n loadData = () => {\r\n window.db.getUserDewormingType(window.myid, (data) => {\r\n this.setState({\r\n dewormingTypes: data,\r\n });\r\n });\r\n };\r\n\r\n onBackClick = () => {\r\n window.showPage(\"#settingsPage\");\r\n window.$(\"#settingsPage\").css(\"min-height\", \"95%\");\r\n };\r\n\r\n deleteDewormingType = (id) => {\r\n window.Spinner.show();\r\n window.db.deleteUserDewormingType(id, () => {\r\n this.loadData();\r\n window.Spinner.hide();\r\n });\r\n };\r\n\r\n onNewTypeInputChange = (e) => {\r\n this.setState({\r\n newType: e.target.value,\r\n });\r\n };\r\n\r\n onAddNewTypeClick = () => {\r\n if (this.state.newType == \"\") {\r\n window\r\n .$(\"#emptyDewormingTypeName\")\r\n .text(\"Deworming type title is required\");\r\n } else {\r\n window.Spinner.show();\r\n window.db.createUserDewormingType(\r\n Math.uuid(),\r\n window.myid,\r\n this.state.newType,\r\n () => {\r\n this.state.newType = \"\";\r\n this.loadData();\r\n window.Spinner.hide();\r\n }\r\n );\r\n }\r\n };\r\n\r\n render() {\r\n const { dewormingTypes, newType } = this.state;\r\n return (\r\n
\r\n
\r\n \r\n Deworming types\r\n \r\n
\r\n
\r\n {\r\n \r\n \r\n \r\n \r\n \r\n \r\n {dewormingTypes.map((item, itemIndex) => (\r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n
NameDelete
{item.Name}\r\n {\r\n this.deleteDewormingType(item.Id);\r\n }}\r\n >\r\n Delete\r\n \r\n
\r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n Add Type\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default class DewormingTypes {\r\n showDewormingTypes() {\r\n ReactDOM.render(\r\n ,\r\n document.getElementById(\"showDewormingTypestReact\")\r\n );\r\n }\r\n}\r\n","import React, { Component } from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport ToggleView from \"../Controls/ToggleView/ToggleView\";\r\n\r\nimport \"./Report.css\";\r\n\r\nclass ReportSettingsPage extends Component {\r\n static AllReportsArr = [\r\n { value: 1, label: window.lang.vetReport },\r\n { value: 2, label: window.lang.farReport },\r\n { value: 3, label: window.lang.allHorsesAndTasksToday },\r\n { value: 4, label: window.lang.horse45days },\r\n { value: 5, label: window.lang.taskHorsesWithRemarks },\r\n { value: 6, label: window.lang.allHorsesByType },\r\n { value: 7, label: window.lang.stabletime },\r\n { value: 8, label: window.lang.allHorsesWithPrice },\r\n { value: 9, label: window.lang.allHorsesTodayWithNotes },\r\n { value: 10, label: window.lang.horse45daysRemarks },\r\n { value: 11, label: window.lang.allHorses45days },\r\n { value: 12, label: \"Horses with id and notats\" },\r\n { value: 13, label: window.lang.allVacinations },\r\n { value: 14, label: \"Horses with sales info\" },\r\n { value: 15, label: window.lang.ownerHorseType },\r\n { value: 16, label: window.lang.ownerHorse },\r\n { value: 17, label: window.lang.horseFollowsRider },\r\n { value: 18, label: window.lang.horseAge },\r\n { value: 19, label: window.lang.salesNotesHorse },\r\n { value: 20, label: window.lang.salesNotesHorseType },\r\n { value: 21, label: window.lang.trainingHistory },\r\n { value: 22, label: window.lang.vaccinationHorse },\r\n { value: 23, label: window.lang.vaccinationHorseType },\r\n { value: 24, label: window.lang.farrierHorse },\r\n { value: 25, label: window.lang.farrierHorseType },\r\n { value: 26, label: window.lang.vetHorse },\r\n { value: 27, label: window.lang.vetHorseType },\r\n { value: 28, label: window.lang.priceReport },\r\n { value: 29, label: \"All horses all data\" },\r\n { value: 30, label: \"This horse with remarks and workouts\" },\r\n { value: 31, label: \"Stable History Report\" },\r\n ];\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n const settingsReportStr = window.GlobalData.getItem(\r\n window.GlobalData.SETTINGS_REPPORT\r\n );\r\n let settingsReport = [];\r\n if (settingsReportStr) {\r\n settingsReport = JSON.parse(settingsReportStr);\r\n }\r\n\r\n let needToSave = false;\r\n for (let i = 0; i < ReportSettingsPage.AllReportsArr.length; i++) {\r\n const cr = ReportSettingsPage.AllReportsArr[i];\r\n if (!settingsReport.find((r) => r.value == cr.value)) {\r\n needToSave = true;\r\n let orderIndex =\r\n settingsReport.length > 0\r\n ? Math.max(...settingsReport.map((r) => r.orderIndex)) + 1\r\n : 1;\r\n settingsReport.push({ ...cr, isVisible: true, orderIndex: orderIndex });\r\n }\r\n }\r\n if (needToSave) {\r\n window.GlobalData.setItem(\r\n window.GlobalData.SETTINGS_REPPORT,\r\n JSON.stringify(settingsReport)\r\n );\r\n }\r\n\r\n settingsReport = settingsReport.sort((a, b) => a.orderIndex - b.orderIndex);\r\n\r\n this.state = {\r\n settingsReport: settingsReport,\r\n };\r\n }\r\n\r\n onIsVisibleChange = (rItemIndex) => {\r\n const settingsReport = [...this.state.settingsReport];\r\n settingsReport[rItemIndex] = {\r\n ...settingsReport[rItemIndex],\r\n isVisible: !settingsReport[rItemIndex].isVisible,\r\n };\r\n this.setState({ settingsReport });\r\n };\r\n\r\n swapOrder = (rItemIndex1, rItemIndex2) => {\r\n if (\r\n rItemIndex1 < 0 ||\r\n rItemIndex2 < 0 ||\r\n rItemIndex1 >= this.state.settingsReport.length ||\r\n rItemIndex2 >= this.state.settingsReport.length\r\n )\r\n return;\r\n\r\n let settingsReport = [...this.state.settingsReport];\r\n const orderIndex1 = settingsReport[rItemIndex1].orderIndex;\r\n const orderIndex2 = settingsReport[rItemIndex2].orderIndex;\r\n settingsReport[rItemIndex1] = {\r\n ...settingsReport[rItemIndex1],\r\n orderIndex: orderIndex2,\r\n };\r\n settingsReport[rItemIndex2] = {\r\n ...settingsReport[rItemIndex2],\r\n orderIndex: orderIndex1,\r\n };\r\n settingsReport = settingsReport.sort((a, b) => a.orderIndex - b.orderIndex);\r\n this.setState({ settingsReport });\r\n };\r\n\r\n onBackClick = () => {\r\n window.GlobalData.setItem(\r\n window.GlobalData.SETTINGS_REPPORT,\r\n JSON.stringify(this.state.settingsReport)\r\n );\r\n window.onBack();\r\n };\r\n\r\n render() {\r\n const { settingsReport } = this.state;\r\n\r\n return (\r\n
\r\n
\r\n \r\n Shown reports\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {settingsReport.map((rItem, rItemIndex) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n
{window.lang.name}VIS rapports\r\n {window.lang.order}\r\n
{rItem.label}\r\n this.onIsVisibleChange(rItemIndex)}\r\n />\r\n \r\n this.swapOrder(rItemIndex, rItemIndex - 1)}\r\n />\r\n \r\n this.swapOrder(rItemIndex, rItemIndex + 1)}\r\n />\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default class ReportSettings {\r\n show() {\r\n window.showPage(\"#showRepportPage\");\r\n ReactDOM.render(\r\n ,\r\n document.getElementById(\"showRepportPage\")\r\n );\r\n }\r\n}\r\n","import React from \"react\";\r\nimport \"./BasicButton.css\";\r\nexport default function BasicButton({ onClick, text, svgIcon }) {\r\n console.log(svgIcon);\r\n return (\r\n \r\n {svgIcon}\r\n {text}\r\n \r\n );\r\n}\r\n","import React from \"react\";\r\n\r\nexport default function PaperPlaneIcon() {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n","import React from \"react\";\r\nimport \"./Notification.css\";\r\n\r\nexport default function Notification({ text }) {\r\n return ;\r\n}\r\n","import React, { Component, useState } from \"react\";\r\nimport { useEffect } from \"react\";\r\nimport \"./SendSalesData.css\";\r\nimport ReactDOM from \"react-dom\";\r\nimport BasicButton from \"../Controls/Button/BasicButton\";\r\nimport PaperPlaneIcon from \"../Icons/PaperPlane\";\r\nimport ToggleView from \"../Controls/ToggleView/ToggleView\";\r\nimport HorseGallery from \"../Multimedia/HorseGallery\";\r\nimport MultimediaHelper from \"../Multimedia/MultimediaHelper\";\r\nimport Modal from \"../Modal/Modal\";\r\nimport Notification from \"../Notification/Notification\";\r\nimport { Directory, Filesystem } from \"@capacitor/filesystem\";\r\nimport { Share } from \"@capacitor/share\";\r\nimport { Capacitor } from \"@capacitor/core\";\r\nfunction SendSalesData({\r\n horse,\r\n display_gallery,\r\n display_notes,\r\n display_results,\r\n presentationMode,\r\n pedigreeText,\r\n}) {\r\n const getGender = (index) => {\r\n var genderText = \"\";\r\n if (index == 0) {\r\n genderText = \"\";\r\n } else if (index == 1) {\r\n genderText = window.lang.horseTypeMare;\r\n } else if (index == 2) {\r\n genderText = window.lang.horseTypeGelding;\r\n } else {\r\n genderText = window.lang.horseTypeStallion;\r\n }\r\n return genderText;\r\n };\r\n const horseLogo =\r\n horse.LogoFile != null && horse.LogoFile != \"\"\r\n ? window.DataGate.baseurl + horse.LogoFile\r\n : \"img/horselogo.png\";\r\n\r\n const [logoFile, setLogoFile] = useState(\"img/horselogo.png\");\r\n const [name, setName] = useState();\r\n useEffect(() => {\r\n if (!horse) {\r\n return;\r\n }\r\n\r\n if (horse.LogoFile != null)\r\n setLogoFile(window.DataGate.baseurl + horse.LogoFile);\r\n setName(horse.name);\r\n }, [horse]);\r\n\r\n const [sendData, setSendData] = useState(true);\r\n const [sendLink, setSendLink] = useState(true);\r\n const [shareItems, setShareItems] = useState(Array(3).fill(true));\r\n\r\n const [galleryPhotos, setGalleryPhotos] = useState([]);\r\n const [resultPhotos, setResultPhotos] = useState([]);\r\n const [notesPhotos, setNotesPhotos] = useState([]);\r\n\r\n const [showLinkModal, setShowLinkModal] = useState(false);\r\n const [presentationId, setPresentationId] = useState(\"\");\r\n\r\n const [showNotification, setShowNotification] = useState(false);\r\n\r\n const helper = new MultimediaHelper();\r\n\r\n const createPresentationLink = () => {\r\n window.DataGate.insertHorsePresentation(\r\n {\r\n user_id: \"\",\r\n horse_id: horse.id,\r\n display_gallery: shareItems[0],\r\n display_results: shareItems[1],\r\n display_notes: shareItems[2],\r\n },\r\n (code, data) => {\r\n if (code != 1) {\r\n alert(\"Something went wrong\");\r\n return;\r\n }\r\n if (Capacitor.getPlatform() === \"web\") {\r\n setPresentationId(data);\r\n setShowLinkModal(true);\r\n window.Spinner.hide();\r\n } else {\r\n const shareData = {\r\n title: `Sales data for ${horse.name}`,\r\n text: \"\",\r\n url: getFullLink(data),\r\n };\r\n if (!navigator.canShare(shareData)) {\r\n window.Spinner.hide();\r\n alert(\"Can't share data.\");\r\n return;\r\n }\r\n navigator\r\n .share(shareData)\r\n .then(() => {\r\n window.Spinner.hide();\r\n })\r\n .catch(() => {\r\n window.Spinner.hide();\r\n });\r\n }\r\n }\r\n );\r\n };\r\n\r\n const sendSalesData = async () => {\r\n window.Spinner.show();\r\n\r\n let images_to_share = [];\r\n\r\n if (shareItems[0]) images_to_share.push(...galleryPhotos);\r\n if (shareItems[1]) images_to_share.push(...resultPhotos);\r\n if (shareItems[2]) images_to_share.push(...notesPhotos);\r\n\r\n if (sendData) {\r\n if (images_to_share.length <= 30) {\r\n if (Capacitor.getPlatform() === \"web\") {\r\n createPresentationLink();\r\n return;\r\n }\r\n\r\n if (images_to_share.length == 0) return;\r\n if (sendLink) {\r\n window.DataGate.insertHorsePresentation(\r\n {\r\n user_id: \"\",\r\n horse_id: horse.id,\r\n display_gallery: shareItems[0],\r\n display_results: shareItems[1],\r\n display_notes: shareItems[2],\r\n },\r\n (code, data) => {\r\n if (code != 1) {\r\n alert(\"Something went wrong\");\r\n window.Sprinner.hide();\r\n return;\r\n }\r\n helper\r\n .shareItems(images_to_share, getFullLink(data))\r\n .then(() => {\r\n window.Spinner.hide();\r\n })\r\n .catch(() => {\r\n window.Spinner.hide();\r\n });\r\n }\r\n );\r\n } else {\r\n helper\r\n .shareItems(images_to_share)\r\n .then(() => {\r\n window.Spinner.hide();\r\n })\r\n .catch(() => {\r\n window.Spinner.hide();\r\n });\r\n }\r\n\r\n return;\r\n } else {\r\n if (sendLink) createPresentationLink();\r\n }\r\n return;\r\n }\r\n\r\n if (sendLink) {\r\n createPresentationLink();\r\n }\r\n };\r\n\r\n const clickToggle = (index) => {\r\n let aux_state = [...shareItems];\r\n aux_state[index] = !aux_state[index];\r\n setShareItems(aux_state);\r\n };\r\n\r\n const drawCustomHeader = (title, index) => {\r\n if (presentationMode) {\r\n return (\r\n
\r\n
{title}
\r\n
\r\n );\r\n }\r\n\r\n return (\r\n
\r\n
{title}
\r\n clickToggle(index)}\r\n />\r\n
\r\n );\r\n };\r\n\r\n const getFullLink = (presId) => {\r\n const currentPresentationId = presId || presentationId;\r\n // const url = \"http://localhost:3000\";\r\n const url = \"https://eqeapp.com/eqapp/index.aspx\";\r\n // const url = \"https://eqapp-test.azurewebsites.net/eqapp/index.aspx\";\r\n return url + \"#publicPresentationDataWindow?id=\" + currentPresentationId;\r\n };\r\n\r\n const renderLinkModalBody = () => {\r\n return (\r\n <>\r\n {getFullLink()}\r\n {\r\n setShowNotification(true);\r\n setTimeout(() => {\r\n setShowNotification(false);\r\n }, 5500);\r\n navigator.clipboard.writeText(getFullLink());\r\n }}\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n strokeWidth=\"1.5\"\r\n stroke=\"currentColor\"\r\n style={{ width: 20, paddingTop: 5 }}\r\n >\r\n \r\n \r\n \r\n );\r\n };\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n \r\n\r\n
\r\n {horse.name}\r\n\r\n {pedigreeText && pedigreeText.trim().length > 1 && (\r\n \r\n {pedigreeText}\r\n \r\n )}\r\n \r\n {getGender(horse.Gender)}\r\n \r\n\r\n \r\n {horse.BirthYear}\r\n \r\n
\r\n
\r\n
\r\n {!presentationMode && (\r\n
\r\n }\r\n onClick={sendSalesData}\r\n />\r\n
\r\n setSendData(!sendData)}\r\n />\r\n Send data if possible\r\n
\r\n
\r\n setSendLink(!sendLink)}\r\n />\r\n Send link to presentation\r\n
\r\n
\r\n )}\r\n
\r\n
\r\n {(!presentationMode || display_gallery) && (\r\n \r\n )}\r\n {(!presentationMode || display_results) && (\r\n \r\n )}\r\n {(!presentationMode || display_notes) && (\r\n \r\n )}\r\n
\r\n
\r\n {showLinkModal && (\r\n setShowLinkModal(false)}\r\n button1_callback={() => {\r\n const shareData = {\r\n title: `Sales data for ${horse.name}`,\r\n text: \"\",\r\n url: getFullLink(),\r\n };\r\n if (!navigator.canShare(shareData)) {\r\n alert(\"Can't share data.\");\r\n return;\r\n }\r\n navigator.share(shareData);\r\n }}\r\n />\r\n )}\r\n {showNotification && }\r\n
\r\n );\r\n}\r\n\r\nexport default class SendSalesDataHolder {\r\n createSendSalesData(horse) {\r\n window.db.getPedigreeByHorse(horse.id, (pedigreeArr) => {\r\n let pedigreeText = \"\";\r\n if (pedigreeArr.length != 0) {\r\n const pedigreeData = JSON.parse(pedigreeArr[0][\"PedigreeJsonText\"]);\r\n try {\r\n pedigreeText =\r\n pedigreeData.mather + \" / \" + pedigreeData.grmather_father;\r\n } catch (err) {}\r\n }\r\n ReactDOM.render(\r\n ,\r\n document.getElementById(\"sendSalesDataPageReact\")\r\n );\r\n });\r\n\r\n ReactDOM.render(\r\n ,\r\n document.getElementById(\"sendSalesDataPageReact\")\r\n );\r\n }\r\n}\r\n\r\nfunction NoHorseFoundView() {\r\n return (\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n We couldn’t find what you are looking for\r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport class PublicHorsePresentationHolder {\r\n getParameterByName(name, url = window.location.href) {\r\n name = name.replace(/[\\[\\]]/g, \"\\\\$&\");\r\n var regex = new RegExp(\"[?&]\" + name + \"(=([^&#]*)|&|#|$)\"),\r\n results = regex.exec(url);\r\n if (!results) return null;\r\n if (!results[2]) return \"\";\r\n return decodeURIComponent(results[2].replace(/\\+/g, \" \"));\r\n }\r\n\r\n async createPublicPresentationData() {\r\n const link_id = this.getParameterByName(\"id\");\r\n\r\n const data = await fetch(\r\n window.DataGate.horsePresentationUrl +\r\n \"/GetHorsePresentation?link_id=\" +\r\n link_id\r\n ).then((r) => r.json());\r\n\r\n if (!data.DataObject.id) {\r\n ReactDOM.render(\r\n ,\r\n document.getElementById(\"publicPresentationPageReact\")\r\n );\r\n return;\r\n }\r\n let horse = data.DataObject.horse_item;\r\n horse.name = horse.Name;\r\n horse.userid = data.DataObject.user_id;\r\n horse.id = horse.Id;\r\n horse.LogoFile = data.DataObject.logo_file;\r\n\r\n let pedigreeText = \"\";\r\n if (data.DataObject.pedigree_json) {\r\n let pedigreeData = JSON.parse(data.DataObject.pedigree_json);\r\n try {\r\n pedigreeText =\r\n pedigreeData.mather + \" / \" + pedigreeData.grmather_father;\r\n } catch (err) {}\r\n }\r\n ReactDOM.render(\r\n ,\r\n document.getElementById(\"publicPresentationPageReact\")\r\n );\r\n }\r\n}\r\n","import React, { useState, use, useEffect } from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport \"./FieldManager.css\";\r\nimport Modal from \"../Modal/Modal\";\r\nfunction FieldManager() {\r\n /**\r\n * Type definitions:\r\n *\r\n * type Field {\r\n * id: String,\r\n * name: String,\r\n * maxNumberHorses: Integer\r\n * }\r\n *\r\n *\r\n * type TimePeriods {\r\n * id: String,\r\n period: String\r\n * }\r\n *\r\n *\r\n * type FieldArea {\r\n * id: String,\r\n * name: String,\r\n * fields: Field[],\r\n * timePeriods: TimePeriods[],\r\n * }\r\n */\r\n\r\n // {\r\n // id: \"1\",\r\n // name: \"Hingste fold\",\r\n // fields: [\r\n // {\r\n // id: \"1\",\r\n // name: \"H1\",\r\n // },\r\n // {\r\n // id: \"2\",\r\n // name: \"H2\",\r\n // },\r\n // {\r\n // id: \"3\",\r\n // name: \"H3\",\r\n // },\r\n // ],\r\n // time_periods: [\r\n // {\r\n // id: \"1\",\r\n // period: \"10-12\",\r\n // },\r\n // {\r\n // id: \"2\",\r\n // period: \"12-14\",\r\n // },\r\n // ],\r\n // },\r\n // ];\r\n const [fieldAreas, setFieldAreas] = useState([]);\r\n\r\n // MODALS\r\n const [showCreateFieldAreaModal, setShowCreateFieldAreaModal] =\r\n useState(false);\r\n\r\n const [showCreateFieldModal, setShowCreateFieldModal] = useState(false);\r\n\r\n const [showEditFieldModal, setShowEditFieldModal] = useState(false);\r\n const [showEditTimePeriodModal, setShowEditTimePeriodModal] = useState(false);\r\n\r\n const [showCreateTimeModal, setShowCreateTimeModal] = useState(false);\r\n\r\n const [showDeleteFieldModal, setShowDeleteFieldModal] = useState(false);\r\n const [showDeleteFieldAreaModal, setShowDeleteFieldAreaModal] =\r\n useState(false);\r\n\r\n const [showDeleteTimePeriodModal, setShowDeleteTimePeriodModal] =\r\n useState(false);\r\n\r\n // #SECTION Data creation\r\n const [currentWorkingFieldAreaId, setCurrentWorkingFieldAreaId] =\r\n useState(\"\");\r\n\r\n const [currentWorkingFieldId, setCurrentWorkingFieldId] = useState(\"\");\r\n const [currentWorkingTimePeriodId, setCurrentWorkingTimePeriodId] =\r\n useState(\"\");\r\n\r\n const [newFieldAreaName, setNewFieldAreaName] = useState(\"\");\r\n const [newFieldName, setNewFieldName] = useState(\"\");\r\n const [newFieldNumberOfHorses, setNewFieldNumberOfHorses] = useState(1);\r\n const [newTimePeriod, setNewTimePeriod] = useState(\"\");\r\n const [enforceAllFields, setEnforceAllFields] = useState(\r\n window.DataStorage.getUserSetting(1) == 1\r\n );\r\n\r\n const [isLoading, setIsLoading] = useState(false);\r\n // reset the value of the fields inside the model\r\n useEffect(() => {\r\n setNewFieldAreaName(\"\");\r\n setNewFieldName(\"\");\r\n setNewTimePeriod(\"\");\r\n setNewFieldNumberOfHorses(1);\r\n }, [showCreateFieldAreaModal, showCreateFieldModal, showCreateTimeModal]);\r\n\r\n const fetchData = () => {\r\n window.DataGate.getFieldAreas((code, data) => {\r\n if (data) setFieldAreas(data);\r\n });\r\n };\r\n useEffect(() => {\r\n fetchData();\r\n }, []);\r\n\r\n const move_field = (fields, index, field_area_index, higher) => {\r\n if (higher && index == 0) return;\r\n\r\n if (!higher && index == fields.length - 1) return;\r\n\r\n let secondIndex = higher ? index - 1 : index + 1;\r\n let firstFieldId = fields[index].id;\r\n let secondFieldId = fields[secondIndex].id;\r\n\r\n window.DataGate.moveField(\r\n {\r\n firstFieldId,\r\n secondFieldId,\r\n },\r\n (status, data) => {}\r\n );\r\n let aux = [...fields];\r\n\r\n let x = aux[index];\r\n aux[index] = fields[secondIndex];\r\n aux[secondIndex] = x;\r\n\r\n let aux2 = [...fieldAreas];\r\n aux2[field_area_index].fields = aux;\r\n setFieldAreas(aux2);\r\n };\r\n // #ENDSECTION\r\n const generateFieldAreaFieldTables = (field_area, field_area_index) => {\r\n if (field_area.fields.length == 0 && !field_area.is_editable) return;\r\n const firstColumnColSpan = field_area.is_editable ? 1 : 2;\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {field_area.is_editable && }\r\n \r\n \r\n \r\n {field_area.fields.map((field, fieldIndex) => (\r\n \r\n \r\n
\r\n \r\n move_field(\r\n field_area.fields,\r\n fieldIndex,\r\n field_area_index,\r\n true\r\n )\r\n }\r\n >\r\n \r\n \r\n \r\n
\r\n\r\n \r\n move_field(\r\n field_area.fields,\r\n fieldIndex,\r\n field_area_index,\r\n false\r\n )\r\n }\r\n >\r\n \r\n \r\n \r\n \r\n {field.name}\r\n \r\n \r\n
\r\n {field_area.is_editable && (\r\n \r\n )}\r\n {field_area.is_editable && (\r\n \r\n )}\r\n \r\n ))}\r\n\r\n {field_area.is_editable && (\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n
\r\n {window.lang.fieldName}\r\n \r\n {window.lang.numberOfHorses}\r\n
\r\n {field.maxNumberHorses}\r\n \r\n {\r\n setCurrentWorkingFieldAreaId(field_area.id);\r\n setCurrentWorkingFieldId(field.id);\r\n setShowDeleteFieldModal(true);\r\n }}\r\n >\r\n \r\n \r\n \r\n {\r\n setCurrentWorkingFieldAreaId(field_area.id);\r\n setCurrentWorkingFieldId(field.id);\r\n setNewFieldName(field.name);\r\n setNewFieldNumberOfHorses(field.maxNumberHorses);\r\n setShowEditFieldModal(true);\r\n }}\r\n >\r\n \r\n \r\n
\r\n {\r\n setCurrentWorkingFieldAreaId(field_area.id);\r\n setShowCreateFieldModal(true);\r\n }}\r\n >\r\n Add Field\r\n \r\n
\r\n );\r\n };\r\n\r\n const generateFieldAreaTimePeriodTables = (field_area) => {\r\n if (field_area.timePeriods.length == 0 && !field_area.is_editable) return;\r\n const firstColumnColSpan = field_area.is_editable ? 1 : 2;\r\n return (\r\n \r\n \r\n \r\n \r\n {field_area.is_editable && }\r\n \r\n \r\n \r\n {field_area.timePeriods.map((time_period) => (\r\n \r\n \r\n {time_period.period}\r\n \r\n {field_area.is_editable && (\r\n \r\n )}\r\n {field_area.is_editable && (\r\n \r\n )}\r\n \r\n ))}\r\n\r\n {field_area.is_editable && (\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n
\r\n {window.lang.timePeriod}\r\n
\r\n {\r\n setCurrentWorkingFieldAreaId(field_area.id);\r\n setCurrentWorkingTimePeriodId(time_period.id);\r\n setShowDeleteTimePeriodModal(true);\r\n }}\r\n >\r\n \r\n \r\n \r\n {\r\n setCurrentWorkingFieldAreaId(field_area.id);\r\n setCurrentWorkingTimePeriodId(time_period.id);\r\n setNewTimePeriod(time_period.period);\r\n setShowEditTimePeriodModal(true);\r\n }}\r\n >\r\n \r\n \r\n
\r\n {\r\n setCurrentWorkingFieldAreaId(field_area.id);\r\n setShowCreateTimeModal(true);\r\n }}\r\n >\r\n Add Time Period\r\n \r\n
\r\n );\r\n };\r\n\r\n const renderCreateFieldDefaulModalBody = (ev_dispatcher, ev_value) => {\r\n return (\r\n <>\r\n ev_dispatcher(e.currentTarget.value)}\r\n placeholder={window.lang.name}\r\n className=\"field-manager--modal-text-input\"\r\n />\r\n \r\n );\r\n };\r\n\r\n const renderCreateFieldModalBody = (\r\n ev_dispatcher,\r\n ev_value,\r\n second_ev_dispatcher,\r\n second_ev_value\r\n ) => {\r\n return (\r\n
\r\n {window.lang.name}\r\n ev_dispatcher(e.currentTarget.value)}\r\n placeholder={window.lang.name}\r\n className=\"field-manager--modal-text-input\"\r\n />\r\n\r\n {window.lang.numberOfHorses}\r\n second_ev_dispatcher(e.currentTarget.value)}\r\n placeholder={window.lang.numberOfHorses}\r\n className=\"field-manager--modal-text-input\"\r\n />\r\n
\r\n );\r\n };\r\n\r\n const renderDeleteModalBody = () => {\r\n return {window.lang.wantDelete};\r\n };\r\n\r\n const createFieldArea = () => {\r\n if (newFieldAreaName == \"\") {\r\n alert(\"Please select a valid name for the field area\");\r\n return;\r\n }\r\n\r\n window.Spinner.show();\r\n // create an area\r\n window.DataGate.addFieldArea(\r\n {\r\n name: newFieldAreaName,\r\n },\r\n (code, data) => {\r\n setFieldAreas(data);\r\n window.Spinner.hide();\r\n }\r\n );\r\n\r\n setShowCreateFieldAreaModal(false);\r\n };\r\n const createField = () => {\r\n if (newFieldName == \"\") {\r\n alert(\"Please select a valid name for the field\");\r\n return;\r\n }\r\n\r\n window.Spinner.show();\r\n // create an area\r\n window.DataGate.addField(\r\n {\r\n name: newFieldName,\r\n numberOfHorses: newFieldNumberOfHorses,\r\n fieldAreaId: currentWorkingFieldAreaId,\r\n },\r\n (code, data) => {\r\n setFieldAreas(data);\r\n window.Spinner.hide();\r\n }\r\n );\r\n\r\n setShowCreateFieldModal(false);\r\n };\r\n const editField = () => {\r\n if (newFieldName == \"\") {\r\n alert(\"Please select a valid name for the field\");\r\n return;\r\n }\r\n\r\n window.Spinner.show();\r\n // create an area\r\n window.DataGate.editField(\r\n {\r\n name: newFieldName,\r\n numberOfHorses: newFieldNumberOfHorses,\r\n fieldId: currentWorkingFieldId,\r\n },\r\n (code, data) => {\r\n setFieldAreas(data);\r\n window.Spinner.hide();\r\n }\r\n );\r\n\r\n setShowEditFieldModal(false);\r\n };\r\n\r\n const createTimePeriod = () => {\r\n if (newTimePeriod == \"\") {\r\n alert(\"Please select a valid time period text\");\r\n return;\r\n }\r\n\r\n window.Spinner.show();\r\n // create an area\r\n window.DataGate.addFieldTimePeriod(\r\n {\r\n period: newTimePeriod,\r\n fieldAreaId: currentWorkingFieldAreaId,\r\n },\r\n (code, data) => {\r\n setFieldAreas(data);\r\n window.Spinner.hide();\r\n }\r\n );\r\n\r\n setShowCreateTimeModal(false);\r\n };\r\n\r\n const editFieldTimePeriod = () => {\r\n if (newTimePeriod == \"\") {\r\n alert(\"Please select a valid time period text\");\r\n return;\r\n }\r\n\r\n window.Spinner.show();\r\n // create an area\r\n window.DataGate.editFieldTimePeriod(\r\n {\r\n period: newTimePeriod,\r\n timePeriodId: currentWorkingTimePeriodId,\r\n },\r\n (code, data) => {\r\n setFieldAreas(data);\r\n window.Spinner.hide();\r\n }\r\n );\r\n\r\n setShowEditTimePeriodModal(false);\r\n };\r\n\r\n const deleteFieldAreaItem = () => {\r\n window.Spinner.show();\r\n\r\n // delete field\r\n\r\n if (showDeleteFieldModal) {\r\n window.DataGate.deleteFieldFromAreaField(\r\n {\r\n id: currentWorkingFieldId,\r\n },\r\n (code, data) => {\r\n setFieldAreas(data);\r\n window.Spinner.hide();\r\n }\r\n );\r\n setShowDeleteFieldModal(false);\r\n return;\r\n }\r\n\r\n // delete time period\r\n if (showDeleteTimePeriodModal) {\r\n window.DataGate.deleteTimePeriodFromAreaField(\r\n {\r\n id: currentWorkingTimePeriodId,\r\n },\r\n (code, data) => {\r\n setFieldAreas(data);\r\n window.Spinner.hide();\r\n }\r\n );\r\n setShowDeleteTimePeriodModal(false);\r\n return;\r\n }\r\n\r\n // delete field area\r\n window.DataGate.deleteFieldArea(\r\n {\r\n id: currentWorkingFieldAreaId,\r\n },\r\n (code, data) => {\r\n setFieldAreas(data);\r\n window.Spinner.hide();\r\n }\r\n );\r\n setShowDeleteFieldAreaModal(false);\r\n };\r\n\r\n const renderDeleteTitle = () => {\r\n if (showDeleteFieldModal) return \"Delete field\";\r\n if (showDeleteTimePeriodModal) return \"Delete time period\";\r\n\r\n return \"Delete field area\";\r\n };\r\n\r\n const move_task = (index, higher) => {\r\n window.Spinner.show();\r\n\r\n if (isLoading) return;\r\n setIsLoading(true);\r\n let items = [...fieldAreas];\r\n if (index == 0 && higher) return;\r\n if (index == items.length - 1 && !higher) return;\r\n\r\n let newIndex = higher ? index - 1 : index + 1;\r\n let aux = items[index];\r\n items[index] = items[newIndex];\r\n items[newIndex] = aux;\r\n const ids = items.map((task) => task.id);\r\n window.DataGate.reorderFieldAreas(ids, () => {\r\n setFieldAreas(items);\r\n setIsLoading(false);\r\n window.Spinner.hide();\r\n });\r\n };\r\n\r\n const changeEnforceAllFieldsSetting = (e) => {\r\n setEnforceAllFields(e.currentTarget.checked);\r\n window.DataStorage.setUserSetting(\r\n window.myid,\r\n 1,\r\n e.currentTarget.checked ? 1 : 0\r\n );\r\n };\r\n return (\r\n <>\r\n
\r\n
\r\n {fieldAreas &&\r\n fieldAreas.map((field_area, field_area_index) => (\r\n
\r\n
\r\n
move_task(field_area_index, true)}>\r\n \r\n \r\n \r\n
\r\n\r\n
move_task(field_area_index, false)}>\r\n \r\n \r\n \r\n
\r\n

\r\n {window.lang.fieldArea}:{\" \"}\r\n \r\n {field_area.name}\r\n \r\n

\r\n {\r\n setCurrentWorkingFieldAreaId(field_area.id);\r\n setShowDeleteFieldAreaModal(true);\r\n }}\r\n className=\"tcDelButton--field-area\"\r\n />\r\n\r\n {field_area_index == 0 && (\r\n
\r\n \r\n {window.lang.fieldEnforceAllFields}\r\n
\r\n )}\r\n
\r\n\r\n
\r\n {generateFieldAreaFieldTables(field_area, field_area_index)}\r\n {generateFieldAreaTimePeriodTables(field_area)}\r\n
\r\n
\r\n ))}\r\n
\r\n setShowCreateFieldAreaModal(true)}\r\n >\r\n Add Field Area\r\n \r\n
\r\n\r\n {showCreateFieldAreaModal && (\r\n setShowCreateFieldAreaModal(false)}\r\n button1_callback={createFieldArea}\r\n />\r\n )}\r\n\r\n {showEditFieldModal && (\r\n setShowEditFieldModal(false)}\r\n button1_callback={editField}\r\n />\r\n )}\r\n {showCreateFieldModal && (\r\n setShowCreateFieldModal(false)}\r\n button1_callback={createField}\r\n />\r\n )}\r\n\r\n {showCreateTimeModal && (\r\n setShowCreateTimeModal(false)}\r\n button1_callback={createTimePeriod}\r\n />\r\n )}\r\n\r\n {showEditTimePeriodModal && (\r\n setShowEditTimePeriodModal(false)}\r\n button1_callback={editFieldTimePeriod}\r\n />\r\n )}\r\n\r\n {(showDeleteFieldModal ||\r\n showDeleteTimePeriodModal ||\r\n showDeleteFieldAreaModal) && (\r\n {\r\n setShowDeleteFieldModal(false);\r\n setShowDeleteTimePeriodModal(false);\r\n setShowDeleteFieldAreaModal(false);\r\n }}\r\n button1_callback={deleteFieldAreaItem}\r\n />\r\n )}\r\n \r\n );\r\n}\r\n\r\nexport default class FieldManagerHolder {\r\n createFieldManager() {\r\n ReactDOM.render(\r\n ,\r\n document.getElementById(\"fieldManagementPageReact\")\r\n );\r\n }\r\n}\r\n","import React, { useState, use, useEffect } from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport \"./WalkerManager.css\";\r\nimport Modal from \"../Modal/Modal\";\r\nfunction WalkerManager() {\r\n const [walkerAreas, setWalkerAreas] = useState([]);\r\n\r\n // MODALS\r\n const [showCreateWalkerAreaModal, setShowCreateWalkerAreaModal] =\r\n useState(false);\r\n\r\n const [showCreateWalkerModal, setShowCreateWalkerModal] = useState(false);\r\n\r\n const [showEditWalkerModal, setShowEditWalkerModal] = useState(false);\r\n const [showEditTimePeriodModal, setShowEditTimePeriodModal] = useState(false);\r\n\r\n const [showCreateTimeModal, setShowCreateTimeModal] = useState(false);\r\n\r\n const [showDeleteWalkerModal, setShowDeleteWalkerModal] = useState(false);\r\n const [showDeleteWalkerAreaModal, setShowDeleteWalkerAreaModal] =\r\n useState(false);\r\n\r\n const [showDeleteTimePeriodModal, setShowDeleteTimePeriodModal] =\r\n useState(false);\r\n\r\n // #SECTION Data creation\r\n const [currentWorkingWalkerAreaId, setCurrentWorkingWalkerAreaId] =\r\n useState(\"\");\r\n\r\n const [currentWorkingWalkerId, setCurrentWorkingWalkerId] = useState(\"\");\r\n const [currentWorkingTimePeriodId, setCurrentWorkingTimePeriodId] =\r\n useState(\"\");\r\n\r\n const [newWalkerAreaName, setNewWalkerAreaName] = useState(\"\");\r\n const [newWalkerName, setNewWalkerName] = useState(\"\");\r\n const [newWalkerNumberOfHorses, setNewWalkerNumberOfHorses] = useState(1);\r\n const [newTimePeriod, setNewTimePeriod] = useState(\"\");\r\n const [enforceAllFields, setEnforceAllFields] = useState(\r\n window.DataStorage.getUserSetting(2) == 1\r\n );\r\n\r\n const [isLoading, setIsLoading] = useState(false);\r\n // reset the value of the fields inside the model\r\n useEffect(() => {\r\n setNewWalkerAreaName(\"\");\r\n setNewWalkerName(\"\");\r\n setNewTimePeriod(\"\");\r\n setNewWalkerNumberOfHorses(1);\r\n }, [showCreateWalkerAreaModal, showCreateWalkerModal, showCreateTimeModal]);\r\n\r\n const fetchData = () => {\r\n window.DataGate.getWalkerAreas((code, data) => {\r\n if (data) setWalkerAreas(data);\r\n });\r\n };\r\n useEffect(() => {\r\n fetchData();\r\n }, []);\r\n\r\n const move_walker = (walkers, index, walker_area_index, higher) => {\r\n if (higher && index == 0) return;\r\n\r\n if (!higher && index == walkers.length - 1) return;\r\n\r\n let secondIndex = higher ? index - 1 : index + 1;\r\n let firstFieldId = walkers[index].id;\r\n let secondFieldId = walkers[secondIndex].id;\r\n\r\n window.DataGate.moveField(\r\n {\r\n firstFieldId,\r\n secondFieldId,\r\n },\r\n (status, data) => {}\r\n );\r\n let aux = [...walkers];\r\n\r\n let x = aux[index];\r\n aux[index] = walkers[secondIndex];\r\n aux[secondIndex] = x;\r\n\r\n let aux2 = [...walkerAreas];\r\n aux2[walker_area_index].walkers = aux;\r\n setWalkerAreas(aux2);\r\n };\r\n // #ENDSECTION\r\n const generateFieldAreaFieldTables = (walker_area, walker_area_index) => {\r\n if (walker_area.walkers.length == 0 && !walker_area.is_editable) return;\r\n const firstColumnColSpan = walker_area.is_editable ? 1 : 2;\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {walker_area.is_editable && }\r\n \r\n \r\n \r\n {walker_area.walkers.map((walker, walkerIndex) => (\r\n \r\n \r\n
\r\n \r\n move_walker(\r\n walker_area.walkers,\r\n walkerIndex,\r\n walker_area_index,\r\n true\r\n )\r\n }\r\n >\r\n \r\n \r\n \r\n
\r\n\r\n \r\n move_walker(\r\n walker_area.walkers,\r\n walkerIndex,\r\n walker_area_index,\r\n false\r\n )\r\n }\r\n >\r\n \r\n \r\n \r\n \r\n {walker.name}\r\n \r\n \r\n
\r\n {walker_area.is_editable && (\r\n \r\n )}\r\n {walker_area.is_editable && (\r\n \r\n )}\r\n \r\n ))}\r\n\r\n {walker_area.is_editable && (\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n
\r\n {window.lang.walker}\r\n \r\n {window.lang.numberOfHorses}\r\n
\r\n {walker.maxNumberHorses}\r\n \r\n {\r\n setCurrentWorkingWalkerAreaId(walker_area.id);\r\n setCurrentWorkingWalkerId(walker.id);\r\n setShowDeleteWalkerModal(true);\r\n }}\r\n >\r\n \r\n \r\n \r\n {\r\n setCurrentWorkingWalkerAreaId(walker_area.id);\r\n setCurrentWorkingWalkerId(walker.id);\r\n setNewWalkerName(walker.name);\r\n setNewWalkerNumberOfHorses(walker.maxNumberHorses);\r\n setShowEditWalkerModal(true);\r\n }}\r\n >\r\n \r\n \r\n
\r\n {\r\n setCurrentWorkingWalkerAreaId(walker_area.id);\r\n setShowCreateWalkerModal(true);\r\n }}\r\n >\r\n Add Walker\r\n \r\n
\r\n );\r\n };\r\n\r\n const generateFieldAreaTimePeriodTables = (walker_area) => {\r\n if (walker_area.timePeriods.length == 0 && !walker_area.is_editable) return;\r\n const firstColumnColSpan = walker_area.is_editable ? 1 : 2;\r\n return (\r\n \r\n \r\n \r\n \r\n {walker_area.is_editable && }\r\n \r\n \r\n \r\n {walker_area.timePeriods.map((time_period) => (\r\n \r\n \r\n {time_period.period}\r\n \r\n {walker_area.is_editable && (\r\n \r\n )}\r\n {walker_area.is_editable && (\r\n \r\n )}\r\n \r\n ))}\r\n\r\n {walker_area.is_editable && (\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n
\r\n {window.lang.timePeriod}\r\n
\r\n {\r\n setCurrentWorkingWalkerAreaId(walker_area.id);\r\n setCurrentWorkingTimePeriodId(time_period.id);\r\n setShowDeleteTimePeriodModal(true);\r\n }}\r\n >\r\n \r\n \r\n \r\n {\r\n setCurrentWorkingWalkerAreaId(walker_area.id);\r\n setCurrentWorkingTimePeriodId(time_period.id);\r\n setNewTimePeriod(time_period.period);\r\n setShowEditTimePeriodModal(true);\r\n }}\r\n >\r\n \r\n \r\n
\r\n {\r\n setCurrentWorkingWalkerAreaId(walker_area.id);\r\n setShowCreateTimeModal(true);\r\n }}\r\n >\r\n Add Time Period\r\n \r\n
\r\n );\r\n };\r\n\r\n const renderCreateWalkerDefaulModalBody = (ev_dispatcher, ev_value) => {\r\n return (\r\n <>\r\n ev_dispatcher(e.currentTarget.value)}\r\n placeholder={window.lang.name}\r\n className=\"field-manager--modal-text-input\"\r\n />\r\n \r\n );\r\n };\r\n\r\n const renderCreateWalkerModalBody = (\r\n ev_dispatcher,\r\n ev_value,\r\n second_ev_dispatcher,\r\n second_ev_value\r\n ) => {\r\n return (\r\n
\r\n {window.lang.name}\r\n ev_dispatcher(e.currentTarget.value)}\r\n placeholder={window.lang.name}\r\n className=\"field-manager--modal-text-input\"\r\n />\r\n\r\n {window.lang.numberOfHorses}\r\n second_ev_dispatcher(e.currentTarget.value)}\r\n placeholder={window.lang.numberOfHorses}\r\n className=\"field-manager--modal-text-input\"\r\n />\r\n
\r\n );\r\n };\r\n\r\n const renderDeleteModalBody = () => {\r\n return {window.lang.wantDelete};\r\n };\r\n\r\n const createWalkerArea = () => {\r\n if (newWalkerAreaName == \"\") {\r\n alert(\"Please select a valid name for the walker area\");\r\n return;\r\n }\r\n\r\n window.Spinner.show();\r\n // create an area\r\n window.DataGate.addWalkerArea(\r\n {\r\n name: newWalkerAreaName,\r\n },\r\n (code, data) => {\r\n setWalkerAreas(data);\r\n window.Spinner.hide();\r\n }\r\n );\r\n\r\n setShowCreateWalkerAreaModal(false);\r\n };\r\n const createWalker = () => {\r\n if (newWalkerName == \"\") {\r\n alert(\"Please select a valid name for the walker\");\r\n return;\r\n }\r\n\r\n window.Spinner.show();\r\n // create an area\r\n window.DataGate.addWalker(\r\n {\r\n name: newWalkerName,\r\n numberOfHorses: newWalkerNumberOfHorses,\r\n walkerAreaId: currentWorkingWalkerAreaId,\r\n },\r\n (code, data) => {\r\n setWalkerAreas(data);\r\n window.Spinner.hide();\r\n }\r\n );\r\n\r\n setShowCreateWalkerModal(false);\r\n };\r\n const editWalker = () => {\r\n if (newWalkerName == \"\") {\r\n alert(\"Please select a valid name for the walker\");\r\n return;\r\n }\r\n\r\n window.Spinner.show();\r\n // create an area\r\n window.DataGate.editWalker(\r\n {\r\n name: newWalkerName,\r\n numberOfHorses: newWalkerNumberOfHorses,\r\n walkerId: currentWorkingWalkerId,\r\n },\r\n (code, data) => {\r\n setWalkerAreas(data);\r\n window.Spinner.hide();\r\n }\r\n );\r\n\r\n setShowEditWalkerModal(false);\r\n };\r\n\r\n const createTimePeriod = () => {\r\n if (newTimePeriod == \"\") {\r\n alert(\"Please select a valid time period text\");\r\n return;\r\n }\r\n\r\n window.Spinner.show();\r\n // create an area\r\n window.DataGate.addWalkerTimePeriod(\r\n {\r\n period: newTimePeriod,\r\n walkerAreaId: currentWorkingWalkerAreaId,\r\n },\r\n (code, data) => {\r\n setWalkerAreas(data);\r\n window.Spinner.hide();\r\n }\r\n );\r\n\r\n setShowCreateTimeModal(false);\r\n };\r\n\r\n const editWalkerTimePeriod = () => {\r\n if (newTimePeriod == \"\") {\r\n alert(\"Please select a valid time period text\");\r\n return;\r\n }\r\n\r\n window.Spinner.show();\r\n // create an area\r\n window.DataGate.editWalkerTimePeriod(\r\n {\r\n period: newTimePeriod,\r\n timePeriodId: currentWorkingTimePeriodId,\r\n },\r\n (code, data) => {\r\n setWalkerAreas(data);\r\n window.Spinner.hide();\r\n }\r\n );\r\n\r\n setShowEditTimePeriodModal(false);\r\n };\r\n\r\n const deleteWalkerAreaItem = () => {\r\n window.Spinner.show();\r\n\r\n // delete field\r\n\r\n if (showDeleteWalkerModal) {\r\n window.DataGate.deleteWalkerFromAreaWalker(\r\n {\r\n id: currentWorkingWalkerId,\r\n },\r\n (code, data) => {\r\n setWalkerAreas(data);\r\n window.Spinner.hide();\r\n }\r\n );\r\n setShowDeleteWalkerModal(false);\r\n return;\r\n }\r\n\r\n // delete time period\r\n if (showDeleteTimePeriodModal) {\r\n window.DataGate.deleteTimePeriodFromAreaWalker(\r\n {\r\n id: currentWorkingTimePeriodId,\r\n },\r\n (code, data) => {\r\n setWalkerAreas(data);\r\n window.Spinner.hide();\r\n }\r\n );\r\n setShowDeleteTimePeriodModal(false);\r\n return;\r\n }\r\n\r\n // delete field area\r\n window.DataGate.deleteWalkerArea(\r\n {\r\n id: currentWorkingWalkerAreaId,\r\n },\r\n (code, data) => {\r\n setWalkerAreas(data);\r\n window.Spinner.hide();\r\n }\r\n );\r\n setShowDeleteWalkerAreaModal(false);\r\n };\r\n\r\n const renderDeleteTitle = () => {\r\n if (showDeleteWalkerModal) return \"Delete walker\";\r\n if (showDeleteTimePeriodModal) return \"Delete time period\";\r\n\r\n return \"Delete walker area\";\r\n };\r\n\r\n const move_task = (index, higher) => {\r\n window.Spinner.show();\r\n\r\n if (isLoading) return;\r\n setIsLoading(true);\r\n let items = [...walkerAreas];\r\n if (index == 0 && higher) return;\r\n if (index == items.length - 1 && !higher) return;\r\n\r\n let newIndex = higher ? index - 1 : index + 1;\r\n let aux = items[index];\r\n items[index] = items[newIndex];\r\n items[newIndex] = aux;\r\n const ids = items.map((task) => task.id);\r\n window.DataGate.reorderWalkerAreas(ids, () => {\r\n setWalkerAreas(items);\r\n setIsLoading(false);\r\n window.Spinner.hide();\r\n });\r\n };\r\n\r\n const changeEnforceAllFieldsSetting = (e) => {\r\n setEnforceAllFields(e.currentTarget.checked);\r\n window.DataStorage.setUserSetting(\r\n window.myid,\r\n 2,\r\n e.currentTarget.checked ? 1 : 0\r\n );\r\n };\r\n return (\r\n <>\r\n
\r\n
\r\n {walkerAreas &&\r\n walkerAreas.map((walker_area, walker_area_index) => (\r\n
\r\n
\r\n
move_task(walker_area_index, true)}>\r\n \r\n \r\n \r\n
\r\n\r\n
move_task(walker_area_index, false)}>\r\n \r\n \r\n \r\n
\r\n

\r\n {window.lang.walkerArea}:{\" \"}\r\n \r\n {walker_area.name}\r\n \r\n

\r\n {\r\n setCurrentWorkingWalkerAreaId(walker_area.id);\r\n setShowDeleteWalkerAreaModal(true);\r\n }}\r\n className=\"tcDelButton--field-area\"\r\n />\r\n\r\n {walker_area_index == 0 && (\r\n
\r\n \r\n \r\n When selecting walker as task then Walker area, Walker\r\n name and Time period should always be selected\r\n \r\n
\r\n )}\r\n
\r\n\r\n
\r\n {generateFieldAreaFieldTables(walker_area, walker_area_index)}\r\n {generateFieldAreaTimePeriodTables(walker_area)}\r\n
\r\n
\r\n ))}\r\n
\r\n setShowCreateWalkerAreaModal(true)}\r\n >\r\n Add Walker Area\r\n \r\n
\r\n\r\n {showCreateWalkerAreaModal && (\r\n setShowCreateWalkerAreaModal(false)}\r\n button1_callback={createWalkerArea}\r\n />\r\n )}\r\n\r\n {showEditWalkerModal && (\r\n setShowEditWalkerModal(false)}\r\n button1_callback={editWalker}\r\n />\r\n )}\r\n {showCreateWalkerModal && (\r\n setShowCreateWalkerModal(false)}\r\n button1_callback={createWalker}\r\n />\r\n )}\r\n\r\n {showCreateTimeModal && (\r\n setShowCreateTimeModal(false)}\r\n button1_callback={createTimePeriod}\r\n />\r\n )}\r\n\r\n {showEditTimePeriodModal && (\r\n setShowEditTimePeriodModal(false)}\r\n button1_callback={editWalkerTimePeriod}\r\n />\r\n )}\r\n\r\n {(showDeleteWalkerModal ||\r\n showDeleteTimePeriodModal ||\r\n showDeleteWalkerAreaModal) && (\r\n {\r\n setShowDeleteWalkerModal(false);\r\n setShowDeleteTimePeriodModal(false);\r\n setShowDeleteWalkerAreaModal(false);\r\n }}\r\n button1_callback={deleteWalkerAreaItem}\r\n />\r\n )}\r\n \r\n );\r\n}\r\n\r\nexport default class WalkerManagerHolder {\r\n createWalkerManager() {\r\n ReactDOM.render(\r\n ,\r\n document.getElementById(\"walkerManagementPageReact\")\r\n );\r\n }\r\n}\r\n","import React, { useState, use, useEffect } from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport \"./HealthStatusManager.css\";\r\nimport Modal from \"../Modal/Modal\";\r\nimport { set } from \"lodash\";\r\nfunction HealthStatusManager() {\r\n const [healthStatuses, setHealthStatuses] = useState([]);\r\n\r\n const [showCreateHealthStatusModal, setShowCreateHealthStatusModal] =\r\n useState(false);\r\n\r\n const [healthStatusToBeDeleted, setHealthStatusToBeDeleted] = useState(null);\r\n\r\n const [newHealthStatusName, setNewHealthStatusName] = useState(\"\");\r\n\r\n useEffect(() => {\r\n setHealthStatuses(\r\n window.DataStorage.getHealthStatuses().filter(\r\n (status) => status.userId === window.myid\r\n )\r\n );\r\n }, []);\r\n\r\n const renderDeleteModalBody = () => {\r\n return {window.lang.wantDelete};\r\n };\r\n\r\n const createHealthStatus = () => {\r\n if (newHealthStatusName == \"\") {\r\n alert(\"Please select a valid name\");\r\n return;\r\n }\r\n\r\n window.Spinner.show();\r\n\r\n window.DataGate.addHealthStatus(newHealthStatusName, (code, data) => {\r\n try {\r\n data = JSON.parse(data);\r\n\r\n window.DataStorage.setHealthStatuses(data);\r\n setHealthStatuses(\r\n window.DataStorage.getHealthStatuses().filter(\r\n (status) => status.userId === window.myid\r\n )\r\n );\r\n } catch (ex) {\r\n console.error(\"Cannot parse server response \", ex);\r\n } finally {\r\n window.Spinner.hide();\r\n }\r\n });\r\n\r\n setShowCreateHealthStatusModal(false);\r\n };\r\n\r\n const renderCreateHealthStatusDefaulModalBody = (ev_dispatcher, ev_value) => {\r\n return (\r\n <>\r\n ev_dispatcher(e.currentTarget.value)}\r\n placeholder={window.lang.name}\r\n className=\"field-manager--modal-text-input\"\r\n />\r\n \r\n );\r\n };\r\n\r\n const deleteHealthStatus = () => {\r\n window.Spinner.show();\r\n\r\n window.DataGate.deleteHealthStatus(\r\n healthStatusToBeDeleted,\r\n (code, data) => {\r\n try {\r\n const newStatuses = window.DataStorage.getHealthStatuses().filter(\r\n (status) =>\r\n status.userId === window.myid &&\r\n status.id !== healthStatusToBeDeleted\r\n );\r\n window.DataStorage.setHealthStatuses(newStatuses);\r\n setHealthStatuses(\r\n window.DataStorage.getHealthStatuses().filter(\r\n (status) => status.userId === window.myid\r\n )\r\n );\r\n } catch (ex) {\r\n console.error(\"Cannot parse server response \", ex);\r\n } finally {\r\n setHealthStatusToBeDeleted(null);\r\n window.Spinner.hide();\r\n }\r\n }\r\n );\r\n\r\n setShowCreateHealthStatusModal(false);\r\n };\r\n return (\r\n <>\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {healthStatuses.map((status, index) => (\r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n
{window.lang.name}
{status.name}\r\n {/* this.onEditVaccinationButtonClick(i)}\r\n /> */}\r\n setHealthStatusToBeDeleted(status.id)}\r\n />\r\n
\r\n setShowCreateHealthStatusModal(true)}\r\n >\r\n {window.lang.add}\r\n \r\n
\r\n
\r\n {showCreateHealthStatusModal && (\r\n setShowCreateHealthStatusModal(false)}\r\n button1_callback={createHealthStatus}\r\n />\r\n )}\r\n {healthStatusToBeDeleted && (\r\n {\r\n setHealthStatusToBeDeleted(null);\r\n }}\r\n button1_callback={deleteHealthStatus}\r\n />\r\n )}\r\n \r\n );\r\n}\r\n\r\nexport default class HealthStatusManagerHolder {\r\n createHealthStatusManager() {\r\n ReactDOM.render(\r\n ,\r\n document.getElementById(\"healthStatusPageReact\")\r\n );\r\n }\r\n}\r\n","import React, { useState, use, useEffect } from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport \"./GeneralTaskPanelsManager.css\";\r\nimport Modal from \"../Modal/Modal\";\r\nimport { set } from \"lodash\";\r\nfunction GeneralTaskPanelsManager() {\r\n const [panels, setPanels] = useState([]);\r\n\r\n const [currentPanel, setCurrentPanel] = useState(null);\r\n\r\n useEffect(() => {\r\n const panelsVisibility = window.GlobalData.getGeneralTaskPanelsVisibility();\r\n\r\n setPanels(\r\n window.DataStorage.getGeneralTaskPanels().map((panel) => {\r\n return {\r\n ...panel,\r\n editable: panel.OwnerId === window.myid,\r\n isVisible: panelsVisibility.find((p) => p.Id === panel.Id)\r\n ? panelsVisibility.find((p) => p.Id === panel.Id).isVisible\r\n : true,\r\n };\r\n })\r\n );\r\n }, []);\r\n\r\n const renameCurrentPanel = () => {\r\n const { Name, Id } = currentPanel;\r\n\r\n if (Name == \"\") {\r\n alert(\"Please select a valid name\");\r\n return;\r\n }\r\n window.Spinner.show();\r\n window.DataGate.renameGeneralTaskPanel(Id, Name, (code, data) => {\r\n try {\r\n data = JSON.parse(data);\r\n window.DataStorage.setGeneralTaskPanels(data);\r\n const panelsVisibility =\r\n window.GlobalData.getGeneralTaskPanelsVisibility();\r\n\r\n setPanels(\r\n window.DataStorage.getGeneralTaskPanels().map((panel) => {\r\n return {\r\n ...panel,\r\n editable: panel.OwnerId === window.myid,\r\n isVisible: panelsVisibility.find((p) => p.Id === panel.Id)\r\n ? panelsVisibility.find((p) => p.Id === panel.Id).isVisible\r\n : true,\r\n };\r\n })\r\n );\r\n } catch (ex) {\r\n console.error(\"Cannot parse server response \", ex);\r\n } finally {\r\n window.Spinner.hide();\r\n }\r\n });\r\n setCurrentPanel(null);\r\n };\r\n\r\n const renderEditPanelModalBody = (ev_value, ev_dispatcher) => {\r\n return (\r\n <>\r\n \r\n ev_dispatcher({ ...ev_value, Name: e.currentTarget.value })\r\n }\r\n placeholder={window.lang.name}\r\n className=\"field-manager--modal-text-input\"\r\n />\r\n \r\n );\r\n };\r\n\r\n const toggleIsVisible = (panel) => {\r\n const newPanels = panels.map((p) => {\r\n if (p.Id === panel.Id) {\r\n return { ...p, isVisible: !p.isVisible };\r\n }\r\n return p;\r\n });\r\n setPanels(newPanels);\r\n\r\n window.GlobalData.setGeneralTaskPanelsVisibility(\r\n newPanels.map((panel) => {\r\n return {\r\n Id: panel.Id,\r\n isVisible: panel.isVisible,\r\n };\r\n })\r\n );\r\n };\r\n\r\n const renderIsVisibleIcon = (panel) => {\r\n return panel.isVisible ? (\r\n \r\n \r\n \r\n \r\n ) : (\r\n \r\n \r\n \r\n );\r\n };\r\n\r\n return (\r\n <>\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {panels.map((panel, index) => (\r\n \r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n
{window.lang.name}{window.lang.isVisible}{window.lang.edit}
{panel.Name}\r\n toggleIsVisible(panel)}\r\n >\r\n {renderIsVisibleIcon(panel)}\r\n \r\n {/* {panel.isVisible ? (\r\n toggleIsVisible(panel)}\r\n />\r\n ) : (\r\n toggleIsVisible(panel)}\r\n />\r\n )} */}\r\n \r\n {panel.editable && (\r\n setCurrentPanel(panel)}\r\n />\r\n )}\r\n
\r\n
\r\n
\r\n {currentPanel && (\r\n setCurrentPanel(null)}\r\n button1_callback={renameCurrentPanel}\r\n />\r\n )}\r\n \r\n );\r\n}\r\n\r\nexport default class GeneralTaskPanelsManagerHolder {\r\n createGeneralTaskPanelsManager() {\r\n ReactDOM.render(\r\n ,\r\n document.getElementById(\"generalTaskPanelsPageReact\")\r\n );\r\n }\r\n}\r\n","import React from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\n\r\n// import * as serviceWorker from \"./serviceWorker\";\r\nimport TrainingExtension from \"./TrainingViews/TrainingExtension\";\r\nimport HomePageExtention from \"./Home/HomePageExtention\";\r\nimport HorsePageExtention from \"./AddEditHorse/HorsePageExtention\";\r\nimport MultimediaMobileHelper from \"./Multimedia/MultimediaMobileHelper\";\r\nimport { SideMenuExtention } from \"./Menu/SideMenu\";\r\nimport Report from \"./Report/Report\";\r\nimport RiderRole from \"./RiderRole/RiderRole\";\r\nimport Sharing from \"./SharingPage/SharingPage\";\r\nimport TrainingPopup from \"./TrainingPopup/TrainingPopup\";\r\nimport SharePage from \"./SharingPage/SharePage\";\r\nimport AutoCreateTaskPage from \"./AutoCreateTask/AutoCreateTaskPage\";\r\nimport VaccinationPopup from \"./Home/VaccinationView/VaccinationPopup\";\r\nimport PriceReport from \"./Home/Settings/PriceReport\";\r\nimport DewormingTypes from \"./Home/Settings/DewormingTypes\";\r\nimport ReportSettings from \"./Report/ReportSettings\";\r\nimport MultimediaHelper from \"./Multimedia/MultimediaHelper\";\r\nimport SendSalesData from \"./SendSalesData/SendSalesData\";\r\nimport { PublicHorsePresentationHolder } from \"./SendSalesData/SendSalesData\";\r\nimport FieldManager from \"./FieldManager/FieldManager\";\r\nimport WalkerManager from \"./WalkerManager/WalkerManager\";\r\nimport HealthStatusManager from \"./HealthStatusManager/HealthStatusManager\";\r\nimport VeterinarianManager from \"./VeterinarianManager/VeterinarianManager\";\r\nimport GeneralTaskPanelsManagerHolder from \"./GeneralTaskPanelsManager/GeneralTaskPanelsManager\";\r\n\r\nwindow.trainingExtension = new TrainingExtension();\r\nwindow.HomePage.extention = new HomePageExtention();\r\nwindow.Managers.extention = new HorsePageExtention();\r\nwindow.multimediaMobileHelper = new MultimediaMobileHelper();\r\n// window.multimediaHelper = new MultimediaHelper();\r\nwindow.TopMenu.Self.sidebarExtention = new SideMenuExtention();\r\nwindow.vetfartable.extention = new Report();\r\nwindow.sendSalesData = new SendSalesData();\r\nwindow.fieldManager = new FieldManager();\r\nwindow.healthStatusManager = new HealthStatusManager();\r\nwindow.generalTaskPanelsManager = new GeneralTaskPanelsManagerHolder();\r\nwindow.walkerManager = new WalkerManager();\r\nwindow.showPublicPresentation = new PublicHorsePresentationHolder();\r\nwindow.window.managers = new RiderRole();\r\nwindow.managers.extention = new Sharing();\r\nwindow.TrainingPopup = TrainingPopup;\r\nwindow.SharePage = SharePage;\r\nwindow.AutoCreateTaskPage = AutoCreateTaskPage;\r\nwindow.VaccinationPage.extention = new VaccinationPopup();\r\nwindow.managers.priceReport = new PriceReport();\r\nwindow.managers.dewormingTypes = new DewormingTypes();\r\nwindow.managers.reportSettings = new ReportSettings();\r\n\r\n// ReactDOM.render(, document.getElementById(\"root\"));\r\n\r\n// If you want your app to work offline and load faster, you can change\r\n// unregister() to register() below. Note this comes with some pitfalls.\r\n// Learn more about service workers: https://bit.ly/CRA-PWA\r\n// serviceWorker.unregister();\r\n","import React from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport WeekView from \"./WeekView/WeekView\";\r\nimport MainView from \"./MainView\";\r\n\r\nexport default class TrainingExtension {\r\n renderMainView(mode) {\r\n if (window.myid == null) {\r\n return;\r\n }\r\n if (window.DataStorage.trainTypes == null) {\r\n return;\r\n }\r\n console.warn(\"renderMainView\");\r\n window.$(\"#trainReactDiv\").show();\r\n window.$(\"#trainTableDiv, #trainRiderView, #notat-rider-column\").html(\"\");\r\n\r\n //console.log(\"mode: \" + mode);\r\n\r\n ReactDOM.render(\r\n ,\r\n document.getElementById(\"trainReactDiv\")\r\n );\r\n }\r\n}\r\n","import React from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport FarrierView from \"./FarrierView/FarrierView\";\r\nimport VaccinationView from \"./VaccinationView/VaccinationView\";\r\nimport TeethView from \"./TeethView/TeethView\";\r\nimport XrayView from \"./XrayView/XrayView\";\r\nimport DewormingView from \"./DewormingView/DewormingView\";\r\nimport HerpesVaccinationView from \"./VaccinationView/HerpesVaccinationView\";\r\nimport AllHorseDataWithPrice from \"../TrainingViews/AllHorseWithPriceView/AllHorseDataWithPrice\";\r\n\r\nexport default class HomePageExtention {\r\n renderFarrier() {\r\n ReactDOM.render(\r\n ,\r\n document.getElementById(\"homeReactDiv\")\r\n );\r\n }\r\n\r\n renderVaccination() {\r\n ReactDOM.render(\r\n ,\r\n document.getElementById(\"homeReactDiv\")\r\n );\r\n }\r\n\r\n renderHerpesVaccination() {\r\n ReactDOM.render(\r\n ,\r\n document.getElementById(\"homeReactDiv\")\r\n );\r\n }\r\n\r\n renderTeeth() {\r\n ReactDOM.render(, document.getElementById(\"homeReactDiv\"));\r\n }\r\n // @todo\r\n // $(\"#sellDataDiv\").hide();\r\n renderSalesData() {\r\n ReactDOM.render(\r\n ,\r\n document.getElementById(\"homeReactDiv\")\r\n );\r\n }\r\n\r\n renderXray() {\r\n ReactDOM.render(, document.getElementById(\"homeReactDiv\"));\r\n }\r\n\r\n renderDeworming() {\r\n ReactDOM.render(, document.getElementById(\"homeReactDiv\"));\r\n }\r\n}\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport HorseViewPage from './HorseViewPage';\r\nimport PedigreePage from './HorseData/PedigreePage';\r\nimport OwnerInfoPage from './HorseData/OwnerInfoPage';\r\nimport NotesPage from './HorseData/NotesPage';\r\nimport PricePage from './HorseData/PricePage';\r\nimport ResultsPage from './HorseData/ResultsPage';\r\nimport EquipmentPage from './HorseData/EquipmentPage';\r\nimport VaccinationPage from './HorseData/VaccinationPage';\r\nimport FarrierPage from './HorseData/FarrierPage';\r\nimport TeethPage from './HorseData/Teeth/TeethPage';\r\nimport VeterinarianPage from './HorseData/VeterinarianPage';\r\nimport MultimediaPage from './HorseData/MultimediaPage';\r\nimport HerpesVaccinationPage from './HorseData/HerpesVaccinationPage';\r\n\r\nexport default class HorsePageExtention {\r\n showHorsePage(horseId, options) {\r\n if (horseId != -1) {\r\n let horseItem = window.DataStorage.getAllHorses().find(h => h.id == horseId);\r\n if (horseItem) {\r\n if (horseItem.userid != window.myid) {\r\n let role = window.DataStorage.rolesDataFromUsers.find(r => r.UserId == horseItem.userid);\r\n if (role != null && role.hOpenHorse == false) {\r\n window.onBack();\r\n window.alert(\"You have no access to view this horse\");\r\n return;\r\n }\r\n }\r\n }\r\n\r\n if (!window.location.href.includes(\"?id=\"))\r\n window.location.href = window.location.href + \"?id=\" + horseId;\r\n else\r\n window.location.href = window.location.href.split(\"?id=\")[0] + \"?id=\" + horseId;\r\n }\r\n\r\n if (options == null) {\r\n options = {\r\n showGallery: false\r\n };\r\n }\r\n this.currentHorseId = horseId;\r\n this.currentHorseOprtions = options;\r\n ReactDOM.render(\r\n ,\r\n document.getElementById('addHorsePageContent'));\r\n }\r\n\r\n refreshHorsePage() {\r\n if (this.currentHorseId != null) {\r\n ReactDOM.render(\r\n ,\r\n document.getElementById('addHorsePageContent'));\r\n }\r\n }\r\n\r\n showPedigree(horseId) {\r\n if (!window.location.href.includes(\"&p=pedigree\")) {\r\n window.location.href = window.location.href + \"&p=pedigree\";\r\n }\r\n\r\n ReactDOM.render(\r\n ,\r\n document.getElementById('addHorsePageContent'));\r\n }\r\n\r\n showOwnerInfo(horseId) {\r\n if (!window.location.href.includes(\"&p=owner\")) {\r\n window.location.href = window.location.href + \"&p=owner\";\r\n }\r\n\r\n ReactDOM.render(\r\n ,\r\n document.getElementById('addHorsePageContent'));\r\n }\r\n\r\n showNotes(horseId) {\r\n if (!window.location.href.includes(\"&p=notes\")) {\r\n window.location.href = window.location.href + \"&p=notes\";\r\n }\r\n\r\n ReactDOM.render(\r\n ,\r\n document.getElementById('addHorsePageContent'));\r\n }\r\n\r\n showHorsePrice(horseId) {\r\n if (!window.location.href.includes(\"&p=price\")) {\r\n window.location.href = window.location.href + \"&p=price\";\r\n }\r\n\r\n ReactDOM.render(\r\n ,\r\n document.getElementById('addHorsePageContent'));\r\n }\r\n\r\n showResults(horseId) {\r\n if (!window.location.href.includes(\"&p=results\")) {\r\n window.location.href = window.location.href + \"&p=results\";\r\n }\r\n\r\n ReactDOM.render(\r\n ,\r\n document.getElementById('addHorsePageContent'));\r\n }\r\n\r\n showEquipment(horseId) {\r\n if (!window.location.href.includes(\"&p=equipment\")) {\r\n window.location.href = window.location.href + \"&p=equipment\";\r\n }\r\n\r\n ReactDOM.render(\r\n ,\r\n document.getElementById('addHorsePageContent'));\r\n }\r\n\r\n showVaccination(horseId) {\r\n if (!window.location.href.includes(\"&p=vaccination\")) {\r\n window.location.href = window.location.href + \"&p=vaccination\";\r\n }\r\n\r\n ReactDOM.render(\r\n ,\r\n document.getElementById('addHorsePageContent'));\r\n }\r\n\r\n showHerpesVaccination(horseId) {\r\n if (!window.location.href.includes(\"&p=herpesvaccination\")) {\r\n window.location.href = window.location.href + \"&p=herpesvaccination\";\r\n }\r\n\r\n ReactDOM.render(\r\n ,\r\n document.getElementById('addHorsePageContent'));\r\n }\r\n\r\n showFarrier(horseId) {\r\n if (!window.location.href.includes(\"&p=farrier\")) {\r\n window.location.href = window.location.href + \"&p=farrier\";\r\n }\r\n\r\n ReactDOM.render(\r\n ,\r\n document.getElementById('addHorsePageContent'));\r\n }\r\n\r\n showTeeth(horseId) {\r\n if (!window.location.href.includes(\"&p=teeth\")) {\r\n window.location.href = window.location.href + \"&p=teeth\";\r\n }\r\n\r\n ReactDOM.render(\r\n ,\r\n document.getElementById('addHorsePageContent'));\r\n }\r\n\r\n showVeterinarian(horseId) {\r\n if (!window.location.href.includes(\"&p=veterinarian\")) {\r\n window.location.href = window.location.href + \"&p=veterinarian\";\r\n }\r\n\r\n ReactDOM.render(\r\n ,\r\n document.getElementById('addHorsePageContent'));\r\n }\r\n\r\n showMultimedia(horseId) {\r\n if (!window.location.href.includes(\"&p=multimedia\")) {\r\n window.location.href = window.location.href + \"&p=multimedia\";\r\n }\r\n\r\n ReactDOM.render(\r\n ,\r\n document.getElementById('addHorsePageContent'));\r\n }\r\n}","export default class MultimediaMobileHelper {\r\n constructor() {\r\n this.MultimediaIOS = null;\r\n if (\r\n window.webkit != null &&\r\n window.webkit.messageHandlers != null &&\r\n window.webkit.messageHandlers.MultimediaIOS != null\r\n )\r\n this.MultimediaIOS = window.webkit.messageHandlers.MultimediaIOS;\r\n\r\n this.isActive =\r\n this.MultimediaIOS != null || window.MultimediaAndroid != null;\r\n }\r\n\r\n postMessage(dataObj) {\r\n if (this.MultimediaIOS) {\r\n this.MultimediaIOS.postMessage(dataObj);\r\n } else if (window.MultimediaAndroid) {\r\n window.MultimediaAndroid.postMessage(dataObj.type, dataObj.data);\r\n }\r\n }\r\n\r\n setHorseList(horses) {\r\n if (this.isActive) {\r\n this.postMessage({ type: \"setHorseList\", data: JSON.stringify(horses) });\r\n }\r\n }\r\n\r\n loadList(userId, horseId, callback) {\r\n this.loadCallback = callback;\r\n if (this.isActive) {\r\n this.postMessage({\r\n type: \"getImageList\",\r\n data: JSON.stringify({ userId: userId, horseId: horseId }),\r\n });\r\n }\r\n }\r\n\r\n onLoadCallback(data) {\r\n if (this.loadCallback) this.loadCallback(data);\r\n }\r\n\r\n cancelUpload(request_origin, fileName) {\r\n this.postMessage({\r\n type: \"cancelUpload\",\r\n data: JSON.stringify({\r\n request_origin,\r\n fileName,\r\n }),\r\n });\r\n }\r\n\r\n downloadExcell() {\r\n this.postMessage({\r\n type: \"downloadExcel\",\r\n data: JSON.stringify({}),\r\n });\r\n }\r\n\r\n showFullScreen(userId, horseId, imageItem) {\r\n if (this.isActive) {\r\n this.postMessage({\r\n type: \"showFullscreen\",\r\n data: JSON.stringify({\r\n userId: userId,\r\n horseId: horseId,\r\n fileName: imageItem.name,\r\n }),\r\n });\r\n }\r\n }\r\n\r\n onUploadDoneCallback(fileName, data, target_origin) {\r\n if (this.uploadDoneCallback)\r\n this.uploadDoneCallback(fileName, data, target_origin);\r\n }\r\n\r\n onUploadStartCallback(fileName, imageUrl, target_origin) {\r\n if (this.uploadStartCallback) {\r\n this.uploadStartCallback(fileName, imageUrl, target_origin);\r\n }\r\n }\r\n\r\n onUploadProgressCallback(fileName, percent, target_origin) {\r\n if (this.uploadProgressCallback) {\r\n this.uploadProgressCallback(fileName, percent, target_origin);\r\n }\r\n }\r\n\r\n onUploadListCallback(data, target_origin) {\r\n if (this.uploadListCallback) this.uploadListCallback(data, target_origin);\r\n }\r\n\r\n changeName(item, nameNew, horseId, callback) {\r\n if (this.isActive) {\r\n this.changeNameCallback = callback;\r\n this.postMessage({\r\n type: \"renameImage\",\r\n data: JSON.stringify({\r\n id: item.id,\r\n name: item.name,\r\n path_display: item.path_display,\r\n horseId: horseId,\r\n }),\r\n });\r\n }\r\n }\r\n\r\n onChangeNameCallback(item) {\r\n if (this.changeNameCallback) this.changeNameCallback(item);\r\n }\r\n\r\n shareItems(userId, horseId, items) {\r\n let itemNames = items.map((item) => item.name);\r\n this.postMessage({\r\n type: \"shareItems\",\r\n data: JSON.stringify({\r\n userId: userId,\r\n horseId: horseId,\r\n itemNames: itemNames,\r\n }),\r\n });\r\n }\r\n\r\n downloadAndShareItems(items) {\r\n this.postMessage({\r\n type: \"downloadAndShareItems\",\r\n data: JSON.stringify(items),\r\n });\r\n }\r\n\r\n onDownloadSyncCallback(count, totalCount) {\r\n if (count > 0) {\r\n window.$(\"#syncMultmediaInfo\").show();\r\n window\r\n .$(\"#syncMultmediaInfo\")\r\n .html(`Sync multimedia horses: ${count} of ${totalCount}`);\r\n } else {\r\n window.$(\"#syncMultmediaInfo\").hide();\r\n }\r\n }\r\n}\r\n"],"sourceRoot":""}